<!DOCTYPE html>
% my $lang = app->localize->preference // 'en';
% my $desc = loc('korap_desc');
% my $keywords = loc('korap_keywords');
<html lang="<%= $lang %>" xml:lang="<%= $lang %>" xmlns="http://www.w3.org/1999/xhtml" xmlns:og="http://opengraphprotocol.org/schema/">
  <head prefix="og: http://ogp.me/ns# website: http://ogp.me/ns/website#">
    <title><%= title() // loc('korap_desc') %></title>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=false, user-scalable=no" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="Content-Style-Type" content="text/css" />
    <meta http-equiv="Content-Script-Type" content="text/javascript" />
    <meta name="msapplication-TileImage" content="<%= url_for '/img/windows-tile.png' %>" />
    <meta name="msapplication-TileColor" content="#9bad0b" />
    <meta name="robots" content="<%= stash('robots') || 'noindex' %>" />
    <meta name="apple-mobile-web-app-status-bar-style" content="default" />
    <meta name="description" content="<%= $desc %>" />
    <meta name="language" content="<%= $lang %>" />
    <meta name="author" content="The KorAP Team" />
    <meta name="DC.type" content="service" />
    <meta name="DC.creator" content="IDS Mannheim" />
    <meta name="DC.title" content="<%= title() || loc('korap_short') %>" />
    <meta name="DC.description" content="<%= $desc %>" />
    <meta name="DC.format" content="text/html" />
    <meta name="DC.contributor" content="The KorAP Team" />
    <meta name="DC.publisher" content="IDS Mannheim" />
    <meta name="DC.language" content="<%= $lang %>" />
    <meta property="og:url" content="<%= url_for->to_abs %>" />
    <meta property="og:locale" content="<%= $lang %>" />
    <meta property="og:description" content="<%= $desc %>" />
    <meta property="og:image" content="<%= url_for '/img/korap-200.png' %>" />
    <meta property="og:image:width" content="200" />
    <meta property="og:image:height" content="200" />
    <meta name="twitter:image" content="<%= url_for '/img/korap-280.png' %>" />
    <meta name="twitter:description" content="<%= $desc %>" />
    <meta name="geo.region" content="<%= loc 'korap_region' %>" />
    <meta name="geo.placename" content="<%= loc 'korap_placename' %>" />
    <meta name="keywords" content="<%= $keywords %>" />
    <meta name="DC.subject" content="<%= $keywords %>" />

    <link rel="apple-touch-icon" href="<%= url_for '/img/apple-touch-icon.png' %>" />
    <link href="<%= stash 'prefix' %>/favicon.ico" rel="shortcut icon" type="image/x-icon" /> 

% if ($c->app->mode eq 'development') {
    <link href="<%= stash 'prefix' %>/css/kalamar-<%= $Kalamar::VERSION %>.css?v=<%= random_string %>" type="text/css" rel="stylesheet" />
    <script data-main="/js/src/app/devel" src="/js/lib/require.js" async="async" defer="defer"></script>
% } else {
    <link href="<%= stash 'prefix' %>/css/kalamar-<%= $Kalamar::VERSION %>.css" type="text/css" rel="stylesheet" />
    <script src="<%= (stash('prefix') // '') . '/js/' . loc('jsFile', 'kalamar-' . $Kalamar::VERSION . '-en.js') %>" async="async" defer="defer"></script>
% };
      
    
  </head>
% my $embedded = 0;
% $embedded = 1 if stash('embedded');
  <body class="no-js<% if ($embedded) { %> embedded<% } %>"
        % my $api = url_for('index');
        % $api =~ s!/$!!;
        data-korap-url="<%== $api %>"
        itemscope
        itemtype="http://schema.org/<%= stash('schematype') || 'WebApplication' %>">
    
    %= csp_nonce_tag

    <div id="kalamar-bg"></div>
    
    %= include 'partial/side', embedded => $embedded
    
    % unless ($embedded) {
      %= include 'partial/header'
    % }

    <noscript>
      <p id="activate"><%= loc 'activateJS' %></p>
    </noscript>
    
    <main<% if (stash 'main_class') { %> class="<%= stash 'main_class' %>"<% } %>>
    %= content
    </main>

    % unless ($embedded) {
      %= include 'partial/footer'
    % };
    %= notifications 'Kalamar::Plugin::Notifications'

    %= content_block 'scripts'
    
  </body>
</html>
