Categories: None [Edit]
mdtoc
# mdtoc - Markdown Table of Contents
Read Markdown files and output a table of contents.
## Installation
Requirements:
* [Ruby](https://www.ruby-lang.org/en/) (see [.ruby-version](./.ruby-version))
```bash
gem install mdtoc
```
## Usage
```bash
mdtoc --help
Usage: mdtoc [options] files or directories...
-h, --help Show this message
-o, --output PATH Update a table of contents in the file at PATH
-a, --[no-]append Append to the --output file if a tag isn't found
-c, --[no-]create Create the --output file if it does not exist
```
1. Add a `` tag to a Markdown file.
```bash
echo '' >> README.md
```
2. Run `mdtoc` and specify input files or directories (eg. the "test/samples" directory) and an output file (eg. "README.md").
```bash
mdtoc -aco README.md test/samples
```
## Example Rakefile
Create a `Rakefile` with the contents below, then run
[`rake`](https://github.com/ruby/rake) to:
* `git pull`
* `git add` any `*.md` files
* Run `mdtoc` to update the generated table of contents in the ./README.md file
* Git commit and push any changes
```ruby
task default: %w[mdtoc]
desc 'Update Markdown table of contents and push changes to the git repository'
task :mdtoc do
command = <<~CMD
set -e
if [ -n "$(git diff --name-only --diff-filter=U)" ]; then
echo 'Error: conflicts exist' >&2
exit 1
fi
mdtoc --append --create --output README.md docs/
git add *.md **/*.md
git commit -qm 'Update TOC' || true
git pull
git push
CMD
sh command, verbose: false do |ok, status|
unless ok
fail "Failed with status: #{status.exitstatus}"
end
end
end
```
See [andornaut/til](https://github.com/andornaut/til/blob/master/Rakefile) for an example.
## Development
### Setup
Requirements:
* [Bundler](https://bundler.io/)
* [chruby](https://github.com/postmodern/chruby) (recommended)
```bash
# Setup development environme...
Total
Ranking: 114,698 of 192,454
Downloads: 6,439
Daily
Ranking: 34,154 of 192,434
Downloads: 4
Downloads Trends
Ranking Trends
Num of Versions Trends
Popular Versions (Major)
Popular Versions (Major.Minor)
Depended by
| Rank | Downloads | Name |
|---|
Depends on
| Rank | Downloads | Name |
|---|---|---|
| 8 | 1,304,391,570 | rake |
| 14 | 1,202,275,148 | minitest |
| 56 | 684,027,408 | rubocop |
| 361 | 133,183,982 | sorbet-runtime |
| 514 | 97,242,937 | unparser |
| 1,003 | 48,891,955 | sorbet |
| 1,553 | 25,249,455 | rubocop-sorbet |
Owners
| # | Gravatar | Handle |
|---|---|---|
| 1 | andornaut |