Pre-commit hook#

This repo provides the following plugin to be used with the Pre-commit framework:

The .pre-commit-hooks.yaml file#
---
# Define plugins (hooks) provided by this repo.
# How to test: https://pre-commit.com/#developing-hooks-interactively

- id: md-toc
  name: Update markdown table of contents
  description: 'Automatically generate and add a table of contents to markdown files'
  language: python
  types: [markdown]  # as detected by pre-commit with identify-cli
  entry: md_toc
  args: [-p, github]

Add a .pre-commit-config.yaml file in the root of your git repo. These are the default plugin settings

A simple example of a .pre-commit-config.yaml file#
 repos:
 -   repo: https://codeberg.org/frnmst/md-toc
     # Remember to keep md-toc up-to-date!
     rev: master  # set a specific git tag
     hooks:
     -   id: md-toc

You can override the defaults via the args parameter, such as

Example of arguments passed as a pre-commit#
 repos:
 -   repo: https://codeberg.org/frnmst/md-toc
     # Remember to keep md-toc up-to-date!
     rev: master  # set a specific git tag
     hooks:
     -   id: md-toc
         args: [-p, --skip-lines, '1', redcarpet]  # CLI options

This is what I use in some repositories

# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
repos:
-   repo: https://github.com/pre-commit/pre-commit-hooks
    rev: 'v4.4.0'
    hooks:
    -   id: trailing-whitespace
    -   id: end-of-file-fixer
    -   id: check-yaml
    -   id: destroyed-symlinks
    -   id: detect-private-key
    -   id: check-ast
    -   id: check-case-conflict
    -   id: debug-statements
    -   id: fix-encoding-pragma
    -   id: forbid-submodules
    -   id: check-symlinks
    -   id: check-shebang-scripts-are-executable
    -   id: check-case-conflict
    -   id: check-added-large-files
        args: ['--maxkb=16384']
    -   id: destroyed-symlinks

-  repo: https://codeberg.org/frnmst/md-toc
   # Remember to keep md-toc up-to-date!
   rev: '8.2.0'  # set a specific git tag
   hooks:
   -    id: md-toc
        args: [-p, 'cmark', '-l6']  # CLI options

-   repo: https://github.com/jorisroovers/gitlint
    rev: 'v0.18.0'
    hooks:
    -   id: gitlint

Finally, run pre-commit install to enable the hook.