import os import re SOURCE_DIR = "docs" OUTPUT_DIRS = { "sv": "docs_sv", "en": "docs_en" } lang_block_re = re.compile(r":::\s*(sv|en)\n(.*?)\n:::", re.DOTALL) def split_content_by_language(content): blocks = {"sv": "", "en": ""} pos = 0 for match in lang_block_re.finditer(content): start, end = match.span() lang, text = match.groups() neutral = content[pos:start] for l in blocks: blocks[l] += neutral blocks[lang] += text.strip() + "\n\n" pos = end tail = content[pos:] for l in blocks: blocks[l] += tail return blocks for filename in os.listdir(SOURCE_DIR): if filename.endswith(".md"): filepath = os.path.join(SOURCE_DIR, filename) with open(filepath, "r", encoding="utf-8") as f: content = f.read() blocks = split_content_by_language(content) for lang, text in blocks.items(): os.makedirs(OUTPUT_DIRS[lang], exist_ok=True) out_path = os.path.join(OUTPUT_DIRS[lang], filename) with open(out_path, "w", encoding="utf-8") as f: f.write(text.strip())