Slide 1

Slide 1 text

VFM の開発状況 @akabekobeko CSS 組版 Vivliostyle ユーザーと開発者の集い 2021 春

Slide 2

Slide 2 text

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/42 VFM の開発状況 2

Slide 3

Slide 3 text

remark 13 担当就任にあたり、 簡単そうな Issue へ対応してみようとしました。 テーブルでルビを指定するとパイプ⽂字がセルの区切りにパース される https://github.com/vivliostyle/vfm/issues/44 そして Issue コメントに最新の remark で修正されたとあったので npm を更新してみたところ... 最新の remark 13 で互換性に関する変更あり 複数の remark プラグインが未対応で動かない という問題があることを知りました。 VFM の開発状況 3

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

VFM としてどうする? remark プロジェクトからプラグイン作者へ remark 13 移⾏が呼び かけられています。 remark/plugins.md https://github.com/remarkjs/remark/blob/main/doc/plugins.md いくつか移⾏済みプラグインのコードを読んでみました。 しかし micromark 対応が厳しいためか remark 公式以外は独⾃処理が ⼤半のようです。 では VFM としてどうするか?検討した結果... VFM は独⾃処理でゆく予定です! VFM の開発状況 5

Slide 6

Slide 6 text

独⾃って? 前提知識は以下の記事を参考にしてください。 Remark で広げる Markdown の世界 https://vivliostyle.github.io/vivliostyle_doc/ja/vivliostyle- user-group-vol2/spring-raining/index.html remark も Unified エコシステムの⼀部です。 そのため remark の 機能を利⽤せずとも Markdown から MDAST に基づくデータを ⽣成できればよいのです。 remark 13 対応プラグインは今後も利⽤しますが VFM 部分は remark 依存を避けて Unified/MDAST へ準拠します。 VFM の開発状況 6

Slide 7

Slide 7 text

実験例 remark 13 前後で VFM の 処理を実装してみた例。 akabekobeko/examples-remark-plugin-old https://github.com/akabekobeko/examples-remark-plugin- old akabekobeko/examples-remark-plugin-micromark https://github.com/akabekobeko/examples-remark-plugin- micromark 後者で micromark を試しましたが、 難物だったため独⾃処理 (素 の Unified プラグイン) としています。 VFM の開発状況 7

Slide 8

Slide 8 text

v1.0 と v2.0 VFM は未だ 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

Slide 9

Slide 9 text

Milestone 開発を担当するにあたり GitHub Issues に Milestone を設定しま した。 close されたものも含め、 すべての Issue に v1.0.0 か v2.0.0 が設定されています。 v1.0.0 Milestone https://github.com/vivliostyle/vfm/milestone/2 v2.0.0 Milestone https://github.com/vivliostyle/vfm/milestone/1 詳細な現状はこれらを参考にしてください。 VFM の開発状況 9

Slide 10

Slide 10 text

v1.0 リリース できれば 2021/4、 遅くても 2021/5 にはリリースしたいと考えてい ます。 そのためにも... 調査と開発にご協⼒ください VFM の GitHub Issues は⽇本語も OK です Working Draft https://vivliostyle.github.io/vfm/#/vfm につ いて意⾒をください v2.0 へ⾒送りとなる可能性もありますが、 寄せられた Issue には必 ず⽬を通して返信します。 みなさま、 どうかよろしくお願いします! ! ! VFM の開発状況 10

Slide 11

Slide 11 text

おわりに 開発者会議で VFM 存続の是⾮について議論もありました。 しかし 私は以下の理由から VFM 開発に意義があると考えます。 現代的な⽂書作成ツールとして Markdown は重要 Vivliostyle として欲しい構⽂や機能を採⽤しやすい Vivliostyle 周辺ツール (npm 群) と親和性が⾼い 機能が⾜りなければ提案を。 開発の速度が遅いと感じたら⼿を上 げてください。 参加してみたいけどハードル⾼そう...という意⾒も⼤ 歓迎です。 ⼀緒に改善してゆきましょう! ! ! VFM の開発状況 11

Slide 12

Slide 12 text

  ご清聴、 ありがとうございました! VFM の開発状況 12