Skip to main content

Generates a professional PDF source code annex with Smart Index, Images and Emoji support.

Project description

📂 codeannex

Generates a professional PDF annex from a project's source code — featuring syntax highlighting, a hierarchical table of contents, image rendering, and version tracking.

🚀 Key Features

  • Interactive Wizard 2.0 — Step-by-step configuration with smart sections (Project, Style, Typography, Layout, Filters) and explicit default prompts.
  • Git Version Tracking — Automatically detects Repository URL, Branch, and Commit SHA. Smart root detection avoids Git metadata on subdirectories.
  • Smart SVG Rendering — Files are rendered as both a high-quality image and XML code. Entries are intelligently deduplicated in the summary.
  • Improved Document Structure — Subdirectories and their contents are listed before root files for better organization.
  • High-Contrast Design — Redesigned cover page, thickened image frames, and optimized line number legibility.
  • Intelligent Font Discovery — Automatically finds fonts from your system or custom directories via --font-path.
  • Flexible File Filtering — Multi-pattern include and exclude glob filters (e.g., --include "src/*" --exclude "tests/*").
  • Pro-Level UI — Control paper size (mm), margins (cm), accent colors (HEX), and font sizes.

🛠 Installation

The recommended way to install codeannex is via pipx:

pipx install codeannex

For full SVG support (required for crisp line numbers and SVG image rendering):

pipx install "codeannex[svg]"

Alternatively, you can use standard pip: pip install codeannex

📖 Usage

Interactive Mode (Wizard)

Simply run without arguments to start the configuration:

python3 -m codeannex

Automation / CI

python3 -m codeannex . \
  --cover-title "Technical Annex" \
  --primary-color "#0f4761" \
  --code-size 9 \
  --include "src/*" \
  --exclude "*.log" \
  --no-input

Default output filename is {project_name}_code_annex.pdf.

⚙️ Configuration Options

Git & Metadata

  • --repo-url URL — Manual repository URL.
  • --branch NAME — Manual branch name.
  • --no-git — Force disable Git integration.
  • --repo-label LABEL — Label for repo (default: "Repository: ").

File Selection

  • --include PATTERN — Include glob pattern (can be used multiple times).
  • --exclude PATTERN — Exclude glob pattern (can be used multiple times).

Design & Layout

  • --page-width MM / --page-height MM — Custom paper size in mm (default: A4).
  • --margin CM — General margin (top, bottom, left, right).
  • --primary-color HEX — Accent color for headers, summary icons, and links.
  • --code-size N — Font size for code and line numbers.

Fonts

  • --font-path PATH — Additional directory to search for .ttf/.otf files.
  • --title-font / --normal-font / --mono-font — System font names.

🧪 Testing

PYTHONPATH=. pytest tests --cov=codeannex

📄 License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

codeannex-0.4.0.tar.gz (21.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

codeannex-0.4.0-py3-none-any.whl (23.1 kB view details)

Uploaded Python 3

File details

Details for the file codeannex-0.4.0.tar.gz.

File metadata

  • Download URL: codeannex-0.4.0.tar.gz
  • Upload date:
  • Size: 21.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for codeannex-0.4.0.tar.gz
Algorithm Hash digest
SHA256 00bf19530f128bba2c53aafef7be48262f013000c2d9be6bb75bc7c01b67ce2a
MD5 d8aa7e527b9a70be53cf02fa4822201b
BLAKE2b-256 60ecf3da356910134c2623892ceb28eb5b55db8816608e1dd2fb06a284f52190

See more details on using hashes here.

Provenance

The following attestation bundles were made for codeannex-0.4.0.tar.gz:

Publisher: publish.yml on tanhleno/codeannex

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file codeannex-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: codeannex-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 23.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for codeannex-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 aff573d5aecf1adac431f2f6a90653fea5436a3ceecd7922af364c3bf1c6583a
MD5 d7f5e6eb250788df9a58a2e5518c9d83
BLAKE2b-256 ede196972f0aebcd86ff0ba0828d11e06ff14b6ba9dbfa40eb49a952fb174925

See more details on using hashes here.

Provenance

The following attestation bundles were made for codeannex-0.4.0-py3-none-any.whl:

Publisher: publish.yml on tanhleno/codeannex

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page