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 | re.IGNORECASE) def split_content_by_language(content): blocks = {"sv": "", "en": ""} neutral_parts = [] pos = 0 matches = list(lang_block_re.finditer(content)) if not matches: return {"sv": content, "en": ""} for match in matches: start, end = match.span() lang, text = match.groups() neutral = content[pos:start] neutral_parts.append(neutral) blocks[lang.lower()] += text.strip() + "\n\n" pos = end # Innehåll efter sista språkblock neutral_parts.append(content[pos:]) # Lägg neutral text i båda tail = ''.join(neutral_parts) for l in blocks: blocks[l] = tail + blocks[l] 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(): if text.strip(): 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()) print(f"✔ Skrev {lang}/{filename}") else: print(f"⚠️ Skippade {lang}/{filename} (tom)")