Add customized data for IDS instance

Change-Id: Ic205079e5c56a463c09c3ea44f5ea8f7633169d5
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..76e80a9
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,45 @@
+/cache
+/kalamar.secret*
+/start-test
+/todo.org
+/fixtures.txt
+/sandbox
+/Sandbox
+/node_modules
+/cache/data
+/public
+/kalamar.*.conf
+/kalamar.conf.json
+/kalamar.conf.js
+/kalamar.*.dict
+!/kalamar.queries.dict
+/script/hypnotoad.pid
+/.sass-cache
+/dev/css
+/dev/js/spec/src
+/lib/Kalamar/Plugin/Announcements.pm
+/log
+/blib
+/script*
+/MYMETA*
+/Makefile
+/pm_to_blib
+/t/kalamar_user_client.t
+\#*
+*.tar.gz
+*~
+*.sqlite
+*.log
+*.db
+*.plugins.json
+*.old
+.*
+/t/kalamar_user_client.t
+!.gitignore
+!.github
+!.dockerignore
+/npm-debug.log
+/package-lock.json
+/kalamar.code-workspace
+
+!/kalamar.ids-mannheim.conf
diff --git a/kalamar.ids-mannheim.conf b/kalamar.ids-mannheim.conf
new file mode 100644
index 0000000..169e606
--- /dev/null
+++ b/kalamar.ids-mannheim.conf
@@ -0,0 +1,140 @@
+use Mojo::File 'path';
+use Mojo::ByteStream 'b';
+my $api = 'http://10.0.10.51:9000/api/';
+{
+  Search => {
+    engine => 'Kalamar::API'
+  },
+  'Kalamar-Auth' => {
+    client_id => b(path('.client_id')->slurp)->trim,
+    client_secret => b(path('.client_secret')->slurp)->trim,
+    oauth2 => 1,
+    experimental_client_registration => 1
+  },
+  Kalamar => {
+    api_path => $api,
+    secure_cookie => 1,
+    https_only => 1,
+    plugins => ['Auth', 'Piwik','Plugins'],
+    experimental_proxy => 1,
+    proxy_inactivity_timeout => 120,
+    proxy_connect_timeout => 120,
+    Piwik => {
+      ping_requests => 1,
+      ping_site_id => 13
+    },
+    navi_ext => [
+      {
+        "title" => "corpora",
+        "id" => "corpus"
+      },
+      {
+        "title" => "Privacy",
+        "id" => "privacy"
+      },
+    ],
+  },
+  CSP => {
+    'frame-src' => 'self',
+    'frame-ancestors' => ['self','http://*.ids-mannheim.de/','https://*.ids-mannheim.de/','http://klinux10/']
+  },
+  'Kalamar-Plugins' => {
+    default_plugins => 'default.plugins.json'
+  },
+  Piwik => {
+    url => 'https://stats.ids-mannheim.de',
+    token_auth => '8515ea786127a63a2974de25a0808b00',
+    site_id => 8,
+    embed => 1
+  },
+  hypnotoad => {
+    listen => ['http://*:4348'],
+    workers => 5,
+    inactivity_timeout => 120,
+    proxy => 1
+  },
+  MailException => {
+    from => join('@', 'diewald', 'ids-mannheim.de'),
+    to => join('@', 'diewald', 'ids-mannheim.de'),
+    subject => '[KorAP] Kalamar crashed'
+  },
+  Localize => {
+    dict => {
+      de_loginExplanation => 'Anmeldung mit einem registrierten <%= link_to "Cosmas-II" => "https://perso.ids-mannheim.de/registration/", style => "white-space: nowrap" %>-Konto',
+      en_loginExplanation => 'Login with a registered <%= link_to "Cosmas-II" => "https://perso.ids-mannheim.de/registration/", style => "white-space: nowrap" %> account',
+      en_Nav_privacy => 'Privacy',
+      de_Nav_privacy => 'Datenschutz',
+      de_Nav_corpora => 'Korpora',
+      en_Nav_corpora => 'Corpora',
+      en_howToCite => 'Citation Help',
+      de_howToCite => 'Zitierhilfe',
+      en_recentCorpusPub => 'Recent publications to refer to DeReKo as linguistic research data',
+      de_recentCorpusPub => 'Neuere Publikationen zu DeReKo als linguistische Forschungsdatengrundlage',
+      en_recentToolPub => 'Recent publications to refer to KorAP as a tool for research',
+      de_recentToolPub => 'Neuere Publikationen zu KorAP als Forschungswerkzeug',
+    }
+  },
+  'TagHelpers-ContentBlock' => {
+    footer => [
+      {
+        inline => '<%= link_to loc("about") => "https://www.ids-mannheim.de/digspra/kl/projekte/korap/" %>',  
+        position => 70
+      },
+      {
+        inline => '<%= link_to loc("howToCite") => url_for(doc => { page => "faq" })->fragment("howToCite") %>',
+        position => 75
+      },
+      {
+        inline => '<%= link_to loc("privacy") => "doc/privacy" %>',  
+        position => 90
+      },
+      {
+        inline => '<%= link_to loc("imprint") => "https://www.ids-mannheim.de/allgemein/impressum/" %>',  
+        position => 80
+      },
+    ],
+    faq => [
+      {
+        position => 50,
+        inline => <<'HOWTOCITE'
+<section>
+  <h3 id="howToCite"><%= loc 'howToCite' %></h3>
+%= include 'custom/partial/citation'
+</section>
+HOWTOCITE
+      }
+    ],
+    loginInfo => [
+      {
+        inline => '<p><%== loc "loginExplanation" %></p>',
+        position => 50
+      }#,
+#      {
+#        inline => '<p class="announcement"><time datetime="2018-05-24">24.05.2018</time> Um weitere Anwendungen für die Nutzung von DeReKo anbieten zu können, haben wir die <%= link_to "Nutzungsvereinbarung", "https://www.ids-mannheim.de/cosmas2/projekt/registrierung/Nutzungsvereinbarung.html" %> angepasst!</p>',
+#        position => 100
+#      }
+    ]
+  },
+
+  # See Mojolicious::Plugin::CHI
+  CHI => {
+    default => {
+      driver => 'FastMmap',
+      root_dir => app->home . '/cache/data',
+      cache_size => '500m',
+      max_size => '500m'
+    },
+    user => {
+      l1_cache => {
+      	driver => 'FastMmap',
+	      root_dir => app->home . '/cache/usermap',
+        	cache_size => '50m',
+	        max_size => '50m'
+      },
+      driver => 'File',
+      root_dir => app->home . '/cache/userfile',
+      max_key_length => 64,
+      max_size => '500m'
+    }
+  } 
+};
\ No newline at end of file
diff --git a/templates/custom/doc/corpus.html.ep b/templates/custom/doc/corpus.html.ep
new file mode 100644
index 0000000..bf354a8
--- /dev/null
+++ b/templates/custom/doc/corpus.html.ep
@@ -0,0 +1,13 @@
+% layout 'main', title => 'KorAP: ' . loc('Nav_corpora');
+
+%= page_title
+
+<section> 
+% my $lang = c(@{$c->localize->locale})->first(qr!^(?i:de|en)$!) // 'en';
+% if ($lang eq 'de') {
+  <h3>Aktuelle Datengrundlage: virtuelles Korpus <code>dereko-korap-2022-I</code></h3>
+% } else {
+  <h3>Current data set: Virtual corpus <code>dereko-korap-2022-I</code></h3>
+% }
+  <iframe src="https://korap.ids-mannheim.de/data/dereko-korap-2022-I.html" sandbox="position: relative; allow-forms allow-scripts" style="border-width: 0; min-height: 80vh" height="100%" width="100%"></iframe>
+</section>
diff --git a/templates/custom/doc/privacy.html.ep b/templates/custom/doc/privacy.html.ep
new file mode 100644
index 0000000..c1eb5e3
--- /dev/null
+++ b/templates/custom/doc/privacy.html.ep
@@ -0,0 +1,72 @@
+% layout 'main', title => 'KorAP: Datenschutzerklärung';
+
+<h2 id="tutorial-top">Datenschutzerklärung</h2>
+
+Für die Nutzung von KorAP gilt die <%= link_to 'Datenschutzerklärung des IDS', 'https://www.ids-mannheim.de/allgemein/datenschutz/' %>. Darüber hinaus weisen wir auf folgende Punkte hin, die spezifisch für die Nutzung von KorAP sind:</p>
+
+<section>
+  <h3>Verwendung technisch nicht notwendiger Cookies</h3>
+
+  <h4>Beschreibung und Umfang der Datenverarbeitung</h4>
+
+  <p>Wir verwenden auf unserer Website Cookies, die eine Analyse des Surfverhaltens der Nutzer ermöglichen. Auf diese Weise können folgende Daten übermittelt werden:</p>
+
+  <ol>
+    <li>Suchanfragen</li>
+    <li>Korpusanfragen</li>
+    <li>Inanspruchnahme von Funktionen</li>
+  </ol>
+  
+  <p>Die auf diese Weise erhobenen Daten der Nutzerinnen/Nutzer werden durch technische Vorkehrungen anonymisiert. Daher ist eine Zuordnung der Daten zum aufrufenden Nutzer nicht mehr möglich. Die Daten werden nicht gemeinsam mit sonstigen personenbezogenen Daten der Nutzer gespeichert.</p>
+
+  <h4>Rechtsgrundlage für die Datenverarbeitung</h4>
+
+  <p>Die Rechtsgrundlage für die Verarbeitung personenbezogener Daten unter Verwendung technisch nicht notwendiger Cookies ist Art. 6 Abs. 1 lit. f DSGVO.</p>
+
+  <h4>Zweck der Datenverarbeitung</h4>
+
+  <p>Die Verwendung der Analyse-Cookies erfolgt zu dem Zweck, die Qualität unserer Website und ihre Inhalte zu verbessern. Durch die Analyse-Cookies erfahren wir, wie die Website genutzt wird und können so unser Angebot stetig optimieren. In diesen Zwecken liegt auch unser berechtigtes Interesse in der Verarbeitung der personenbezogenen Daten nach Art. 6 Abs. 1 lit. f DSGVO.</p>
+
+  <h4>Dauer der Speicherung, Widerspruchs- und Beseitigungsmöglichkeit</h4>
+
+  <p>Cookies werden auf dem Rechner des Nutzers gespeichert und von diesem an unsere Seite übermittelt. Daher haben Sie als Nutzer auch die volle Kontrolle über die Verwendung von Cookies. Durch eine Änderung der Einstellungen in Ihrem Internetbrowser können Sie die Übertragung von Cookies deaktivieren oder einschränken. Bereits gespeicherte Cookies können jederzeit gelöscht werden. Dies kann auch automatisiert erfolgen. Werden Cookies für unsere Website deaktiviert, können möglicherweise nicht mehr alle Funktionen der Website vollumfänglich genutzt werden.</p>
+
+</section>
+
+<section>
+  <h3>Webanalyse durch Matomo</h3>
+
+  <h4>Umfang der Verarbeitung personenbezogener Daten</h4>
+
+  <p>Wir nutzen auf unserer Website das Open-Source-Software-Tool Matomo (ehemals PIWIK) zur Analyse des Surfverhaltens unserer Nutzer. Die Software setzt ein Cookie auf dem Rechner der Nutzer (zu Cookies siehe bereits oben). Werden Einzelseiten unserer Website aufgerufen, so werden folgende Daten gespeichert:</p>
+
+  <ol>
+    <li>Die um das letzte Byte gekürzte IP-Adresse des aufrufenden Systems des Nutzers</li>
+    <li>Die aufgerufene Webseite</li>
+    <li>Die Website, von der der Nutzer auf die aufgerufene Webseite gelangt ist, sofern diese Information übertragen wird (Referrer)</li>
+    <li>Die Unterseiten und Funktionen, die von der aufgerufenen Webseite aus aufgerufen werden</li>
+    <li>Die Verweildauer auf der Webseite</li>
+    <li>Die Häufigkeit des Aufrufs der Webseite</li>
+    <li>Suchbegriffe, mittels derer der Nutzer die Seite gefunden und aufgerufen hat, sofern diese Information übertragen wird</li>
+  </ol>
+
+  <p>Matomo läuft ausschließlich auf den Servern des Instituts für Deutsche Sprache. Eine Speicherung der personenbezogenen Daten der Nutzer findet nur dort statt. Eine Weitergabe der Daten an Dritte erfolgt nicht. Die Software ist so eingestellt, dass die IP-Adressen nicht vollständig gespeichert werden, sondern 1 Byte der IP-Adresse maskiert wird (Bsp.: 192.168.0.xxx). Auf diese Weise ist eine Zuordnung der gekürzten IP-Adresse zum aufrufenden Rechner nicht mehr möglich. Nähere Informationen zu den Privatsphäreeinstellungen der Matomo Software finden Sie unter folgendem Link: <%= link_to 'https://matomo.org/docs/privacy/', 'https://matomo.org/docs/privacy/' %>.</p>
+
+  <h4>Rechtsgrundlage für die Verarbeitung personenbezogener Daten</h4>
+
+  <p>Die Rechtsgrundlage für die Verarbeitung personenbezogener Daten unter Verwendung technisch nicht notwendiger Cookies ist Art. 6 Abs. 1 lit. f DSGVO.</p>
+
+  <h4>Zweck der Datenverarbeitung</h4>
+
+  <p>Die Verarbeitung der personenbezogenen Daten der Nutzer ermöglicht uns eine Analyse des Surfverhaltens unserer Nutzer. Wir sind durch die Auswertung der gewonnen Daten in der Lage, Informationen über die Nutzung der einzelnen Komponenten unseres Dienstes zusammenzustellen. Dies hilft uns dabei unseren Dienst und dessen Nutzerfreundlichkeit stetig zu verbessern. In diesen Zwecken liegt auch unser berechtigtes Interesse in der Verarbeitung der Daten nach Art. 6 Abs. 1 lit. f DSGVO. Durch die Anonymisierung der IP-Adresse wird dem Interesse der Nutzer an deren Schutz personenbezogener Daten hinreichend Rechnung getragen.</p>
+
+  <h4>Dauer der Speicherung</h4>
+
+  <p>Die Daten werden gelöscht, sobald sie für unsere Aufzeichnungszwecke nicht mehr benötigt werden, spätestens nach 12 Monaten.</p>
+
+  <h4>Widerspruchs- und Beseitigungsmöglichkeit</h4>
+
+  <p>Cookies werden auf dem Rechner des Nutzers gespeichert und von diesem an unsere Seite übermittelt. Daher haben Sie als Nutzer auch die volle Kontrolle über die Verwendung von Cookies. Durch eine Änderung der Einstellungen in Ihrem Internetbrowser können Sie die Übertragung von Cookies deaktivieren oder einschränken. Bereits gespeicherte Cookies können jederzeit gelöscht werden. Dies kann auch automatisiert erfolgen. Werden Cookies für unsere Website deaktiviert, können möglicherweise nicht mehr alle Funktionen der Website vollumfänglich genutzt werden.</p>
+
+  %= piwik_tag 'opt-out'
+</section>
diff --git a/templates/custom/partial/citation.html.ep b/templates/custom/partial/citation.html.ep
new file mode 100644
index 0000000..d962f38
--- /dev/null
+++ b/templates/custom/partial/citation.html.ep
@@ -0,0 +1,27 @@
+<section>
+  <h4><%= loc 'recentCorpusPub' %></h4>
+
+  <p class="bibentry">IDS (2020a): <cite><a href="https://www.ids-mannheim.de/digspra/kl/projekte/korpora/">Deutsches Referenzkorpus / Archiv der Korpora geschriebener Gegenwartssprache</a></cite> 2020-I (Release vom 21.01.2020).<br />Mannheim: Leibniz-Institut für Deutsche Sprache. PID: <a href="http://hdl.handle.net/10932/00-04B6-B898-AD1A-8101-4">00-04B6-B898-AD1A-8101-4</a>.
+    <span class='Z3988' title='url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=report&amp;rft.btitle=Deutsches%20Referenzkorpus%20%2F%20Archiv%20der%20Korpora%20geschriebener%20Gegenwartssprache%202020-I&amp;rft.place=Mannheim&amp;rft.publisher=Leibniz-Institut%20f%C3%BCr%20Deutsche%20Sprache&amp;rft.date=2020'></span>
+  </p>
+  
+  <p class="bibentry">Kupietz, Marc/Lüngen, Harald/Kamocki, Paweł/Witt, Andreas (2018): <cite>The German Reference Corpus DeReKo: New Developments – New Opportunities</cite><br />In: Calzolari, Nicoletta/Choukri, Khalid/Cieri, Christopher/Declerck, Thierry/Goggi, Sara/Hasida, Koiti/Isahara, Hitoshi/Maegaard, Bente/Mariani, Joseph/Mazo, Hélène/Moreno, Asuncion/Odijk, Jan/Piperidis, Stelios/Tokunaga, Takenobu (Hrsg.): Proceedings of the Eleventh International Conference on Language Resources and Evaluation (LREC 2018). Miyazaki: European Language Resources Association (ELRA), 2018. S. 4353-4360.
+    <span class='Z3988' title='url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=proceeding&amp;rft.atitle=The%20German%20Reference%20Corpus%20DeReKo%3A%20New%20Developments%20%E2%80%93%20New%20Opportunities&amp;rft.btitle=Proceedings%20of%20the%20Eleventh%20International%20Conference%20on%20Language%20Resources%20and%20Evaluation%20(LREC%202018)&amp;rft.place=Miyazaki&amp;rft.publisher=European%20Language%20Resources%20Association%20(ELRA)&amp;rft.aufirst=Marc&amp;rft.aulast=Kupietz&amp;rft.au=Marc%20Kupietz&amp;rft.au=Harald%20L%C3%BCngen&amp;rft.au=Pawe%C5%82%20Kamocki&amp;rft.au=Andreas%20Witt&amp;rft.date=2018&amp;rft.pages=4353-4360&amp;rft.spage=4353&amp;rft.epage=4360'></span>
+  </p>
+  
+  <p class="bibentry">Kupietz, Marc/Belica, Cyril/Keibel, Holger/Witt, Andreas (2010): <cite><a class="extern" href="http://www.lrec-conf.org/proceedings/lrec2010/pdf/414_Paper.pdf">The German Reference Corpus DeReKo: A primordial sample for linguistic research</a></cite><br />In: Calzolari, Nicoletta et al. (eds.): Proceedings of the 7th conference on International Language Resources and Evaluation (LREC 2010). Valletta, Malta: European Language Resources Association (ELRA), 1848-1854.
+    <span class='Z3988' title='url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=proceeding&amp;rft.atitle=The%20German%20Reference%20Corpus%20DeReKo%3A%20A%20primordial%20sample%20for%20linguistic%20research&amp;rft.btitle=Proceedings%20of%20the%207th%20conference%20on%20International%20Language%20Resources%20and%20Evaluation%20(LREC%202010).&amp;rft.place=Valletta%2C%20Malta&amp;rft.publisher=European%20Language%20Resources%20Association%20(ELRA)&amp;rft.aufirst=Marc&amp;rft.aulast=Kupietz&amp;rft.au=Marc%20Kupietz&amp;rft.au=Cyril%20Belica&amp;rft.au=Holger%20Keibel&amp;rft.au=Andreas%20Witt&amp;rft.date=2010&amp;rft.pages=1848-1854&amp;rft.spage=1848&amp;rft.epage=1854'></span>
+  </p>
+</section>
+
+<section>
+  <h4><%= loc 'recentToolPub' %></h4>
+
+  <p class="bibentry">Kupietz, Marc/Diewald, Nils/Margaretha, Eliza/Bodmer, Franck/Stallkamp, Helge/Harders, Peter (2020): <cite>Recherche in Social-Media-Korpora mit KorAP</cite><br />In: Marx, Konstanze/Lobin, Henning/Schmidt, Axel (Hrsg.), Deutsch in Sozialen Medien. Interaktiv, multimodal, vielfältig, Jahrbuch des Instituts für Deutsche Sprache 2019. de Gruyter, Berlin/Boston, pp. 373–378.
+    <span class='Z3988' title='url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=proceeding&amp;rft.atitle=Recherche%20in%20Social-Media-Korpora%20mit%20KorAP&amp;rft.btitle=Deutsch%20in%20Sozialen%20Medien.%20Interaktiv%2C%20multimodal%2C%20vielf%C3%A4ltig&amp;rft.place=Berlin%2FBoston&amp;rft.publisher=de%20Gruyter&amp;rft.series=Jahrbuch%20des%20Instituts%20f%C3%BCr%20Deutsche%20Sprache%202019&amp;rft.aufirst=Marc&amp;rft.aulast=Kupietz&amp;rft.au=Marc%20Kupietz&amp;rft.au=Nils%20Diewald&amp;rft.au=Eliza%20Margaretha&amp;rft.au=Franck%20Bodmer&amp;rft.au=Helge%20Stallkamp&amp;rft.au=Peter%20Harders&amp;rft.date=2020&amp;rft.pages=373-378&amp;rft.spage=373&amp;rft.epage=378'></span>
+  </p>
+  
+  <p class="bibentry">Diewald, Nils/Hanl, Michael/Margaretha, Eliza/Bingel, Joachim/Kupietz, Marc/Bański, Piotr/Witt, Andreas (2016): <cite>KorAP architecture - Diving in the Deep Sea of Corpus Data</cite><br />In: Proceedings of the Tenth International Conference on Language Resources and Evaluation (LREC 2016). European Language Resources Association (ELRA), May 23th–28th 2016, Portorož, Slovenia, pp. 3586–3591.
+    <span class='Z3988' title='url_ver=Z39.88-2004&amp;ctx_ver=Z39.88-2004&amp;rfr_id=info%3Asid%2Fzotero.org%3A2&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&amp;rft.genre=proceeding&amp;rft.atitle=KorAP%20architecture%20-%20Diving%20in%20the%20Deep%20Sea%20of%20Corpus%20Data&amp;rft.btitle=Proceedings%20of%20the%20Tenth%20International%20Conference%20on%20Language%20Resources%20and%20Evaluation%20(LREC%202016)&amp;rft.place=Portoro%C5%BE%2C%20Slovenia&amp;rft.aufirst=Nils&amp;rft.aulast=Diewald&amp;rft.au=Nils%20Diewald&amp;rft.au=Michael%20Hanl&amp;rft.au=Eliza%20Margaretha&amp;rft.au=Joachim%20Bingel&amp;rft.au=Marc%20Kupietz&amp;rft.au=Piotr%20Ba%C5%84ski&amp;rft.au=Andreas%20Witt&amp;rft.date=2016&amp;rft.pages=3586-3591&amp;rft.spage=3586&amp;rft.epage=3591'></span>
+  </p>
+</section>