Add an optional ownership-scoped Tectonic environment with secure installation, native compile verification, and topology-preserving repair support. Harden CircuitikZ generation and preview routing, fix the history drawer scroll model, and synchronize bilingual architecture, user guidance, and localized README documentation.
Slide export improvements across all 6 formats (HTML standalone, HTML
server-script, PDF, PNG, PPTX, MP4):
Cross-page split integrity:
- isTopLevelListItem now anchors to column 0 only, so indented nested
children (e.g. - Responsibility: under - Module:) stay attached to
their parent block instead of being orphaned as top-level items on the
next slide. Regression test added.
PDF/PNG Mermaid blank pages:
- Slidev one-piece export only waits on one shared #mermaid-rendering-container,
so late Mermaid blocks capture blank. Append --per-slide to PDF/PNG CLI
invocations so each slide gets its own Mermaid container-wait cycle.
Keep --wait-until networkidle --wait 3000 as belt-and-suspenders.
PDF p3 content went 0.00% -> 2.64%.
MP4 slide ordering:
- Replace shell glob (*.png, lexicographic: 1,10,11,...,2) with a
numerically-sorted concat-demuxer list fed to ffmpeg with explicit
per-frame durations. Slides encode in deck order regardless of
zero-padding width or --with-clicks suffix.
Image clarity setting (>=300 ppi default):
- Add slideExportImageClarity setting (standard/high/ultra, default ultra
= scale 3 ~432 ppi) wired into Slidev --scale on PNG export; MP4
inherits via PNG sequence. Settings UI dropdown in EN + ZH.
- Add -vf pad=ceil(iw/2)*2:ceil(ih/2)*2 to ffmpeg args so libx264/yuv420p
encodes odd-height frames (scale 3 -> 2940x1653 -> 1654 padded).
Windows spawn EINVAL on environment probe:
- execFileAsync sets shell:true + windowsHide:true on win32 only so Node
resolves PATHEXT for .cmd/.bat/.exe shims (npx.cmd, slidev.cmd, ffmpeg).
macOS/Linux keep direct exec (shell:false), unchanged.
- resolvePlaywrightBrowsersPath covers AppData/Roaming/ms-playwright and
PLAYWRIGHT_BROWSERS_PATH env var.
Mermaid pre-fit in standalone HTML:
- Inject mermaidPostFitScript into standalone HTML via main.ts export path.
- Add mermaidFitScript.ts, mermaidPostFitScript.txt, assets.d.ts.
- esbuild .txt loader, jest txt transform.
Tests: 1557 pass (1 pre-existing mainlineProgressAuditContract GEO drift
unrelated). tsc clean. Built main.js verified in live Obsidian.