Files
2026-10-18 16:21:54 +08:00

26 lines
1.2 KiB
Python

#!/usr/bin/env python3
"""Assemble only explicitly ordered manuscript sections into 09_outputs/article.md."""
from pathlib import Path
ROOT=Path(__file__).resolve().parents[1]
section_dir=ROOT/'07_manuscript/sections'
order=section_dir/'order.txt'
if not order.is_file(): raise SystemExit('Missing sections/order.txt')
names=[s.strip() for s in order.read_text(encoding='utf-8').splitlines()
if s.strip() and not s.lstrip().startswith('#')]
if not names:
print('No sections listed; edit 07_manuscript/sections/order.txt first.')
raise SystemExit(0)
parts=[]
for name in names:
if not name.endswith('.md') or Path(name).name != name:
raise SystemExit('Invalid section basename: '+name)
file=section_dir/name
if not file.is_file(): raise SystemExit('Missing ordered section: '+name)
parts.append(file.read_text(encoding='utf-8').strip())
out=ROOT/'09_outputs/article.md'
out.parent.mkdir(parents=True,exist_ok=True)
out.write_text('\n\n---\n\n'.join(parts)+'\n',encoding='utf-8')
print(f'Assembled {len(parts)} sections to {out.relative_to(ROOT)}')
print('NOTE: Source citations, factual assertions and submission formatting require manual review.')