{
  Kalamar => {
    ## Backend server path
    # api_path => 'https://korap.example.org/api/',
    ## 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',
    plugins  => ['Plugins'],
    # https_only => 1,


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

    ## For further Plugins, add them
    ## to this array:
    # 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.dnb.de/','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_Nav_virtual_subcorpora' => 'Useful Virtual Subcorpora',
      'de_Nav_virtual_subcorpora' => 'Nützliche virtuelle Subkorpora',
      'en_title_addon' => 'DeLiKo@DNB',
      '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
      }
    ]
  }
}
