ASDoc Templates for iPhone

あけましておめでとうございます。

久々に年末から年始にかけて、久々に ActionScript を使った案件に関わっていて、楽しくなったので、どこでもリファレンスが読みたいな、と思い、探してもないので、iPhone 用の ASDoc テンプレートを作ったので、公開しました。

テンプレート自体、XSLT で記述されており、UIも、iWebKit というフレームワークを使って作ったので、らくちんでした。

デモはこちらGitHub プロジェクトSpark Project Wiki

使い方

asdoc および aadoc コマンドの -templates-path オプションにチェックアウトしたディレクトリを指定します。(flex_sdk の bin にパスを通しておいてください。)

git clone git://github.com/ngs/asdoc-iphone-template.git iphone-templates
asdoc -doc-sources path/to/src \
  -templates-path iphone-templates \
  -output asdoc-iphone

作り途中です

まだ、AS2 や FlashLite、MXML などのソースコードではテストしていません。問題があったら、是非修正してください。

また、その際に使った、asdoc が 出力する XML をコミットしていただけると助かります。

ASDocの出力するXMLの取り方

ASDocの内部では、XMLが出力され、それをテンプレート内のXSLTで変換してHTMLを出力しています。

XMLは、例えば、こんな感じのものです

1. 既に存在するASDocのテンプレートの適当なものをコピーします。

(flex_sdkの中にある、asdoc/templatesディレクトリに入っているソースとか)

2. namespaceにredirectが指定されていないxslファイルを編集します。

例: appendixes.xsl

3. 内容を以下に編集します。

<?xml version="1.0"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <xsl:copy-of select="." />
  </xsl:template>
</xsl:stylesheet>

4. asdocを実行します

asdoc -doc-sources path/to/src \
  -templates-path templates-edited \
  -output asdoc-output

5. appendixes.xsl の場合、appendixes.htmlが出力されていると思います。

そのファイルの内容が ASDoc 内部の XML となります。

開発環境

ビルドを行わずに反映結果をプレビューするため、Apache Cocoon を使っています。

Cocoon 環境構築方法はこちらに記載してます。(Mac OS X のみ、ごめんなさい、Windows はまだないです。)

以下は構築例です。

  1. ビルドしたcocoonのディレクトリの中にある、build/webappの中に、devというディレクトリを作ります。
  2. その中に、sitemap.xmapというファイルを作ります。

    sitemap.xmap:

    <?xml version="1.0" encoding="UTF-8"?>
    <map:sitemap xmlns:map="http://apache.org/cocoon/sitemap/1.0">
      <map:pipelines>
        <map:pipeline>
          <map:match pattern="asdoc/**">
            <map:mount src="file:///path/to/templates-iphone/test/sitemap.xmap" uri-prefix="asdoc"/>
          </map:match>
        </map:pipeline>
      </map:pipelines>
    </map:sitemap>
  3. cocoonの再起動は不要です。

http://localhost:8888/dev/asdoc/all-classes.html にアクセスして、ページが表示されると成功です。

namespace に redirect を指定している XSLT は、複数の HTML を出力するものです。

それを Cocoon 上でテストするには、class.xsl の様に、単体で動くように加工が必要です。

リンク

comments powered by Disqus