コンテンツにスキップ

MDI

ルビ、縦中横、傍点、割注、縦書きを Rust で一度だけ解析し、HTML、PDF、EPUB、DOCX、text へ一貫して出力します。
novel.mdi
{雪女|ゆき.おんな}が現れたのは、第^12^話のことだった。
彼は[[em:決して]]忘れないと誓った。

一つの grammar、一つの実装

mdi-core が CommonMark、GFM、front matter、すべての MDI 構文を一回で versioned document IR にします。ほかの言語やツールに第二の parser はありません。 Rust を正とするアーキテクチャ

日本語組版を第一級に

ルビ、縦中横、傍点、割注、kern、page break、縦書きはすべて第一級の構文です。各構文に実例、解析済み IR、出力があります。 構文リファレンスライブショーケース を参照してください。

一つの source から五種類の出力

renderHtmlrenderTextFormat(小説家になろう・青空文庫を含む 5 形式)、renderEpubrenderDocx、Chromium による Rust PDF は、すべて現在実装済みです。 出力形式

薄く正直な言語インターフェース

Rust、Node.js、Swift、Kotlin、Python はすべて同じ Rust core を基盤にして現在利用できます。環境別の設定と API は Bindings を参照してください。

30 秒で試す

npm install --global @illusions-lab/mdi-cli
echo '{雪女|ゆき.おんな}が現れた。第^12^話のことである。' > novel.mdi
mdi build novel.mdi --to html
import { parse, renderHtml } from "@illusions-lab/mdi";
// またはコードから:
const source = "{雪女|ゆき.おんな}が現れた。第^12^話のことである。";
const { document, diagnostics } = parse(source); // versioned IR + diagnostics
const html = renderHtml(source);                 // <ruby>...<span class="mdi-tcy">12</span>...

PDF/EPUB/DOCX と export profile を含む手順は Getting Started にあります。

illusions が制作しています。