Front matterをパースできるRubyのライブラリ。
---
title: Hello World
category: Greetings
---
Some actual content
というMarkdownがあった場合、
require 'front_matter_parser'
parsed = FrontMatterParser::Parser.parse_file('example.md')
parsed.front_matter #=> {'title' => 'Hello World', 'category' => 'Greetings'}
parsed.content #=> 'Some actual content'
とすると、このようにパースすることができる。
parsed['category'] #=> 'Greetings'
とすれば直接項目へアクセスすることもできる。
許容するクラスの指定
FrontMatterParserは内部でPsych.safe_loadを使用しており、デフォルトでは以下のクラスのオブジェクトしか変換しない。
- TrueClass
- FalseClass
- NilClass
- Numeric
- String
- Array
- Hash
このため、例えばTimeクラスやDateクラスを変換対象にしたい場合、
loader = FrontMatterParser::Loader::Yaml.new(allowlist_classes: [Time, Date])
parsed = FrontMatterParser::Parser.parse_file('example.md, loader: loader)
のようにallowlist_classes
を指定する必要がある。