unifiedエンジン

https://m-hiyama-memo.hatenablog.com/entry/2022/04/11/145718 の続き。

https://github.com/unifiedjs/unified-engine より:

import {engine} from 'unified-engine'
import {remark} from 'remark'

engine(
  {
    processor: remark,
    files: ['.'],
    extensions: ['md', 'markdown', 'mkd', 'mkdn', 'mkdown'],
    pluginPrefix: 'remark',
    rcName: '.remarkrc',
    packageField: 'remarkConfig',
    ignoreName: '.remarkignore',
    color: true
  },
  done
)

function done(error) {
  if (error) throw error
}

コメント:

  1. engine は unified を使ってファイルに対する処理を実行する。
  2. processor: はむしろパーザー内蔵ドライバーを指定する。そうでないとファイルをパーズできない。JavaScriptオブジェクト(関数もオブジェクト)。unifiedの型システムでは Processor型。
  3. files: は処理対象のファイルを含むディレクトリ。文字列(path or glob)のリスト
  4. extensions: は処理対象の拡張子。文字列のリスト
  5. pluginPrefix: プラグイン名の接頭辞。文字列
  6. rcName: RCファイルの名前。文字列
  7. packageField: package.json のフィールド名。文字列
  8. ignoreName: 無視ファイルを記述したファイルの名前。文字列
  9. color: ANSI color sequencesを使うか? ブーリアン
  10. 第2引数のdoneはコールバック関数。関数

メモリ内部で動くプラグイン・プロセッサと外部ファイルを繋ぐのはunifiedエンジン。