From release 3.3.0 we can describe a complete site’s layout using a xml format. Through site schema you can set root page (called home) its children’s tree, add attachments and labels.
Use it is pretty straightforward, put your site.xml in ${basedir}/src/site/confluence folder and describe your preferred layout following the site schema.
To simplify understanding, below there is a simple site descriptor template
<?xml version="1.0" encoding="UTF-8"?>
<bsc:site
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns:bsc='https://github.com/bsorrentino/maven-confluence-plugin'
xsi:schemaLocation='https://github.com/bsorrentino/maven-confluence-plugin https://raw.githubusercontent.com/bsorrentino/maven-confluence-plugin/master/schemas/site-schema-6.0.xsd'>
<home name="" uri="">
<attachment name="" uri="" comment="" contentType="" version=""></attachment>
<attachment name="" uri="" comment="" contentType="" version=""></attachment>
<child name="" uri="">
<attachment name="" uri="" comment="" contentType="" version=""></attachment>
<attachment name="" uri="" comment="" contentType="" version=""></attachment>
<child name="" uri="">
<attachment name="" uri="" comment="" contentType="" version=""></attachment>
<attachment name="" uri="" comment="" contentType="" version=""></attachment>
</child>
<child name="" uri=""></child>
</child>
<child name="" uri=""></child>
</home>
<label>label1</label>
<label>label2</label>
<label>label3</label>
</bsc:site>
| Attribute | Description | mandatory |
|---|---|---|
| space-key | space key (if set overrides the equivalent pom configuration) | no |
| Attribute | Description | mandatory |
|---|---|---|
| uri | Content’s source | no |
| name | Title of page | no (if uri is defined) |
| parentPageId | parent page id (if set overrides the equivalent pom configuration) | no |
| parentPage | parent page name (if set overrides the equivalent pom configuration) | no |
| ignoreVariables | if it is true the variables ${...} are not injected during page processing | no |
| Attribute | Description | mandatory |
|---|---|---|
| uri | Content’s source | no |
| name | Title of page | no (if uri is defined) |
| parentPage | parent page name (if set overrides the equivalent pom configuration) | no |
| ignoreVariables | if it is true the variables ${...} are not injected during page processing | no |
| Attribute | Description | mandatory |
|---|---|---|
| uri | Content’s source or a directory | no |
| name | Name of attachment or a glob pattern | no (if uri is defined) |
| comment | no | |
| contentType | yes | |
| version | no |
from version 5.0-rc4 the tag attachment supports also the file inclusion from directory
Example
<!-- include all png files from myfolder --> <attachment name="*.png" uri="myfolder" comment="file from myfolder" contentType="image/png" version="1"/> <!-- include all files from myfolder --> <attachment uri="myfolder" comment="file from myfolder" version="1"/>
This tag has been added from version 5.0-rc3 and allows to choose where put the built-in generated pages Currently only plugin.goals is supported therefore such tag is useful when we are dealing with Maven Plugin Documentation
| Attribute | Description | mandatory |
|---|---|---|
| ref | built-in generated pages Id. Currently only plugin.goals is supported | yes |
The example below is the site.xml used by plugin to document itself
<?xml version="1.0" encoding="UTF-8"?>
<bsc:site
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns:bsc='https://github.com/bsorrentino/maven-confluence-plugin'
xsi:schemaLocation='https://github.com/bsorrentino/maven-confluence-plugin https://raw.githubusercontent.com/bsorrentino/maven-confluence-plugin/master/schemas/site-schema-6.9.xsd'>
<home uri="codehaus-home.confluence">
<child name="Usage" uri="usage.confluence">
<attachment name="gitlog-sample02.png" uri="../resources/images/gitlog-sample02.png" comment="gitlog to jira sample" contentType="image/png" version="1"></attachment>
</child>
</home>
<label>maven</label>
<label>confluence</label>
<label>documentation</label>
</bsc:site>
The uri attribute could refer to
File resource
We can refer to file in absolute way using file scheme (e.g. file:///Documents/page.confluence) or in relative way not using any scheme. In that case the path will be resolved starting from site home
Classpath resource
We can refer to resource using classpath schema. (e.g. classpath:page.confluence)
Network resource
We can refer to resource using http scheme. (e.g. http://www.thesite.com/page.confluence)