Skip to content

Releases: avirsaha/treemark

v0.2.0

15 Jul 14:48

Choose a tag to compare

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


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

09 Jul 06:43

Choose a tag to compare

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 --ignore option to skip over unwanted paths during the tree traversal.

  • Selective Inclusion
    The --select-only option allows you to include only specified top-level items.

  • Safe Directory Handling
    Automatically skips system-protected or inaccessible directories, avoiding PermissionError crashes.

  • No External Dependencies
    Implemented using only the Python standard library. Requires Python 3.6 or higher.


Installation

Install from PyPI:

pip install treemark

Basic Usage

treemark

By 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.py

This 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:

pytest

Tests are located in the tests/ directory.


Known Issues

  • On some systems (e.g., Windows), protected folders like System Volume Information may 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


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.