SmartDox 0.3.0をリリースしました。
本バージョンでは細かい機能拡張を行なっています。内容についてはブログで紹介していく予定です。
機能
SmartDox 0.3.0では以下のオプションを提供しています。
オプション | 機能 |
---|---|
-html5 | HTML5生成(試験的) |
-html4 | HTML4生成 |
-html3 | HTML3生成 |
-plain | プレインテキスト生成 |
PDF生成 | |
-latex | LaTeX生成 |
-blogger | Blogger用のHTML生成 |
インストール
プログラムの配布は、Scala用のプログラム配布ツールconscriptを使っています。
conscriptをインストールした後、以下のようにしてSmartDoxをインストールします。
$ cs asami/dox
以下の2つのコマンドがインストールされます。
- dox
- SmartDoxコマンド
- sdoc
- SmartDocコマンド(互換用)
依存プロダクト
SmartDoxでは、以下のプロダクトに依存しています。
プロダクト | 使用する機能 |
---|---|
LaTeX | PDF生成 |
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
インストール(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)
すみません。設定が間違っていたようです。
返信削除修正しましたので、再度トライアルをお願いします。
再度実行してみましたが、同様のエラーが発生しました。
返信削除例外スタックトレースは省略せず載せました。
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)
すみません。こちらで発生していない現象なので時間がかかるかもしれませんが調べてみます。
返信削除手元の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付属のソースを比較したところ)。