- with npm
npm install @labset/confluence-static-site --save-dev
- with yarn
yarn add @labset/confluence-static-site -D
./node_modules/.bin/confsite env
./node_modules/.bin/confsite init-site <name>
it creates a .env
file with the following properties
CONFLUENCE_SITE_NAME
: the Confluence cloud instance you want to generate a site fromCONFLUENCE_USERNAME
: the username to use to consume Confluence APIsCONFLUENCE_API_TOKEN
: the user personal access token to consume Confluence APIsTARGET_SITE
: the domain name of where your generated site will be hostedTWITTER_SITE
: the twitter handle for seo purposesGOOGLE_ANALYTICS_TRACKING_ID
: Google Analytics tracking id
./node_modules/.bin/confsite config
it creates a .confluence-static-site.json
file with the following configuration
{
"title": "confluence-static-site",
"iconUrl": "",
"name": "space name",
"theme": {
"name": "confluence-static-site",
"backgroundColor": "rgb(0, 102, 68)",
"highlightColor": "#FFFFFF"
}
}
./node_modules/.bin/confsite extract <spaceKey>
./node_modules/.bin/confsite extract-emojis <spaceKey>
./node_modules/.bin/confsite build <spaceKey>
./node_modules/.bin/confsite build <spaceKey> --serve # with webpack dev server
./node_modules/.bin/confsite build <spaceKey> --assets my-assets-folder # copy your assets to the site output assets (i.e. site logo ...)
Once your content is extracted and the site is built, you will have an output
directory created in
the root of your project folder with the following structure
- output
- site
- <spaceKey>
- articles
- <blog-title-1>
- <blog-title-2>
- ...
- assets
- avatars
- emojis
- attachments
- notes
- <page-title-1>
- <page-title-2>
- ...
- object-resolver
- templates
What you need to deploy is the output/site/<spaceKey>
- with GitHub pages
- with Google Firebase