markdown 命令ファイル用のパースヘルパー。テンプレートから @file 参照と !`shell` ディレクティブを抽出し、YAML フロントマターをパースする (不正な YAML には寛容なフォールバックを備える)。
Members
(static, constant) FILE_REGEX
テンプレート中の @path ファイル参照 (単語文字またはバッククォートが直前にないもの) にマッチする。
(static, constant) FrontmatterError
markdown ファイルの YAML フロントマターがパースできない場合にスローされるエラー。
(static, constant) SHELL_REGEX
テンプレート中の !`command` shell ディレクティブにマッチする。
Methods
(static) fallbackSanitization(content) → {string}
より厳格なパーサーが読み取れるよう、ドキュメントの YAML フロントマターをサニタイズする。コメント、空行、インデントされた継続行、空・引用符付き・ブロックスカラーの値はそのまま残し、値にコロンを含む key: value ペアをブロックスカラー (key: |-) に変換することで、内部のコロンが YAML パースを壊さないようにする。
| Name | Type | Description |
|---|---|---|
content | string | ドキュメント全体のテキスト (フロントマターと本文)。 |
フロントマターがサニタイズされたドキュメント。フロントマターブロックが存在しない場合は元の内容を変更せずに返す。
- Type:
- string
(static) files(template) → {Array}
テンプレート中のすべての @path ファイル参照を検索する。
| Name | Type | Description |
|---|---|---|
template | string | 走査するテンプレートテキスト。 |
ファイル参照ごとに 1 つの、RegExp マッチオブジェクトの配列。
- Type:
- Array
(static) parse(filePath) → {Promise.<Object>}
markdown 命令ファイルを読み込んでパースし、そのフロントマターと本文を返す。まず厳格なパースを試み、不正な YAML フロントマターを持つファイルに対しては fallbackSanitization を通して再試行する。
| Name | Type | Description |
|---|---|---|
filePath | string | markdown ファイルへの絶対パス。 |
When the frontmatter cannot be parsed even after sanitization.
- Type
- FrontmatterError
パースされた gray-matter の結果 ({ data, content, ... })。
- Type:
- Promise.<Object>
(static) shell(template) → {Array}
テンプレート中のすべての !`command` shell ディレクティブを検索する。
| Name | Type | Description |
|---|---|---|
template | string | 走査するテンプレートテキスト。 |
shell ディレクティブごとに 1 つの、RegExp マッチオブジェクトの配列。
- Type:
- Array