Tech Stack
Dependencies carefully chosen for Windows Phone 8.1 compatibility — every one serving the platforms of that era.
Overview
| Purpose | Dependency | Version | Notes |
|---|---|---|---|
| Markdown parsing | MarkDig | 0.15.5 | The last version supporting Windows Phone 8.1 |
| Code highlighting | highlight.js | - | atom-one-min light / dark |
| Math formulas | KaTeX | 0.11.1 | Renders formulas |
| Diagrams | Mermaid | 7.x | Diagram support (Gantt charts unavailable for now) |
| Preview rendering | IE11 WebView | built-in | text-justify keeps text neatly justified |
| Input box | RichEditBox | built-in | Native WinRT rich-text control |
Why These Versions
Mark::Blocks targets Windows 8.1 / RT 8.1 / Phone 8.1, and this stack is chosen for compatibility:
- MarkDig 0.15.5: the last version that still reliably served Windows Phone 8.1; later versions gradually dropped old platforms.
- KaTeX 0.11.1: stable in the IE11 rendering environment, with correct formula typesetting.
- Mermaid 7: the last major version compatible with IE11; the Gantt component is unavailable in this combination.
- highlight.js atom-one-min: small and restrained, matching Metro’s flat aesthetics.
IE11 WebView and text-justify
The preview renders in an IE11 WebView. IE11’s text-justify implementation keeps long mixed Chinese/English text neatly justified — one of the key reasons Mark::Blocks chose the IE engine over other rendering paths.
Rich-Text Input
RichEditBox is the native WinRT rich-text control. Mark::Blocks uses it as the Markdown plain-text input box, leveraging its built-in Undo/Redo stack and text operations instead of reinventing the wheel.
Custom Rendering Layer
The front-end assets (highlight.js, KaTeX, Mermaid) are packaged locally with the app, so rendering works fully offline — in line with Metro’s self-contained, offline-first principle.