2022-04-11から1日間の記事一覧

unified vfile

プロファイル: new VFile(arg? : (Options | string | buffer | VFile) ) : VFile 引数: arg: Options → 正規の引数 arg: (string | Buffer ) → arg := {value: arg} と再設定 arg:VFile → シャローコピーを返す。 arg: undefined → おそらくデフォルトのV…

unifiedエンジン

https://m-hiyama-memo.hatenablog.com/entry/2022/04/11/145718 の続き。https://github.com/unifiedjs/unified-engine より: import {engine} from 'unified-engine' import {remark} from 'remark' engine( { processor: remark, files: ['.'], extensio…

unifiedの体系

unifiedの分かりにくさ - (新) 檜山正幸のキマイラ飼育記 メモ編 の続き。unifiedフレームワークを整理する。 まず、テキストフォーマット=テキスト型=文字列型の部分集合型 がある。その例は、MD, HTML, JSON, TEXT など。 テキストフォーマットはファイ…

unifiedの利用

Tenjinの方針は“ありもの利用”だから、unifiedは使う。 いわゆる“unified plugin”はすべてそのまま利用したい。 remark-cli のようにコマンドラインから使いたい。 したがって、remark-cli と同じ作りにする必要がある。 設定ファイルもunifiedと共用できる…

unifiedのプラグイン事例と曖昧性

https://github.com/remarkjs/remark から: import {visit} from 'unist-util-visit' /** @type {import('unified').Plugin<[], import('mdast').Root>} */ function myRemarkPluginToIncreaseHeadings() { return (tree) => { visit(tree, (node) => { if …

unifiedの分かりにくさ

unifiedの分かりにくさは、プロセッサ〈プラグイン〉とドライバーの区別がハッキリせず、それらの役割が述べられてないことだろう。 プロセッサは何らかの文書処理をする。 プロセッサの入力と出力は前もって決められた〈仕様化〉された構造(mdast, hastな…

unifiedドライバー

プラグインをドライブするものはドライバーと呼ぼう。unifiedはドライバーだが、remarkやretextもドライバーになっている。ドライバーの使い方は、 driver() .use(pluginA) .use(pluginB, pluginPramForB) .freeze() .process(input) .then(writerCallback);…