Releases: avirsaha/treemark
v0.2.0
Treemark 0.2.0 Release Notes
Release Date: 15/07/25
New Features
-
Depth Limiting (
--max-depth)
Control how deep the directory tree traversal goes. -
File Size Display (
--sizes)
Show file sizes next to files. -
Output Formatting (
--format)
Choose between Markdown and plain text output. -
Output to File (
--output)
Save the tree output to a file instead of printing. -
Improved CLI Help
Updated help and examples demonstrating new options.
Improvements
-
Core logic updated minimally to support new features.
-
README updated with:
- Full descriptions of new CLI flags
- Updated features section
- Clear example usages
-
Added comprehensive unit tests for new features.
-
Added CLI tests covering version flag, output file, and formats.
Known Issues
- CLI tests (
test_cli_markdown_header,test_cli_output_to_file,test_cli_version_flag) temporarily disabled due to output capture issues. - Tests will be re-enabled after fixes in a future release.
Installation
- Check README
Feedback & Support
Report issues or suggest features at: treemark/issues
What's Changed
New Contributors
Full Changelog: v0.1.0...v0.2.0
v0.1.0 Initial Release
TreeMark v0.1.0 Initial Release
This is the first official release of TreeMark, a minimal Python command-line utility that generates a readable, Markdown-formatted representation of your project’s folder and file structure.
TreeMark is designed for developers, technical writers, and anyone needing clear project structure documentation—whether for README files, onboarding documentation, or feeding structural context into language models.
Key Features
-
Recursive Markdown Tree Output
Walks through the directory structure starting from a specified root and prints it in Markdown format. -
Ignore Specific Files and Folders
Use the--ignoreoption to skip over unwanted paths during the tree traversal. -
Selective Inclusion
The--select-onlyoption allows you to include only specified top-level items. -
Safe Directory Handling
Automatically skips system-protected or inaccessible directories, avoidingPermissionErrorcrashes. -
No External Dependencies
Implemented using only the Python standard library. Requires Python 3.6 or higher.
Installation
Install from PyPI:
pip install treemarkBasic Usage
treemarkBy default, this generates a Markdown view of the current directory.
You can also customize the behavior using flags:
| Option | Description |
|---|---|
--root |
Set the root directory (default: current directory) |
--ignore |
Space-separated list of files/folders to exclude |
--select-only |
Space-separated list of top-level items to include |
--version |
Display version information and exit |
-h, --help |
Show help message and exit |
Example:
treemark --root myproject --ignore .git venv __pycache__Output Example
# Project Structure
├── README.md
├── pyproject.toml
└── src/
├── cli.py
└── core.pyThis output is suitable for GitHub READMEs, documentation platforms, or as input for tools that require structural knowledge of a codebase.
Testing
TreeMark includes a basic test suite using pytest. To run tests:
pytestTests are located in the tests/ directory.
Known Issues
- On some systems (e.g., Windows), protected folders like
System Volume Informationmay trigger access errors. These are now handled and skipped silently. - Output assumes a monospace-friendly Markdown viewer. For best results, view it in GitHub, VS Code, or similar platforms.
Project Information
- License: MIT © 2025 Aviraj Saha
- Source: https://github.com/avirsaha/treemark
- PyPI: https://pypi.org/project/treemark/
- Contact: aviraj.saha@outlook.com
Future Work
Planned features for upcoming versions:
- Support for outputting to a file
- Limiting folder depth in output
- Support for non-Markdown (ASCII-only) rendering
- Configurable styles or themes
Let me know if you'd like this saved as a RELEASE_TEMPLATE.md or if you need version tagging automation.