markdown-pdfを自動実行し、pdfのプレビューを表示するボイラープレート
Markdownファイルを修正する度にmarkdown-pdfコマンドを実行するのが面倒なので、自動化できないかと考えました。
そこで、
- Markdownファイルを追加・修正した際に
markdown-pdfコマンドを自動で実行 - 生成されたpdfファイルを表示確認
- pdfファイルを直接開くと、
markdown-pdfコマンドがコケるので「pdf埋め込みページを表示」という形で現象を回避
- pdfファイルを直接開くと、
させることにしました。
Kamimai(紙舞)とは、昭和初期の民俗学者・藤沢衛彦の著書『妖怪画談全集 日本篇 上』に記述が見られる妖怪です。その特徴は、
- 神無月(10月)に現れる
- 紙がひとりでに1枚ずつ舞い飛ぶ
というものです。
紙がひとりでに舞うように、ドキュメントを自動的に生成するということでこの妖怪の名前を使用しました。
git clone <REPOSITORY_TEMPLATE_URL.git>でリポジトリのクローンを作成- リポジトリ名でディレクトリが作成されるので、ディレクトリ名をプロジェクト名に変更
git cloneするとリモートリポジトリがテンプレート元のパスのままなので、変更するgit remote rm origin <REPOSITORY_TEMPLATE_URL.git>で現在のリモートリポジトリを削除git remote add origin <REPOSITORY_PROJECT_URL.git>でプロジェクトのリモートリポジトリを追加
npm i -D(npm install --save-devのショートカット)で必要なプラグインを揃えるnpm startで初期設定を行うと、gulpも実行されます。browser-syncにより、既定のブラウザでページを表示します- 生成されたディレクトリ・ファイルは
npm run budayuで削除できます
- 生成されたディレクトリ・ファイルは
markdown-pdfにより、下記config.ymlのparam.srcに記述されたパスにある全てのMarkdownファイルを同ファイルのparam.distにPDFとして出力します。- ejs, scss, jsをコンパイルして
distディレクトリ以下にWebページを生成します。このWebページ内にPDFObjectでPDFを埋め込んで表示します。 - MarkdownファイルやMarkdown用のscssファイルを修正すると、自動で再変換を行います。これにより、表示を確認しながらPDf資料を作成できます。
- PDFが完成したら、
gulpのdefaultタスクを終了し、gulp malletとして最終結果をresultsディレクトリ以下に生成します。
src/md/scss/style.scssでem {float: right; }としているので、□を*□*というように囲ってあげると、チェックリストとして使用できます(munida.mdを参照)。
- yamlファイル
config.ymlcommons:sitename: サイト名。タイトルタグやヘッダのブランドなどに使われますdescription: 説明。タイトルタグの中で使いますyear: 年数。フッタのコピーライトで使いますauthor: 作者名。フッタのコピーライトで使います
param:src: 変換元のMarkdownファイルがあるパス- プロジェクトのルートディレクトリからの相対パスで記述
dist: 変換後のPDFファイルを出力するパス- プロジェクトのルートディレクトリからの相対パスで記述。
- 初期状態では存在しないパスの場合、予めnpm scriptsなどで生成しておくこと
- 2020/9/13 ver0.14.2
- npmパッケージをアップデート
gulp-notifyのnotify追加gulp-watchを廃止してgulp.watchに切り替え
- 2019/10/29 ver0.14.1
- npmパッケージをアップデート
- 2019/10/29 ver0.14.0
- Gulpタスクを4.x系の書き方に修正
- 2019/7/8 ver0.13.1
- Markdownに適用するScssを修正
- 2019/6/21 ver0.13.0
- npmパッケージをアップデート
- ファイルコピーの
npm scriptsをcopyfilesからcpxに変更 readm.emd修正
- 2019/2/8 ver0.12.0
npm scriptsを整理- gulpタスクを分割・整理
- gulpタスクの記述をより新しい構文に変更
- 2018/12/12 ver0.11.1
- gulpのバージョン指定方法を変更
- 2018/9/5 ver0.11.0
- 諸々の設定パラメータの記述を、jsonファイル
src/data/variables.jsonからyamlファイルsrc/config/config.ymlに変更。汎用データではなく、設定ファイルだけになったので格納ディレクトリ名も変更。
- 諸々の設定パラメータの記述を、jsonファイル
- 2018/9/5 ver0.10.0
- mdファイルを
src/data/pdfdata.jsonに列挙せずに、自動的にmdファイルを取得して処理するようにgulpfie.jsを修正
- mdファイルを
- 2018/8/20 ver0.9.5
gulpfie.js修正gulp mallet時のパスの誤り修正- mdに使用している画像が変更された場合も自動リロードが発火するように修正
- 2018/8/15 ver0.9.4
- scssを調整
- 2018/8/15 ver0.9.3
- Markdown用のスタイルシートをcssからscssに変更
- scssからcssを生成した後にMarkdownをPDF化するので、きちんとスタイルは反映されます
- Yaku Han JPをインポートするように改修
- Markdown用のスタイルシートをcssからscssに変更
- 2018/8/15 ver0.9.2
gulpのバージョンを4にアップデートgulpfile.jsをいろいろ修正
- チェックリスト用のcssがあることを追記。併せてサンプルmd内を整理
- 2018/8/15 ver0.9.1
- 最終出力
- コマンドを
gulp malletに変更 gulpfile.jsのパスが間違えていたので修正
- コマンドを
src/md/css/style.cssを書き換えたら自動リロードが走るようにgulpfile.jsを修正- サンプルmd内を少し整理
- 最終出力
- 2018/8/1 ver0.9.0
- 画像出力に対応(プロジェクトのルートディレクトリからの相対パスを書けば良い)
- 諸々整理
- 2018/8/1 ver0.7.0
npm run budayuで生成結果を削除するコマンドを実装
- 2018/8/1 ver0.6.0
inouタスクも完成
- 2018/8/1 ver0.5.0
defaultタスクは完成- cssを読み込むようにオプションを追加
- HTMLタグもパー啜るようにオプションを追加
- 2018/7/31 ver0.0.1
- まだ途中