| Crates.io | markcat |
| lib.rs | markcat |
| version | 1.1.3 |
| created_at | 2025-08-15 22:24:40.13701+00 |
| updated_at | 2025-09-11 18:46:26.181675+00 |
| description | Convert a project directory to markdown |
| homepage | https://github.com/RunnersNum40/markcat |
| repository | https://github.com/RunnersNum40/markcat |
| max_upload_size | |
| id | 1797587 |
| size | 34,922 |
Convert a project directory to markdown.
Respects .gitignore by default.
Filter by extension, exact filename, or files without extensions.
Output to stdout or a file.
Arch Linux (AUR)
yay -S markcat or paru -S markcat
Manual:
git clone https://aur.archlinux.org/markcat.git && cd markcat && makepkg -si
Cargo (all platforms)
cargo install markcat
markcat [OPTIONS] [DIR]
DIR may be given positionally or via -p/--path. Default is .
-p, --path <DIR> - Directory to convert. Positional <DIR> also supported-i, --ignore-gitignore - Do not apply .gitignore or standard ignore filters-t, --trim - Trim leading and trailing whitespace in file contents-w, --whitelist <ITEMS> - Comma-separated allow-list-b, --blacklist <ITEMS> - Comma-separated deny-list-g, --glob <GLOB> - Only include files matching the given glob pattern (can be used multiple times)--glob-file - Read glob patterns from a file (one per line)-o, --output <FILE> - Write output to <FILE> instead of stdout (creates or truncates)ITEMS accepts:
rs, .md, txtLICENSE, Makefile, Dockerfilenoext to match files without an extensionWhitelist passes if any item matches. Blacklist blocks if any item matches. If a whitelist is provided, non-matching files are skipped even if not blacklisted.
For each file:
path/to/fileExample description: src/main.rs emits a path line followed by a Rust code fence; LICENSE emits a path line followed by a plain fence.
markcatmarkcat src/ or markcat -p src/.gitignore: markcat -iLICENSE: markcat -w rs,md,LICENSEmarkcat -b log,noextmarkcat -o out.md src/markcat -t