2026-08-05 10:28:43 +01:00
2026-08-05 10:28:43 +01:00
2026-08-02 22:14:57 +01:00
2026-08-02 22:14:57 +01:00
2026-08-02 22:14:57 +01:00
2026-08-02 22:14:57 +01:00
2026-08-02 22:14:57 +01:00

dirmd

Generate markdown documentation from directory structure.

Features

  • Recursive directory traversal
  • Tree visualization (standard tree command format)
  • Full file contents with syntax-highlighted code blocks
  • Filters dotfiles, binaries, and blacklisted extensions
  • Append mode for single files or directories
  • Configurable depth, file size limits, ignore patterns

Build

go build -o dirmd .

Usage

# Create new documentation
dirmd -o output.md ~/repos/myproject

# Append a single file
dirmd -a -i README.md -o existing.md

# Append another directory
dirmd -a ~/repos/anotherproject -o existing.md

Flags

Flag Description Default
-o, --output Output markdown file path (required)
-a, --append Append to existing output file false
-i, --input-file Single file input (append mode only)
--max-size Max file size in bytes 524288
--max-depth Max directory recursion depth 20
--ignore Additional ignore patterns (glob)
--extensions Additional file extensions to skip

Examples

# Custom depth and size limit
dirmd -o output.md ~/repos/project --max-depth 5 --max-size 262144

# Ignore specific directories
dirmd -o output.md ~/repos/project --ignore __pycache__ --ignore .venv

# Skip additional file extensions
dirmd -o output.md ~/repos/project --extensions .log --extensions .tmp

Output Format

Produces markdown with:

  1. Absolute path as H1 header
  2. Directory tree (indented with 4 spaces per level)
  3. All text files with content in code blocks
  4. Language detection from file extensions

Example output structure:

# /home/user/repos/myproject

## Directory Tree

myproject/
├── cmd/
│   └── main.go
└── internal/
    └── config.go

## Contents

### ./cmd/main.go

```go
package main

func main() {}
```

Note: Uses tilde fences (~~~) internally to avoid conflicts with nested backticks in source files.

S
Description
No description provided
Readme
553 KiB
Languages
Go 100%