-
Notifications
You must be signed in to change notification settings - Fork 8
XML XSLT作業のメモ
- WAICのリポジトリ: /~https://github.com/waic/wcag20
- W3Cのリポジトリ: /~https://github.com/w3c/wcag/
WAIC側では wg4_translation というブランチで作業しています。
XSLTによる変換処理はSAXONというソフトウェアで行われる想定になっています。: http://saxon.sourceforge.net/ 一連の変換処理はApache Antというビルドツールによって管理されています。: https://ant.apache.org/ これらはいずれもJavaで書かれていますので、動かすためにはJavaの実行環境 (JRE) の導入が必要です。
#Antのビルドタスクについて wcag20/build.xml というファイルがあります。これがAntで使用される設定ファイルです。 このディレクトリに移動して、コマンドラインから
ant understanding
などと入れるとタスクが実行されます。
ant -f wcag20/build.xml understanding
のようにbuild.xmlの場所を指定することもできます。 上記の "understanding" 部分には、build.xml で定義されているタスクの名称が入ります。 いろいろあるっぽいですが、とりあえずUnderstanding関連で意識する必要がありそうなのものを以下に挙げます。
- understanding.single: understanding の合体版を生成します。complete.html というファイルができます。
- understanding.single.diff: understanding のdiff版を生成するのだと思いますが、いまちゃんと動いていないような気もしています。complete-diff.html というファイルができます。
- understanding.slices: understanding の分割版を生成しますが、いまちゃんと動いていないようです。
- understanding: 上記3つを連続で実行します。が、今は slices がうまくいっていないので slices は処理しないように書き換えてあります。
- gh-pages: Github Pagesを生成します。understanding と techniques の生成を行い、デフォルトとは異なるディレクトリにファイルを生成します。
- 現時点(20161030)で、wg4_translationのbuild.xmlはW3Cの都合のよい出力先となっているので、build.propeertisの(17行目あたり)を適当なディレクトリーに変更することで、出力エラーは防止できます。
- saxonのclasspathをあらかじめ通しておく必要があります。Linux(Ubuntu 16.04 LTS / Debian stretch)であれば、 .bashrc あたりに CLASSPATH=$CLASSPATH:/usr/share/java/Saxon-HE.jar とでもすればよいでしょう。
/.travis.yml にいろいろ設定が書いてあります。 wg4_translationブランチにpushされるとここに書かれているとおりに以下のような動作をします。
- まず、ant gh-pages を実行
- 成功したら生成されたファイルをgh-pagesブランチにpush
/~https://github.com/waic/wcag20/commit/26bec84a11858d89e13cd3b07f7f0e43549b28c3 を参照。
##見出しの自動生成
達成方法の一覧部分の見出しは勝手に生成されている。以下のように書かれていても head要素の中身のテキストは反映されない。
<div4 role="tech-optional"> <head>達成基準 1.2.2 でさらに対応が望まれる達成方法(参考)</head> </div4>
build.xmlが/WG4/git/waic/wcag20/wcag20/build.xmlにある場合、
- ant understanding → /WG4/w3ccvs/WWW/TR/2012/NOTE-UNDERSTANDING-WCAG20-20160317/
- ant gh-pages → /WG4/git/Gemerated/Understanding/
ant gh-pages を実行したときにsliceがうまく出力されていない問題があったが、これは slices-understanding-common.xsl の <xsl:result-document href="……"> の指定の仕方が出力先ディレクトリ切り替えの指定に対応していなかったことが原因だった模様。 本家の最新版に合わせて該当のhref属性を {code} href="{$output.dir.prefix}{$output.dir}/{$filename}" {/code} としたところ出力されるようになった。
Travis側の環境が変わって、antが通らなくなったことがあった。
dist: precise
として古い環境で固定したところ、動作するようになった。
travis.ymlのコミット履歴はこんな感じ
/~https://github.com/waic/wcag20/commit/182859942faaa5076a79f86c9a13116793551d29