ConfluenceのVelocityテンプレートは、Sitemeshというデコレータによりパワーアップされているらしい。ちなみに、SiteMeshはOpenSymphonyというJavaの結構すごい大規模なプロジェクトの1つだったのだが全体としてのOpenSymphonyは既に4年くらい前に終了し、その中のWebWorkやSitemeshというサブプロジェクトのみが生き残っているらしい。
ただ、正直なところこれとかを見ても良く分からないので、Confluenceのソースコードを見ながらちょくちょくとここにそのタグを調べていくことにする。
Velocity Decorators - SiteMesh 2 - Confluence
Apache Velocity - Velocity
Sitemeshの設定ファイル
このぺーじによると、Sitemeshの設定ファイルweb.xmlは
confluence-project/confluence-core/confluence-webapp/src/main/webapp/WEB-INF/web.xml
これっぽい。
ただ、大量に書かれてて、これが何をどうするっていうのかはよくわからない・・・。
Velocityテンプレートのカスタムタグ
下記にあるJavaファイルがカスタムタグを作っているようだ。
./confluence-project/confluence-core/confluence/src/java/com/atlassian/confluence/setup/velocity/
DecoratorParamは、
./confluence-project/confluence-core/confluence/src/java/com/atlassian/confluence/setup/velocity/ParamDirective.java
で定義されているっぽい。
#parse(テンプレートファイル)
PHPでいうinclude。確認できているPATHは、
- プラグインの src/main/resources
- confluence-project/confluence-core/confluence-webapp/src/main/webapp
#applyDecorator("タグ")
囲うことで