{
  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 => '/korap',

    ## 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,
  },
  Localize => {
    dict => {
      'en_title_addon' => 'DeLiKo@DNB-XL',
      '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
      }
    ]
  }
}
