2012年2月12日日曜日

SmartDox 0.2.2

SmartDox 0.2.2をリリースしました。

本バージョンはorg-modeの解析方法を改良しました。

機能

SmartDox 0.2.2では以下のオプションを提供しています。

オプション機能
-html5HTML5生成(試験的)
-html4HTML4生成
-html3HTML3生成
-plainプレインテキスト生成
-pdfPDF生成
-latexLaTeX生成
-bloggerBlogger用のHTML生成

基本的にSmartDox 0.2.1と同じです。org-modeの解析方法を改良しました。

インストール

プログラムの配布は、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生成
Graphviz画像生成
Ditaa画像生成

プロダクトに依存する機能を使わない場合は必要ありません。

LaTeX

platexコマンドとdvipdfmxコマンドが実行可能になっていれば基本的にはOKです。

Mac OS上でmacportsを使ってインストールしたLaTeXで動作確認しています。他の環境の場合、スタイルファイルなどがない可能性があります。

Graphviz

dotコマンドが実行可能になっていればOKです。

Mac OS上でmacportsを使ってインストールしたGraphvizで動作確認しています。

Ditaa

ditaaコマンドが実行可能になっているか、optlocalsharejavaditaa09.jarのJarファイルが存在していればOKです。

Mac OS上でmacportsを使ってDitaaをインストールすると、optlocalsharejavaditaa09.jarに配置されます。このditaa09.jarを決め打ちで使用しています。(いずれパラメタで指定可能にする予定です。)

それ以外の環境では、シェルスクリプトなどでditaaコマンド(インストールされているJarファイルを呼び出す)を作成してください。

使い方

まだマニュアルがないので、文書フォーマットは org-modeを参考にしてください。あまり難しい文法を使わなければ大体大丈夫だと思います。

org-mode形式で作成した文書から以下のようにしてHTMLやPDF、プレインテキストに変換してください。

$ dox -html4 mydoc.dox
$ dox -pdf mydoc.dox
$ dox -plain mydoc.dox

サンプル

SmartDoxでは以下のようなorg-mode文書が扱えます。

#+title: SmartDoxサンプル
#+author: 浅海
#+date: 2012年2月12日

* 文章

これは *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

** SimpleModeler

SimpleModelerを使ってCSVでクラス図を
書くことができます。

#+begin_sm_csv images/sm_csv_simplemodel.png
#actor
顧客
個人顧客,,,,,顧客
法人顧客,,,,,顧客
#resource
商品,商品名,,商品区分(第1類;第2類;第3類)
#event
購入する,,顧客;商品
#+end_sm_csv
PDF

PDFの生成は以下のようにして行います。PDFの生成時に画像の生成も自動的に行いPDF内に埋め込まれます。

$ dox -plain sample.dox

3ページのPDFが生成されます。2ページ目は以下のように表や図が記述されています。


1ページ目はタイトル、3ページ目はditaaとSimpleModeleの図です。



プレインテキスト

ブラウザでは崩れて見えますが、等幅フォントを使えば表やタイトル下の下線も正しくレイアウトされます。

SmartDoxサンプル
                           ━━━━━━━━

                            2012年2月12日
                                 浅海


目次
──

  1 文章
  2 表
  3 画像
    3.1 graphviz
    3.2 ditaa
    3.3 SimpleModeler


1 文章
───

  これは SmartDox の文章です。

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


2 表
──

┏━━━━━┯━━━━━━━━━━┓
┃オプション│        機能        ┃
┣━━━━━┿━━━━━━━━━━┫
┃-html5    │HTML5生成(試験的)   ┃
┠─────┼──────────┨
┃-html4    │HTML4生成           ┃
┠─────┼──────────┨
┃-html3    │HTML3生成           ┃
┠─────┼──────────┨
┃-plain    │プレインテキスト生成┃
┠─────┼──────────┨
┃-pdf      │PDF生成             ┃
┠─────┼──────────┨
┃-latex    │LaTeX生成           ┃
┠─────┼──────────┨
┃-blogger  │Blogger用のHTML生成 ┃
┗━━━━━┷━━━━━━━━━━┛


3 画像
───


3.1 graphviz
──────

  Graphviz<http://www.graphviz.org/> の図を直接書くことができます。
  <images/dot_example.png>


3.2 ditaa
─────

  Ditaa<http://ditaa.sourceforge.net/> の図を直接書くことができます。
  <images/ditaa_example.png>


3.3 SimpleModeler
─────────

  SimpleModelerを使ってCSVでクラス図を書くことができます。
  <images/sm_csv_simplemodel.png>

0 件のコメント:

コメントを投稿