1.0.15 • Published 2 years ago

gridsome-source-confluence v1.0.15

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

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

OptionExplanationDefaultExampleRequired
base_urlThe base URL of your Confluence instance-https://example.atlassian.net
space_keyForce spaceKey(s) comma separated-"AX,BG"
public_onlyOnly retrieve public confluence pagesfalsefalse
prefixPrefix of all typesConfluencefalse
download_imagesDownload images and replace img urlfalsetrue
usernameUsername for the private confluence page-johndoe@atlassian.netrequired if public_only is false
passwordPassword for the private confluence page-supersecretpasswordrequired if public_only is false
rate_limitRate limit request (max concurrent 50)falsetrue
debugShow debug informationfalsetrue

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>
1.0.15

2 years ago

1.0.14

3 years ago

1.0.13

3 years ago

1.0.12

3 years ago

1.0.11

3 years ago

1.0.10

3 years ago

1.0.9

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

3 years ago

1.0.2

3 years ago

1.0.3

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago