Skip to main content

Markweave

Markweave: Markdown to DOCX and PDF

Markweave turns a Markdown file into DOCX, PDF, or an editable PowerPoint presentation from a small browser interface. It keeps your Word and PowerPoint templates and completed jobs on local persistent storage. It scans every upload with ClamAV by default and can explicitly delegate that boundary to a trusted upstream proxy.

The project is licensed under Apache-2.0. The source package version is 0.7.2. The default public quickstart remains pinned to the matched published 0.7.1 backend and Next.js frontend pair until 0.7.2 publication completes and records new receipts. Do not substitute candidate or inferred digests; candidate testing may override both image references together with another matched immutable pair.

The documentation index provides longer guides organized by role. You do not need to read them before trying the local profile.

Try it locally

You need OpenSSL, flock, about 6 GiB of available memory, and Docker Compose or rootless Podman with a Compose provider. Published images support Linux/AMD64.

git clone https://github.com/Guillaume-Lombardo/simple-md-to-docx-converter.git
cd simple-md-to-docx-converter
scripts/quickstart-simple.sh up
scripts/quickstart-simple.sh password

Open http://localhost:8080 and sign in as admin with the displayed password. In 2docx, upload examples/quickstart-source.md, keep Pandoc default, choose DOCX, PDF, or both, and start the conversion. Download the result when ready. The first startup can take several minutes while ClamAV loads its signatures.

scripts/quickstart-simple.sh ps
scripts/quickstart-simple.sh logs
scripts/quickstart-simple.sh down

Normal shutdown preserves accounts, templates, results and the administrator password. Results in this evaluation profile expire after 10 minutes.

This is a local evaluation profile, bound to loopback. Its disposable /work volume has no physical capacity cap. Do not expose it as a production service. The quickstart operations guide explains the bounded secure profile, Docker/Podman selection, custom ports and HTTPS proxy origins, Word templates, recovery, and the explicit trusted-upstream and insecure SSH-tunnel modes with their restrictions.

Use and operate Markweave

How it works

The browser and HTTP API authenticate a local user, validate and scan the upload, and record a durable conversion job. A worker claims that job with a renewable lease, resolves the exact immutable template version when one was selected (or uses Pandoc's built-in default reference document), and runs the local Pandoc, Chromium/Mermaid, and LibreOffice engines inside bounded workspaces. Results and traceability metadata are retained for the configured period; document content is not written to logs.

The standalone profile used by Compose keeps SQLite metadata and atomic objects under one /data volume and runs one embedded worker. The distributed profile separates API and worker processes, using PostgreSQL and S3-compatible object storage so workers can scale independently. Both profiles share the same authorization, queue, validation, and retention contracts. See the architecture guide, API guide, and complete configuration reference for the deeper design.

Develop and contribute

Development targets Python 3.14 and uses uv, Ruff, ty, Pytest, and the repository's locked toolchain. Install all groups, then run the canonical checks:

uv sync --all-groups
uv run ruff format --check .
uv run ruff check .
uv run ty check
scripts/javascript/bootstrap-pnpm.sh "$PWD/.pnpm-tools"
export PATH="$PWD/.pnpm-tools/bin:$PATH"
export COREPACK_HOME="$PWD/.pnpm-tools/corepack-home" COREPACK_ENABLE_NETWORK=0
pnpm install --frozen-lockfile --ignore-scripts
pnpm run test:web
uv run pytest -m "not requires_pandoc and not requires_mermaid and not requires_libreoffice"
uv run pytest

Read CONTRIBUTING.md and the normative product specification before changing behavior. The local-development guide covers the repository layout and deeper setup; the release guide covers protected PyPI and GHCR publication.

Metadata

Release files for markweave 0.7.2

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

Source distribution (sdist)

Source distribution for markweave 0.7.2
File Size Uploaded
markweave-0.7.2.tar.gz 395.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for markweave 0.7.2
File Interpreter ABI Platform
markweave-0.7.2-py3-none-any.whl Python 3 none any Details

Total release size: 925.6 kB

Release files / markweave-0.7.2.tar.gz

Download URL markweave-0.7.2.tar.gz
Size 395.9 kB
Tags Source
SHA-256 checksum
How to use checksums
06565b3bda821b8210ef3f0c7459b374c3d809478b6c10293f005aa2d3f8585d
BLAKE2b-256 checksum
How to use checksums
0c3cc2635d940762e81f4b83259db9b24a13e9785ac85c934cc952d2d4876619
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.

Transparency log

Release files / markweave-0.7.2-py3-none-any.whl

Download URL markweave-0.7.2-py3-none-any.whl
Size 529.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e34cbe90831940bd94e964bb5b785e382b0c5c56288fd73521657c09beefc91f
BLAKE2b-256 checksum
How to use checksums
0bdfdf548c59bd490ba8e75c08454910ba0de1cb9a55a0beb3f0ea5b7c21159b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 22, 2026.

Transparency log

Release history Release notifications | RSS feed

0.7.4

2 release files

0.7.3

2 release files

This release

0.7.2 This release

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.4

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

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