Fix header detection.

This commit is contained in:
Sergey Vartanov 2021-12-14 09:12:38 +03:00
parent 6d80eb1812
commit b5a61b448b

View file

@ -20,6 +20,7 @@ EXTRACTOR: ShapeExtractor = ShapeExtractor(
) )
HEADER_PATTERN: re.Pattern = re.compile("==?=?.*==?=?") HEADER_PATTERN: re.Pattern = re.compile("==?=?.*==?=?")
HEADER_2_PATTERN: re.Pattern = re.compile("== .* ==")
HEADER_PATTERNS: list[re.Pattern] = [ HEADER_PATTERNS: list[re.Pattern] = [
re.compile("==\\s*See also\\s*=="), re.compile("==\\s*See also\\s*=="),
re.compile("==\\s*Example.*=="), re.compile("==\\s*Example.*=="),
@ -156,7 +157,7 @@ def generate_new_text(
end: int = -1 end: int = -1
for index, line in enumerate(lines): for index, line in enumerate(lines):
if HEADER_PATTERN.match(line): if HEADER_2_PATTERN.match(line):
if start is not None: if start is not None:
end = index end = index
break break
@ -165,7 +166,7 @@ def generate_new_text(
if start is not None: if start is not None:
return ( return (
"\n".join(lines[:end]) "\n".join(lines[: start + 2])
+ "\n=== [[Röntgen]] icons in [[Map Machine]] ===\n" + "\n=== [[Röntgen]] icons in [[Map Machine]] ===\n"
+ f"\n{wiki_text}\n" + f"\n{wiki_text}\n"
+ "\n".join(lines[end:]) + "\n".join(lines[end:])
@ -200,14 +201,17 @@ def generate_new_text(
if pattern.match(line): if pattern.match(line):
headers[i] = index headers[i] = index
filtered = filter(lambda x: x is not None, headers) filtered = list(filter(lambda x: x is not None, headers))
header: int
if filtered: if filtered:
header: int = filtered.__next__() header = filtered[0]
return ( else:
"\n".join(lines[:header]) lines += [""]
+ "\n== Rendering ==\n\n=== [[Röntgen]] icons in [[Map Machine]] " header = len(lines)
"===\n\n" + wiki_text + "\n" + "\n".join(lines[header:])
), icons
return None, [] return (
"\n".join(lines[:header])
+ "\n== Rendering ==\n\n=== [[Röntgen]] icons in [[Map Machine]] "
"===\n\n" + wiki_text + "\n" + "\n".join(lines[header:])
), icons