テキストドックレット

for VisualWorks 7.8 / 7.7 / 7.6 with Jun793

プログラムをWebページに仕立て上げる…

ソースコード(プログラム)などをHTML(Webページ)にしたいことが多々あると思います。そのようなときに役立つプログラム「テキストドックレット(TextDoclet)」を作成してみました。どうぞ次のプログラムを実行してください。

| aCollection |
(aCollection := OrderedCollection new)
    add: #url: -> 'http://www.cc.kyoto-su.ac.jp/~atsushi/Programs/VisualWorks/TextDoclet/TextDoclet.st';
    add: #comment: -> 'Copyright 2008-2012 KSU (Kyoto Sangyo University). All Rights Reserved.';
    add: #bundle: -> #KSU;
    add: #package: -> 'KSU-Tool';
    add: #nameSpace: -> #KSU;
    add: #category: -> 'KSU-Tool';
    add: #class: -> #{KSU.TextDoclet};
    add: #protocol: -> #examples;
    add: #selector: -> #example1;
    add: #execute: -> [#{KSU.TextDoclet} value yourself];
    yourself.
JunSystem
    perform: ((aCollection collect: [:each | each key]) inject: String new
            into: [:selector :key | selector , key]) asSymbol
    withArguments: (aCollection collect: [:each | each value]) asArray

JavaプログラムをHTML化する…

たとえば、JavaプログラムをHTML化するのが、例題の1番になります。ディレクトリを訊ねてきますので、お手持ちのJavaのソースコード群が置いてあるディレクトリを指定してください。指定されたディレクトリを起点にして、その下にあるサブディレクトリを再帰的に(10階層)たどり、「*.java」のパターンに合うファイルを探し出し、それらをHTML化します。HTML化されたJavaのソースコード群はデスクトップ上(日時を後置したディレクトリ内)に置かれます。

SystemBrowser1 Dialog1 Desktop1
Java1 実際にHTML化されたJavaソースコードの例

ant(Ant 1.6以降)のjavadocタスクにおいて、以下のような属性をjavadocタグに加えると、javaソースファイルへのリンクを生成してくれますが、HTML化されたソースプログラムのページ(src-html/**.html)はお粗末なものです。ここで作成したものに置き換えるのが良いと思います。HTML-lintW3C Validationをパスします。

      linksource="yes"
      additionalparam="-J-Dfile.encoding=UTF-8"

SmalltalkプログラムをHTML化する…

例題の2番は、SmalltalkプログラムをHTML化します。複数個のクラス群を指定して走るようにできています。HTML化されたSmalltalkのソースコード群はデスクトップ上(日時を後置したディレクトリ内)に置かれます。

SystemBrowser2 変換対象クラス群として以下の6つを指定
TextDoclet
Example
ProgramManager
Point
Rectangle
LineSegment
Desktop2
Smalltalk1 実際にHTML化されたSmalltalkソースコードの例

JavaやSmalltalkのプログラムに限らず、テキストファイルならば、行番号を振って、HTML化できますので、「テキストドックレット(TextDoclet)」と名付けました。当該ページは自分(TextDoclet自身)を自分(TextDoclet自身)でHTM化した(メタ的な)ものになります。

for VisualWorks 7.8 / 7.7 / 7.6 with Jun793


Updated: 2015/11/08 (Created: 2008/11/15) KSU AokiHanko