mirror of
https://github.com/r-ca/md2pdf-meow.git
synced 2025-12-03 12:40:47 +00:00
2.7 KiB
2.7 KiB
md2pdf-meow 🐈
TypeScript ベースの Markdown → HTML → PDF 変換パイプラインです。ビルド時には日本語メッセージ付きのログを流しながら、Markdown の連結・DocToc の生成・テンプレート描画・アセットのインライン化・Puppeteer を使った PDF 生成を一括で実行します。
使い方
- 依存関係をインストール:
npm install - 変換を実行:
npm run builddocuments/files.txtに列挙された Markdown が連結され、dist/result.pdfとdist/all.htmlが生成されます。- Chrome / Chromium が見つからない場合はエラーで停止し、
PUPPETEER_EXECUTABLE_PATHの設定が案内されます。
技術メモ
- パイプライン全体は
tsx src/cli.tsで実行される TypeScript 製 CLI で、各工程ごとにINFO / SUCC / WARN / ERRORログを順番に出力します。 src/pipeline/renderMarkdown.tsとsrc/pipeline/renderTemplate.tsは 2SC1815J/md2pdf で提供されていたscripts/mdit.js/scripts/ejs.jsを MIT ライセンスの条件を保ったまま TypeScript へ移植し、プロジェクト内で利用できるようにしています。- 画像やスタイルシートは
html-inlineを通して HTML に埋め込み、オフラインでも崩れない成果物を出力します。 documents/配下の Markdown からは相対パスで画像を参照でき、ビルド時にwork/assets/へ自動コピーしたうえで HTML / PDF に反映します。外部 URL やデータ URI もそのまま扱えます。- PDF 生成は
puppeteer-html-pdfを使い、Chrome 不在時には明示的に検出するようになっています。
メタ情報のカスタマイズ
- テンプレート固有のタイトル・著者・発行日などは
documents/_meta.yaml(または_meta.yml)に記述します(存在しない場合はテンプレートのデフォルト値を使用)。 - 例:
title: md2pdf-meow サンプル author: ろむねこ published: 2024/07/01 description: モバイルオーダー用ドキュメント copyright: © 2024 rca frontCover: title: md2pdf-meow published: 2024/07/01 backCover: title: md2pdf-meow pubDate: 2024/07/01 copyright: rca frontCover/backCoverの各値は任意で、未指定時にはtitleやpublishedなどの共通値が利用されます。descriptionは<meta name="description">と表紙/奥付の本文に表示されます。長すぎる場合は YAML 側で適宜整形してください。