メタデータと Frontmatter 再考
akabekobeko opened this issue · 5 comments
akabekobeko commented
#76 と関連 PR にてメタデータ処理を実装したが、以下の課題により扱いを再考したい。
- VFM の設定は Frontmatter、
VFM
/stringify
関数オプション、CLI オプションの 3 種類ある- これらの優先度と関係性について整理したい
- Frontmatter だけで定義するのが理想ではないか?
- Vivliostyle 開発者会議 May 2021 で挙げられた意見
- 外部オプションではなく Markdown 文書そのものに動作と設定を定義するほうが管理面でも好ましいのではないか?
- VFM は単一の Markdown を扱うのだから Frontmatter と重複するオプションを増やしても複雑化するだけ
- VFM CLI と
VFM
関数がどれぐらい使われているのか?という疑問もある
- vivliostyle-cli として
stringify
関数のオプションは必要- なにが必要かを知りたい
- vivliostyle-cli は複数 Markdown を横断的に扱うので、個々の文書設定より優先的されるオプションだけが必要なはず
- Frontmatter 読み込み関数の外部公開
- 主に vivliostyle-cli 用、Frontmatter の
title
とtheme
を独自に読み込んでいる処理を代替する - メタデータ以外 (
math
フラグなど) も含むためreadSettings
という感じの命名がよいか - VFM としてもメタデータと設定の読み込みにこれを利用したい
- 主に vivliostyle-cli 用、Frontmatter の
akabekobeko commented
akabekobeko commented
VFM 自身のテスト コード用に VFM
と stringify
関数のオプションは残したほうがいい。ただしオプションは VFM 自身の挙動に関するものへ留め、title
、style
、language
のようなコンテンツ系は廃止して Frontmatter に定義させるほうがよい。
コンテンツ系は VFM のプログラマブルなオプションではなく Markdown そのものに定義することを強制したほうが文書管理の面でも好ましいはず。挙動とデータは分けて考える。そして挙動をオプション or Frontmatter (の vfm
)、データは Markdown の Frontmatter のみとしたい。
akabekobeko commented
akabekobeko commented
VFM オプションのうち Frontmatter で被るものとコールバック関数を持つ replace
を除いて残った以下を vfm
で対応する。
partial
hardLineBreaks
disableFormatHtml
akabekobeko commented
#113 で対応、それを反映した 1.0.0-alpha.26 をリリースしたので本件は close する。