Convert Markdown documents to Confluence
Project description
md2cf
A library to convert documents written in Markdown to Confluence Storage format, and optionally upload them to a Confluence Server instance.
Features
- Convert Markdown documents. The library implements a Mistune renderer that outputs Confluence Storage Format.
- Basic Confluence API support. Embedded micro-implementation of the Confluence Server REST API with basic support for creating and updating pages.
- Upload automation. Includes a small script that can automate the upload process for you.
Installation
pip install md2cf
Basic Usage
Renderer
Use the ConfluenceRenderer
class to generate Confluence Storage Format
output from a markdown document.
import mistune
from md2cf.confluence_renderer import ConfluenceRenderer
renderer = ConfluenceRenderer(use_xhtml=True)
confluence_mistune = mistune.Markdown(renderer=renderer)
confluence_body = confluence_mistune(markdown_data)
API
md2cf embeds a teeny-tiny implementation of the Confluence Server REST API that allows you to create, read, and update pages.
from md2cf.api import MinimalConfluence
confluence = MinimalConfluence(host='http://example.com/rest/api', username='foo', password='bar')
confluence.create_page(space='TEST', title='Test page', body='<p>Nothing</p>', message='Created page')
page = confluence.get_page(title='Test page', space_key='TEST')
confluence.update_page(page=page, body='New content', message='Changed page contents')
Upload script
In order to upload a document, you'll need to supply at least the following five parameters:
- The hostname of your Confluence instance, including the path to
the REST API (e.g.
http://confluence.example.com/rest/api
) - The username to use for logging into the instance
- The corresponding password
- The space on which to upload the page
- The file(s) to be uploaded -- or standard input if the list is missing
Example basic usage:
md2cf --host 'https://confluence.example.com/rest/api' --username foo --password bar --space TEST document.md
Note that entering the password as a parameter on the command line is
generally a bad idea. If you're running the script interactively, you
can omit the --password
parameter and the script will prompt for it.
In addition, for the security conscious out there or those who plan on
using this as part of a pipeline, you can also supply the hostname,
username, and password as environment variables: CONFLUENCE_HOST
,
CONFLUENCE_USERNAME
, and CONFLUENCE_PASSWORD
.
The title of the page will be the first top-level header found in
the document (i.e. the first #
header), or the filename if there are
no top-level headers.
If you want to upload the page under a specific parent, supply the
parent's page ID as the --parent
parameter.
You can also optionally specify an update message to describe the
change you just made by using the --message
parameter.
If you want to update a page by page ID, use the --page-id
option. This allows you to update the page's title, or to update a page with a title that is hard to use as a parameter.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file md2cf-0.2.1.tar.gz
.
File metadata
- Download URL: md2cf-0.2.1.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
f496085225b5c32db5a9f9de27593bc609e1802086f188ad70e9b30f325a005f
|
|
MD5 |
ffa936b851f2d601598ec9bc713160c2
|
|
BLAKE2b-256 |
a24e3b81d52eb195cac837d55cb724de88db289e936ec67d93795ecba127a043
|
File details
Details for the file md2cf-0.2.1-py3-none-any.whl
.
File metadata
- Download URL: md2cf-0.2.1-py3-none-any.whl
- Upload date:
- Size: 7.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
aa12ba5c01b21a86523342af37aa46113a339be5c988e16f0849f81efdfa490e
|
|
MD5 |
db103e871d34fade7679b6fa48cf4e37
|
|
BLAKE2b-256 |
2a8b73c7bb322f48c4244fec076459922a8e6dbc8356effa50aaa3a9b5192761
|