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
--rootRoot directory of the project (default: current directory)--outputOutput Markdown file (default: project_export.md)--titleTitle for the Markdown document--include-extsComma-separated list of file extensions to include (default: .py,.md)--exclude-dirsComma-separated list of directory names to exclude--exclude-filesComma-separated list of file names to exclude--use-gitignoreRespect .gitignore files in the export--all-filesInclude all files, not just tracked files--max-bytesMaximum size of files to include (default: 10,000,000)--max-linesMaximum number of lines to include per file (0 = unlimited)--tree-from-filesBuild 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, --inputInput markdown file containing the project source (required)-o, --outputOutput directory to recreate the project in (default: 'recreated_project')--overwriteAllow 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
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! benaya7@gmail.com
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file project_to_markdown-0.1.13.tar.gz.
File metadata
- Download URL: project_to_markdown-0.1.13.tar.gz
- Upload date:
- Size: 10.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
21679e4a61d717684158355d3403fe00290e68dfa32c755bbbef832d9035764a
|
|
| MD5 |
2c13348f83ae797472e002dadf8cf6f4
|
|
| BLAKE2b-256 |
a3eac4dd877aa23ad941d9c795ef6d0f13a3a6d151cdb7ab5fc1da966f7de397
|
File details
Details for the file project_to_markdown-0.1.13-py3-none-any.whl.
File metadata
- Download URL: project_to_markdown-0.1.13-py3-none-any.whl
- Upload date:
- Size: 10.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d89c4c96177f5196053f6f18110055e8672e29e7d5f56491fc52ffe9805405d5
|
|
| MD5 |
babc9a324556181e111c10be3f5d0097
|
|
| BLAKE2b-256 |
cf1695fe610aaccfc45de1fac7fdaf8052d25eba766fe88181b2d6a7d3b649b4
|