{
  Kalamar => {
    ## Backend server path
    # api_path => 'https://korap.example.org/api/',
    # plugins => ["Auth"],
    ## Backend API version
    # api_version => '1.0',

    ## If the application is run behind a proxy, ignore the forwarded host
    # proxy_host => 0,

    ## Run the application in a subfolder behind a proxy:
    # proxy_prefix => '/deliko',

    ## The name of the base corpus,
    ## for query examples (see kalamar.queries.dict)
    examplecorpus => 'DeLiKo-2025@DNB',

    ## For further Plugins, add them
    ## to this array:
    # plugins => [],
    plugins  => ['Plugins'],

    ## Currently bundled: Piwik, Auth

    ## Require everything to be send via https only:
    # https_only => 1,

    ## Override default content security policy
    # cs_policy => "default-src '*';"

    ## Set proxy timeouts
    # proxy_inactivity_timeout => 120,
    # proxy_connect_timeout => 120,
    defaults => {
      alignment => 'center'
    },
    proxies => [{
      root_path => '/plugin/export',
      mount => 'http://kalamar-export-plugin:7777',
      service => 'export-plugin-proxy'
    }],
    navi_ext => [ {
        "title" => "virtual_subcorpora",
        "id" => "virtual_subcorpora"
      }
    ],
  },
  CSP => {
    'frame-src' => ['self', 'https://korap.ids-mannheim.de/', 'https://www.youtube.com'],
    'frame-ancestors' => ['self','http://korap.dnb.de/','https://korap.dnb.de/']
   },
 'Kalamar-Plugins' => {
     default_plugins =>'deliko.plugins.json'
  },
  Localize => {
    dict => {
      'en_title_addon' => 'DeLiKo-2025@DNB',
      'en_Nav_virtual_subcorpora' => 'Useful Virtual Subcorpora',
      'de_Nav_virtual_subcorpora' => 'Nützliche virtuelle Subkorpora',
      'de_Template_intro' => 'custom/intro',
      'en_Template_intro' => 'custom/intro',
      'en_howToCite' => 'Citation Help',
      'de_howToCite' => 'Zitierhilfe',
      'en_recentCorpusPub' => 'Recent publications to refer to DeLiKo@DNB as research data',
      'de_recentCorpusPub' => 'Neuere Publikationen zu DeLiKo@DNB als Forschungsdatengrundlage',
      'en_recentToolPub' => 'Recent publications to refer to KorAP as a research tool',
      'de_recentToolPub' => 'Neuere Publikationen zu KorAP als Forschungswerkzeug',
    },
    override  => 1
  },
  'TagHelpers-ContentBlock' => {
    footer => [
    {
      inline => '<%= link_to loc("about") => "http://www.ids-mannheim.de/kl/projekte/korap/" %>',  
      position => 70
    },
    {
      inline => '<%= link_to loc("howToCite") => url_for(doc => { page => "faq" })->fragment("howToCite") %>',
      position => 75
    },
    {
      inline => '<%= link_to loc("imprint") => "https://www.dnb.de/DE/Service/Impressum/impressum_node.html" %>',  
      position => 80
    }],
    faq => [
      {
        position => 50,
        inline => <<'HOWTOCITE'
<section>
  <h3 id="howToCite"><%= loc 'howToCite' %></h3>
%= include 'custom/partial/citation'
</section>
HOWTOCITE
      }
    ]
  }
}
