hyogen-md

0.10.0

build

複数の Markdown ファイルを一括でレンダリングする SSG 向け API です。

import { build } from '@b4moss/hyogen-md'

シグネチャ

function build(options: BuildOptions): Promise<BuildResult>

オプション

type BuildOptions = RenderOptions & {
  input: string | string[]   // エントリパスまたは glob
  outDir: string             // 出力先(呼び出し側が書き込む)
  includeUnderscoreEntries?: boolean
  context?: HyogenContext
  serverContext?: HyogenContext
}
オプション説明
inputビルド対象。単一パス、配列、または glob パターン(picomatch / fast-glob 互換)
outDir出力ディレクトリのパス(ライブラリはファイルを書き込まない。戻り値の files を利用)
context全エントリに渡すテンプレート変数
serverContextサーバー専用のテンプレート変数
loader省略時は createNodeLoader()
includeUnderscoreEntries_ 始まりの partial をエントリに含めるか
preserveFrontMatter出力に front matter を残す
preserveHgComments出力に hyogen コメントを残す

戻り値

type BuildResult = {
  files: { path: string; markdown: string }[]
  warnings: HyogenWarning[]
}

files 配列にレンダリング結果が入ります。ディスクへの書き込みは呼び出し側の責任です。

依存の走査

既定では、指定したエントリから include / component / extend の依存を辿って関連ファイルを処理します。

_ partial の扱い

_ で始まるファイルや _ ディレクトリ配下は、エントリ対象外です(Sass の partial と同様)。ただし glob で明示的に指定したパスは、除外を上書きしてエントリに含められます。

const { files, warnings } = await build({
  input: './src/**/*.md',
  outDir: './out',
  context: { siteName: 'My Site' },
  serverContext: { buildTime: Date.now() },
})

for (const file of files) {
  await writeFile(join('./out', file.path), file.markdown)
}

関連