読者です 読者をやめる 読者になる 読者になる

ドキュメントビューアを作ってみた

先日からマニュアル的なものを書いていこうと思って色々と考えたところ、結局手慰み的に作ってしまったというお話。内容的にはMarkdown形式のファイルを特定のディレクトリに放り込んでおく。プログラムにアクセスするとファイルを結合してHTMLとして表示してくれるという仕組み。

ローカルのApacheなんかに放り込んでおけば、適当なMarkdownのドキュメントを書き散らすだけで、それっぽくドキュメントに見えるといいなぁっと思う。

欲しかった機能

自分用のマニュアルを作って印刷したかったんだ。

Blosxomライクなファイルベースのドキュメント表示システム
Markdownに対応してほしい
・一枚のファイルに全部書くと疲れるので、ファイルを分割したい
・でも複数のMarkdownファイルは自動的に一つに結合してほしい
・印刷する際は一つのMarkdownファイル単位にページ割り振りしてほしい
・もしかすると今後はMarkdown以外の形式も扱うかもしれない
・画像も表示できるようにしてほしい

一番イメージに近かったのはBlosxomというPerlベースのミニマムなブログシステム。これは適当なディレクトリにファイルを放り込むだけでブログの記事として扱ってくれるというすぐれもの。当初はこれを改修しようと思ったけど、若干面倒くさくて放置。PHP版のBlosxomもいつの間にか見つからなくなってたし。

次はコマンドラインで使うMarkdown変換プログラムを準備しようと思ったけど、一々コマンド打つのが面倒くさくて終了。

Webベースで進めると、ドキュメントの一覧だったり、目次だったり、個別の画面だったりを作らなくちゃいけなくて段々やることが増えてきて。

最終的には、全くまとまりのないプログラムを作ってしまった。こうなるなら、始めっから何かのフレームワークに乗っかって作ってればよかった。という後の祭り。

使い道の想定

特定のディレクトリにファイルを置くだけで使えるようになるので、例えばローカルにApacheを立てて、その中で動かす。すると一々ファイルをアップロードしたりなんだりせずに、書いたMarkdownがHTMLの形になってちょっと便利かもしれない。

また、複数のファイルに分割しておけるので、ちょっとずつ書き足していくようなものには便利っぽい。

というより、今回のシステムでは前提として「印刷する」という目的があった。なので、はじめに印刷する際は全部一括して、以後修正版は修正のあったページのみ印刷できるようにってなイメージ。

作ったものとデモ環境

作成したプログラムはGithubで公開してみた。少しは使ってみようという殊勝な心がけ。
 https://github.com/atyks/php-simple-documents-viewer

また、デモ環境を以下のURLに準備してみた
 http://www.atyks.org/demo/php-simpe-documents-viewer/