getoutline-cli is an unofficial command-line interface for publishing markdown files to Outline. The primary goal of this project is to automate the process of publishing markdown files to Outline in CI/CD pipelines.
It allows to publish CHANGELOG.md, README.md, or any other markdown file to an Outline wiki.
The list of files to publish is defined in the configuration file .outline-cli.yml.
Alternatively, you can specify configuration file using --config option.
pip install getoutline-cliTo publish markdown files to Outline, run the following command:
getoutline-cliTo specify the configuration file, use the --config option:
getoutline-cli --config some_config.ymlTo preview the changes without publishing, use the --preview option:
getoutline-cli --previewOUTLINE_API_TOKEN- Outline API token (required if not specified in the configuration file)OUTLINE_URL- Outline URL (e.g.,https://wiki.example.com) (required if not specified in the configuration file)
The configuration file is a YAML file containing the following fields:
token- Outline API token (required if not specified in the environment variables)url- Outline URL (e.g.,https://wiki.example.com) (required if not specified in the environment variables)files- List of files to publish (required)
The files field is a list of dictionaries with the following fields:
path- Name or path to the markdown file (required)id- Outline document ID (required)title- Title of the document in Outline (optional)append- Append content to the existing document (optional, default isFalse)publish- Publish the document after updating (optional, default isTrue)substitutions- List of substitutions to apply to the content (optional)
The substitutions field is a list of dictionaries regex: replacement value,
applied to the content of the markdown file before publishing.
url: https://wiki.example.com
token: YOUR_OUTLINE_API_TOKEN
files:
- path: CHANGELOG.md
id: YOUR_ID_1
substitutions:
# Remove links to git commits
- " ?\\(\\[[a-z0-9]+\\]\\(https://git\\.example\\.com/.+\\)\\)": ""
# Remove commits without JIRA issues (DEV-XXXX)
- "^\\* (?!.*\\(DEV-\\d+\\)).*$\\n": ""
# Remove empty sections
- "### .+\\n+": ""
- path: README.md
id: YOUR_ID_2
title: README
append: false
publish: true- GetOutline
- CI/CD
- Alexander Pivovarov
License under the MIT License.