就像你可以在Maven站点皮肤中自定义CSS一样,你也可以在其中自定义站点模板。Doxia的站点渲染工具会从皮肤JAR文件中找一个META-INF/maven/site.vm
文件。为了包含一个自定义的页面模板,复制模板文件至sample-site-skin
中正确的位置。将本章前面开发的自定义站点模板复制到sample-site-skin
中的src/main/resources/META-INF/maven
位置:
$ mv sample-project/src/site/site.vm \ sample-site-skin/src/main/resources/META-INF/maven
如果你已经在sample-project
中自定义了站点模板,删除Site插件中指向该模板的配置。Site插件会使用站点皮肤中包含的模板来渲染站点。
<plugin> <artifactId>maven-site-plugin</artifactId> <configuration> <templateDirectory>src/site</templateDirectory> <template>site.vm</template> </configuration> </plugin>
Maven站点皮肤应该包含所有它依赖的资源。包括CSS,图片,以及logo。如果在本章前面你已经自定义了站点模板,且已经将默认的doxia-site-renderer
资源复制到了src/site/resources
目录。你需要将这些文件从sample-project
项目移到新的sample-site-skin
项目中,使用如下的命令:
$ cd .. $ mkdir -p sample-site-skin/src/main/resources/css $ mv sample-project/src/site/resources/css/maven-base.css \ sample-site-skin/src/main/resources/css $ mkdir -p sample-site-skin/src/main/resources/images $ mv sample-project/src/site/resources/images/logos \ sample-site-skin/src/main/resources/images $ mv sample-project/src/site/resources/images/expanded.gif \ sample-site-skin/src/main/resources/images $ mv sample/src/site/resources/images/collapsed.gif \ sample-site-skin/src/main/resources/images
你已经更改了sample-site-skin
,因此需要安装该皮肤到本地Maven仓库。在安装好皮肤之后,重新构建sample-project
web站点。你会看到新皮肤的自定义站点模板已经应用到了sample-project
的web站点上。你会注意到菜单项的颜色可能会有一些不精确,因为你没有为折叠及展开菜单项添加必要的CSS。为此,如下更改src/main/resources/css/maven-theme.css
:
a:link { ... }
至
li.collapsed, li.expanded, a:link { ... }
重新构建皮肤,然后再次生成站点,你会看到菜单项正常显示了。你已经成功的创建了一个Maven主题,它可以用来将自定义的CSS和模板应用到一组项目中。