yumenomatayume's blog

やる気を出す必要はない

【Marp】GitHub ActionsでMarkdownからプレゼン資料を自動的に作成する

Marpとは、markdownからpdfやpptx,htmlファイルを作成することができるツールです。 以下の記事で詳しく記載されています。

zenn.dev

「なぜこの記事を書いているのか?」

上記の記事をパクってに習ってMarpの設定を試したのですが、同じエラーにハマってしまったため別の方法で設定してみました。

具体的には、DockerでMarpを動かした時に、以下のエラーが発生してしましました。

github.com

ファイルパーミッションに問題がありそうなので、以下の権限に変更して試してみましたが解消されませんでした。

chmod -R 0777 doc/

なので、GitHub ActionsにNode.jsをセットアップしてnpxでmarpを実行する方法で代用しました。

設定方法

サンプルとして、以下のリポジトリに設定しています。

github.com

設定したことは大きく分けて3つです。

  1. プレゼン用のmarkdownファイルの用意
  2. GitHub Actionsのworkflowファイル作成
  3. GitHub ActionsのConfigファイル作成

プレゼン用のmarkdownファイルの用意

任意のディレクトリにプレゼンに使用するmarkdownファイルを配置します。 サンプルだとdoc/index.mdを配置しています。

GitHub Actionsのworkflowファイル作成

使用するworkflowのファイルは以下になります。

  • PDFが文字化けしないように必要なパッケージをインストール
  • Node.jsでmarpをインストール&実行

GitHub ActionsのConfigファイル作成

使用するconfigファイルは以下になります。

このconfigはactionsで使用するものとなっており、以下パラメータとなる部分を変数化したものです。

  • markdownが置かれているディレクトリの指定
  • 変換形式(pdf,pptx,html)
  • 言語設定(基本は日本語)

プレゼン用ファイルの自動生成

上記の設定が完了したら、リポジトリgit pushされた時にGitHub Actionsが実行されます。
リポジトリの「Actions」タブに移動して、該当のworkflowに移動するとArtifactsにプレゼン用のファイルが作成されています。

Reference

zenn.dev sicklylife.jp