Skip to main content

Convert a software project directory into an EPUB file for offline code reading

Project description

Project-to-EPUB

Convert a software project directory into an EPUB file for offline code reading and browsing on e-readers and tablets.

Features

  • Preserves your project's directory structure in the EPUB table of contents
  • Applies syntax highlighting to recognized code files
  • Respects .gitignore rules to exclude unwanted files
  • Optimized for e-ink devices with high-contrast themes
  • Configurable via command-line options

Installation

pip install project-to-epub

Or install from source:

git clone https://github.com/PsychArch/project-to-epub.git
cd project-to-epub
pip install -e .

Usage

Basic usage:

project-to-epub /path/to/your/project

This will create an EPUB file named after your project directory in the current working directory.

Command-line options

Usage: project-to-epub [OPTIONS] INPUT_DIRECTORY

  Convert a software project directory into an EPUB file for offline code reading.

  This tool creates an EPUB that preserves your project structure in the table of
  contents, applies syntax highlighting to code files, and respects .gitignore rules.

Arguments:
  INPUT_DIRECTORY  Path to the project directory to convert  [required]

Options:
  -o, --output PATH               Output EPUB file path
  --theme TEXT                    Syntax highlighting theme (e.g., default_eink, 
                                 monokai)
  --log-level TEXT                Log level (DEBUG, INFO, WARNING, ERROR)
                                 [default: INFO]
  --title TEXT                    Set EPUB title (defaults to project directory name)
  --author TEXT                   Set EPUB author
  --limit-mb FLOAT                Set large file threshold in MB
  --no-skip-large                 Error out on large files instead of skipping
  --version                       Show version and exit
  --help                          Show this message and exit.

Examples

Specify an output file:

project-to-epub /path/to/project -o ~/Documents/my-project.epub

Use a different syntax highlighting theme:

project-to-epub /path/to/project --theme monokai

Custom title and author:

project-to-epub /path/to/project --title "My Awesome Project" --author "Jane Developer"

Configuration

The tool uses sensible defaults but can be customized using command-line options:

  • Theme: Default is default_eink, a high-contrast theme optimized for e-ink displays.
  • Output File: Defaults to <project_name>.epub in the current directory.
  • File Size Handling: Files larger than 10MB are skipped by default.
  • Metadata: Title defaults to the project directory name. Author defaults to "Project-to-EPUB Tool".

All settings can be customized via command-line options as shown in the usage section.

Supported Code File Types

Project-to-EPUB supports all file types recognized by Pygments. This includes most popular programming languages like Python, JavaScript, Java, C/C++, Ruby, Go, Rust, and many more.

Requirements

  • Python 3.8.1+
  • Pygments
  • pathspec
  • PyYAML
  • typer
  • Markdown

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

project_to_epub-0.2.0.tar.gz (19.5 kB view details)

Uploaded Source

Built Distribution

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

project_to_epub-0.2.0-py3-none-any.whl (15.0 kB view details)

Uploaded Python 3

File details

Details for the file project_to_epub-0.2.0.tar.gz.

File metadata

  • Download URL: project_to_epub-0.2.0.tar.gz
  • Upload date:
  • Size: 19.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for project_to_epub-0.2.0.tar.gz
Algorithm Hash digest
SHA256 0345c05024ed8e7c0a2b01d4f933a28f78104237d4fa75d157274c6a092cf464
MD5 285c6cc66880383beaa5ffc8eb5f8adb
BLAKE2b-256 7e599c3fa3688b16f38f125dc70a3840750f504d4d74b27a4a5a0ca7381978f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for project_to_epub-0.2.0.tar.gz:

Publisher: python-publish.yml on PsychArch/project-to-epub

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

File details

Details for the file project_to_epub-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: project_to_epub-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 15.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for project_to_epub-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b595ba280245d58fbba9e11ea96e098e8a0f0d162f4a7f1968ca0e87a78b4afa
MD5 938f07acc6ad3626385324b2aaf6c96e
BLAKE2b-256 37ed937bd415b35131ae31644d8c669cc13a83690ec2018d2cc70c05921bc44a

See more details on using hashes here.

Provenance

The following attestation bundles were made for project_to_epub-0.2.0-py3-none-any.whl:

Publisher: python-publish.yml on PsychArch/project-to-epub

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