MarkdownとAsciiDocを使ってみた
はじめに
文章を記述するための記法として、軽量マークアップ言語の利用が増えてきています。
元々は、仕様書やブログなどの記述を、簡単に若干メリハリをつけるために利用されることが主な用途でしたが、HTMLやPDFに書き出すことができるという特性を生かし、マニュアル制作に利用されるケースもチラホラ見られます。
今回は、軽量マークアップ言語の一種である「Markdown」と「AsciiDoc」をほんの少しですが使ってみましたので、それぞれの特長やメリット、デメリットを書いてみようと思います。
これから紙媒体から電子媒体の文書に移行したい、または紙媒体と電子媒体の両方で展開したいと考えられている方に、参考にしていただければ幸いです。
(ちなみに、私はこのようなプログラミング言語は超ド初心者です。)
軽量マークアップ言語とは?
マークアップ言語とは、テキストにタグを付けることで文書構造を意味付けするための言語です。
HTMLやXML、MarkdownやAsciiDocは、全て文章を記述するための記法であるマークアップ言語の一種です。
その中でも比較的文法が簡潔なMarkdownやAsciiDocは、「軽量マークアップ言語」に属します。
どのくらい簡潔か、比較してみると一目瞭然です。
記法については、検索するといろいろなサイトでチートシートなど紹介されているので、そちらをご参照いただければと思います。
環境構築
MarkdownやAsciiDocを記述するだけならWindowsに標準装備されている「メモ帳」でOKですが、それぞれの言語からHTMLやPDFに書き出すためにはツールが必要になります。
開発系の人ならそんな環境構築もちょっと調べたら簡単に理解できるかもしれませんが、開発系ではない私には、最初のうちは正直チンプンカンプンでした。
でも以下のエディターを使用することで解決できました。
Visual Studio Code
Microsoft社が提供している無償のコードエディターです。(略してVSCode)
VSCodeをインストールし、記述したい言語に適応した拡張機能を追加することで、HTMLやPDFに変換できるようになったり、楽に記述できるようになったりします。
実際に追加した拡張機能を一部ご紹介します。
- Markdown用拡張機能
- Markdown All in One
目次作成、見出し番号の追加などができる - Markdown Preview Enhanced
VSCodeでのプレビューをカスタマイズする - Markdown PDF
MarkdownからPDFやHTMLを作成する - vscode-pandoc
MarkdownファイルをWordファイルに変換する
- Markdown All in One
- AsciiDoc用拡張機能
- AsciiDoc
AsciiDocを記述し、リアルタイムでプレビューを見ることができる - Asciidoctor
AsciiDocからHTML、PDF、DocBookなどに変換する - Ruby
AsciiDocやAsciidoctorを使用するために必要な環境
- AsciiDoc
スタイルシート
HTMLやPDFを書き出すにはスタイルシートが必要です。
HTML | ||
Markdown | CSS | CSS |
AsciiDoc | CSS | YML |
Markdownの場合、HTMLに書き出すのもPDFに書き出すのも、CSSが使われます。PDFに書き出す際はいったんHTMLを経由するような仕組みのようです。そのため、PDFに表紙や目次、しおりを作成するには別途工夫が必要です。
AsciiDocの場合、HTMLにはCSS、PDFにはYMLという、出力に最適化したスタイルを適用します。AsciiDocでドキュメントタイトルや目次に関する記述をしておけば、自動的に表紙や目次、しおりのついたPDFが書き出されます。
MarkdownもAsciiDocも、何も指定しなければデフォルトのスタイルシートが充てられますが、カスタマイズしたオリジナルのスタイルシートを設定することが可能です。
Markdownのメリット、デメリット
メリット
- 可逆性がある
Pandocを使用することで、Markdown ⇔ HTML、Markdown ⇔ Word、といったことが可能です。
デメリット
- 複雑な表現ができない
Markdownの記法がとても簡潔なために、AsciiDocよりも表現力が劣ります。
例えば、表を作成することはできますが、表のセルを結合することはできません。
AsciiDocのメリット、デメリット
メリット
- 電子書籍に対応した形式に変換できる
DocBook、ePubといった電子書籍に対応した形式に変換することが可能です。 - Markdownに比べて表現力が高い
- 文章中の上付き文字や下線の設定
- 表のセルを結合
- 相互参照を設定
- 外部ファイルをインクルード
文書を分割して管理し、bookのように使用することができます。
- GitHubで編集履歴の管理ができる
デメリット
- 可逆性が無い
Pandocを使用してWord ⇒ AsciiDocは可能ですが、AsciiDoc ⇒ Wordはできませんでした。
Markdownに比べてできることが多い分、文書構造が少々複雑になっているためかと思われます。
まとめ
Markdownは特に文書構造が簡単なので、Blogのようなシンプルな文書を書くのに便利だと思います。
一方、AsciiDocはMarkdownに比べると少々複雑ではありますが、表現力が高いので、マニュアルや論文のような文書を書くのに便利だと思いました。
いずれにせよ、軽量マークアップ言語は記法が簡潔なので、よく使用する段落記号を覚えてしまえば楽に書くことができ、カスタマイズしたスタイルシートを使用すれば、誰が書いても統一されたレイアウトで書き出すことができるので便利です。
紙媒体からWebなどに移行したい、とお考えであれば、軽量マークアップ言語もご検討されてはいかがでしょうか?