pandocとサクラエディタで作る軽量文書作成環境

# 何をしたいのか
markdownで仕様書や説明書を書いて、Word形式で配布したい！
しかも **簡単に！！**

# やること
* コマンド一発で.docxに変換してくれる環境の構築
    * ただしWeb屋さんの知識が無いので、HTMLタグやCSSがんばるという手段は用いない。
* 軽量かつ余計なものの無い、markdown編集環境の構築

# 変換環境の構築
markdown編集ソフト選定は各自好みもあるし、環境にもよるので後述。まずは変換環境を構築する。

## 出力変換ソフトPandocの準備
様々なマークアップ言語で書かれた文書を任意の形式で吐き出せる **Pandoc** というソフトがある。
これを使用すればmarkdownで記述した文書をみんな大好き.docxに変換できるようになる。

Windows環境への導入と、docx出力については以下の記事が全てなので、詳細は割愛。

[Pandoc で Windows に作るmarkdown to html, docx 環境](http://qiita.com/tsujimitsu/items/907d7a2fae2057d0fb1f)
とりあえずWindowsに導入するにはこれを読みながらインストールを済ませればOK。

[実務に使うプレーンテキスト→Microsoft Word変換、あるいはPandocを使い始めた話](http://nenono.hatenablog.com/entry/2015/02/10/173516#fn-b99df209)
docxへの書き出しをまとめられています。これを読んでやってみればとりあえず所感が掴めるはず。

## reference.docx の作成
上述の参考ページで触れられているとおり、docxファイルは `reference.docx` というテンプレートファイルの **書式** に従って出力されます。
`--print-default-data-file reference.docx` 現在のテンプレートを取得できますがその内容は・・・
![Hello world](https://qiita-image-store.s3.amazonaws.com/0/89777/ebbc06fa-a7ec-be5c-e6c2-13c69237bb53.jpeg)

**Hello world.である。**

確かにスタイルを見ると標準のスタイル以外にpandoc用の物も見受けられるので、Wordマスターたちはここからお気に入りのスタイルを作成していくのでしょうが、素人にはムリです。
そこで一度適当なmarkdown文書を作成、出力してテンプレートを差し替える方法がおすすめです。

### テンプレートファイルの作成

以下のようなmarkdownファイルを作成します。

```markdown:sample.md
%Title
%Author
%Date
# h1
* TEST
    * TEST2

## h2

> TEST
> > TEST

### h3
1. TEST
2. TEST
3. TEST

#### h4
This is *TESTMESSAGE*.  
This is **TESTMESSAGE**.  
This is ***TESTMESSAGE***.  

##### h5
```

コマンド実行で以下のように引数を指定して、docxファイルを出力します。

```:コマンドプロンプト
C:\Program Files\Pandoc> pandoc sample.md -o sample.md.docx
```

以下のようなdocxが出来上がりますので、ホームからスタイルの一覧を表示して

![](https://qiita-image-store.s3.amazonaws.com/0/89777/32a6a09f-dc6d-4815-f412-999ac9d6db4e.jpeg)


編集したい箇所にカーソルがある状態でハイライトされる項目を、`変更(_M)` し、変更が完了したら `選択箇所と一致するようにhogeを更新する(_P)` を選択します。
![ダイアログメニュー](https://qiita-image-store.s3.amazonaws.com/0/89777/25265fd7-6a71-da76-2953-3c5a2cedd1ef.jpeg)

設定が終わったら任意の場所に保存します。
今回は後述のバッチファイルに合わせて、Pandocフォルダ内に `reference.docx` で保存します。

なお、docxファイルの細かい設定手順は省きますが、h1の設定に段落前で改頁する設定を入れたり、段落の分離を制御したりすると勝手にいい感じの文書になってくれます。フォントもこの文書で設定しておくと良いでしょう。

### 出力用バッチファイルの作成

毎回オプションをつけるのも面倒なので、docx出力用のバッチファイルを作成します。

```pandoc_docx.bat
@echo off
pandoc %1 --reference-docx="C:\Program Files\Pandoc\reference.docx" -o %1.docx
```

`--reference-docx=`でテンプレートのdocxを指定しています。保存場所に応じて読み替えて下さい。
あとは`C:\Program Files\Pandoc` へPathを通して、mdファイルのあるディレクトリで以下のようにコマンドを叩けば

```コマンドプロンプト
C:\sampleDir > pandoc_docx sample.md
```

同ディレクトリに `sample.md.docx`が生成されます。

# 軽いmarkdown編集環境の構築
## 要件
* 軽いのがいい。SublimeとかAtomとか論外。
* リアルタイムプレビューはいらないけど、ハイライトは欲しい
* 細かく色々いじりたい。日本語で。

## サクラエディタ でやる。
* 軽い
* ハイライトは正規表現キーワードとタイプ別設定で対応できる。
* 好きなようにカスタマイズできる。

## 設定
こちらを拝借して設定を行う。
[Customize/投稿/77 - SakuraEditorWiki](http://sakura.qp.land.to/?Customize%2F%C5%EA%B9%C6%2F77)

この設定手順はメモ書き程度。

* タイプ別設定にMarkdownを追加
* スクリーン
    * ファイル拡張子：md
    * 標準ルール：テキスト
    * TAB表示 ☑SPACEの挿入
* ウィンドウ
    * デフォルトの文字コード、文字コードを `UTF-8` に変更
* 正規表現キーワード
    * `markdown2.rkw` をインポート
* カラー
    * `Markdown2.col`をインポート。
    * 自分が見やすいように設定をいじる。

## サンプル
![](https://qiita-image-store.s3.amazonaws.com/0/89777/370003b8-e927-6831-00d9-9b63cc0e745d.jpeg)

* 正規表現の条件付けでシンタックスハイライトを実現しているので、たまにおかしくなるけど実用には十分。

## リアルタイムプレビューについて思う所
結局markdownを解釈するプラットフォームによって出力が微妙に異なるので、リアルタイムプレビューを見ながらしてがんばってmarkdownを書いても、githubやQiita、pandocに投げたらレイアウト崩れたりするのであんまり意味ないという結論に至った。
　この結論に至る経緯として、色々なmarkedownエディタを使ううちに、markdown記法に慣れたってのが一番大きい要素だと思うので、markdownになれるまではMicrosoftCodeやAtomなんかでリアルタイムプレビューを見ながらやるのが良いかもしれませんね。

# 一連のながれ

.md形式で新規ファイルを作って…
![](https://qiita-image-store.s3.amazonaws.com/0/89777/e8cef28d-bb08-687b-d07f-e565c31b35fe.jpeg)

sakuraでガシガシ書いて…
![](https://qiita-image-store.s3.amazonaws.com/0/89777/7301dc61-6cd9-ca44-ea3c-21337006c5dd.jpeg)

保存したらナビゲーションバーにcmdと入力して…
![](https://qiita-image-store.s3.amazonaws.com/0/89777/bb13222a-6e1f-dd10-b0c0-b220bd64da9a.jpeg)

**pandoc_docx!!**
![](https://qiita-image-store.s3.amazonaws.com/0/89777/74c2ba07-2900-6391-4e72-be551fe9d513.jpeg)

できました。
![](https://qiita-image-store.s3.amazonaws.com/0/89777/45fabcbe-b8d9-e4c5-f6c1-7c490d89b3dc.jpeg)

あとは煮るなり焼くなり。です。
![スクリーンショット_111416_071025_PM.jpg](https://qiita-image-store.s3.amazonaws.com/0/89777/7093d485-b9dd-db4f-d84a-5b9bbcb851a7.jpeg)

ラクチンです。サンキューpandoc!!