MCPcopy Create free account
hub / github.com/crisxuan/bestJavaer / clean_text

Function clean_text

scripts/postprocess_english_articles.py:23–65  ·  view source on GitHub ↗
(text: str)

Source from the content-addressed store, hash-verified

21
22
23def clean_text(text: str) -> str:
24 lines = text.splitlines()
25 out: list[str] = []
26 in_fence = False
27 fence_lang = ""
28 fence_lines: list[str] = []
29
30 def flush_fence() -> None:
31 nonlocal fence_lines
32 if fence_lang in TRANSLATABLE_FENCES and any(re.search(r"[\u4e00-\u9fff]", line) for line in fence_lines):
33 translated = translate_text("\n".join(fence_lines))
34 out.extend(translated.splitlines())
35 else:
36 out.extend(fence_lines)
37 fence_lines = []
38
39 for line in lines:
40 fence_match = re.match(r"^(```|~~~)\s*([A-Za-z0-9_-]*)", line)
41 if fence_match:
42 if in_fence:
43 flush_fence()
44 out.append(line)
45 in_fence = False
46 fence_lang = ""
47 else:
48 out.append(line)
49 in_fence = True
50 fence_lang = fence_match.group(2).lower()
51 continue
52
53 if in_fence:
54 fence_lines.append(line)
55 continue
56
57 cleaned = re.sub(r"^(\s*)::\s+", r"\1- ", line)
58 cleaned = re.sub(r"\s+\*\*$", "**", cleaned)
59 cleaned = cleaned.replace("Cordex", "Codex")
60 out.append(cleaned)
61
62 if in_fence:
63 flush_fence()
64
65 return "\n".join(out).rstrip() + "\n"
66
67
68def main() -> None:

Callers 1

mainFunction · 0.85

Calls 1

flush_fenceFunction · 0.70

Tested by

no test coverage detected