2012年12月7日金曜日

SmartDox 0.3.0

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

本バージョンでは細かい機能拡張を行なっています。内容についてはブログで紹介していく予定です。

機能

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

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

インストール

プログラムの配布は、Scala用のプログラム配布ツールconscriptを使っています。

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

5 件のコメント:

  1. インストール(cs asami/dox)時、およびdox実行時、次の例外が発生しました。
    環境は、Windows 7(64bit)/JDK7u9(64bit), conscript-0.4.1 です。

    java.lang.ClassCastException: org.goldenport.service.ShellCommandServiceCall can not be cast to java.lang.Comparable
    at java.util.concurrent.PriorityBlockingQueue.siftUpComparable(Unknown Source)
    at java.util.concurrent.PriorityBlockingQueue.offer(Unknown Source)
    at org.goldenport.service.GServiceCallQueue.enqueue(GServiceCallQueue.scala:17)

    返信削除
  2. すみません。設定が間違っていたようです。
    修正しましたので、再度トライアルをお願いします。

    返信削除
  3. 再度実行してみましたが、同様のエラーが発生しました。
    例外スタックトレースは省略せず載せました。

    C:\Users\toru>cs asami/dox
    Getting org.smartdox smartdoxprocessor_2.9.1 0.3.0a ...
    :: retrieving :: org.scala-sbt#boot-app
    confs: [default]
    33 artifacts copied, 0 already retrieved (37150kB/105ms)
    java.lang.ClassCastException: org.goldenport.service.ShellCommandServiceCall cannot be cast to java.lang.Comparable
    at java.util.concurrent.PriorityBlockingQueue.siftUpComparable(Unknown Source)
    at java.util.concurrent.PriorityBlockingQueue.offer(Unknown Source)
    at org.goldenport.service.GServiceCallQueue.enqueue(GServiceCallQueue.scala:17)
    at org.goldenport.session.SessionServiceCallEngine.addServiceCall(SessionServiceCallEngine.scala:18)
    at org.goldenport.session.SessionServiceCallEngine.execute(SessionServiceCallEngine.scala:34)Error during sbt execution: java.lang.ClassCastException: org.goldenport.service.ShellCommandServiceCall cannot be cast to java.lang.Comparable

    at org.goldenport.session.GSession.execute(GSession.scala:28)
    at org.goldenport.Goldenport.executeShellCommand(Goldenport.scala:254)
    at org.smartdox.processor.SmartDox.executeShellCommand(SmartDoxProcessor.scala:28)
    at org.smartdox.processor.AppMain.run(SmartDoxProcessor.scala:37)
    at org.smartdox.processor.AppMain.run(SmartDoxProcessor.scala:33)
    at xsbt.boot.Launch$.run(Launch.scala:54)
    at xsbt.boot.Launch$$anonfun$explicit$1.apply(Launch.scala:43)
    at xsbt.boot.Launch$.launch(Launch.scala:68)
    at xsbt.boot.Launch$.apply(Launch.scala:14)
    at xsbt.boot.Boot$.runImpl(Boot.scala:25)
    at xsbt.boot.Boot$.main(Boot.scala:15)
    at xsbt.boot.Boot.main(Boot.scala)

    返信削除
  4. すみません。こちらで発生していない現象なので時間がかかるかもしれませんが調べてみます。

    返信削除
    返信
    1. 手元のWindows XPマシンにJava SE 6u38をインストールしてPATHをJava SE 6側に指定してみたところ、上述の例外は発生せずインストールが終了しdoxコマンドも例外を吐かずに立ち上がりました。
      その後にJava SE 7u10をインストールしてPATHをJava SE 7側に指定してdoxコマンドを実行したところ、上述の例外が発生しました。

      現象的には、Javaのバージョンに依存があるようです。ただ、例外が起きたjava.lang.ComparableインタフェースはJava SE 6と7との間に差異はありませんでした(JDK付属のソースを比較したところ)。

      削除