Generalize documentation helpers

Change-Id: Iaba69a433f25d2160857694b0b434c51c02c0367
diff --git a/templates/de/doc/data/annotation.html.ep b/templates/de/doc/data/annotation.html.ep
index fc09157..9893a33 100644
--- a/templates/de/doc/data/annotation.html.ep
+++ b/templates/de/doc/data/annotation.html.ep
@@ -1,6 +1,6 @@
 % layout 'main', title => 'KorAP: Annotationen';
 
-<h2 id="tutorial-top">Annotationen</h2>
+%= page_title
 
 <p>KorAP bietet Zugriff auf mehrere Ebenen von Annotationen, die aus mehreren Ressourcen stammen, so genannten <em>foundries</em>.</p>
 
@@ -41,7 +41,7 @@
   <p>DeReKo Annotationen unterstützen die folgenden Layer für das <code>dereko</code> Präfix:</p>
   <dl>
     <dt><abbr data-type="token" title="Structure">s</abbr></dt>
-    <dd>Dokument Struktur, wie sie im <%= doc_ext_link_to 'I5 Textmodell', 'http://www1.ids-mannheim.de/kl/projekte/korpora/textmodell.html' %> definiert ist.</dd>
+    <dd>Dokument Struktur, wie sie im <%= ext_link_to 'I5 Textmodell', 'http://www1.ids-mannheim.de/kl/projekte/korpora/textmodell.html' %> definiert ist.</dd>
   </dl>
   %= doc_query poliqarp => 'startsWith(<dereko/s=s>, Fragestunde)', cutoff => 1
 </section>
@@ -54,7 +54,7 @@
     <dt><abbr data-type="token" title="Part-of-Speech">p</abbr></dt>
     <dd>Part-of-Speech-Informationen werden in Großbuchstaben geschrieben und basieren auf STTS</dd>
     <dt><abbr data-type="token" title="Constituency">c</abbr></dt>
-    <dd>Konstituenten Informationen folgen den Annotationen des <%= doc_ext_link_to 'negr@ Korpus', 'http://www.coli.uni-saarland.de/projects/sfb378/negra-corpus/negra-corpus.html' %>.</dd>
+    <dd>Konstituenten Informationen folgen den Annotationen des <%= ext_link_to 'negr@ Korpus', 'http://www.coli.uni-saarland.de/projects/sfb378/negra-corpus/negra-corpus.html' %>.</dd>
     <dt><abbr data-type="token" title="Named Entity">ne</abbr></dt>
     <dd>Enthält benannte Entitäten wie <code>I-PER</code>, <code>I-ORG</code> etc.</dd>
     <dt><abbr data-type="token" title="Named Entity">ne_hgc_175m_600</abbr></dt>
diff --git a/templates/de/doc/korap/kalamar.html.ep b/templates/de/doc/korap/kalamar.html.ep
index 93f34c5..52b7877 100644
--- a/templates/de/doc/korap/kalamar.html.ep
+++ b/templates/de/doc/korap/kalamar.html.ep
@@ -1,11 +1,11 @@
 % layout 'main', title => 'KorAP: Kalamar';
 
-<h2 id="tutorial-top">Kalamar</h2>
+%= page_title
 
 %= korap_overview 'kalamar'
 
 <p><strong>Hauptentwickler:</strong> Nils Diewald</p>
 
-<p>Kalamar ist das wichtigste User-Frontend von KorAP. Es basiert auf <%= doc_ext_link_to 'Mojolicious', "http://mojolicio.us/" %> und ist in Perl und JavaScript geschrieben.</p>
+<p>Kalamar ist das wichtigste User-Frontend von KorAP. Es basiert auf <%= ext_link_to 'Mojolicious', "http://mojolicio.us/" %> und ist in Perl und JavaScript geschrieben.</p>
 
-<p>Kalamar ist Open Source und steht unter <%= doc_ext_link_to 'GitHub', "https://github.com/KorAP/Kalamar"%> zur Verfügung.</p>
+<p>Kalamar ist Open Source und steht unter <%= ext_link_to 'GitHub', "https://github.com/KorAP/Kalamar"%> zur Verfügung.</p>
diff --git a/templates/de/doc/korap/karang.html.ep b/templates/de/doc/korap/karang.html.ep
index 345b417..f7fd2d3 100644
--- a/templates/de/doc/korap/karang.html.ep
+++ b/templates/de/doc/korap/karang.html.ep
@@ -1,6 +1,6 @@
 % layout 'main', title => 'KorAP: Karang';
 
-<h2 id="tutorial-top">Karang</h2>
+%= page_title
 
 %= korap_overview 'karang'
 
diff --git a/templates/de/doc/korap/koral.html.ep b/templates/de/doc/korap/koral.html.ep
index 5273106..861eb52 100644
--- a/templates/de/doc/korap/koral.html.ep
+++ b/templates/de/doc/korap/koral.html.ep
@@ -1,11 +1,11 @@
 % layout 'main', title => 'KorAP: Koral';
 
-<h2 id="tutorial-top">Koral</h2>
+%= page_title
 
 %= korap_overview 'koral'
 
 <p><strong>Hauptentwickler:</strong> Joachim Bingel</p>
 
-<p>Koral ist eine Bibliothek, die für die Übersetzung verschiedener Korpus-Abfragesprachen nach <%= doc_link_to('KoralQuery', 'api', 'koralquery')%> konzipiert ist. Derzeit unterstützte Abfragesprachen sind <%= doc_link_to 'Cosmas II', 'ql', 'cosmas2'%>, <%= doc_link_to('Annis QL', 'ql', 'annis')%>, <%= doc_link_to ( 'Poliqarp +', 'ql', 'poliqarp-plus')%> (eine erweiterte Version von Poliqarp) und <%= doc_link_to('CQL', 'ql', 'cql')%>.
+<p>Koral ist eine Bibliothek, die für die Übersetzung verschiedener Korpus-Abfragesprachen nach <%= embedded_link_to('KoralQuery', 'api', 'koralquery')%> konzipiert ist. Derzeit unterstützte Abfragesprachen sind <%= embedded_link_to 'Cosmas II', 'ql', 'cosmas2'%>, <%= embedded_link_to('Annis QL', 'ql', 'annis')%>, <%= embedded_link_to ( 'Poliqarp +', 'ql', 'poliqarp-plus')%> (eine erweiterte Version von Poliqarp) und <%= embedded_link_to('CQL', 'ql', 'cql')%>.
 
-<p>Koral ist Open Source und steht unter <%= doc_ext_link_to 'GitHub', "https://github.com/KorAP/Koral"%> zur Verfügung.</p>
+<p>Koral ist Open Source und steht unter <%= ext_link_to 'GitHub', "https://github.com/KorAP/Koral"%> zur Verfügung.</p>
diff --git a/templates/de/doc/korap/krill.html.ep b/templates/de/doc/korap/krill.html.ep
index ca497b4..64aab10 100644
--- a/templates/de/doc/korap/krill.html.ep
+++ b/templates/de/doc/korap/krill.html.ep
@@ -1,11 +1,11 @@
 % layout 'main', title => 'KorAP: Krill';
 
-<h2 id="tutorial-top">Krill</h2>
+%= page_title
 
 %= korap_overview 'krill'
 
 <p><strong>Hauptentwickler:</strong> Nils Diewald, Eliza Margaretha</p>
 
-<p>Krill ist eine <%= doc_ext_link_to 'Lucene', "https://lucene.apache.org/"%> basierte Suchmaschine für große kommentierte Korpora, die als Backend-Komponente für KorAP verwendet wird. Es ist die Referenzimplementierung für <%= doc_link_to('KoralQuery', 'api', 'koralquery')%>, die die meisten Protokolleigenschaften abdeckt.</p>
+<p>Krill ist eine <%= ext_link_to 'Lucene', "https://lucene.apache.org/"%> basierte Suchmaschine für große kommentierte Korpora, die als Backend-Komponente für KorAP verwendet wird. Es ist die Referenzimplementierung für <%= embedded_link_to('KoralQuery', 'api', 'koralquery')%>, die die meisten Protokolleigenschaften abdeckt.</p>
 
-<p>Krill ist Open Source und steht unter <%= doc_ext_link_to 'GitHub', "https://github.com/KorAP/Krill"%> zur Verfügung.</p>
+<p>Krill ist Open Source und steht unter <%= ext_link_to 'GitHub', "https://github.com/KorAP/Krill"%> zur Verfügung.</p>
diff --git a/templates/de/doc/korap/kustvakt.html.ep b/templates/de/doc/korap/kustvakt.html.ep
index ab60f33..4340101 100644
--- a/templates/de/doc/korap/kustvakt.html.ep
+++ b/templates/de/doc/korap/kustvakt.html.ep
@@ -1,6 +1,6 @@
 % layout 'main', title => 'KorAP: Kustvakt';
 
-<h2 id="tutorial-top">Kustvakt</h2>
+%= page_title
 
 %= korap_overview 'kustvakt'
 
diff --git a/templates/de/doc/ql/poliqarp-plus.html.ep b/templates/de/doc/ql/poliqarp-plus.html.ep
index 04fd507..9080f8e 100644
--- a/templates/de/doc/ql/poliqarp-plus.html.ep
+++ b/templates/de/doc/ql/poliqarp-plus.html.ep
@@ -1,6 +1,6 @@
 % layout 'main', title => 'KorAP: Poliqarp+';
 
-<h2 id="tutorial-top">Poliqarp+</h2>
+%= page_title
 
 <p>Die folgende Dokumentation präsentiert alle Funktionen, die unsere Version der Poliqarp Abfragesprache zur Verfügung stellt und enthält zusätzlich einige spezifische KorAP Erweiterungen.</p>
 
@@ -23,7 +23,7 @@
 
   <h4 id="regexp">Reguläre Ausdrücke</h4>
 
-  <p>Segmente können auch durch <%= doc_link_to 'Reguläre Ausdrücke', 'ql', 'regexp' %> abgefragt werden - indem das Segment mit doppelten Anführungszeichen umschlossen wird.</p>
+  <p>Segmente können auch durch <%= embedded_link_to 'Reguläre Ausdrücke', 'ql', 'regexp' %> abgefragt werden - indem das Segment mit doppelten Anführungszeichen umschlossen wird.</p>
 
   %= doc_query poliqarp => loc('Q_poliqarp_re', '** "r(u|a)n"'), cutoff => 1
 
@@ -72,12 +72,12 @@
 
   %= doc_query poliqarp => loc('Q_poliqarp_complexre', '** [orth="r(u|a)n"/xi]'), cutoff => 1
 
-  <p>Ein weiterer spezieller Schlüssel ist <code>base</code>, bezogen auf die Lemma-Annotation der <%= doc_link_to 'Standard-Foundry', 'data', 'annotation'%>.
+  <p>Ein weiterer spezieller Schlüssel ist <code>base</code>, bezogen auf die Lemma-Annotation der <%= embedded_link_to 'Standard-Foundry', 'data', 'annotation'%>.
     Die folgende Abfrage findet alle Vorkommen von Segmenten, die mit dem eingegebenen Lemma in der Standard-Foundry annotiert wurden.</p>
 
   %= doc_query poliqarp => loc('Q_poliqarp_complexlemma', '** [base=Tree]'), cutoff => 1
 
-  <p>Der dritte Sonderschlüssel ist <code>pos</code> und bezieht sich auf die Wortarten-Annotation der <%= doc_link_to 'Standard-Foundry', 'data', 'annotation'%>.
+  <p>Der dritte Sonderschlüssel ist <code>pos</code> und bezieht sich auf die Wortarten-Annotation der <%= embedded_link_to 'Standard-Foundry', 'data', 'annotation'%>.
     Die folgende Abfrage findet alle attributiven Adjektive:</p>
 
   %= doc_query poliqarp => loc('Q_poliqarp_complexpos', '** [pos=ADJA]'), cutoff => 1
@@ -99,7 +99,7 @@
 
   <blockquote class="warning">
     <p>Vorsicht: Negierte komplexe Segmente können nicht alleinstehend gesucht werden.
-      Allerdings funktionieren sie, wenn sie Teil einer <%= doc_link_to 'Sequenz', 'ql', 'poliqarp-plus#syntagmatic-operators-sequence'%> sind.</p>
+      Allerdings funktionieren sie, wenn sie Teil einer <%= embedded_link_to 'Sequenz', 'ql', 'poliqarp-plus#syntagmatic-operators-sequence'%> sind.</p>
   </blockquote>
 
   <h4 id="empty-segments">Leere Segmente</h4>
@@ -108,11 +108,11 @@
 
   %= doc_query poliqarp => '[]', cutoff => 1
 
-  <p>Leere Segmente sind nützlich, um Abstände von Wörtern auszudrücken, indem sie <%= doc_link_to 'Wiederholungen', 'ql', 'poliqarp-plus#syntagmatic-operators-repetitions' %> verwenden.</p>
+  <p>Leere Segmente sind nützlich, um Abstände von Wörtern auszudrücken, indem sie <%= embedded_link_to 'Wiederholungen', 'ql', 'poliqarp-plus#syntagmatic-operators-repetitions' %> verwenden.</p>
 
   <blockquote class="warning">
     <p>Vorsicht: Leere Segmente können nicht alleinstehend gesucht werden. 
-      Allerdings funktionieren sie, wenn sie Teil einer <%= doc_link_to 'Sequenz', 'ql', 'poliqarp-plus#syntagmatic-operators-sequence' %> sind.</p>
+      Allerdings funktionieren sie, wenn sie Teil einer <%= embedded_link_to 'Sequenz', 'ql', 'poliqarp-plus#syntagmatic-operators-sequence' %> sind.</p>
   </blockquote>
 </section>
 
@@ -193,7 +193,7 @@
 
   <h4 id="syntagmatic-operators-repetitions">Wiederholungen</h4>
 
-  <p>Wiederholungen in Poliqarp werden wie in <%= doc_link_to 'regulären Ausdrücken', 'ql', 'regexp'%> realisiert, indem Quantifizierer in geschweifte Klammern gesetzt werden.</p>
+  <p>Wiederholungen in Poliqarp werden wie in <%= embedded_link_to 'regulären Ausdrücken', 'ql', 'regexp'%> realisiert, indem Quantifizierer in geschweifte Klammern gesetzt werden.</p>
 
     <p>Um eine Sequenz von drei Vorkommen eines Wortes zu suchen, können Sie Ihre Abfrage auf eine der folgenden Arten formulieren - sie werden die selben Ergebnisse erhalten:</p>
 
@@ -234,7 +234,7 @@
     <p>Denken Sie daran, dass Optionalität auf unterschiedliche Arten <i>vererbt</i> sein kann, zum Beispiel wird eine ganze Abfrage optional, sobald ein Segment der Alternative optional ist.</p>
   </blockquote>
 
-  <p>Die Wiederholung kann auch verwendet werden, um Distanzen zwischen Segmenten auszudrücken, indem Sie <%= doc_link_to 'leere Segmente', 'ql', 'poliqarp-plus # leere Segmente'%> verwenden.</p>
+  <p>Die Wiederholung kann auch verwendet werden, um Distanzen zwischen Segmenten auszudrücken, indem Sie <%= embedded_link_to 'leere Segmente', 'ql', 'poliqarp-plus # leere Segmente'%> verwenden.</p>
 
   %= doc_query poliqarp => loc('Q_poliqarp_seqdistance1', '** [base=the][][base=Tree]'), cutoff => 1
   %= doc_query poliqarp => loc('Q_poliqarp_seqdistance2', '** [base=the][]{2}[base=Tree]'), cutoff => 1
@@ -249,7 +249,7 @@
     
   <h4>Positionen</h4>
 
-    <p>Sequenzen wie oben können in weiteren komplexen Abfragen verschachtelt und als Unterabfragen behandelt werden (siehe <%= doc_link_to 'Klassenoperatoren', 'ql', 'poliqarp-plus#class-operator' %>, um direkten Zugriff auf Unterabfragen zu erhalten).</p>
+    <p>Sequenzen wie oben können in weiteren komplexen Abfragen verschachtelt und als Unterabfragen behandelt werden (siehe <%= embedded_link_to 'Klassenoperatoren', 'ql', 'poliqarp-plus#class-operator' %>, um direkten Zugriff auf Unterabfragen zu erhalten).</p>
     
     <p>Positionsoperatoren vergleichen zwei Treffer von Unterabfragen und ergeben einen Treffer, falls eine bestimmte Bedingung bezüglich der Position von beiden wahr ist.</p>