add omit test files and only frontend
This commit is contained in:
@@ -13,8 +13,8 @@ Generate markdown documentation from directory structure. Optimized for LLM inge
|
||||
- Force overwrite of existing output files
|
||||
- Configurable depth, file size limits, ignore patterns
|
||||
- Optional upload to Proton Drive after generating output
|
||||
|
||||

|
||||
- Skip frontend files (`.html`, `.css`, `.js`, etc.)
|
||||
- Omit test files and inline test blocks (Go, Java, Rust)
|
||||
|
||||
## Build
|
||||
|
||||
@@ -37,12 +37,49 @@ Generate markdown documentation from directory structure. Optimized for LLM inge
|
||||
# Generate with vertical slices
|
||||
dirmd -o output.md ~/repos/myproject --vertical-slices
|
||||
|
||||
# Skip frontend files (.html, .css, .js, etc.)
|
||||
dirmd -o output.md ~/repos/myproject --skip-frontend
|
||||
|
||||
# Omit test files and inline test blocks
|
||||
# Go: excludes *_test.go
|
||||
# Java: excludes *Test.java, *Tests.java, src/test/java/*
|
||||
# Rust: strips #[cfg(test)] mod tests { ... } blocks
|
||||
dirmd -o output.md ~/repos/myproject --omit-test
|
||||
|
||||
# Combine filters
|
||||
dirmd -o output.md ~/repos/myproject --skip-frontend --omit-test
|
||||
|
||||
# Generate and upload to Proton Drive (default: /my-files/md/<filename>)
|
||||
dirmd -o output.md ~/repos/myproject --proton-drive
|
||||
|
||||
# Generate and upload to a specific remote path
|
||||
dirmd -o output.md ~/repos/myproject --proton-drive --drive-path /my-files/docs/api.md
|
||||
|
||||
## Test File Omission
|
||||
|
||||
The `--omit-test` flag removes test files and inline test blocks to reduce token overhead in LLM context windows. Behavior varies by language:
|
||||
|
||||
| Language | Exclusion Strategy | What Gets Removed |
|
||||
|----------|-------------------|-------------------|
|
||||
| **Go** | File exclusion | All `*_test.go` files |
|
||||
| **Java** | File exclusion | `*Test.java`, `*Tests.java`, files under `src/test/java/` |
|
||||
| **Rust** | Content stripping | Entire `#[cfg(test)] mod tests { ... }` blocks removed from `.rs` files |
|
||||
|
||||
The Rust stripping works by detecting the `#[cfg(test)]` attribute, then tracking brace depth until the module closes. Nested braces in string literals may occasionally throw off the count, but this is acceptable for RAG use cases.
|
||||
|
||||
Frontend files can be excluded separately with `--skip-frontend`:
|
||||
|
||||
| Extension Type | Excluded With `--skip-frontend` |
|
||||
|---------------|-------------------------------|
|
||||
| Templates | `.html`, `.htm`, `.gohtml`, `.tmpl` |
|
||||
| Stylesheets | `.css`, `.scss`, `.sass`, `.less` |
|
||||
| Scripts | `.js`, `.jsx`, `.mjs`, `.cjs`, `.ts`, `.tsx` |
|
||||
| Frameworks | `.vue`, `.svelte` |
|
||||
|
||||
These flags can be combined freely:
|
||||
|
||||
dirmd -o docs.md ~/repos/myproject --skip-frontend --omit-test
|
||||
|
||||
## Vertical Slices Mode
|
||||
|
||||
When `--vertical-slices` is passed, dirmd splits output into multiple files instead of one monolithic document:
|
||||
@@ -84,7 +121,9 @@ Output is designed for RAG ingestion and LLM context windows, not human presenta
|
||||
| `--ignore` | Additional ignore patterns (glob) | |
|
||||
| `--extensions` | Additional file extensions to skip | |
|
||||
| `--proton-drive` | Upload output to Proton Drive after writing locally | false |
|
||||
| `--drive-path` | Full remote path on Proton Drive (e.g. /my-files/md/report.md) | /my-files/md/<filename> |
|
||||
| `--drive-path` | Full remote path on Proton Drive (e.g. /my-files/md/report.md) | /my-files/md/<filename> |
|
||||
| `--skip-frontend` | Omit frontend file types (.html, .css, .js, .ts, .vue, .svelte, etc.) | false |
|
||||
| `--omit-test` | Exclude test files (Go *_test.go, Java *Test.java) and strip #[cfg(test)] blocks from Rust | false |
|
||||
|
||||
## Proton Drive Integration
|
||||
|
||||
@@ -96,7 +135,7 @@ In vertical slices mode, all generated files (root + slices) are uploaded to `/m
|
||||
|
||||
1. Install the Proton Drive CLI — see the [official guide](https://proton.me/support/drive-cli) for download and installation instructions.
|
||||
2. Authenticate by running `proton-drive auth login`.
|
||||
3. Ensure `proton-drive` is in your `PATH`.
|
||||
3. Ensure `proton-drive` is in your PATH.
|
||||
|
||||
If the CLI is not installed or you are not logged in, dirmd will report the error to stderr and exit with a non-zero code. Local files are always written successfully before the upload is attempted.
|
||||
|
||||
@@ -116,6 +155,9 @@ For full documentation on the Proton Drive CLI, including installation, authenti
|
||||
# Vertical slices with overwrite
|
||||
dirmd -o docs.md ~/repos/project -f --vertical-slices
|
||||
|
||||
# Skip frontend and omit tests
|
||||
dirmd -o docs.md ~/repos/project -f --skip-frontend --omit-test
|
||||
|
||||
# Generate, then upload to default remote location
|
||||
dirmd -o docs.md ~/repos/project --proton-drive
|
||||
|
||||
|
||||
Reference in New Issue
Block a user