{
  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@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 => {
      align => 'center'
    },
    proxies => [{
      root_path => '/plugin/export',
      mount => 'http://10.10.14.225:7778',
      service => 'export-plugin-proxy'
    }],
  },
  CSP => {
    'frame-src' => 'self',
    'frame-ancestors' => ['self','http://korap.dnb.de/','https://korap.dnb.de/']
   },
 'Kalamar-Plugins' => {
     default_plugins =>'wiki.plugins.json'
  },
  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
      }
    ]
  }
}
