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文書が扱えます。

  1. #+title: SmartDoxサンプル  
  2. #+author: 浅海  
  3. #+date: 2012212日  
  4.   
  5. * 文章  
  6.   
  7. これは *SmartDox* の文章です。  
  8.   
  9. - SmartDoxのコンセプトは(org-mode+html5)/2  
  10. - HTMLに加えてPDFやプレインテキストを生成することができます。  
  11. - GraphvizやDitaaの画像を生成して埋め込むことができます。  
  12.   
  13. * 表  
  14.   
  15. | オプション | 機能                 |  
  16. |------------+----------------------|  
  17. | -html5     | HTML5生成(試験的)    |  
  18. | -html4     | HTML4生成            |  
  19. | -html3     | HTML3生成            |  
  20. | -plain     | プレインテキスト生成 |  
  21. | -pdf       | PDF生成              |  
  22. | -latex     | LaTeX生成            |  
  23. | -blogger   | Blogger用のHTML生成  |  
  24.   
  25. * 画像  
  26.   
  27. ** graphviz  
  28.   
  29. [[http://www.graphviz.org/][Graphviz]] の図を直接書くことができます。  
  30.   
  31. #+begin_dot images/dot_example.png -Tpng  
  32. digraph G {  
  33.   Hello->World  
  34. }  
  35. #+end_dot  
  36.   
  37. ** ditaa  
  38.   
  39. [[http://ditaa.sourceforge.net/][Ditaa]] の図を直接書くことができます。  
  40.   
  41. #+begin_ditaa images/ditaa_example.png  
  42. +--------+   +-------+    +-------+  
  43. |        | --+ ditaa +--> |       |  
  44. |  Text  |   +-------+    |diagram|  
  45. |Document|   |!magic!|    |       |  
  46. |     {d}|   |       |    |       |  
  47. +---+----+   +-------+    +-------+  
  48.     :                         ^  
  49.     |       Lots of work      |  
  50.     +-------------------------+  
  51. #+end_ditaa  
  52.   
  53. ** SimpleModeler  
  54.   
  55. SimpleModelerを使ってCSVでクラス図を  
  56. 書くことができます。  
  57.   
  58. #+begin_sm_csv images/sm_csv_simplemodel.png  
  59. #actor  
  60. 顧客  
  61. 個人顧客,,,,,顧客  
  62. 法人顧客,,,,,顧客  
  63. #resource  
  64. 商品,商品名,,商品区分(第1類;第2類;第3類)  
  65. #event  
  66. 購入する,,顧客;商品  
  67. #+end_sm_csv  
PDF

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

$ dox -plain sample.dox

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


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



プレインテキスト

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

  1. SmartDoxサンプル  
  2.                            ━━━━━━━━  
  3.   
  4.                             2012212日  
  5.                                  浅海  
  6.   
  7.   
  8. 目次  
  9. ──  
  10.   
  11.   1 文章  
  12.   2 表  
  13.   3 画像  
  14.     3.1 graphviz  
  15.     3.2 ditaa  
  16.     3.3 SimpleModeler  
  17.   
  18.   
  19. 1 文章  
  20. ───  
  21.   
  22.   これは SmartDox の文章です。  
  23.   
  24.     - SmartDoxのコンセプトは(org-mode+html5)/2  
  25.     - HTMLに加えてPDFやプレインテキストを生成することができます。  
  26.     - GraphvizやDitaaの画像を生成して埋め込むことができます。  
  27.   
  28.   
  29. 2 表  
  30. ──  
  31.   
  32. ┏━━━━━┯━━━━━━━━━━┓  
  33. ┃オプション│        機能        ┃  
  34. ┣━━━━━┿━━━━━━━━━━┫  
  35. ┃-html5    │HTML5生成(試験的)   ┃  
  36. ┠─────┼──────────┨  
  37. ┃-html4    │HTML4生成           ┃  
  38. ┠─────┼──────────┨  
  39. ┃-html3    │HTML3生成           ┃  
  40. ┠─────┼──────────┨  
  41. ┃-plain    │プレインテキスト生成┃  
  42. ┠─────┼──────────┨  
  43. ┃-pdf      │PDF生成             ┃  
  44. ┠─────┼──────────┨  
  45. ┃-latex    │LaTeX生成           ┃  
  46. ┠─────┼──────────┨  
  47. ┃-blogger  │Blogger用のHTML生成 ┃  
  48. ┗━━━━━┷━━━━━━━━━━┛  
  49.   
  50.   
  51. 3 画像  
  52. ───  
  53.   
  54.   
  55. 3.1 graphviz  
  56. ──────  
  57.   
  58.   Graphviz<http://www.graphviz.org/> の図を直接書くことができます。  
  59.   <images/dot_example.png>  
  60.   
  61.   
  62. 3.2 ditaa  
  63. ─────  
  64.   
  65.   Ditaa<http://ditaa.sourceforge.net/> の図を直接書くことができます。  
  66.   <images/ditaa_example.png>  
  67.   
  68.   
  69. 3.3 SimpleModeler  
  70. ─────────  
  71.   
  72.   SimpleModelerを使ってCSVでクラス図を書くことができます。  
  73.   <images/sm_csv_simplemodel.png>  

0 件のコメント:

コメントを投稿