2021/4/10 時点の VFM 開発状況について解説します。
VFM の開発状況@akabekobekoCSS 組版 Vivliostyle ユーザーと開発者の集い 2021 春
View Slide
VFM 担当就任Vivliostyle 開発者会議 2020/12 で VFM 担当になりました!議事録https://github.com/vivliostyle/community/blob/master/slack-logs/meeting-log/2020/2020-12-05.md❝15:48 (JST) - akabeko: VFM 担当します開発再開メモhttps://github.com/vivliostyle/vfm/issues/42VFMの開発状況 2
remark 13担当就任にあたり、簡単そうな Issue へ対応してみようとしました。テーブルでルビを指定するとパイプ⽂字がセルの区切りにパースされるhttps://github.com/vivliostyle/vfm/issues/44そして Issue コメントに最新の remark で修正されたとあったのでnpm を更新してみたところ...最新の remark 13 で互換性に関する変更あり複数の remark プラグインが未対応で動かないという問題があることを知りました。VFMの開発状況 3
remark 13 の互換に関わる変更Markdown 処理エンジンを micromark へ刷新したとのこと。Release 13.0.0 (micromark)https://github.com/remarkjs/remark/releases/tag/13.0.0おなじみの tokenizerなどは廃⽌されました。remark 13 へ移⾏するためにはmicromark プラグインを実装して、その wrapper になる (推奨)remark の tokenizerなどには頼らず独⾃処理といった対応が必要となります。VFMの開発状況 4
VFM としてどうする?remark プロジェクトからプラグイン作者へ remark 13 移⾏が呼びかけられています。remark/plugins.mdhttps://github.com/remarkjs/remark/blob/main/doc/plugins.mdいくつか移⾏済みプラグインのコードを読んでみました。しかしmicromark 対応が厳しいためか remark 公式以外は独⾃処理が⼤半のようです。では VFM としてどうするか?検討した結果...VFM は独⾃処理でゆく予定です!VFMの開発状況 5
独⾃って?前提知識は以下の記事を参考にしてください。Remark で広げる Markdown の世界https://vivliostyle.github.io/vivliostyle_doc/ja/vivliostyle-user-group-vol2/spring-raining/index.htmlremark も Unified エコシステムの⼀部です。そのため remark の機能を利⽤せずとも Markdown から MDAST に基づくデータを⽣成できればよいのです。remark 13 対応プラグインは今後も利⽤しますが VFM 部分はremark 依存を避けて Unified/MDAST へ準拠します。VFMの開発状況 6
実験例remark 13 前後で VFM の 処理を実装してみた例。akabekobeko/examples-remark-plugin-oldhttps://github.com/akabekobeko/examples-remark-plugin-oldakabekobeko/examples-remark-plugin-micromarkhttps://github.com/akabekobeko/examples-remark-plugin-micromark後者で micromark を試しましたが、難物だったため独⾃処理 (素の Unified プラグイン) としています。VFMの開発状況 7
v1.0 と v2.0VFM は未だ alpha で v1.0 をリリースしていません。そのため開発者会議で remark 13 対応も含めた⽅針を議論しました。1. v1.0 で remark 13 も対応する2. v1.0 は現⾏ remark にして 13 対応は v2.0 へ⾒送り結果、案 2 を採⽤することになりました。v1.0 としては現⾏ remark の範囲、かつ v2.0 に控えているremark 13 移⾏を妨げないものに限定して対応します。VFMの開発状況 8
Milestone開発を担当するにあたり GitHub Issues に Milestone を設定しました。close されたものも含め、すべての Issue に v1.0.0 か v2.0.0が設定されています。v1.0.0 Milestonehttps://github.com/vivliostyle/vfm/milestone/2v2.0.0 Milestonehttps://github.com/vivliostyle/vfm/milestone/1詳細な現状はこれらを参考にしてください。VFMの開発状況 9
v1.0 リリースできれば 2021/4、遅くても 2021/5 にはリリースしたいと考えています。そのためにも...調査と開発にご協⼒くださいVFM の GitHub Issues は⽇本語も OK ですWorking Draft https://vivliostyle.github.io/vfm/#/vfm について意⾒をくださいv2.0 へ⾒送りとなる可能性もありますが、寄せられた Issue には必ず⽬を通して返信します。みなさま、どうかよろしくお願いします!!!VFMの開発状況 10
おわりに開発者会議で VFM 存続の是⾮について議論もありました。しかし私は以下の理由から VFM 開発に意義があると考えます。現代的な⽂書作成ツールとして Markdown は重要Vivliostyle として欲しい構⽂や機能を採⽤しやすいVivliostyle 周辺ツール (npm 群) と親和性が⾼い機能が⾜りなければ提案を。開発の速度が遅いと感じたら⼿を上げてください。参加してみたいけどハードル⾼そう...という意⾒も⼤歓迎です。⼀緒に改善してゆきましょう!!!VFMの開発状況 11
ご清聴、ありがとうございました!VFMの開発状況 12