2012年1月23日月曜日

SmartDox 0.2

SmartDox 0.2をリリースしました。
PDF、プレインテキスト、HTML4の生成をサポートしました。また、GraphvizやDitaaを使った画像の生成と埋込みもできるようになりました。
エラー処理などがまだ柔らかいですが、ある程度使えるレベルのものになってきたと思います。

機能

SmartDox 0.2では以下のオプションを提供しました。
オプション機能
-html5HTML5生成(試験的)
-html4HTML4生成
-html3HTML3生成
-plainプレインテキスト生成
-pdfPDF生成
-latexLaTeX生成
-bloggerBlogger用のHTML生成
html4, html3, plain, pdf, latexはSmartDocのエンジンを使用しています。
html5とbloggerはSmartDoxで新規に開発を進めたものです。
html5は試験的な簡単な実装の段階です。
bloggerは、このブログでも使用しているBloggerでブログを書くときに使用するHTMLを生成します。生成したHTMLをBloggerのHTMLエディタに手動で貼り付けて使用します。前回のエントリから、このbloggerオプションを使用しています。
また、Dot言語(Graphviz)とDitaa言語で記述した画像を生成して、文書内に埋め込む機能をサポートしました。

インストール

プログラムの配布は、Scalaで最近注目されているconscriptを使っています。conscriptのインストール方法は以下のページに詳しいです。
Linux, Macであれば、以下のようにすればインストール完了です。
$ curl https://raw.github.com/n8han/conscript/master/setup.sh | sh
conscriptをインストールした後、以下のようにしてSmartDoxをインストールします。
$ cs asami/dox
以下の2つのコマンドがインストールされます。
dox
SmartDoxコマンド
sdoc
SmartDocコマンド(互換用)
依存プロダクト
SmartDoxでは、以下のプロダクトに依存しています。
プロダクト使用する機能
LaTeXPDF生成
GraphvizDot言語画像生成
DitaaDitaa言語画像生成
プロダクトに依存する機能を使わない場合は必要ありません。
LaTeX
platexコマンドとdvipdfmxコマンドが実行可能になっていれば基本的にはOKです。
Mac OS上でmacportsを使ってインストールしたLaTeXで動作確認しています。他の環境の場合、スタイルファイルなどがない可能性があります。
Graphviz
dotコマンドが実行可能になっていればOKです。
Mac OS上でmacportsを使ってインストールしたGraphvizで動作確認しています。
Ditaa
ditaaコマンドが実行可能になっているか、/opt/local/share/java/ditaa0_9.jarのJarファイルが存在していればOKです。
Mac OS上でmacportsを使ってDitaaをインストールすると、/opt/local/share/java/ditaa0_9.jarに配置されます。このditaa0_9.jarを決め打ちで使用しています。(いずれパラメタで指定可能にする予定です。)
それ以外の環境では、シェルスクリプトなどでditaaコマンド(インストールされているJarファイルを呼び出す)を作成してください。

使い方

まだマニュアルがないので、文書フォーマットは org-modeを参考にしてください。あまり難しい文法を使わなければ大体大丈夫だと思います。
org-mode形式で作成した文書から以下のようにしてHTMLやPDFに変換してください。
$ dox -html4 mydoc.dox
$ dox -pdf mydoc.dox

サンプル

SmartDox 0.2では以下のようなorg-mode文書が扱えます。
#+title: SmartDoxサンプル
#+author: 浅海
#+date: 2012年1月22日

* 文章

これは *SmartDox* の文章です。

- SmartDoxのコンセプトは(org-mode+html5)/2
- HTMLに加えてPDFやプレインテキストを生成することができます。
- GraphvizやDitaaの画像を生成して埋め込むことができます。

* 表

| オプション | 機能                 |
|------------+----------------------|
| -html5     | HTML5生成(試験的)    |
| -html4     | HTML4生成            |
| -html3     | HTML3生成            |
| -plain     | プレインテキスト生成 |
| -pdf       | PDF生成              |
| -latex     | LaTeX生成            |
| -blogger   | Blogger用のHTML生成  |

* 画像

** graphviz

[[http://www.graphviz.org/][Graphviz]] の図を直接書くことができます。

#+begin_dot images/dot_example.png -Tpng
digraph G {
  Hello->World
}
#+end_dot

** ditaa

[[http://ditaa.sourceforge.net/][Ditaa]] の図を直接書くことができます。

#+begin_ditaa images/ditaa_example.png
+--------+   +-------+    +-------+
|        | --+ ditaa +--> |       |
|  Text  |   +-------+    |diagram|
|Document|   |!magic!|    |       |
|     {d}|   |       |    |       |
+---+----+   +-------+    +-------+
    :                         ^
    |       Lots of work      |
    +-------------------------+
#+end_ditaa

「#+begin_dot images/dot_example.png -Tpng」で始まるところがGraphviz言語で記述した画像、「#+begin_ditaa images/ditaa_example.png」で始まるところがDitaa言語で記述した画像です。この記述から自動的に画像(png)を生成して文書に埋め込みます。

PDF

PDFの生成は以下のようにして行います。
$ dox -plain sample.dox
以下の3つのページから構成されるPDFが生成されます。




プレインテキスト 

プレインテキストの生成は以下のようにして行います。
$ dox -plain sample.dox
以下のプレインテキストが生成されます。


0 件のコメント:

コメントを投稿