基盤の部品と CSS、使う側の固有の部品と CSS の層と、当たる範囲
図・部品を、mdmark が持つ共通の定義と、使う側が足す固有の定義に分ける考え方。
| 層 | 持つもの | 足す場所 |
|---|---|---|
| 共通の定義 | フロー図・シーケンス図・グラフ・操作できる部品の部品と、色・文字・ライト / ダークの CSS 変数 | mdmark の配布物(dist/index.js・dist/index.css) |
| 固有の定義 | 使う側だけの部品と CSS | 使う側の拡張(registerExtension)と theme.css |
文書に書くのは、部品の定義(JSON)だけ。 描くのは共通の部品か固有の部品で、文書に書いた任意のスクリプトは動かさない。
共通の部品は、文書の印と、使う側の JavaScript・TypeScript の両方から使える。
文書の印は mount が描き、使う側のページと拡張のモジュールは、配布物が出す mountView などの関数で同じ部品を描く(部品をJavaScriptから使う)。
registerExtension で印と、その印を描くモジュールを足す。部品の定義は印の範囲に置いた json のコードブロックで、definition として渡る// @ts-check と JSDoc で書き、配布物の型定義に対して tsc --noEmit で点検する手順は 固有の部品とCSSを当てる。
固有の定義が当たる範囲は、設定ファイル mdmark.config.yaml の単位。
| 描き方 | 当たる文書 |
|---|---|
mount・render |
registerExtension を呼び、固有の CSS を読んだページの文書 |
mdmark export・mdmark build |
同じ設定の theme・extensions で書き出した文書 |
読んでいない場所の文書では、固有の部品の印は知らない印として取り除かれ、固有の CSS は当たらない。 共通の部品は、どこでも mdmark の既定の見た目で描かれる。