This commit is contained in:
		
							
								
								
									
										2
									
								
								.cargo/config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								.cargo/config
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | |||||||
|  | [net] | ||||||
|  | git-fetch-with-cli = true | ||||||
							
								
								
									
										13
									
								
								.gitea/workflows/action.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								.gitea/workflows/action.yml
									
									
									
									
									
										Normal 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
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | |||||||
|  | /target | ||||||
							
								
								
									
										1060
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										1060
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										9
									
								
								Cargo.toml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								Cargo.toml
									
									
									
									
									
										Normal 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
									
								
							
							
						
						
									
										85
									
								
								data/abgb.toml
									
									
									
									
									
										Normal 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
									
								
							
							
						
						
									
										27
									
								
								src/main.rs
									
									
									
									
									
										Normal 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); | ||||||
|  |     } | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user