gridsome-source-confluence

1.0.15 • Public • Published

gridsome-source-confluence

Confluence source for Gridsome.

Install

yarn:

yarn add gridsome-source-confluence

npm:

npm install gridsome-source-confluence

Usage

gridsome.config.js

module.exports = {
  plugins: [
    {
      use: 'gridsome-source-confluence',
      options: {
        base_url:  "https://example.atlassian.net",
        space_key: "AS",
        debug: true,
        public_only: true,
        rate_limit: true 
        download_images: true
      }
    }
  ],
}

Options

Option Explanation Default Example Required
base_url The base URL of your Confluence instance - https://example.atlassian.net
space_key Force spaceKey(s) comma separated - "AX,BG"
public_only Only retrieve public confluence pages false false
prefix Prefix of all types Confluence false
download_images Download images and replace img url false true
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
rate_limit Rate limit request (max concurrent 50) false true
debug Show debug information false true

Creating pages

You can automaticly create pages based on the Confluence data.

gridsome.server.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

<template>
  <Layout>
    <h1>{{ $context.title }}</h1>
    <div v-html="$context.body"></div>
  </Layout>
</template>

Package Sidebar

Install

npm i gridsome-source-confluence

Weekly Downloads

12

Version

1.0.15

License

MIT

Unpacked Size

42.6 kB

Total Files

11

Last publish

Collaborators

  • jeffreyhondel