Ein Nanoc-Filter für die juristische Vernetzungsfunktion von dejure.org.

Beschreibung

Das kostenlose juristische Informationsportal dejure.org bietet eine juristische Vernetzungsfunktion an, eine einfach gehaltene API, über die Zitate aus Gesetzen und Rechtsprechung automatisch mit einem Link auf die entsprechende Vorschrift oder den passenden Fundstellennachweis bei dejure.org versehen werden. Aus § 35 StVO wird so bspw. <a href="http://dejure.org/gesetze/StVO/35.html" title="&sect; 35 StVO: Sonderrechte">§ 35 StVO</a>.

Für eine ganze Reihe von Blogsystemem, Wikis, Foren und CMS werden schon fertige Plugins angeboten, die es ohne größeren Aufwand ermöglichen, diese Funktion in die eigenen Installation einzubinden.

nanoc-dejure ist ein Filter für den static site compiler Nanoc, der die entsprechenden Quelldateien an die Vernetzungsfunktion übermittelt und das Ergebnis wieder ausgibt. Er sollte als letzter (oder einer der letzten Filter) durchlaufen werden, weil er bereits eine weitgehend fertige HTML-Datei als Eingabe erwartet.

Grundlage der Entwicklung war die als Muster von dejure.org bereitgestellte Universelle PHP-Schnittstelle, die im Prinzip nur in Ruby reimplementiert wurde. Caching wird unterstützt. Wenn der Cache leer ist oder gerade geleert wurde, erhöht sich die Laufzeit von Nanoc allerdings spürbar.

Für das Programm stehen ein Git-Repository, in dem es zusammen mit anderen Erweiterungen für Nanoc enthalten ist, und ein Bugtracker zur Verfügung.

Einbindung und Parameter

Der Filter dejure.rb muss im Filter-Unterverzeichnis lib/filters/ Ihres Nanoc-Projekts gespeichert werden; üblicherweise genügt es dazu, die bereitgestellte .tar.gz-Datei im Verzeichnis Ihres Projekts zu entpacken. Das Verzeichnis _doc enthält eine englische Fassung dieser Erläuterungen und das Changelog; sie können es ohne Bedenken nach dem Entpacken löschen.

In der Konfigurationsdatei nanoc.yaml sollte auf jeden Fall der Parameter base_url gesetzt sein; wenn das der Fall ist, wird er als Anbieterkennzeichnung verwendet und an dejure.org übertragen. Dies soll nicht nur eine Kontaktaufnahme mit Ihnen möglich zu machen, sondern wird auch für ein serverseitiges Caching seitens des Anbieters verwendet.

Der Filter wird dann in einer Nanoc-Rules-Datei wie üblich in einer Compile-Regel eingebunden:

compile '*' do
  [...]
  filter :dejure
end

Wenn eine Quelldatei irgendwo den Text <!-- no-dejure --> enthält, wird der Filter auf sie nicht angewendet. Diese Funktion wird u.a. hier auf dieser Seite verwendet, damit die verwendeten Beispiele nicht plötzlich ebenfalls mit Links hinterlegt werden. Eine Webseite kann nur ganz von dem Filter ausgenommen werden oder gar nicht.

Zusätzlich können an den Filter verschiedene Parameter übergeben werden:

filter :dejure,
  format: 'weit',
  buzer: 1,
  noheadings: 0,
  target: '_blank',
  class: 'dejure'

Die Parameter haben folgende Bedeutungen:

format (weit oder schmal, Default: weit)
Beim schmalen Format wird nur die Paragraphennummer mit einem Link hinterlegt, beim standardmäßig eingestellten weiten Format hingegen möglichst der ganze Text: "§ 35 Abs. 1 StVO" oder "§ 35 Abs. 1 StVO".
buzer (0 oder 1, Default: 1)
Hat der Parameter den Wert 1, werden bei dejure.org nicht vorhandene Gesetze stattdessen mit einem Link zum juristischen Informationsdienst buzer.de versehen, der das gesamte deutsche Bundesrecht anbietet.
noheadings (0 oder 1, Default: 0)
Hat der Parameter den Wert 1, werden in Überschriften, also die HTML-Elemente <h1> bis <h9>, keine Links eingefügt.
target (Default: '')
Den erzeugten Links kann ein Linkziel (target-Attribut des <a>-Elements) hinzugefügt werden: <a href="..." target="_blank">
class (Default: '')
Den erzeugten Links kann eine CSS-Klasse (class-Attribut des <a>-Elements) hinzugefügt werden: <a href="..." class="dejure">
cache_days (Default: 7)
Gültigkeit des Caches in Tagen. Ältere Cache-Dateien werden gelöscht.

Der Cache nutzt das Verzeichnis tmp/dejure-org/ in ihrem Nanoc-Projekt.

Download

nanoc-dejure

Ein Nanoc-Filter für die juristische Vernetzungsfunktion von dejure.org.
Voraussetzungen
  • nanoc 4.8.1 (oder neuer)

Außerdem wird eine bestehende Internetverbindung benötigt.

Lizenz

Das hier vorgestellte Programm ist unter der sog. MIT License veröffentlicht:

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.