はじめに
みなさん、こんにちは。昨今、「ドキュメントはMarkdownで書く!」というエンジニアさんも増えてきていると思いますが、依然として「Microsoft Word/Googleドキュメント至高主義!」という方も多いかと思います。
そんな私もMarkdownで管理しているドキュメントをWord形式に変換しなければいけない状況になったことが何度もありました。
とはいえ、Wordで書きなおしたくはありませんし、そもそもMarkdownではなく最初からWordを使うという選択肢もとりたくですよね…ということで、今回は5分くらいで迅速に(正しくは、とても雑に)GitHubにPushしたタイミングで自動的にdocxへ変換するようにGitHub Actionsを設定したので、そちらの紹介をしていきたいと思います。
GitHub Actionsワークフローを作ってみた
今回はとても雑に迅速にワークフローを作る必要があったため、Web GUI画面からポチポチとテンプレートを使って作成してみました。
GUI画面からワークフローを作る場合は、まずはGitHubの画面のActions
タブを選択し、New workflow
ボタンをクリックします。
今回はドキュメント形式を変換するコマンドを打つだけの単純処理、ということもありSimple Workflowのテンプレートベースで十分でしょう。次の画像のようにSimple WorkflowボックスのConfigure
ボタンをクリックします。
Configure
ボタンをクリックするとエディターが開くため、以下のサンプルコードを参考にワークフロー定義のコードを修正しましょう。
サンプルコードは、ルート直下に複数のMarkdownファイルが格納されていることを前提とし、変換後のファイル名はMarkdownファイル名の後ろに.docxを付与するだけといった単純仕様です。なお、変換ツールにはapt-getなどのパッケージマネージャーで簡単に入手できるpandoc
コマンドを採用しています。
# This is a basic workflow to help you get started with Actions
name: CI
# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the "main" branch
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- # Runs a single command using the runners shell
- - name: Run a one-line script
- run: echo Hello, world!
-
# Runs a set of commands using the runners shell
- name: Run a multi-line script
run: |
- echo Add other actions to build,
- echo test, and deploy your project.
+ sudo apt-get -y install pandoc
+ for x in `ls *.md`; do
+ pandoc ${x} -t docx -o ${x}.docx
+ done
+
+ - name: Upload docx files
+ uses: actions/upload-artifact@v4
+ with:
+ name: docx
+ path: ./*.docx
+
編集が終わったらCommit changes
ボタンをクリックし、ワークフロー定義をmainブランチにコミットしましょう。mainブランチにコミットするとワークフロー定義に従ってワークフローが実行されます。
ワークフローが正常に完了したら、次の例のようにArtifactとしてdocxファイル群がまとめられたdocx.zip
ファイルをダウンロードできるようになりましたとさ。めでたし、めでたし。
最後に
実際はArtifactの世代数など色々とルールを追加しないといけませんが、とりあえず雑に動かすまでなら5分くらいで持っていけると思います。ということで、Markdownで管理するドキュメントをdocxにサクッと変換するGitHub Actionsワークフローの紹介でした。
- GitHub は、GitHub Inc. の商標または登録商標です。
- その他、本資料に記述してある会社名、製品名は、各社の登録商品または商標です。