diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index 394209b2..ff37153f 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -6,7 +6,8 @@ Before submitting a PR mark the checkboxes for the items you've done (if you
think a checkbox does not apply, then leave it unchecked):
- [ ] The commits are consistent with our [contribution guidelines][1].
-- [ ] You've added tests (if possible) to cover your change(s). Bugfix, indentation, and font-lock tests are extremely important!
+- [ ] You've added tests (if possible) to cover your change(s). Bugfix, indentation, and font-lock tests
+ are extremely important!
- [ ] You've run `M-x checkdoc` and fixed any warnings in the code you've written.
- [ ] You've updated the changelog (if adding/changing user-visible functionality).
- [ ] You've updated the readme (if adding/changing user-visible functionality).
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index b83675f0..c51b4c24 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -38,3 +38,13 @@ jobs:
- name: Check for byte-compilation errors
run: eldev -dtT compile --warnings-as-errors
+
+ markdownlint:
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v5
+
+ - uses: DavidAnson/markdownlint-cli2-action@v24
+ with:
+ globs: '**/*.md'
diff --git a/.markdownlint-cli2.yaml b/.markdownlint-cli2.yaml
new file mode 100644
index 00000000..37a97df1
--- /dev/null
+++ b/.markdownlint-cli2.yaml
@@ -0,0 +1,14 @@
+config:
+ default: true
+
+ line-length:
+ line_length: 100
+ code_blocks: false
+ tables: false
+
+ no-duplicate-heading:
+ allow_different_nesting: true
+
+ no-inline-html: false
+
+ first-line-heading: false
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5c37033e..1c1243d2 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
# Changelog
+
+
+
## master (unreleased)
### New features
@@ -361,7 +365,6 @@
* [#451](https://github.com/clojure-emacs/clojure-mode/issues/451): Make project root directory calculation customized by `clojure-project-root-function`.
* Fix namespace font-locking: namespaces may also contain non alphanumeric chars.
-
## 5.6.1 (2016-12-21)
### Bugs fixed
diff --git a/README.md b/README.md
index d4a8943f..f2ef1389 100644
--- a/README.md
+++ b/README.md
@@ -204,7 +204,7 @@ personal config.
Indent specs use a **modern tuple format** shared with `clojure-ts-mode`:
| Spec | Meaning |
-|------|---------|
+| ---- | ------- |
| `'((:block N))` | First N args are special, rest indented as body |
| `'((:inner 0))` | All args indented as body (like `defn`) |
| `'((:inner D))` | Body-style indent at nesting depth D |
@@ -312,9 +312,11 @@ Backtracking is controlled by `clojure-use-backtracking-indent`
(default 3). Disabling backtracking will break indentation for
all forms with multi-rule specs.
-The indentation of [special arguments](https://docs.cider.mx/cider/indent_spec.html#special-arguments) is controlled by
-`clojure-special-arg-indent-factor`, which by default indents special arguments
-a further `lisp-body-indent` when compared to ordinary arguments.
+The indentation of [special
+arguments](https://docs.cider.mx/cider/indent_spec.html#special-arguments) is
+controlled by `clojure-special-arg-indent-factor`, which by default indents
+special arguments a further `lisp-body-indent` when compared to ordinary
+arguments.
An example of the default formatting is:
@@ -474,7 +476,7 @@ instructed how to handle the docstrings and highlighting. Here's an example:
Here's a summary of the keybindings available in `clojure-mode`:
| Keybinding | Command |
-|---|---|
+| --- | --- |
| `C-c C-a` | `clojure-align` |
| `C-:` | `clojure-toggle-keyword-string` |
| `C-c C-r t` | `clojure-thread` |
@@ -518,26 +520,26 @@ to `clojure-mode`.
`clojure-thread`: Thread another form into the surrounding thread. Both `->>`
and `->` variants are supported.
-
+
`clojure-unwind`: Unwind a threaded expression. Supports both `->>` and `->`.
-
+
`clojure-thread-first-all`: Introduce the thread first macro (`->`) and rewrite
the entire form. With a prefix argument do not thread the last form.
-
+
`clojure-thread-last-all`: Introduce the thread last macro and rewrite the
entire form. With a prefix argument do not thread the last form.
-
+
`clojure-unwind-all`: Fully unwind a threaded expression removing the threading
macro.
-
+
### Cycling things
@@ -545,22 +547,22 @@ macro.
explicitly with setting `clojure-use-metadata-for-privacy` to `t` for `defn`s
too.
-
+
`clojure-cycle-not`: Add or remove a `not` form around the current form.
-
+
`clojure-cycle-when`: Find the closest `when` or `when-not` up the syntax tree
and toggle it.
-
+
`clojure-cycle-if`: Find the closest `if` or `if-not` up the syntax tree and
toggle it. Also transpose the `else` and `then` branches, keeping the semantics
the same as before.
-
+
### Toggle discard forms
@@ -607,44 +609,45 @@ Convert any given collection at point to list, quoted list, map, vector or set.
its binding form with a name provided by the user as a bound name. If called
with a numeric prefix put the let form Nth level up in the form hierarchy.
-
+
`clojure-move-to-let`: Move the current form to the closest `let`'s binding
form. Replace all occurrences of the form in the body of the let.
-
+
`clojure-let-forward-slurp-sexp`: Slurp the next form after the `let` into the
`let`. Replace all occurrences of the bound forms in the form added to the `let`
form. If called with a prefix argument slurp the next n forms.
-
+
`clojure-let-backward-slurp-sexp`: Slurp the form before the `let` into the
`let`. Replace all occurrences of the bound forms in the form added to the `let`
form. If called with a prefix argument slurp the previous n forms.
-
+
-`paredit-convolute-sexp` is advised to replace occurrences of bound forms with their bound names when convolute is used on a let form.
+`paredit-convolute-sexp` is advised to replace occurrences of bound forms with
+their bound names when convolute is used on a let form.
### Rename ns alias
`clojure-rename-ns-alias`: Rename an alias inside a namespace declaration,
and all of its usages in the buffer
-
+
If there is an active selected region, only rename usages of aliases within the region,
without affecting the namespace declaration.
-
+
### Add arity to a function
`clojure-add-arity`: Add a new arity to an existing single-arity or multi-arity function.
-
+
### Remove unused destructured keys
@@ -821,7 +824,7 @@ slow and inaccurate.
## Changelog
-An extensive changelog is available [here](CHANGELOG.md).
+An extensive changelog is available in [CHANGELOG.md](CHANGELOG.md).
## License