Document In HTML(DIH)は、
あらゆるドキュメントをHTML形式にて生成することを目的とする。
本項にて基本構想を説明する。
生成するドキュメントはHTML形式であるが、生成元たるファイルは用途ごとに以下のようになる。
用途 | ファイル形式 | 数量 |
---|---|---|
本文 | MarkDown(.mdファイル) | 生成する1つのHTMLファイルに対して1つのみ。 |
文章デザイン | CSS(.cssファイル) | 生成する1つのHTMLファイルに対して1つのみ。 または無し。 |
画像 | PNG(.drawio.pngファイル) SVG(.drawio.svgファイル) |
生成する1つのHTMLファイルに対して1つ以上。 または無し。 |
本文はMarkDown形式で記述する(デザインや文章構造によってはHTMLタグを用いることもある)。
文章デザインはCSS形式で記述する。
画像の描画はPNG形式を用いるが、より高度な図を描画したい場合はSVG形式を用いることもある。
これらのファイルを組み合わせて単一のHTMLファイルを生成する。
単一のHTMLファイルにするので、CSSファイルや画像ファイルはすべてHTMLファイルに埋め込む。
これにより、HTMLファイルのみでドキュメントを閲覧できるようになる。
HTMLファイルの生成は専用の変換スクリプトを用いて行う。
以下にHTMLファイルの生成過程を図解する。
図: img.2.img-1
本項にて開発環境を説明する。
Python3 がインストールされていることが前提となる。
それ以外は特に指定をしない。
推奨する開発環境は以下の通りである。
本項にてチュートリアルを示す。
本文のみのHTMLファイルを生成するチュートリアルである。
md2html.pyを任意の作業ディレクトリに配置する。
必要な外部ライブラリをインストールする。
以下のMarkdownファイルを作成する。
example.md
# チュートリアル
これはチュートリアルです。
スクリプトを用いてHTMLファイルを生成する。
$ python3 md2html.py --src-md-path example.md --dist-html-path example.html
これにてexample.htmlが生成される。
文章デザインを適用したHTMLファイルを生成するチュートリアルである。
md2html.pyを任意の作業ディレクトリに配置する。
必要な外部ライブラリをインストールする。
以下のMarkdownファイルを作成する。
example.md
# チュートリアル
これはチュートリアルです。
以下のCSSファイルを作成する。
example.css
h1 {
background-color: #64cadcff;
padding: 6px 2px;
}
スクリプトを用いてHTMLファイルを生成する。
$ python3 md2html.py --src-md-path example.md --src-css-path example.css --dist-html-path example.html
これにて文章デザインを適用が適用されたexample.htmlが生成される。
また、CSSファイルのデータがHTMLファイルに埋め込まれている。
画像を埋め込んだHTMLファイルを生成するチュートリアルである。
md2html.pyを任意の作業ディレクトリに配置する。
必要な外部ライブラリをインストールする。
以下のMarkdownファイルを作成する。
example.md
# チュートリアル
これはチュートリアルです。

Markdownの記法にて画像を埋め込む記述する。
以下の画像ファイルを配置する。
./images/img.1.img-1.drawio.png
画像ファイルの作成・編集はdraw.ioのツールを用いて行うものとする。
スクリプトを用いてHTMLファイルを生成する。
$ python3 md2html.py --src-md-path example.md --dist-html-path example.html
これにて画像が埋め込まれたexample.htmlが生成される。
また、画像ファイルのデータがHTMLファイルに埋め込まれている。
本項にてより高度な使い方について説明する。
本文中にインデントを用いることができる。
インデントはPython-MarkdwonのAdmonition拡張機能を用いる。
インデントのスタイルを記述するためのCSSファイルに以下の記述をする。
example.css
.indent {
padding-left: 20px; /* これにより右に字下げ */
border-left: 1px solid #eeeeee; /* 左側の線 */
}
本文中でインデントを用いる際は以下のように記述する。
example.md
# インデント
!!! indent ""
ここにインデントする文章を記述する。
この文章はインデントされない。
これにてインデントされた文章が生成される。
スクリプトは以下のようにして起動する。
$ python3 md2html.py --src-md-path _edit0_index.md --src-css-path edit0.css --dist-html-path index.html
引数名 | 必須 | 説明 |
---|---|---|
--src-md-path | ○ | 変換元のMarkdownファイルのパス |
--src-css-path | - | 変換元のCSSファイルのパス |
--dist-html-path | ○ | 変換先のHTMLファイルのパス |
スクリプトは以下の外部ライブラリを使用する。
スクリプト本文中の# 拡張機能を有効化の部分にて拡張機能のカスタマイズを行うことができる。
カスタマイズにあたってはPython-Markdown公式ドキュメントを参照すること。
本ドキュメントの生成元たるファイルの一式はここ。