logo サブスレッド

GoogleDocsをなんとかしてmarkdownにしたい

6月になりました。
雨が増えたような、湿度があがってきたような。
エアコンの除湿が活躍しています。
kodaniです。

何が問題だったのか

議事録などで、GoogleDocsからMarkdownに変換したいということが少なからずあると思います。
最初のうちはGoogleDocsから1行ずつくらいでMarkdownにコピペしつつ、体裁を整えていました。
それからしばらくして、社内で「書式なしテキストとしてダウンロードするとmarkdownもどきになるよ」と言われて試しました。
正直革命だと思いました。インデントの空白が3つだったり、なぜかインデントを反映しない箇所があるとか、問題はありましたがそれでも嬉しかったです。
ここからが苦しい道の始まりでした。
そもそも「書式なしテキスト」です。Markdownもどきとはいえ、偶然にもそうなっていただけです。
ちなみにそれぞれキャプチャをそれぞれ撮影してみました。

  • GoogleDocs
  • ダウンロードした書式なしテキスト
  • 書式なしテキストをそのままMarkdownとしてレンダリングした一例

です。
これらの画像で問題になる点をまとめてみると、

  • 書式なしテキストではインデントが半角スペース3個になっている
  • GoogleDocsで設定した打ち消し線は、書式なしテキストでは再現されない
  • GoogleDocsで設定したリンクは、書式なしテキストでは再現されない 
  • 見出しと見出しの間に空行が挟まれていない
    • Markdownとしてレンダリングした一例のように、見出し自体がインデントされて表示される場合があります(Markdownの処理系によってインデントされない場合もありますが・・・)
    • ダウンロードしてきたテキストの時点でインデントが無くなっている箇所がある

という問題があったのです。(これらの問題は、Markdownとして正しくない表示に繋がります)
1行単位でしっかり確認してmarkdownに手直ししていかないと、GoogleDocsの内容と成果物のmarkdownの内容が違う問題に突き当たってしまいます。
確かに最初から手作業で移すよりマシなのですが、それでもかなりしんどい。
しかし、これ以上の改善策が見当たらないのでなんとか頑張って対応していました。

解決案

ある日、「そう言えばGoogleDocsはGoogle Apps Scriptを使えるんだから、自分でMarkdownに変換するスクリプトを書けばよいのでは」というアイデアが浮かびました。
早速作業に取り掛かろうとしましたが「大抵のアイデアはすでに誰かやっている」ということが多いので、念の為調査してみました。
すると

の2つのどちらかで対応できそうだったので、そのまま2つとも使ってみて調査しました。

解決案を試した結果

Docs to markdown

使い方

  • G Suite MarketplaceでDocs to Markdownをインストール
  • Markdownに変換したいGoogleDocsのドキュメントを開く
  • メニューの「アドオン」→「Docs to Markdown」→「Convert」と選択する
  • 右側に出てきたペインのボタンで「Markdown」を選択する
  • Markdownに整形されたテキストが出力される

使ってみた感想

  • GoogleDocsの中で別のペインにテキスト出力されるので、wikiにコピペするのが楽
  • gdocs2mdと比べてGoogleDocsの打ち消し線がmarkdownに反映されている
  • 段落分けの線が反映されている

gdocs2md

使い方

  • githubのリポジトリを開く
  • converttomarkdown.gappsを選択する
  • rawを選択する
  • スクリプトをコピーする
  • Markdownに変換したいGoogleDocsのドキュメントを開く
  • メニューの「ツール」→「スクリプトエディタ」と選択する
  • スクリプトエディタにコピーしたスクリプトをペーストする(元の内容は消す)
  • 再生ボタンを押してスクリプトを実行する
    • 初回実行では権限の確認が出ますが正常です

使ってみた感想

  • Google Docsの打ち消し線がmarkdownに反映されていない
  • 段落分けの線が反映されていない
  • スクリプトを使うためにはスクリプトエディタから操作する必要があり、メールで出力結果が送信されてくるので何度も変換するのが少し面倒
  • 1行ごとに空行が含まれている

という結果でした。

解決案を試した結論

gdocs2mdは書かれたのが古いこともあるのか、もう少し頑張ってほしかったです。
時間があれば手を加えてプルリクエストを送れたのですが・・・。
最終的に、手軽さと装飾の反映具合によりDocs to Markdownを採用しました。

注意

もちろん、これらを使ったからと行って成果物をノーチェックで提出していいわけではなく、自分の手でチェックも行います。
体裁のチェックが大分楽になるので、浮いたリソースは文章表現の確認などに回してクオリティアップを図っていきましょう💪

現在の位置:サブスレッド ホーム > 技術ブログ > GoogleDocsをなんとかしてmarkdownにしたい