Upgrade to Pro — share decks privately, control downloads, hide ads and more …

vfm-dev-stat

akabeko
April 10, 2021

 vfm-dev-stat

2021/4/10 時点の VFM 開発状況について解説します。

akabeko

April 10, 2021
Tweet

More Decks by akabeko

Other Decks in Technology

Transcript

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

    View full-size slide

  2. 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

    View full-size slide

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

    View full-size slide

  4. 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

    View full-size slide

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

    View full-size slide

  6. 独⾃って?
    前提知識は以下の記事を参考にしてください。
    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

    View full-size slide

  7. 実験例
    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

    View full-size slide

  8. 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

    View full-size slide

  9. 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

    View full-size slide

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


    VFM
    の開発状況 10

    View full-size slide

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


    VFM
    の開発状況 11

    View full-size slide


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

    View full-size slide