Markdown でスライド作成

仕事でちょっとした作業があって、人力でやるのは辛いな~と思って考えていたら以下のツールのことを思い出した。 Markdown で書いた文章がそのままパワポ的なスライドになる。

そういうものがあるということは知っていたつもりだけど、実際に触ってみたら想像よりも良いものだった。 これは便利だね。

Word で資料制作

仕事での作業というのは、以下のような感じ。

  • Word で文章の一部に装飾(太字、下線、フォントサイズ)を加える必要があり、
  • 後からその適用範囲を変更したり追加したりする可能性がある。
  • 不定期でそのファイルに新たな文章が追加され、同様に装飾を加える。

その資料の果たすべき役割などを考えると Hugo か何かで HTML 化した方がいいだろうとは思いつつ、Word・A4 縦の資料と同じ体裁で HTML を出力させるには Hugo のテンプレートについて調査が必要だし、他に優先順位の高いタスクが複数あったので後回しになっていた。

Marp で省力化

今回、上記の Marp を導入して以下のフローで省力化することができた。

  • VS Code に Marp の拡張をインストールする
  • .md ファイルに文章を入力して、装飾したい箇所を Markdown の強調記法 **hoge**マークアップする
  • Marp で HTML としてエクスポートする
  • 出力された HTML をブラウザで開いて文章部分を選択、Word ファイルに貼り付け
  • HTML での装飾された見た目がほぼそのまま Word においても適用される
  • Word ファイルに貼り付けられたものを見ながら Marp の CSS を微調整する

一旦 CSS の調整が完了してしまえば、装飾箇所を変更することになっても VS Code 上で .md ファイルを編集 → エクスポート → コピペ 、で OK。Word 側での作業がゼロになった。

あとは .md ファイルの更新を検知して HTML 出力を自動でやってほしいので、Marp の CLI と Go で書かれたタスクランナー Task を組み合わせたらよさそうだと目論んでいる。どちらも Windows 用のバイナリがあった。

余談

ずっと前にも Python か何かで watchdog というモジュールでファイルの更新を検知するやつをやったことがあったよなぁ、と思って調べたら 10 年前だった。

今日は会社で少し残って Pythonスクリプトを書いていました。 テキストファイルを html にコンバートする仕組みがあって、これまではコンバートするプログラムを Windows のタスクスケジューラで毎分走らせるという力技でしのいでいましたが、ファイルの変更を検知して都度コンバートするように変更しました。これで無駄がなくなり、変更が即座に反映されることで少し快適になります。 Python の watchdog というモジュールで実現できました。

当時も仕事のタスクだったのか。全く覚えていないけれど我ながらよくやっていたな。。。