flowline

module
v0.0.0-...-dccdca6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 30, 2024 License: MIT

README

Go Report Card GoDoc License

A golang utility to help migrate your knwoledge base from confluence

About

Flowline is a golang utility to help migrate your knowledge base from confluence. It is designed to be easy to use and flexible enough to be extended to support any platform. (Hopefully)

Installation

go install github.com/mmatongo/flowline

Features

Right now, Flowline only supports migrating from Confluence to Outline.

  • Text content and formatting such as italic, bold, underline
  • Links
  • Lists, numbered lists, check lists
  • Notices (Info / error / etc) (I am working on this) (Will work on this if needed)
  • Code blocks
  • File attachments (kind of)
  • Embedded images
  • Document nesting (Document nesting is now supported for outline and markdown migrations)
  • Emojis
  • Simple tables

Usage

Here's a basic example of how to use Flowline to migrate your knowledge base from Confluence to Outline.

Flowline has a simple ui.

flowline

A tiny little tool built in a few hours out of frustration to migrate a confluence knowledge base

Usage:
  flowline [command]

Available Commands:
  completion  Generate the autocompletion script for the specified shell
  help        Help about any command
  markdown    Convert Confluence HTML export to markdown files
  outline     Process a confluence HTML export and import it into Outline

Flags:
  -h, --help   help for flowline

Use "flowline [command] --help" for more information about a command.
flowline outline

Process and convert individual pages to markdown, while aiming to preserve document structure

Usage:
  flowline outline [flags]

Flags:
  -c, --collection string   collection id to be populated
  -G, --get-collections     retrieve a list of all the collections
  -h, --help                help for outline
  -i, --input string        path to the confluence HTML export
  -o, --output string       desired output path for the processed documents
  -r, --verify              verify the contents of each page before upload
flowline markdown
Error: required flag(s) "input", "output" not set
Usage:
  flowline markdown [flags]

Flags:
  -h, --help            help for markdown
  -i, --input string    path to the confluence HTML export
  -o, --output string   output path for the markdown files
  -r, --verify          verify before proceeding with conversion

exit status 1

Example 1

Before you can use Flowline to migrate your knowledge base, you need to export your knowledge base from Confluence. You can do this by following the instructions here to export your knowledge base to HTML.

You then need to craete a collection in Outline where you want to import your knowledge base. You can do this by following the instructions here.

Then create an API key in Outline. You can do this by going to your settings then to the API section.

# Get a list of all the collections
flowline outline -G

[
  {
    "name": "Wiki",
    "id": "c0df2bd9-8b16-4169-b4ea-ecea5038be1d",
    "url": "https://wiki.example.com/api/collection/digital-PxkVzcux4V"
  },
  {
    "name": "Welcome",
    "id": "daf00c41-05c8-403f-a665-2a27b736c5cb",
    "url": "https://wiki.example.com/api/collection/welcome-SH4HCAvCWl"
  }
]

From the output above, you can see that we have two collections. We can use the id to specify the collection we want to populate.

Note that you need to export your BASE_URL and API_KEY as environment variables. i.e

export BASE_URL=https://wiki.example.com/api
export API_KEY=your_api_key

Now you can run the following command to start the migration process.

flowline outline -i /path/to/confluence-export -o /path/to/output -c c0df2bd9-8b16-4169-b4ea-ecea5038be1d

Example 2

You can also convert the confluence HTML export to markdown files.

flowline markdown -i /path/to/confluence-export -o /path/to/output

Caveats

  • Flowline is still in its early stages and may not support all the features you need.
  • Flowline is not perfect and may not work as expected.
  • Flowline is not affiliated with any of the platforms it supports.
  • In the case of Outline, Flowline uses the Outline API to upload documents and attachments. This means that you need to have an internet connection to upload your documents. If you have a large knowledge base, this may take some time as rate limiting is enforced by Outline. (turns out can be byassed but would not recommend it)

Contributing

Contributions are welcome! Feel free to open an issue or submit a pull request if you have any suggestions or improvements.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Known Issues

  • Flowline does not support all the features of Confluence. If you need a feature that is not supported, feel free to open an issue or submit a pull request.
  • Some complex tables may not be converted correctly, I've tried to fix this but it's still a work in progress.

Directories

Path Synopsis
cmd
internal
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL