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 パースを壊さないようにする。

Parameters:
NameTypeDescription
contentstring

ドキュメント全体のテキスト (フロントマターと本文)。

Returns:

フロントマターがサニタイズされたドキュメント。フロントマターブロックが存在しない場合は元の内容を変更せずに返す。

Type: 
string

(static) files(template) → {Array}

テンプレート中のすべての @path ファイル参照を検索する。

Parameters:
NameTypeDescription
templatestring

走査するテンプレートテキスト。

Returns:

ファイル参照ごとに 1 つの、RegExp マッチオブジェクトの配列。

Type: 
Array

(static) parse(filePath) → {Promise.<Object>}

markdown 命令ファイルを読み込んでパースし、そのフロントマターと本文を返す。まず厳格なパースを試み、不正な YAML フロントマターを持つファイルに対しては fallbackSanitization を通して再試行する。

Parameters:
NameTypeDescription
filePathstring

markdown ファイルへの絶対パス。

Throws:

When the frontmatter cannot be parsed even after sanitization.

Type
FrontmatterError
Returns:

パースされた gray-matter の結果 ({ data, content, ... })。

Type: 
Promise.<Object>

(static) shell(template) → {Array}

テンプレート中のすべての !`command` shell ディレクティブを検索する。

Parameters:
NameTypeDescription
templatestring

走査するテンプレートテキスト。

Returns:

shell ディレクティブごとに 1 つの、RegExp マッチオブジェクトの配列。

Type: 
Array