Briefly, toc
:
- creates a table of contents for your repo in
TOC.md
- new contributors can read this to get a sense of what's going on
- descriptions are created using the first comment in each file (or
README.md
for directories) toc
tells you when files are missing description
Currently, you must install from source. Run go build .
to build the toc
binary.
Adding toc
to major package managers would be welcome.
toc build
This creates a TOC.md
file. You should check this into your repo for others to read.
You can automatically update this with a git hook: toc-pre-commit.sh.
Add a .toc.yaml
file to your repo, this will then be used to configure toc
's
output. Here is an example from the Dark repo:
# You can add descriptions directly, useful for when you can't edit a file or directory
descriptions:
_esy: "Build directory used by esy, the OCaml package manager"
_build: "Build directory for OCaml"
esy.lock: "Lockfiles for esy, the OCaml package manager"
client/static/vendor/fontawesome-5.12.0: "Vendored font-awesome install"
# Do not display these at all - uses a gitignore glob
ignore:
- .merlin
- .ocamlformat
- /CHANGELOG.md
- /CODE-OF-CONDUCT.md
- /CODING-GUIDE.md
- /LICENSE.md
- /LICENSES
# Move these up to the top of the listing. Nested files will be moved to the top of
# the nested listing. Use this for the most important files and directories for
# contributors to read.
showFirst:
- client
- fsharp-backend
- fsharp-backend/src
- fsharp-backend/tests
# Files with these suffixes get automatic descriptions. Use for common things that
# don't need to be addressed each time
defaultDescriptions:
.fsproj: "Project file"
.unported: "Unported OCaml file"
paket.references: "Dependencies"
# Show the directory, but do not recurse into their contents.
noDirectoryContents:
- _build
- _esy
- auth0-branding
- backend/migrations
- backend/serialization
- backend/static/blazor
- backend/test_appdata
- client/static/vendor/fontawesome-5.12.0
- esy.lock
- fsharp-backend/tests/httpclienttestfiles
- fsharp-backend/tests/httptestfiles
toc check
This is useful in CI.
By default, toc
will include a count of files and directories without descriptions
at the bottom of TOC.md
. This is helpful during code review to ensure this number
doesn't sneak upwards.
Use toc build --list-missing
to give a list of files without descriptions.