# taskc
[](https://crates.io/crates/taskc)
[](https://docs.rs/taskc)

[](LICENSE)
[](https://www.rust-lang.org)
`taskc` scans markdown files in a directory tree, finds task sections marked with `<!-- Task -->`, and generates a static `tasks.html` catalog.
## Features
- Recursively scans all `.md` files from the current directory.
- Excludes `.git`, `target`, `node_modules`, and hidden directories.
- Extracts sections where:
- a line is exactly `<!-- Task -->` (trimmed)
- the next non-empty line is an ATX header (`#`..`######`)
- Captures section body until the next header with level `<=` the task header.
- Groups tasks by source file in the generated page.
- Dark mode by default with light/dark toggle.
- Task cards collapsed by default, with expand/collapse-all control.
## Installation
```bash
cargo install taskc
```
## Usage
Run in any directory:
```bash
taskc
```
Output:
- Generates `./tasks.html`
- Prints summary: task count, scanned markdown file count, output path
- Prints non-fatal read/walk warnings when relevant
## Task Marker Format
```md
## Build parser
Task details...
### Nested details stay inside the task
## Next section (same level) ends current task capture
```
## Local Development
Install cargo-make once:
```bash
cargo install cargo-make
```
Run common tasks:
```bash
cargo make ci
cargo make test
cargo make publish-dry-run
```
Available useful tasks:
- `cargo make fmt`
- `cargo make fmt-check`
- `cargo make clippy`
- `cargo make test`
- `cargo make doc`
- `cargo make package`
- `cargo make ci` (full local CI gate)
- `cargo make publish-dry-run`
- `cargo make publish`
- `cargo make run-fixture`
Equivalent raw cargo commands:
```bash
cargo fmt --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test
cargo package --allow-dirty
```
Manual fixture:
```bash
cd examples/manual-e2e-fixture
cargo run --manifest-path ../../Cargo.toml --
```
## License
MIT, see [LICENSE](LICENSE).