1.3.0 • Published 6 months ago

gridsome-source-confluence v1.3.0

Weekly downloads
-
License
MIT
Repository
github
Last release
6 months 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,
        retry_request: 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
retry_requestRetry failed requestfalsetrue
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.2.0

6 months ago

1.3.0

6 months ago

1.1.0

11 months ago

1.0.15

3 years ago

1.0.14

4 years ago

1.0.13

4 years ago

1.0.12

4 years ago

1.0.11

4 years ago

1.0.10

4 years ago

1.0.9

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.2

4 years ago

1.0.3

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago