-
-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor processMarkdown
and DocumentProcessorFactory
to support arbitrary unified processors
#541
Comments
Metadata (= Frontmatter) を変更するという使い道以外にも、Metadataの内容に応じて |
指定した あまり根本的でないが手っ取り早い代案として、 |
こちらは確認したところ確かにその通りで、タイトルを取得するなどの処理に使われていることを確認しました。 とはいえ、
という解決策が良いのではないかと思います。 |
breaking change を避けるために readMetadata の例外を握りつぶす方針で良いと思いました。ありがとうございます。 config/input でも VFM の readMetadata を利用していたりするので、本来は VFM の行っている「ソース原稿からHTMLへの変換」と「メタデータ抽出」という2つの機能をインターフェイス抽出して換装できるようにし、現行のVFMはその実装の一つ、とするのが理想ですかね… かなり大きな変更になってしまいますが。 |
ありがとうございます、例外を潰す方向で実装してみます。 メタデータ抽出もインターフェイスに切り出すのは、しっくりきました。VFMの |
cc: @Mura-Mi
#526 でunifiedプロセッサを注入できるようになりましたが、
processMarkdown
ではVFMのreadMetadata
を実行しており、指定したプロセッサとは関係なく一度remark-parseでパースしています。そのため、実際にはremark-parseでエラーが発生しないMarkdown記法しか組み込めません。Markdownは寛容なので大抵は不正確にパースされた上でmetadata
にでたらめな値が返るだけですが、正しく処理されない拡張Markdownも考えることはできます。デフォルトの
documentProcessor
から返されるプロセッサを、VFMを直接使用する形からreadMetadata
を行った後パースする実装に変更することで、processMarkdown
からreadMetadata
を取り除き、任意のunifiedプロセッサ・任意の文書形式を使用できるようになると考えています。DocumentProcessorFactory
の引数からもmetadata
は取り除かれます。たたき台案(参考:https://github.com/orgs/unifiedjs/discussions/113#discussioncomment-234473 )
DocumentProcessorFactory
の引数からmetadata
を取り除くデメリットとして、metadata
を変更してVFMプロセッサで使用するカスタムプロセッサは作成しづらくなります。しかし、メタデータの多くはhastに変換後もdocumentProcessor: (options) => defaultVFMFactory(options).use(/* metadata操作プラグイン */)
のような形で操作できるので問題は少ないと考えます。The text was updated successfully, but these errors were encountered: