Skip to main content

Export a Python project into a single Markdown file.

Project description

project-to-markdown

A bidirectional tool to export Python projects to Markdown and recreate projects from Markdown files.

Features

Export (project-to-markdown)

  • Recursively scans a project directory
  • Includes code and markdown files (configurable)
  • Outputs a single, well-structured Markdown file
  • Supports file/directory exclusion and size limits
  • Git-aware (respects .gitignore when requested)

Import (markdown-to-project)

  • Recreates project structure from exported Markdown files
  • Preserves directory hierarchy and file contents
  • Handles UTF-8 encoding properly
  • Safe overwrite protection

Installation

pip install project-to-markdown

Or, for local development:

pip install .

Usage

Export a Project to Markdown

project-to-markdown --root path/to/project --output export.md --include-exts .py,.md --exclude-dirs .venv,.git --title "My Project"

Export Options

  • --root Root directory of the project (default: current directory)
  • --output Output Markdown file (default: project_export.md)
  • --title Title for the Markdown document
  • --include-exts Comma-separated list of file extensions to include (default: .py,.md)
  • --exclude-dirs Comma-separated list of directory names to exclude
  • --exclude-filesComma-separated list of file names to exclude
  • --use-gitignoreRespect .gitignore files in the export
  • --all-files Include all files, not just tracked files
  • --max-bytes Maximum size of files to include (default: 10,000,000)
  • --max-lines Maximum number of lines to include per file (0 = unlimited)
  • --tree-from-files Build tree from included files (mirrors gitignore/filters)

Recreate a Project from Markdown

python -m project_to_markdown.markdown_to_project -i exported_project.md -o recreated_project

Import Options

  • -i, --input Input markdown file containing the project source (required)
  • -o, --output Output directory to recreate the project in (default: 'recreated_project')
  • --overwrite Allow writing into an existing, non-empty output directory

Examples

Export Example

project-to-markdown --root my_project --output my_project.md --title "My Project"

Import Example

python -m project_to_markdown.markdown_to_project -i my_project.md -o recreated_project --overwrite

Project Structure

codebase_to_markdown/
├── project_to_markdown/
│   ├── __init__.py
│   ├── project_to_markdown.py    # Export script - project to markdown
│   └── markdown_to_project.py    # Import script - markdown to project
├── pyproject.toml
├── README.md
├── MANIFEST.in
├── example.md
└── __init__.py

License

MIT License


Created by Benaya Trabelsi. Contributions welcome!

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_markdown-0.1.5.tar.gz (8.9 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_markdown-0.1.5-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file project_to_markdown-0.1.5.tar.gz.

File metadata

  • Download URL: project_to_markdown-0.1.5.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for project_to_markdown-0.1.5.tar.gz
Algorithm Hash digest
SHA256 c376c6b8467a4e3c873a67a51e063720508dd272f6f35820a110295bf9114aac
MD5 7617af38dea2eb1e6e66ad9a5a7053fb
BLAKE2b-256 e6f80b3e51c372781e3c0761c7c4698bee9259407e37a2fd18379fcf842f6f1f

See more details on using hashes here.

File details

Details for the file project_to_markdown-0.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for project_to_markdown-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 eddb62113dec79d22ece9a34855eb6920c6d31bcfdfad65f56c6a93e92306b9f
MD5 4701b2ad50bf73bc783d07412573c156
BLAKE2b-256 ecbc8226fd1fd83053c3ede0ecfbc75d019f13808e6595891859d34ad24a1d7d

See more details on using hashes here.

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