Ruby・Anno・Nest・Math・Lint の5つの拡張を持つ Markdown 方言のライブラリ・ツールチェーン。
| 拡張 | 構文 | 説明 |
|---|---|---|
| Ruby | [漢字/かんじ] |
テキスト上に音韻注釈(振り仮名・ピンイン・転写など) |
| Anno | {用語/term} |
テキスト下に意味注釈(訳語・文法・分類・語間グロスなど) |
| Nest | --- / ;;; |
セクション明示クローズ(--- は HR あり、;;; は HR なし) |
| Math | $…$ / $$…$$ |
KaTeX 数式(内部の [/] {/} は Ruby/Anno と解釈しない) |
| Lint | — | 構文ミス・カタカナへのひらがなルビ・未注釈漢字などの警告 |
入力ファイルの拡張子は慣習的に .n.md を使う。
#![no_std] 対応パーサー。Event ストリームを生成し push_html() で HTML を出力する。
wasm-bindgen を使った WASM ビルド。render_markdown() を JS に公開する。
.n.md ファイルを読み込みスタンドアロン HTML ページを出力するバイナリ。
[ベース/よみ] の記法でテキスト上に注釈を付ける。
- 基本は漢字への振り仮名。片仮名・数字・記号には付けない
- Ruby は Anno の内部にも外にも書ける
- ベースが純粋カタカナでよみがひらがなの場合は Lint 警告
[私/わたし]は[漢字/かんじ][仮名/かな][交/ま]じりの[文/ぶん]を[書/か]く
多言語への応用(ピンイン・注音・転写など):
[我/wǒ][在/zài][学/xué][校/xiào][学/xué][习/xí][汉/hàn][语/yǔ]。
[我/ㄨㄛˇ][在/ㄗㄞˋ][學/ㄒㄩㄝˊ][校/ㄒㄧㄠˋ][學/ㄒㄩㄝˊ][習/ㄒㄧˊ][漢/ㄏㄢˋ][語/ㄩˇ]。
[𡨸/Chữ][喃/Nôm]はベトナム語の古い表記体系です。
{ベース/注釈} の記法でテキスト下に注釈を付ける。
{ベース/注釈1/注釈2} で複数段(多言語・多段グロス)も可。
Ruby との組み合わせ {[漢字/かんじ]/term} も使える。
{[微分/びぶん][係数/けいすう]/derivative}は{[接線/せっせん]/tangent}の傾きを表す
{カルボン[酸/さん]/carboxylic acid}は{[弱酸/じゃくさん]/weak acid}として{[電離/でんり]/ionize}しやすい
{[台湾/たいわん]/[台灣/Táiwān]}に行く
{トルストイ/Лев Николаевич Толстой}の小説を読む
{Firenze/Florence} と {Athens/Αθήνα} を訪れる
我明年想去{佛罗伦萨/Firenze/Florence}和{雅典/Αθήνα/Athens}旅行。
{[книга/kniga]/本}・{[φιλοσοφία/philosophía]/哲学}・{[नमस्ते/namaste]/こんにちは}
{[अहम्/aham]/1SG.NOM} {[ब्रह्म/brahma]/Brahman.NOM} {[अस्मि/asmi]/be.1SG}
{훈민정음/訓民正音}은 {세종대왕/世宗大王}이 창제한 문자입니다。
--- と ;;; でセクション階層を明示的に閉じる。
見出しレベル(# の数)がそのまま <section class="nm-sec level-N"> のネスト深さになる。
| 記号 | 動作 |
|---|---|
--- |
現在のセクションを閉じ、<hr> を描画する |
;;; |
現在のセクションを閉じる(HR なし) |
# H1
## H2
内容
--- ← H2 を閉じて HR → H1 に戻る
## H2-2
### H3
;;; ← HR なしで H3 を閉じ → H2-2 に戻る$…$ でインライン数式、$$…$$ で別行立て数式。
数式区間内の [/] {/} は Ruby・Anno として解釈しない。
$E = mc^2$
$$\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}$$
パーサーが構文ミスや非推奨パターンを Parser::warnings に収集する。
CLI は黄色で stderr に出力。Web プレイグラウンドはアンバー色の警告ボックスに表示。
| 警告 | 条件 |
|---|---|
| Possibly malformed ruby syntax | [ に対応 ] がない、またはネストが壊れている |
| Possibly malformed anno syntax | { に対応 } がない |
Unclosed $ / $$ |
数式が閉じられていない |
| Anno looks like Ruby | {漢字/かな} — Anno のつもりが Ruby 記法に見える |
| Katakana base + hiragana reading | [インド/いんど] — カタカナはすでに表音文字 |
| Kanji without ruby | ルビのない漢字がテキストに含まれる |
| Undefined footnote ref | [^id] の定義がない |
| Unused footnote def | [^id]: … が参照されていない |
| Card link: non-HTTP URL | @[card](ftp://…) など |
| Card link: unknown type | @[embed](…) など未対応タイプ |