2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

株式会社日立製作所 クラウドエンジニアリングチームAdvent Calendar 2024

Day 22

Word形式でお願いします!と言われたのでMarkdownで管理するドキュメントをdocxにサクッと変換してみた

Last updated at Posted at 2024-12-23

はじめに

みなさん、こんにちは。昨今、「ドキュメントはMarkdownで書く!」というエンジニアさんも増えてきていると思いますが、依然として「Microsoft Word/Googleドキュメント至高主義!」という方も多いかと思います。

そんな私もMarkdownで管理しているドキュメントをWord形式に変換しなければいけない状況になったことが何度もありました。

とはいえ、Wordで書きなおしたくはありませんし、そもそもMarkdownではなく最初からWordを使うという選択肢もとりたくですよね…ということで、今回は5分くらいで迅速に(正しくは、とても雑に)GitHubにPushしたタイミングで自動的にdocxへ変換するようにGitHub Actionsを設定したので、そちらの紹介をしていきたいと思います。

GitHub Actionsワークフローを作ってみた

今回はとても雑に迅速にワークフローを作る必要があったため、Web GUI画面からポチポチとテンプレートを使って作成してみました。

GUI画面からワークフローを作る場合は、まずはGitHubの画面のActionsタブを選択し、New workflowボタンをクリックします。

image.png

今回はドキュメント形式を変換するコマンドを打つだけの単純処理、ということもありSimple Workflowのテンプレートベースで十分でしょう。次の画像のようにSimple WorkflowボックスのConfigureボタンをクリックします。

image.png

Configureボタンをクリックするとエディターが開くため、以下のサンプルコードを参考にワークフロー定義のコードを修正しましょう。

サンプルコードは、ルート直下に複数のMarkdownファイルが格納されていることを前提とし、変換後のファイル名はMarkdownファイル名の後ろに.docxを付与するだけといった単純仕様です。なお、変換ツールにはapt-getなどのパッケージマネージャーで簡単に入手できるpandocコマンドを採用しています。

~/.github/workflows/md2docx.yml
  # 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ファイルをダウンロードできるようになりましたとさ。めでたし、めでたし。

image.png

最後に

実際はArtifactの世代数など色々とルールを追加しないといけませんが、とりあえず雑に動かすまでなら5分くらいで持っていけると思います。ということで、Markdownで管理するドキュメントをdocxにサクッと変換するGitHub Actionsワークフローの紹介でした。


  • GitHub は、GitHub Inc. の商標または登録商標です。
  • その他、本資料に記述してある会社名、製品名は、各社の登録商品または商標です。
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?