initial push
Some checks failed
CI/CD Pipeline / test (push) Failing after 5s

This commit is contained in:
philipp 2024-02-16 12:13:24 +01:00
commit 5dcc5a6e8d
7 changed files with 1197 additions and 0 deletions

2
.cargo/config Normal file
View File

@ -0,0 +1,2 @@
[net]
git-fetch-with-cli = true

View File

@ -0,0 +1,13 @@
name: CI/CD Pipeline
on: push
jobs:
test:
runs-on: ubuntu-latest
container: git.hofer.link/ruderverein-donau-linz/rowing-ci:20240215
steps:
- uses: actions/checkout@v3
- name: Tests
run: cargo test --verbose

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
/target

1060
Cargo.lock generated Normal file

File diff suppressed because it is too large Load Diff

9
Cargo.toml Normal file
View File

@ -0,0 +1,9 @@
[package]
name = "a"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
risp = {git="ssh://git@git.hofer.link:2222/philipp/risp.git", version="0.1"}

85
data/abgb.toml Normal file
View File

@ -0,0 +1,85 @@
[law]
id = 10001622
[[law.classifiers]]
name = "Theil"
is_root = true
match_function = "containsCaseSensitive"
[[law.classifiers]]
name = "Abtheilung"
is_root = false
match_function = "contains"
[[law.classifiers]]
name = "Hauptstück"
is_root = false
match_function = "contains"
[[law.classifiers]]
name = "Abschnitt"
is_root = false
match_function = "contains"
[[law.classifiers]]
name = "letter"
is_root = false
match_function = "starts_with_letter"
[[law.classifiers]]
name = "roman numbering"
is_root = false
match_function = "starts_with_roman_number"
[[law.classifiers]]
name = "numbering"
is_root = false
match_function = "starts_with_number"
[[law.classifiers]]
name = "dash"
is_root = false
match_function = "starts_with_dash"
[parser]
remove_strings = [
"<tab />",
"<b>", "</b>",
"<i>", "</i>",
"<n>", "</n>",
"""<ueberschrift typ="g1" ct="text" halign="c">Zweyter Theil.</ueberschrift>""", # weird thing after § 858
]
[[parser.replace_rules]]
find = "Einleitung." # Should be at the same level as the other "Theil"e
replace_with = "Nullter Theil. Einleitung"
[[parser.replace_rules]]
find = "<gdash />"
replace_with = "-"
[[parser.replace_rules]]
find = """<ueberschrift typ="g1" ct="text" halign="c">Medizinische Behandlung</ueberschrift>"""
replace_with = """<ueberschrift typ="g1" ct="text" halign="c">- Medizinische Behandlung</ueberschrift>"""
[[parser.replace_rules]]
find = """<ueberschrift typ="g1min" ct="text" halign="c">Von den dinglichen Rechten.</ueberschrift>"""
replace_with = """<ueberschrift typ="g2" ct="text" halign="c">Von den dinglichen Rechten.</ueberschrift>"""
[[parser.replace_rules]]
find = """<ueberschrift typ="para" ct="text" halign="c">Erfordernisse zur Ersitzung:</ueberschrift>"""
replace_with = """<ueberschrift typ="g1" ct="text" halign="c">I. Erfordernisse zur Ersitzung:</ueberschrift>"""
# RIS uses multiple headers to get more attention...
[[parser.replace_rules]]
find = """<ueberschrift typ="g1" ct="text" halign="c">Zweyter Theil</ueberschrift><ueberschrift typ="g1" ct="text" halign="c">des</ueberschrift><ueberschrift typ="g1" ct="text" halign="c">bürgerlichen Gesetzbuches.</ueberschrift><ueberschrift typ="g1" ct="text" halign="c">Von dem Sachenrechte.</ueberschrift>"""
replace_with = """<ueberschrift typ="g1" ct="text" halign="c">Zweyter Theil des bürgerlichen Gesetzbuches: Von dem Sachenrechte.</ueberschrift>"""
[[parser.replace_rules]]
find = """<ueberschrift typ="g1" ct="text" halign="c">Erste Abtheilung</ueberschrift><ueberschrift typ="g2" ct="text" halign="c">des Sachenrechtes.</ueberschrift>"""
replace_with = """<ueberschrift typ="g1" ct="text" halign="c">Erste Abtheilung des Sachenrechtes.</ueberschrift>"""
[[parser.replace_rules]]
find = """<ueberschrift typ="g1" ct="text" halign="c">Dritter Theil</ueberschrift><ueberschrift typ="g1min" ct="text" halign="c">des</ueberschrift><ueberschrift typ="g1min" ct="text" halign="c">bürgerlichen Gesetzbuches.</ueberschrift><ueberschrift typ="g1" ct="text" halign="c">Von den gemeinschaftlichen Bestimmungen der Personen- und Sachenrechte.</ueberschrift>"""
replace_with = """<ueberschrift typ="g1" ct="text" halign="c">Dritter Theil des bürgerlichen Gesetzbuches.</ueberschrift><ueberschrift typ="g2" ct="text" halign="c">Von den gemeinschaftlichen Bestimmungen der Personen- und Sachenrechte.</ueberschrift>"""

27
src/main.rs Normal file
View File

@ -0,0 +1,27 @@
use risp::law::{Heading, HeadingContent, Law};
fn print_header(header: Heading, level: usize) {
let mut header_title = header.name.clone();
if let Some(desc) = header.desc {
header_title.push_str(&format!(" ({desc})"))
}
println!("{} {header_title}", " ".repeat(level));
match header.content {
HeadingContent::Paragraph(p) => {}
HeadingContent::Heading(subheaders) => {
for subheader in subheaders {
print_header(subheader, level + 1);
}
}
}
}
fn main() {
let law = Law::from_config("data/abgb.toml").unwrap();
for h in law.header {
print_header(h, 0);
}
}