vivliostyle / vfm

⬇️ Open and extendable Markdown syntax and toolchain.
https://vivliostyle.github.io/vfm/#/vfm
Other
71 stars 12 forks source link

remark-parse v9.0 support #45

Open akabekobeko opened 3 years ago

akabekobeko commented 3 years ago

44 対応のために remark-parse を v8.0.2 から v9.0.0 へ更新したら parser 変更により現状のプラグイン実装の互換が失われた。micromark 対応が必要となる。

動作しなくなったプラグインは作者への対応を呼びかけているようだ。対応済のプラグインについてコミット履歴を読めば VFM 修正の参考になるだろう。

MurakamiShinyu commented 3 years ago

s/remark-prase/remark-parse/ ?

akabekobeko commented 3 years ago

比較的、処理が小さくて VFM のように blockMethodsblockTokenizers を動的に拡張しているプラグインの移行例。

akabekobeko commented 3 years ago
akabekobeko commented 3 years ago

remark v13 の release notes で参考として挙げられた micromark/micromark-extension-footnote を利用するプラグイン。実装は大きいが前述の典型を満たし、かつ blockTokenizers などから移行しているので特に参考としてよさそう。

akabekobeko commented 3 years ago

以下の理由からいきなり VFM を変更するのではなく、remark 13 未満と以降のプラグイン開発を最小構成で開発して知見を得てから VFM に反映する。

とりあえず private でリポジトリーを作ったので、しばらくはそちらで開発してみる。

akabekobeko commented 3 years ago

remark 13 未満のほうは VFM の ruby あたりを移植する予定。VFM からこの構文だけ抜き出して remark プラグイン化、その MDAST がテストを通ることを確認してから remark 13 以降のほうへ更に移植する。単一リポジトリーで remark 13 移行を経験するよりも別れているほうが比較しやすいだろう、というのがその理由。

akabekobeko commented 3 years ago

調査用プロジェクトで現行の ruby 実装を remark-parse v9 以降で処理することに成功。以下、そのコミット。

実装は remark-breaks を参考にした。しかしコミット メッセージへ書いた課題を解決しないと VFM には反映できない。VFM v1.0 と並行して継続調査する。