blob: 1ba43438b924bc86b684064a7448037d6555fa57 [file] [log] [blame]
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +01001= ÄndGgner -- Programmbibliothek zur Konsolidierung von Änderungsgesetzen des Bundes und der Länder
2Matthias Andreas Benkard
3// Meta
4:experimental:
5:data-uri:
6:sectnums:
7:toc:
8:stem:
9:toclevels: 2
10:description: ÄndGgner Manual
11:keywords: mulk
12// Settings
13:icons: font
14:source-highlighter: pygments
15
16
17== Resources
18
19|===
20|Resource |Links
21
22|Public Artifact
23|https://bintray.com/mulk/maven/aendggner[Bintray]
24
25|Bug Tracker
26|MantisBT
27|===
28
29
30[[building]]
31== Building a JAR
32
Matthias Andreas Benkardc7f11362020-11-22 15:01:07 +010033To build an executable JAR at `target/aendggner-${REVISION}.jar`:
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +010034
35[source,shell script]
36----
37./mvnw package
38----
39
40`${REVISION}` defaults to `0.1.0-SNAPSHOT` unless you override it by
41passing the `-Drevision` flag to `mvnw`.
42
43
44== Running the Command Line Application
45
46To run the command line application after <<building,building>> it:
47
48[source,shell script]
49----
50./mvnw exec:java
51----
52
53
Matthias Andreas Benkard58e19982026-07-13 07:09:19 +020054[[usage]]
55== Usage
56
57ÄndGgner erzeugt aus einem Stammgesetz und einem Änderungsgesetz eine
58zweispaltige HTML-Synopse (alte Fassung links, neue rechts, Änderungen
59wortweise hervorgehoben).
60
61Eingaben:
62
63* Stammgesetz: XML im gii-norm-Format von
64 https://www.gesetze-im-internet.de/[gesetze-im-internet.de]
65* Änderungsgesetz: BGBl-PDF oder Klartext
66
67[source,shell script]
68----
69java -jar target/aendggner-0.1.0-SNAPSHOT.jar \
70 stammgesetz.xml aenderungsgesetz.pdf -o synopse.html
71----
72
73Wichtige Optionen:
74
75`-o, --output <file>`::
76 Ausgabedatei (Default `synopse.html`; `-` = Standardausgabe).
77`--vollstaendig`::
78 Auch unveränderte Normen in die Synopse aufnehmen.
79`--artikel <n>`::
80 Nur diesen Artikel des Änderungsgesetzes anwenden (Default: alle
81 Artikel, deren Einleitung das Stammgesetz nennt).
82`--extract-only`::
83 Nur den bereinigten Lineartext des Änderungsgesetzes ausgeben. Nützlich,
84 wenn die PDF-Extraktion fehlerhaft ist: Text prüfen, von Hand
85 korrigieren und als Klartextdatei wieder einspeisen.
86
87Erkannt werden die gebräuchlichsten Änderungsbefehle des Handbuchs der
88Rechtsförmlichkeit (Ersetzen, Neufassung, Einfügen, Anfügen, Aufheben,
Matthias Andreas Benkardebd5a7b2026-07-15 20:54:27 +020089Streichen, Umnummerierung) einschließlich zahlreicher Sonderformen:
90Bereichs- und Koordinationsziele („Die Absätze 8 und 9 werden durch die
91folgenden Absätze 8 bis 10 ersetzt“), strukturelle Streichungen ganzer
92Einheiten („§ 9 wird gestrichen“), §- und Gliederungs-Umnummerierungen
93(„§ 9a wird zu § 9“, Der bisherige Abschnitt 2 wird zu Abschnitt 3“),
Matthias Andreas Benkardb7e9f0f2026-07-16 21:12:08 +020094das Einfügen/Ersetzen ganzer §-Blöcke, Chapeau-Lokatoren („Im
95Satzteil vor Nummer 1 …“), Änderungen an Anhängen und Anlagen („Der
96Anhang wird wie folgt geändert: Nach Nummer 2 wird die folgende
97Nummer 2a eingefügt“), Angabe-Befehle auf die Inhaltsübersicht (gefasst,
98ersetzt, eingefügt, gestrichen sie werden auf die
99Inhaltsübersichts-Norm angewandt), das Einfügen und Ersetzen von
100Gliederungsberschriften („Nach § 33 werden die folgenden Überschriften
101zu Teil 3 eingefügt“), Voranstellungen, Mehrfach-Ersetzungs- und
102-Einfügepaare, Verbünde aus Umnummerierung und Folgeänderung („§ 50 wird
103zu § 38 und wird wie folgt geändert“) sowie die Neufassung der
104Gesetzesüberschrift. Die PDF-Aufbereitung toleriert dabei
105Drucksachen-Artefakte (Seitenköpfe und -füße, Vorabfassungs-Wasserzeichen,
106vertauschte oder gerade Anführungszeichen, verklebte Wortgrenzen) und
107bestimmt die Brotschrift seitenweise, sodass auch Ministeriumsentwürfe
108mit gemischten Layouts vollständig extrahiert werden. Auf den
109Beispieldaten werden damit alle Befehle der BGBl-Fassungen und der
110aktuellen Entwürfe angewandt (UWG/AGG/ProdHaftG: 0 manuell); was
111unsicher bleibt etwa Befehle gegen eine ältere Gesetzesfassung, deren
112Zieltext nicht mehr existiert landet mit Begründung im Abschnitt
113*Manuell prüfen* der Synopse und wird niemals stillschweigend verworfen.
Matthias Andreas Benkard58e19982026-07-13 07:09:19 +0200114
115
Matthias Andreas Benkardb291c362020-11-22 10:22:27 +0100116== Running the Tests
117
118To build and run the tests:
119
120[source,shell script]
121----
122./mvnw verify
123----