UNPKG

gridsome-source-confluence

Version:
119 lines (105 loc) 3 kB
# gridsome-source-confluence > Confluence source for Gridsome. - [gridsome-source-confluence](#gridsome-source-confluence) - [Install](#install) - [Usage](#usage) - [Options](#options) - [Creating pages](#creating-pages) ## Install yarn: ```bash yarn add gridsome-source-confluence ``` npm: ```bash npm install gridsome-source-confluence ``` ## Usage `gridsome.config.js` ```js module.exports = { plugins: [ { use: 'gridsome-source-confluence', options: { base_url: "https://example.atlassian.net", space_key: "AS", debug: true, public_only: true, retry_request: true download_images: true } } ], } ``` ## Options | Option | Explanation | Default | Example | Required | |-|-|-|-|-| | `base_url` | The base URL of your Confluence instance | - | https://example.atlassian.net | <input type="checkbox" disabled checked /> | | `space_key` | Force spaceKey(s) comma separated | - | "AX,BG" | <input type="checkbox" disabled /> | | `public_only` | Only retrieve public confluence pages | false | false | <input type="checkbox" disabled /> | | `prefix` | Prefix of all types | Confluence | false | <input type="checkbox" disabled /> | | `download_images` | Download images and replace img url | false | true | <input type="checkbox" disabled /> | | `username` | Username for the private confluence page | - | johndoe@atlassian.net | required if public_only is false| | `password` | Password for the private confluence page | - | supersecretpassword | required if public_only is false| | `retry_request` | Retry failed request | false | true |<input type="checkbox" disabled /> | | `debug` | Show debug information | false | true | <input type="checkbox" disabled /> | ## Creating pages You can automaticly create pages based on the Confluence data. `gridsome.server.js` ```js module.exports = function (api) { api.createPages(async ({ graphql, createPage }) => { const { data } = await graphql(`{ allConfluenceParent { edges { node { title body slug } } } allConfluenceChild { edges { node { title body slug } } } }`) data.allConfluenceParent.edges.forEach(({ node }) => { createPage({ path: `${node.slug}`, component: './src/templates/ConfluenceBody.vue', context: { body: node.body, title: node.title } }) }) data.allConfluenceChild.edges.forEach(({ node }) => { createPage({ path: `${node.slug}`, component: './src/templates/ConfluenceBody.vue', context: { body: node.body, title: node.title } }) }) }) } ``` `src/templates/ConfluenceBody.vue` ```html <template> <Layout> <h1>{{ $context.title }}</h1> <div v-html="$context.body"></div> </Layout> </template> ```