紙一重の積み重ね

35歳のエンジニアがなれる最高の自分を目指して、学んだことをこつこつ情報発信するブログです。

【はじめてのpandoc】WordからMarkDownへの変換と、MarkDownからWordへの変換を試してみた #pandoc #MarkDown

image

はじめに

最近、何でもかんでもMarkDownでメモする習慣が身につきました。仕事もプライベートも全部MarkDownになりました。個人的に2018年の大きな変化だと思います。

手元にMarkDownファイルが増えてきたため、さらに活用する幅広げたいと思い、pandocをインストールしてみました。

できるようになりたいこと

  • MarkDownでメモしたセミナー内容を、Wordで出力して報告書にしたい
    • MarkDownファイルのままでいいやんけ、、、と思わなくもないですが、業務参加したセミナー報告の場合は、Wordファイルのほうがちゃんと仕事してる感があるようです。
  • MarkDownで設計書を書きたい
    • もう、Excelで設計書書くのはやめたい。。。
    • 同じことを考えている人もいるようだ。

atuweb.net

pandocとは?

.mdのMarkDownファイルを、Wordの.docxや、PDFに変換することができるツールです。公式ページはこちら。

Pandoc - About pandoc

日本語版のユーザーズガイドも用意されています。ただし、翻訳されたのが2014年なので注意が必要です。

Pandoc ユーザーズガイド 日本語版 - Japanese Pandoc User's Association

試した環境

  • Windows10 pro 64bit
  • pandoc 2.2.2.1

インストール方法

  • 以下から、.msiファイルをダウンロードします。
    • zipだとパスが通らないため、.msi形式のほうがおすすめです。

github.com

  • ダウンロードしたインストーラを起動してインストールします。

    • 同意するだけでOKです。 image
  • インストールが完了します。 image

【動作確認】MarkDown→Wordへの変換

MarkDownからWordへの変換を試してみます。 サンプルのMarkDownは、以下のQiita記事を参考にしました。

qiita.com

  • ローカルの任意のフォルダに、MarkDownファイルを配置します。
  • pandocコマンドを実行します。
> cd .\pandoc_test\
> pandoc .\sample.md -t docx -o sample.docx

見事にWordファイルに変換されました!すごい!!

image

  • --toc --highlight-style=zenburnをつけると、目次が付与されるようです。
> pandoc .\sample.md -t docx -o sample2.docx --toc --highlight-style=zenburn

image

【動作確認】WordからMarkDownへの変換

続いて、逆も行けるのかやってみます。 以下のQiitaの記事を参考にしてみましたが、raw_html,native_divs,native_spansを指定するとエラーになりました。

qiita.com

結局、フォーマットは指定せずにやってみたところ、成功しました。

> pandoc .\sample.docx -o sample.md

出力されたMarkDownファイルです。 オリジナルと比べると、Rubyのコード記述の部分が変わっていますが、内容は欠落していないように見えます。これもすごいですね。

A First Level Header
====================

A Second Level Header
---------------------

Now is the time for all good men to come to the aid of their country.
This is just a regular paragraph.

The quick brown fox jumped over the lazy dog's back.

### Header 3

> This is a blockquote.
>
> This is the second paragraph in the blockquote.

This is an H2 in a blockquote {#this-is-an-h2-in-a-blockquote .BlockText}
-----------------------------

Some of these words *are emphasized*. Some of these words *are
emphasized also*.

Use two asterisks for **strong emphasis**. Or, if you prefer, **use two
underscores instead**.

-   Candy.

-   Gum.

-   Booze.

1.  Red

2.  Green

3.  Blue

-   A list item.

<!-- -->

-   With multiple paragraphs.

<!-- -->

-   Another item in the list.

This is an [example link](http://example.com/).

`ruby  def hello   puts "Hello, world!" end \`

使ってみた感想

  • 想像以上に便利!!
  • 欠落する情報がない
    • 既存のWordファイルをMarkDownに変換して、様子を見たい
    • 書式をガシガシ使っていると、どうなるか気になる
  • MarkDownで設計書が作れそうな気がしてきた
    • JavaDocでAPI設計書を作るよりも楽。

おわりに

ということで、今回はpandocに関する記事を書きました。いやー、想像以上にきちんと変換してくれて、欠落する情報もなさそうでテンション上がりました。MarkDownファイルの資産の活用が捗りそうです!