Skip to main content

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

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

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.13.tar.gz (10.8 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.13-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

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

Hashes for project_to_markdown-0.1.13.tar.gz
Algorithm Hash digest
SHA256 21679e4a61d717684158355d3403fe00290e68dfa32c755bbbef832d9035764a
MD5 2c13348f83ae797472e002dadf8cf6f4
BLAKE2b-256 a3eac4dd877aa23ad941d9c795ef6d0f13a3a6d151cdb7ab5fc1da966f7de397

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for project_to_markdown-0.1.13-py3-none-any.whl
Algorithm Hash digest
SHA256 d89c4c96177f5196053f6f18110055e8672e29e7d5f56491fc52ffe9805405d5
MD5 babc9a324556181e111c10be3f5d0097
BLAKE2b-256 cf1695fe610aaccfc45de1fac7fdaf8052d25eba766fe88181b2d6a7d3b649b4

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.13 This release

2 files

0.1.12

2 files

0.1.11

2 files

0.1.10

2 files

0.1.9

2 files

0.1.8

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

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