<!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, minimum-scale=1.0" />
    <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_desc') %>" />
    <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>
