From release 7.7 we can describe a complete site’s layout using a json 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.json 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
{
"home": {
"uri": "encoding.confluence",
"children": [
{
"name": "page 1",
"uri": "page1.md"
},
{
"name": "page 2",
"uri": "page2.md",
"attachments": [
{
"name": "attach1.png",
"uri": "attach1.png",
"comment": "attach1_comment",
"contentType": "image/png",
"version": 1
}
]
}
],
"attachments": [
{
"name": "home.png",
"uri": "home.png",
"comment": "home_comment",
"contentType": "image/png",
"version": 1
}
]
},
"labels": [
"encoding",
"test"
]
}
| 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 |
children is an array of object with the following schema:
| 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 |
attachments is an array of object with the following schema:
| 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 attachment supports also the file inclusion from directory
Example
"attachments": [
{
"name": "*.png",
"uri": "myfolder",
"comment": "file from myfolder",
"contentType": "image/png",
"version": 1
},
{
"uri": "myfolder",
"comment": "file from myfolder",
"contentType": "image/png",
"version": 1
}
]
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)