Skip to main content

Gospelo Backlog Docs

Overview

Upload Markdown documents to Backlog Wiki with image and MermaidJS support.

The Story Behind

One day in a development team's Slack channel:

Engineer: "Where can I find the specs for this function?" Client: "In the head of Tanaka-san, who left the company last month."

The engineer looked up to the heavens and cried out:

"Dear God, save me from this documentation-less hell!"

At that moment, there seemed to be a divine revelation:

(Make it yourself.)

"...Fine. I'll build it. Automatically."

And thus, Gospelo was born.

A documentation tool for engineers that delivers "words of salvation" to the documentation wasteland and helps the "specs are in my head" guy finally find peace.

The name "gospel" + "pelo" came from a late-night coding session where the developer thought "I felt like God told me to make it myself, so I did (・ω<)☆". Issues about naming sense are not accepted.

"Gospel" means "good news" or "words of salvation" in Christianity.


What's New in v1.1.0

  • Directory batch processing - Upload all Markdown files from a directory at once
  • Progress display - Animated spinner with percentage and progress bar
  • New options: --no-recursive, --pattern, --exclude, --continue-on-error

See Changelog for full details.


Features

  • Upload Markdown files to Backlog Wiki
  • Batch upload from directories with recursive search
  • Automatic image upload and link conversion
  • MermaidJS diagram conversion to PNG (requires mermaid-cli)
  • Extract wiki page name from H1 title
  • Support for hierarchical wiki page names (e.g., Parent/Child/Page)
  • Flexible credential management (CLI args, environment variables, .env files)
  • Progress display with spinner and percentage

Installation

pip install gospelo-backlog-docs

Optional: MermaidJS Support

To enable MermaidJS diagram conversion, install mermaid-cli:

npm install -g @mermaid-js/mermaid-cli

Quick Start

1. Set up credentials

Create a .env file or set environment variables:

# .env
BACKLOG_SPACE_ID=your-space-id
BACKLOG_API_KEY=your-api-key
BACKLOG_DOMAIN=backlog.jp  # or backlog.com

Or use the global config directory:

mkdir -p ~/.config/gospelo-backlog-docs
cp .env.example ~/.config/gospelo-backlog-docs/.env
# Edit the file with your credentials

2. Upload Markdown files

# Single file
gospelo-backlog-docs document.md --project PROJECT_KEY

# All files in a directory (recursive)
gospelo-backlog-docs docs/ --project PROJECT_KEY

Usage

gospelo-backlog-docs <path> --project <PROJECT_KEY> [options]

Arguments

Argument Description
path Path to Markdown file or directory
--project, -p Backlog project key (required)
--wiki-name, -n Wiki page name (only for single file)
--space-id, -s Backlog space ID
--api-key, -k Backlog API key
--domain, -d Backlog domain (default: backlog.jp)
--env-file, -e Path to .env file
--dry-run Parse only, do not upload
--no-recursive Do not search subdirectories
--pattern File pattern to match (default: *.md)
--exclude Patterns to exclude (can be specified multiple times)
--continue-on-error Continue uploading remaining files even if one fails
--version, -v Show version

Examples

# Upload a single file
gospelo-backlog-docs docs/design.md --project MYPROJECT

# Specify wiki page name (single file only)
gospelo-backlog-docs docs/design.md --project MYPROJECT --wiki-name "Design/UI Spec"

# Upload all Markdown files in a directory (recursive)
gospelo-backlog-docs docs/ --project MYPROJECT

# Upload only top-level files (no subdirectories)
gospelo-backlog-docs docs/ --project MYPROJECT --no-recursive

# Upload only spec files
gospelo-backlog-docs docs/ --project MYPROJECT --pattern "*_spec.md"

# Exclude README and draft files
gospelo-backlog-docs docs/ --project MYPROJECT --exclude "README.md" --exclude "*_draft.md"

# Continue uploading even if some files fail
gospelo-backlog-docs docs/ --project MYPROJECT --continue-on-error

# Dry run (parse without uploading)
gospelo-backlog-docs docs/design.md --project MYPROJECT --dry-run

# Use specific .env file
gospelo-backlog-docs docs/design.md --project MYPROJECT --env-file .env.production

Credential Priority

Credentials are resolved in the following order (highest priority first):

  1. CLI arguments (--space-id, --api-key, --domain)
  2. Environment variables (BACKLOG_SPACE_ID, BACKLOG_API_KEY, BACKLOG_DOMAIN)
  3. Specified .env file (--env-file)
  4. Local .env file (current directory)
  5. Global config ~/.config/gospelo-backlog-docs/.env

Markdown Features

Images

Local images are automatically uploaded:

![Screenshot](./images/screenshot.png)

External URLs are preserved as-is:

![Logo](https://example.com/logo.png)

MermaidJS Diagrams

MermaidJS code blocks are converted to PNG images (requires mermaid-cli):

```mermaid
graph TD
    A[Start] --> B[Process]
    B --> C[End]
```

Wiki Page Name

The wiki page name is determined by:

  1. --wiki-name argument (if specified)
  2. First H1 title in the Markdown file
  3. Filename (without extension)

Hierarchical names are supported:

# Parent/Child/Page Name

Requirements

  • Python 3.10+
  • requests
  • python-dotenv
  • mermaid-cli (optional, for MermaidJS support)

Documentation

License

MIT License - see LICENSE for details.

Third-Party Licenses

See THIRD_PARTY_LICENSES.md for dependency licenses.

Metadata

Release files for gospelo-backlog-docs 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gospelo-backlog-docs 1.1.0
File Size Uploaded Provenance Actions
gospelo_backlog_docs-1.1.0.tar.gz 31.4 kB Without provenance Details for gospelo_backlog_docs-1.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for gospelo-backlog-docs 1.1.0
File Interpreter ABI Platform Actions
gospelo_backlog_docs-1.1.0-py3-none-any.whl Python 3 none any Details for gospelo_backlog_docs-1.1.0-py3-none-any.whl

Total release size: 52.6 kB

Release files / gospelo_backlog_docs-1.1.0.tar.gz

Download URL gospelo_backlog_docs-1.1.0.tar.gz
Size 31.4 kB
Tags Source
SHA-256 checksum
How to use checksums
9f6fbaf29b24100c098dbafd031a18a4125320df7c2849dc736be5b360cfa674
BLAKE2b-256 checksum
How to use checksums
5420e2e7dc0f7d16716cbcaad66d284042c595b1c3338e713f0b46d24815ccc9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.8

Release files / gospelo_backlog_docs-1.1.0-py3-none-any.whl

Download URL gospelo_backlog_docs-1.1.0-py3-none-any.whl
Size 21.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
08ca6af3f955896830c89af88110eecc152bd356e728df63c2b9ce4ee9b4abce
BLAKE2b-256 checksum
How to use checksums
66e21cc6de0eaa0169bb988f20026336db6c7b17fee0c8a640b923068a520a7e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.8

Security for gospelo-backlog-docs 1.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page