mkdocs-spellcheck 1.2.0__tar.gz → 1.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. mkdocs_spellcheck-1.2.2/AI_POLICY.md +15 -0
  2. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/CHANGELOG.md +16 -0
  3. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/CONTRIBUTING.md +6 -16
  4. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/LICENSE +1 -1
  5. mkdocs_spellcheck-1.2.2/PKG-INFO +194 -0
  6. mkdocs_spellcheck-1.2.2/README.md +153 -0
  7. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/config/git-changelog.toml +1 -1
  8. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/config/ruff.toml +8 -23
  9. mkdocs_spellcheck-1.2.2/config/ty.toml +6 -0
  10. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/config/vscode/launch.json +1 -2
  11. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/config/vscode/settings.json +1 -3
  12. mkdocs_spellcheck-1.2.2/config/zed/debug.json +44 -0
  13. mkdocs_spellcheck-1.2.2/config/zed/settings.json +43 -0
  14. mkdocs_spellcheck-1.2.2/config/zed/tasks.json +72 -0
  15. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/docs/.overrides/partials/comments.html +1 -1
  16. mkdocs_spellcheck-1.2.2/docs/css/apidocs.css +21 -0
  17. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/docs/known_words.txt +2 -0
  18. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/duties.py +78 -18
  19. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/pyproject.toml +10 -16
  20. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/scripts/gen_credits.py +34 -23
  21. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/scripts/get_version.py +18 -0
  22. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/scripts/make.py +36 -10
  23. mkdocs_spellcheck-1.2.2/src/mkdocs_spellcheck/__init__.py +39 -0
  24. mkdocs_spellcheck-1.2.2/src/mkdocs_spellcheck/_internal/__init__.py +17 -0
  25. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/src/mkdocs_spellcheck/_internal/backends/__init__.py +18 -0
  26. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/src/mkdocs_spellcheck/_internal/backends/codespell.py +19 -1
  27. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/src/mkdocs_spellcheck/_internal/backends/symspellpy.py +18 -0
  28. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/src/mkdocs_spellcheck/_internal/debug.py +19 -1
  29. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/src/mkdocs_spellcheck/_internal/plugin.py +18 -0
  30. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/src/mkdocs_spellcheck/_internal/words.py +26 -0
  31. mkdocs_spellcheck-1.2.2/src/mkdocs_spellcheck/backends/__init__.py +35 -0
  32. mkdocs_spellcheck-1.2.2/src/mkdocs_spellcheck/backends/codespell.py +35 -0
  33. mkdocs_spellcheck-1.2.2/src/mkdocs_spellcheck/backends/symspellpy.py +35 -0
  34. mkdocs_spellcheck-1.2.2/src/mkdocs_spellcheck/plugin.py +35 -0
  35. mkdocs_spellcheck-1.2.2/src/mkdocs_spellcheck/words.py +35 -0
  36. mkdocs_spellcheck-1.2.2/tests/__init__.py +25 -0
  37. mkdocs_spellcheck-1.2.2/tests/conftest.py +19 -0
  38. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/tests/test_api.py +23 -5
  39. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/tests/test_words.py +18 -0
  40. mkdocs_spellcheck-1.2.2/zensical.toml +186 -0
  41. mkdocs_spellcheck-1.2.0/PKG-INFO +0 -145
  42. mkdocs_spellcheck-1.2.0/README.md +0 -104
  43. mkdocs_spellcheck-1.2.0/mkdocs.yml +0 -181
  44. mkdocs_spellcheck-1.2.0/src/mkdocs_spellcheck/__init__.py +0 -21
  45. mkdocs_spellcheck-1.2.0/src/mkdocs_spellcheck/_internal/__init__.py +0 -0
  46. mkdocs_spellcheck-1.2.0/src/mkdocs_spellcheck/backends/__init__.py +0 -17
  47. mkdocs_spellcheck-1.2.0/src/mkdocs_spellcheck/backends/codespell.py +0 -17
  48. mkdocs_spellcheck-1.2.0/src/mkdocs_spellcheck/backends/symspellpy.py +0 -17
  49. mkdocs_spellcheck-1.2.0/src/mkdocs_spellcheck/plugin.py +0 -17
  50. mkdocs_spellcheck-1.2.0/src/mkdocs_spellcheck/words.py +0 -17
  51. mkdocs_spellcheck-1.2.0/tests/__init__.py +0 -7
  52. mkdocs_spellcheck-1.2.0/tests/conftest.py +0 -1
  53. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/CODE_OF_CONDUCT.md +0 -0
  54. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/config/coverage.ini +0 -0
  55. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/config/mypy.ini +0 -0
  56. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/config/pytest.ini +0 -0
  57. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/config/vscode/tasks.json +0 -0
  58. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/docs/.overrides/partials/path-item.html +0 -0
  59. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/docs/changelog.md +0 -0
  60. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/docs/code_of_conduct.md +0 -0
  61. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/docs/contributing.md +0 -0
  62. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/docs/credits.md +0 -0
  63. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/docs/css/material.css +0 -0
  64. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/docs/css/mkdocstrings.css +0 -0
  65. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/docs/index.md +0 -0
  66. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/docs/js/feedback.js +0 -0
  67. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/docs/license.md +0 -0
  68. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/docs/reference/api.md +0 -0
  69. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/docs/schema.json +0 -0
  70. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/scripts/make +0 -0
  71. {mkdocs_spellcheck-1.2.0 → mkdocs_spellcheck-1.2.2}/src/mkdocs_spellcheck/py.typed +0 -0
@@ -0,0 +1,15 @@
1
+ # AI Contribution Policy
2
+
3
+ We accept AI-*assisted* contributions, both for code and documentation, with the following expectations:
4
+
5
+ - AI-assisted contributions must disclaim their use of AI.
6
+ - Contributors must fully understand the proposed changes and be able to explain why they are the correct approach.
7
+ - Issues must be created before creating pull requests (unless there is already a relevant issue).
8
+ - Issue and pull request templates must be followed.
9
+ - Comments (including bodies) in issues and pull requests must be written by humans. If you use LLMs to translate from one language to another, please include your original comment and the translated one.
10
+ - Git commits must be authored by humans, not AI/bot accounts or identities.
11
+ - Git commit messages must be written by humans, in English. If you cannot write English, please state so in the pull request body and we will write the commit messages ourselves.
12
+
13
+ Failure to comply with any of these requirements will result in issues or pull requests being closed immediately without comment. Repeated violations of this policy will result in a ban of the offending accounts/identities from contributing to this project and any related project from the same author/organization.
14
+
15
+ We do not accept AI-generated content in community spaces we maintain or moderate, such as GitHub discussions or Matrix rooms.
@@ -5,6 +5,22 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
5
5
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
6
6
 
7
7
  <!-- insertion marker -->
8
+ ## [1.2.2](https://github.com/pawamoy/mkdocs-spellcheck/releases/tag/1.2.2) - 2026-10-06
9
+
10
+ <small>[Compare with 1.2.1](https://github.com/pawamoy/mkdocs-spellcheck/compare/1.2.1...1.2.2)</small>
11
+
12
+ ### Build
13
+
14
+ - Drop support for Python 3.10 ([6f04fb6](https://github.com/pawamoy/mkdocs-spellcheck/commit/6f04fb6edf6e8b6d7c8f96e573789e6096040d9c) by Timothée Mazzucotelli).
15
+
16
+ ## [1.2.1](https://github.com/pawamoy/mkdocs-spellcheck/releases/tag/1.2.1) - 2026-02-11
17
+
18
+ <small>[Compare with 1.2.0](https://github.com/pawamoy/mkdocs-spellcheck/compare/1.2.0...1.2.1)</small>
19
+
20
+ ### Bug Fixes
21
+
22
+ - Ignore contents of `<script>` tags ([80c72bc](https://github.com/pawamoy/mkdocs-spellcheck/commit/80c72bc8af46fd114cea75ba2628df2d46495d98) by Tino Wagner). [PR-40](https://github.com/pawamoy/mkdocs-spellcheck/pull/40)
23
+
8
24
  ## [1.2.0](https://github.com/pawamoy/mkdocs-spellcheck/releases/tag/1.2.0) - 2025-12-01
9
25
 
10
26
  <small>[Compare with 1.1.2](https://github.com/pawamoy/mkdocs-spellcheck/compare/1.1.2...1.2.0)</small>
@@ -1,36 +1,26 @@
1
1
  # Contributing
2
2
 
3
- Contributions are welcome, and they are greatly appreciated! Every little bit helps, and credit will always be given.
3
+ Contributions are welcome, and they are greatly appreciated. Every little bit helps, and credit will always be given.
4
4
 
5
- ## Environment setup
5
+ **Please always create an issue before working on a new feature or a bug fix, so that we can discuss the implementation and make sure that your work will be merged.**
6
6
 
7
- Nothing easier!
7
+ ## Environment setup
8
8
 
9
- Fork and clone the repository, then:
9
+ Install [uv](https://github.com/astral-sh/uv) and [direnv](https://direnv.net/), fork and clone the repository, then:
10
10
 
11
11
  ```bash
12
12
  cd mkdocs-spellcheck
13
+ direnv allow
13
14
  make setup
14
15
  ```
15
16
 
16
- > NOTE: If it fails for some reason, you'll need to install [uv](https://github.com/astral-sh/uv) manually.
17
- >
18
- > You can install it with:
19
- >
20
- > ```bash
21
- > curl -LsSf https://astral.sh/uv/install.sh | sh
22
- > ```
23
- >
24
- > Now you can try running `make setup` again, or simply `uv sync`.
25
-
26
17
  You now have the dependencies installed.
27
18
 
28
19
  Run `make help` to see all the available actions!
29
20
 
30
21
  ## Tasks
31
22
 
32
- The entry-point to run commands and tasks is the `make` Python script, located in the `scripts` directory. Try running `make` to show the available commands and tasks. The *commands* do not need the Python dependencies to be installed,
33
- while the *tasks* do. The cross-platform tasks are written in Python, thanks to [duty](https://github.com/pawamoy/duty).
23
+ The entry-point to run commands and tasks is the `make` Python script, located in the `scripts` directory. Try running `make` to show the available commands and tasks. The *commands* do not need the Python dependencies to be installed, while the *tasks* do. The cross-platform tasks are written in Python, thanks to [duty](https://github.com/pawamoy/duty).
34
24
 
35
25
  If you work in VSCode, we provide [an action to configure VSCode](https://pawamoy.github.io/copier-uv/work/#vscode-setup) for the project.
36
26
 
@@ -1,6 +1,6 @@
1
1
  ISC License
2
2
 
3
- Copyright (c) 2022, Timothée Mazzucotelli
3
+ Copyright (c) 2022, Timothée Mazzucotelli and contributors
4
4
 
5
5
  Permission to use, copy, modify, and/or distribute this software for any
6
6
  purpose with or without fee is hereby granted, provided that the above
@@ -0,0 +1,194 @@
1
+ Metadata-Version: 2.4
2
+ Name: mkdocs-spellcheck
3
+ Version: 1.2.2
4
+ Summary: A spell checker plugin for MkDocs.
5
+ Author-Email: Timothée Mazzucotelli <dev@pawamoy.fr>
6
+ License-Expression: ISC
7
+ License-File: LICENSE
8
+ Classifier: Development Status :: 4 - Beta
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: Programming Language :: Python
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3 :: Only
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Classifier: Programming Language :: Python :: 3.14
17
+ Classifier: Programming Language :: Python :: 3.15
18
+ Classifier: Topic :: Documentation
19
+ Classifier: Topic :: Software Development
20
+ Classifier: Topic :: Software Development :: Documentation
21
+ Classifier: Topic :: Utilities
22
+ Classifier: Typing :: Typed
23
+ Project-URL: Homepage, https://pawamoy.github.io/mkdocs-spellcheck
24
+ Project-URL: Documentation, https://pawamoy.github.io/mkdocs-spellcheck
25
+ Project-URL: Changelog, https://pawamoy.github.io/mkdocs-spellcheck/changelog
26
+ Project-URL: Repository, https://github.com/pawamoy/mkdocs-spellcheck
27
+ Project-URL: Issues, https://github.com/pawamoy/mkdocs-spellcheck/issues
28
+ Project-URL: Discussions, https://github.com/pawamoy/mkdocs-spellcheck/discussions
29
+ Project-URL: Gitter, https://gitter.im/mkdocs-spellcheck/community
30
+ Project-URL: Funding, https://github.com/sponsors/pawamoy
31
+ Requires-Python: >=3.11
32
+ Requires-Dist: mkdocs>=1.5
33
+ Provides-Extra: all
34
+ Requires-Dist: mkdocs-spellcheck[codespell,symspellpy]; extra == "all"
35
+ Provides-Extra: codespell
36
+ Requires-Dist: codespell>=2.2.2; extra == "codespell"
37
+ Provides-Extra: symspellpy
38
+ Requires-Dist: symspellpy>=6.7.6; extra == "symspellpy"
39
+ Requires-Dist: importlib-resources>=6.4; python_version < "3.9" and extra == "symspellpy"
40
+ Description-Content-Type: text/markdown
41
+
42
+ # MkDocs SpellCheck
43
+
44
+ > [!WARNING]
45
+ > This project is in maintenance mode. I'm now dedicating my time to [Zensical](https://zensical.org/). Feel free to reach out for a responsible transfer of maintainership.
46
+
47
+ [![ci](https://github.com/pawamoy/mkdocs-spellcheck/workflows/ci/badge.svg)](https://github.com/pawamoy/mkdocs-spellcheck/actions?query=workflow%3Aci)
48
+ [![documentation](https://img.shields.io/badge/docs-zensical-FF9100.svg?style=flat)](https://pawamoy.github.io/mkdocs-spellcheck/)
49
+ [![pypi version](https://img.shields.io/pypi/v/mkdocs-spellcheck.svg)](https://pypi.org/project/mkdocs-spellcheck/)
50
+ [![gitter](https://img.shields.io/badge/matrix-chat-4DB798.svg?style=flat)](https://app.gitter.im/#/room/#mkdocs-spellcheck:gitter.im)
51
+
52
+ A spell checker plugin for MkDocs.
53
+
54
+ This plugin can use different backends
55
+ to check the spelling of words in your final HTML pages.
56
+ These backends are:
57
+
58
+ - [`codespell`](https://github.com/codespell-project/codespell)
59
+ - [`symspellpy`](https://github.com/mammothb/symspellpy)
60
+
61
+ ## Installation
62
+
63
+ To install all backends, use the `all` extra. Otherwise specify the name(s) of the backend(s) as extra.
64
+
65
+ ```bash
66
+ pip install 'mkdocs-spellcheck[all]'
67
+ pip install 'mkdocs-spellcheck[codespell]'
68
+ pip install 'mkdocs-spellcheck[symspellpy]'
69
+ pip install 'mkdocs-spellcheck[codespell,symspellpy]'
70
+ ```
71
+
72
+ ## Usage
73
+
74
+ ```yaml
75
+ # mkdocs.yml
76
+ plugins:
77
+ - search
78
+ - spellcheck:
79
+ backends: # the backends you want to use
80
+ - symspellpy # as strings
81
+ - codespell: # or nested configs
82
+ dictionaries: [clear, rare]
83
+
84
+ # known_words can also be a list of words
85
+ known_words: known_words.txt
86
+
87
+ # ignore words in <code> tags
88
+ ignore_code: yes
89
+
90
+ # minimum length of words to consider
91
+ min_length: 2
92
+
93
+ # maximum number of capital letters in a word
94
+ max_capital: 1
95
+
96
+ # keep unicode characters
97
+ allow_unicode: no
98
+
99
+ # skip files entirely (supports Unix shell-style wildcards)
100
+ skip_files:
101
+ - credits.md
102
+ - coverage.md
103
+ - reference/*
104
+
105
+ # whether to only check in strict mode
106
+ strict_only: yes
107
+ ```
108
+
109
+ By default, the `symspellpy` backend is used.
110
+
111
+ Once your configuration is ready, just run `mkdocs build -s` to check the spelling inside your pages.
112
+
113
+ ### `codespell`
114
+
115
+ The builtin dictionaries are:
116
+
117
+ - `clear` for unambiguous errors
118
+ - `rare` for rare (but valid) words that are likely to be errors
119
+ - `informal` for making informal words more formal
120
+ - `usage` for replacing phrasing with recommended terms
121
+ - `code` for words from code and/or mathematics that are likely
122
+ to be typos in other contexts (such as `uint`)
123
+ - `names` for valid proper names that might be typos
124
+ - `en-GB_to_en-US` for corrections from `en-GB` to `en-US`
125
+
126
+ ### On-off regions
127
+
128
+ In some situations it can be useful to temporarily disable spell checking for a document.
129
+ To this end, MkDocs SpellCheck recognizes special guards `mkdocs-spellcheck-{on,off}`:
130
+
131
+ ```md
132
+ Here MkDocs SpellCheck checks for correct spelling.
133
+
134
+ <!-- mkdocs-spellcheck-off -->
135
+ In this block it doesn't.
136
+ <!-- mkdocs-spellcheck-on -->
137
+
138
+ Here spelling checks are performed again.
139
+ ```
140
+
141
+ ## Sponsors
142
+
143
+ <!-- sponsors-start -->
144
+
145
+ <div id="premium-sponsors" style="text-align: center;">
146
+
147
+ <div id="silver-sponsors"><b>Silver sponsors</b><p>
148
+ <a href="https://fastapi.tiangolo.com/"><img alt="FastAPI" src="https://raw.githubusercontent.com/tiangolo/fastapi/master/docs/en/docs/img/logo-margin/logo-teal.png" style="height: 200px; "></a><br>
149
+ </p></div>
150
+
151
+ <div id="bronze-sponsors"><b>Bronze sponsors</b><p>
152
+ <a href="https://www.nixtla.io/"><picture><source media="(prefers-color-scheme: light)" srcset="https://www.nixtla.io/img/logo/full-black.svg"><source media="(prefers-color-scheme: dark)" srcset="https://www.nixtla.io/img/logo/full-white.svg"><img alt="Nixtla" src="https://www.nixtla.io/img/logo/full-black.svg" style="height: 60px; "></picture></a><br>
153
+ </p></div>
154
+ </div>
155
+
156
+ ---
157
+
158
+ <div id="sponsors"><p>
159
+ <a href="https://github.com/ofek"><img alt="ofek" src="https://avatars.githubusercontent.com/u/9677399?u=386c330f212ce467ce7119d9615c75d0e9b9f1ce&v=4" style="height: 32px; border-radius: 100%;"></a>
160
+ <a href="https://github.com/samuelcolvin"><img alt="samuelcolvin" src="https://avatars.githubusercontent.com/u/4039449?u=42eb3b833047c8c4b4f647a031eaef148c16d93f&v=4" style="height: 32px; border-radius: 100%;"></a>
161
+ <a href="https://github.com/tlambert03"><img alt="tlambert03" src="https://avatars.githubusercontent.com/u/1609449?u=922abf0524b47739b37095e553c99488814b05db&v=4" style="height: 32px; border-radius: 100%;"></a>
162
+ <a href="https://github.com/ssbarnea"><img alt="ssbarnea" src="https://avatars.githubusercontent.com/u/102495?u=c7bd9ddf127785286fc939dd18cb02db0a453bce&v=4" style="height: 32px; border-radius: 100%;"></a>
163
+ <a href="https://github.com/femtomc"><img alt="femtomc" src="https://avatars.githubusercontent.com/u/34410036?u=f13a71daf2a9f0d2da189beaa94250daa629e2d8&v=4" style="height: 32px; border-radius: 100%;"></a>
164
+ <a href="https://github.com/cmarqu"><img alt="cmarqu" src="https://avatars.githubusercontent.com/u/360986?v=4" style="height: 32px; border-radius: 100%;"></a>
165
+ <a href="https://github.com/kolenaIO"><img alt="kolenaIO" src="https://avatars.githubusercontent.com/u/77010818?v=4" style="height: 32px; border-radius: 100%;"></a>
166
+ <a href="https://github.com/ramnes"><img alt="ramnes" src="https://avatars.githubusercontent.com/u/835072?u=3fca03c3ba0051e2eb652b1def2188a94d1e1dc2&v=4" style="height: 32px; border-radius: 100%;"></a>
167
+ <a href="https://github.com/machow"><img alt="machow" src="https://avatars.githubusercontent.com/u/2574498?u=c41e3d2f758a05102d8075e38d67b9c17d4189d7&v=4" style="height: 32px; border-radius: 100%;"></a>
168
+ <a href="https://github.com/BenHammersley"><img alt="BenHammersley" src="https://avatars.githubusercontent.com/u/99436?u=4499a7b507541045222ee28ae122dbe3c8d08ab5&v=4" style="height: 32px; border-radius: 100%;"></a>
169
+ <a href="https://github.com/trevorWieland"><img alt="trevorWieland" src="https://avatars.githubusercontent.com/u/28811461?u=74cc0e3756c1d4e3d66b5c396e1d131ea8a10472&v=4" style="height: 32px; border-radius: 100%;"></a>
170
+ <a href="https://github.com/MarcoGorelli"><img alt="MarcoGorelli" src="https://avatars.githubusercontent.com/u/33491632?u=7de3a749cac76a60baca9777baf71d043a4f884d&v=4" style="height: 32px; border-radius: 100%;"></a>
171
+ <a href="https://github.com/analog-cbarber"><img alt="analog-cbarber" src="https://avatars.githubusercontent.com/u/7408243?u=fe0e7bf2882d1c9c901a341c2502e1518466527a&v=4" style="height: 32px; border-radius: 100%;"></a>
172
+ <a href="https://github.com/OdinManiac"><img alt="OdinManiac" src="https://avatars.githubusercontent.com/u/22727172?u=36ab20970f7f52ae8e7eb67b7fcf491fee01ac22&v=4" style="height: 32px; border-radius: 100%;"></a>
173
+ <a href="https://github.com/rstudio-sponsorship"><img alt="rstudio-sponsorship" src="https://avatars.githubusercontent.com/u/58949051?u=0c471515dd18111be30dfb7669ed5e778970959b&v=4" style="height: 32px; border-radius: 100%;"></a>
174
+ <a href="https://github.com/schlich"><img alt="schlich" src="https://avatars.githubusercontent.com/u/21191435?u=6f1240adb68f21614d809ae52d66509f46b1e877&v=4" style="height: 32px; border-radius: 100%;"></a>
175
+ <a href="https://github.com/butterlyn"><img alt="butterlyn" src="https://avatars.githubusercontent.com/u/53323535?v=4" style="height: 32px; border-radius: 100%;"></a>
176
+ <a href="https://github.com/livingbio"><img alt="livingbio" src="https://avatars.githubusercontent.com/u/10329983?v=4" style="height: 32px; border-radius: 100%;"></a>
177
+ <a href="https://github.com/NemetschekAllplan"><img alt="NemetschekAllplan" src="https://avatars.githubusercontent.com/u/912034?v=4" style="height: 32px; border-radius: 100%;"></a>
178
+ <a href="https://github.com/EricJayHartman"><img alt="EricJayHartman" src="https://avatars.githubusercontent.com/u/9259499?u=7e58cc7ec0cd3e85b27aec33656aa0f6612706dd&v=4" style="height: 32px; border-radius: 100%;"></a>
179
+ <a href="https://github.com/15r10nk"><img alt="15r10nk" src="https://avatars.githubusercontent.com/u/44680962?u=f04826446ff165742efa81e314bd03bf1724d50e&v=4" style="height: 32px; border-radius: 100%;"></a>
180
+ <a href="https://github.com/activeloopai"><img alt="activeloopai" src="https://avatars.githubusercontent.com/u/34816118?v=4" style="height: 32px; border-radius: 100%;"></a>
181
+ <a href="https://github.com/roboflow"><img alt="roboflow" src="https://avatars.githubusercontent.com/u/53104118?v=4" style="height: 32px; border-radius: 100%;"></a>
182
+ <a href="https://github.com/cmclaughlin"><img alt="cmclaughlin" src="https://avatars.githubusercontent.com/u/1061109?u=ddf6eec0edd2d11c980f8c3aa96e3d044d4e0468&v=4" style="height: 32px; border-radius: 100%;"></a>
183
+ <a href="https://github.com/RapidataAI"><img alt="RapidataAI" src="https://avatars.githubusercontent.com/u/104209891?v=4" style="height: 32px; border-radius: 100%;"></a>
184
+ <a href="https://github.com/rodolphebarbanneau"><img alt="rodolphebarbanneau" src="https://avatars.githubusercontent.com/u/46493454?u=6c405452a40c231cdf0b68e97544e07ee956a733&v=4" style="height: 32px; border-radius: 100%;"></a>
185
+ <a href="https://github.com/theSymbolSyndicate"><img alt="theSymbolSyndicate" src="https://avatars.githubusercontent.com/u/111542255?v=4" style="height: 32px; border-radius: 100%;"></a>
186
+ <a href="https://github.com/blakeNaccarato"><img alt="blakeNaccarato" src="https://avatars.githubusercontent.com/u/20692450?u=bb919218be30cfa994514f4cf39bb2f7cf952df4&v=4" style="height: 32px; border-radius: 100%;"></a>
187
+ <a href="https://github.com/ChargeStorm"><img alt="ChargeStorm" src="https://avatars.githubusercontent.com/u/26000165?v=4" style="height: 32px; border-radius: 100%;"></a>
188
+ <a href="https://github.com/Cusp-AI"><img alt="Cusp-AI" src="https://avatars.githubusercontent.com/u/178170649?v=4" style="height: 32px; border-radius: 100%;"></a>
189
+ </p></div>
190
+
191
+
192
+ *And 4 more private sponsor(s).*
193
+
194
+ <!-- sponsors-end -->
@@ -0,0 +1,153 @@
1
+ # MkDocs SpellCheck
2
+
3
+ > [!WARNING]
4
+ > This project is in maintenance mode. I'm now dedicating my time to [Zensical](https://zensical.org/). Feel free to reach out for a responsible transfer of maintainership.
5
+
6
+ [![ci](https://github.com/pawamoy/mkdocs-spellcheck/workflows/ci/badge.svg)](https://github.com/pawamoy/mkdocs-spellcheck/actions?query=workflow%3Aci)
7
+ [![documentation](https://img.shields.io/badge/docs-zensical-FF9100.svg?style=flat)](https://pawamoy.github.io/mkdocs-spellcheck/)
8
+ [![pypi version](https://img.shields.io/pypi/v/mkdocs-spellcheck.svg)](https://pypi.org/project/mkdocs-spellcheck/)
9
+ [![gitter](https://img.shields.io/badge/matrix-chat-4DB798.svg?style=flat)](https://app.gitter.im/#/room/#mkdocs-spellcheck:gitter.im)
10
+
11
+ A spell checker plugin for MkDocs.
12
+
13
+ This plugin can use different backends
14
+ to check the spelling of words in your final HTML pages.
15
+ These backends are:
16
+
17
+ - [`codespell`](https://github.com/codespell-project/codespell)
18
+ - [`symspellpy`](https://github.com/mammothb/symspellpy)
19
+
20
+ ## Installation
21
+
22
+ To install all backends, use the `all` extra. Otherwise specify the name(s) of the backend(s) as extra.
23
+
24
+ ```bash
25
+ pip install 'mkdocs-spellcheck[all]'
26
+ pip install 'mkdocs-spellcheck[codespell]'
27
+ pip install 'mkdocs-spellcheck[symspellpy]'
28
+ pip install 'mkdocs-spellcheck[codespell,symspellpy]'
29
+ ```
30
+
31
+ ## Usage
32
+
33
+ ```yaml
34
+ # mkdocs.yml
35
+ plugins:
36
+ - search
37
+ - spellcheck:
38
+ backends: # the backends you want to use
39
+ - symspellpy # as strings
40
+ - codespell: # or nested configs
41
+ dictionaries: [clear, rare]
42
+
43
+ # known_words can also be a list of words
44
+ known_words: known_words.txt
45
+
46
+ # ignore words in <code> tags
47
+ ignore_code: yes
48
+
49
+ # minimum length of words to consider
50
+ min_length: 2
51
+
52
+ # maximum number of capital letters in a word
53
+ max_capital: 1
54
+
55
+ # keep unicode characters
56
+ allow_unicode: no
57
+
58
+ # skip files entirely (supports Unix shell-style wildcards)
59
+ skip_files:
60
+ - credits.md
61
+ - coverage.md
62
+ - reference/*
63
+
64
+ # whether to only check in strict mode
65
+ strict_only: yes
66
+ ```
67
+
68
+ By default, the `symspellpy` backend is used.
69
+
70
+ Once your configuration is ready, just run `mkdocs build -s` to check the spelling inside your pages.
71
+
72
+ ### `codespell`
73
+
74
+ The builtin dictionaries are:
75
+
76
+ - `clear` for unambiguous errors
77
+ - `rare` for rare (but valid) words that are likely to be errors
78
+ - `informal` for making informal words more formal
79
+ - `usage` for replacing phrasing with recommended terms
80
+ - `code` for words from code and/or mathematics that are likely
81
+ to be typos in other contexts (such as `uint`)
82
+ - `names` for valid proper names that might be typos
83
+ - `en-GB_to_en-US` for corrections from `en-GB` to `en-US`
84
+
85
+ ### On-off regions
86
+
87
+ In some situations it can be useful to temporarily disable spell checking for a document.
88
+ To this end, MkDocs SpellCheck recognizes special guards `mkdocs-spellcheck-{on,off}`:
89
+
90
+ ```md
91
+ Here MkDocs SpellCheck checks for correct spelling.
92
+
93
+ <!-- mkdocs-spellcheck-off -->
94
+ In this block it doesn't.
95
+ <!-- mkdocs-spellcheck-on -->
96
+
97
+ Here spelling checks are performed again.
98
+ ```
99
+
100
+ ## Sponsors
101
+
102
+ <!-- sponsors-start -->
103
+
104
+ <div id="premium-sponsors" style="text-align: center;">
105
+
106
+ <div id="silver-sponsors"><b>Silver sponsors</b><p>
107
+ <a href="https://fastapi.tiangolo.com/"><img alt="FastAPI" src="https://raw.githubusercontent.com/tiangolo/fastapi/master/docs/en/docs/img/logo-margin/logo-teal.png" style="height: 200px; "></a><br>
108
+ </p></div>
109
+
110
+ <div id="bronze-sponsors"><b>Bronze sponsors</b><p>
111
+ <a href="https://www.nixtla.io/"><picture><source media="(prefers-color-scheme: light)" srcset="https://www.nixtla.io/img/logo/full-black.svg"><source media="(prefers-color-scheme: dark)" srcset="https://www.nixtla.io/img/logo/full-white.svg"><img alt="Nixtla" src="https://www.nixtla.io/img/logo/full-black.svg" style="height: 60px; "></picture></a><br>
112
+ </p></div>
113
+ </div>
114
+
115
+ ---
116
+
117
+ <div id="sponsors"><p>
118
+ <a href="https://github.com/ofek"><img alt="ofek" src="https://avatars.githubusercontent.com/u/9677399?u=386c330f212ce467ce7119d9615c75d0e9b9f1ce&v=4" style="height: 32px; border-radius: 100%;"></a>
119
+ <a href="https://github.com/samuelcolvin"><img alt="samuelcolvin" src="https://avatars.githubusercontent.com/u/4039449?u=42eb3b833047c8c4b4f647a031eaef148c16d93f&v=4" style="height: 32px; border-radius: 100%;"></a>
120
+ <a href="https://github.com/tlambert03"><img alt="tlambert03" src="https://avatars.githubusercontent.com/u/1609449?u=922abf0524b47739b37095e553c99488814b05db&v=4" style="height: 32px; border-radius: 100%;"></a>
121
+ <a href="https://github.com/ssbarnea"><img alt="ssbarnea" src="https://avatars.githubusercontent.com/u/102495?u=c7bd9ddf127785286fc939dd18cb02db0a453bce&v=4" style="height: 32px; border-radius: 100%;"></a>
122
+ <a href="https://github.com/femtomc"><img alt="femtomc" src="https://avatars.githubusercontent.com/u/34410036?u=f13a71daf2a9f0d2da189beaa94250daa629e2d8&v=4" style="height: 32px; border-radius: 100%;"></a>
123
+ <a href="https://github.com/cmarqu"><img alt="cmarqu" src="https://avatars.githubusercontent.com/u/360986?v=4" style="height: 32px; border-radius: 100%;"></a>
124
+ <a href="https://github.com/kolenaIO"><img alt="kolenaIO" src="https://avatars.githubusercontent.com/u/77010818?v=4" style="height: 32px; border-radius: 100%;"></a>
125
+ <a href="https://github.com/ramnes"><img alt="ramnes" src="https://avatars.githubusercontent.com/u/835072?u=3fca03c3ba0051e2eb652b1def2188a94d1e1dc2&v=4" style="height: 32px; border-radius: 100%;"></a>
126
+ <a href="https://github.com/machow"><img alt="machow" src="https://avatars.githubusercontent.com/u/2574498?u=c41e3d2f758a05102d8075e38d67b9c17d4189d7&v=4" style="height: 32px; border-radius: 100%;"></a>
127
+ <a href="https://github.com/BenHammersley"><img alt="BenHammersley" src="https://avatars.githubusercontent.com/u/99436?u=4499a7b507541045222ee28ae122dbe3c8d08ab5&v=4" style="height: 32px; border-radius: 100%;"></a>
128
+ <a href="https://github.com/trevorWieland"><img alt="trevorWieland" src="https://avatars.githubusercontent.com/u/28811461?u=74cc0e3756c1d4e3d66b5c396e1d131ea8a10472&v=4" style="height: 32px; border-radius: 100%;"></a>
129
+ <a href="https://github.com/MarcoGorelli"><img alt="MarcoGorelli" src="https://avatars.githubusercontent.com/u/33491632?u=7de3a749cac76a60baca9777baf71d043a4f884d&v=4" style="height: 32px; border-radius: 100%;"></a>
130
+ <a href="https://github.com/analog-cbarber"><img alt="analog-cbarber" src="https://avatars.githubusercontent.com/u/7408243?u=fe0e7bf2882d1c9c901a341c2502e1518466527a&v=4" style="height: 32px; border-radius: 100%;"></a>
131
+ <a href="https://github.com/OdinManiac"><img alt="OdinManiac" src="https://avatars.githubusercontent.com/u/22727172?u=36ab20970f7f52ae8e7eb67b7fcf491fee01ac22&v=4" style="height: 32px; border-radius: 100%;"></a>
132
+ <a href="https://github.com/rstudio-sponsorship"><img alt="rstudio-sponsorship" src="https://avatars.githubusercontent.com/u/58949051?u=0c471515dd18111be30dfb7669ed5e778970959b&v=4" style="height: 32px; border-radius: 100%;"></a>
133
+ <a href="https://github.com/schlich"><img alt="schlich" src="https://avatars.githubusercontent.com/u/21191435?u=6f1240adb68f21614d809ae52d66509f46b1e877&v=4" style="height: 32px; border-radius: 100%;"></a>
134
+ <a href="https://github.com/butterlyn"><img alt="butterlyn" src="https://avatars.githubusercontent.com/u/53323535?v=4" style="height: 32px; border-radius: 100%;"></a>
135
+ <a href="https://github.com/livingbio"><img alt="livingbio" src="https://avatars.githubusercontent.com/u/10329983?v=4" style="height: 32px; border-radius: 100%;"></a>
136
+ <a href="https://github.com/NemetschekAllplan"><img alt="NemetschekAllplan" src="https://avatars.githubusercontent.com/u/912034?v=4" style="height: 32px; border-radius: 100%;"></a>
137
+ <a href="https://github.com/EricJayHartman"><img alt="EricJayHartman" src="https://avatars.githubusercontent.com/u/9259499?u=7e58cc7ec0cd3e85b27aec33656aa0f6612706dd&v=4" style="height: 32px; border-radius: 100%;"></a>
138
+ <a href="https://github.com/15r10nk"><img alt="15r10nk" src="https://avatars.githubusercontent.com/u/44680962?u=f04826446ff165742efa81e314bd03bf1724d50e&v=4" style="height: 32px; border-radius: 100%;"></a>
139
+ <a href="https://github.com/activeloopai"><img alt="activeloopai" src="https://avatars.githubusercontent.com/u/34816118?v=4" style="height: 32px; border-radius: 100%;"></a>
140
+ <a href="https://github.com/roboflow"><img alt="roboflow" src="https://avatars.githubusercontent.com/u/53104118?v=4" style="height: 32px; border-radius: 100%;"></a>
141
+ <a href="https://github.com/cmclaughlin"><img alt="cmclaughlin" src="https://avatars.githubusercontent.com/u/1061109?u=ddf6eec0edd2d11c980f8c3aa96e3d044d4e0468&v=4" style="height: 32px; border-radius: 100%;"></a>
142
+ <a href="https://github.com/RapidataAI"><img alt="RapidataAI" src="https://avatars.githubusercontent.com/u/104209891?v=4" style="height: 32px; border-radius: 100%;"></a>
143
+ <a href="https://github.com/rodolphebarbanneau"><img alt="rodolphebarbanneau" src="https://avatars.githubusercontent.com/u/46493454?u=6c405452a40c231cdf0b68e97544e07ee956a733&v=4" style="height: 32px; border-radius: 100%;"></a>
144
+ <a href="https://github.com/theSymbolSyndicate"><img alt="theSymbolSyndicate" src="https://avatars.githubusercontent.com/u/111542255?v=4" style="height: 32px; border-radius: 100%;"></a>
145
+ <a href="https://github.com/blakeNaccarato"><img alt="blakeNaccarato" src="https://avatars.githubusercontent.com/u/20692450?u=bb919218be30cfa994514f4cf39bb2f7cf952df4&v=4" style="height: 32px; border-radius: 100%;"></a>
146
+ <a href="https://github.com/ChargeStorm"><img alt="ChargeStorm" src="https://avatars.githubusercontent.com/u/26000165?v=4" style="height: 32px; border-radius: 100%;"></a>
147
+ <a href="https://github.com/Cusp-AI"><img alt="Cusp-AI" src="https://avatars.githubusercontent.com/u/178170649?v=4" style="height: 32px; border-radius: 100%;"></a>
148
+ </p></div>
149
+
150
+
151
+ *And 4 more private sponsor(s).*
152
+
153
+ <!-- sponsors-end -->
@@ -4,6 +4,6 @@ in-place = true
4
4
  output = "CHANGELOG.md"
5
5
  parse-refs = false
6
6
  parse-trailers = true
7
- sections = ["build", "deps", "feat", "fix", "refactor"]
7
+ sections = ["build", "deps", "feat", "fix", "perf", "refactor"]
8
8
  template = "keepachangelog"
9
9
  versioning = "pep440"
@@ -1,34 +1,14 @@
1
- target-version = "py39"
1
+ target-version = "py311"
2
2
  line-length = 120
3
+ output-format = "concise"
3
4
 
4
5
  [lint]
5
6
  exclude = [
6
7
  "tests/fixtures/*.py",
7
8
  ]
8
- select = [
9
- "A", "ANN", "ARG",
10
- "B", "BLE",
11
- "C", "C4",
12
- "COM",
13
- "D", "DTZ",
14
- "E", "ERA", "EXE",
15
- "F", "FBT",
16
- "G",
17
- "I", "ICN", "INP", "ISC",
18
- "N",
19
- "PGH", "PIE", "PL", "PLC", "PLE", "PLR", "PLW", "PT", "PYI",
20
- "Q",
21
- "RUF", "RSE", "RET",
22
- "S", "SIM", "SLF",
23
- "T", "T10", "T20", "TCH", "TID", "TRY",
24
- "UP",
25
- "W",
26
- "YTT",
27
- ]
9
+ select = ["ALL"]
28
10
  ignore = [
29
11
  "A001", # Variable is shadowing a Python builtin
30
- "ANN101", # Missing type annotation for self
31
- "ANN102", # Missing type annotation for cls
32
12
  "ANN204", # Missing return type annotation for special method __str__
33
13
  "ANN401", # Dynamically typed expressions (typing.Any) are disallowed
34
14
  "ARG005", # Unused lambda argument
@@ -36,13 +16,18 @@ ignore = [
36
16
  "D105", # Missing docstring in magic method
37
17
  "D417", # Missing argument description in the docstring
38
18
  "E501", # Line too long
19
+ "EM101", # String literal when raising exception
20
+ "EM102", # f-string when raising exception
39
21
  "ERA001", # Commented out code
22
+ "FIX", # TODO, FIXME, etc.
40
23
  "G004", # Logging statement uses f-string
41
24
  "PLR0911", # Too many return statements
42
25
  "PLR0912", # Too many branches
43
26
  "PLR0913", # Too many arguments to function call
44
27
  "PLR0915", # Too many statements
45
28
  "SLF001", # Private member accessed
29
+ "TD002", # Missing author in TODO
30
+ "TD003", # Missing issue link for TODO
46
31
  "TRY003", # Avoid specifying long messages outside the exception class
47
32
  ]
48
33
 
@@ -0,0 +1,6 @@
1
+ [src]
2
+ exclude = ["tests/fixtures"]
3
+
4
+ [terminal]
5
+ error-on-warning = true
6
+ output-format = "concise"
@@ -23,11 +23,10 @@
23
23
  "name": "docs",
24
24
  "type": "debugpy",
25
25
  "request": "launch",
26
- "module": "mkdocs",
26
+ "module": "zensical",
27
27
  "justMyCode": false,
28
28
  "args": [
29
29
  "serve",
30
- "-v"
31
30
  ]
32
31
  },
33
32
  {
@@ -4,9 +4,6 @@
4
4
  "**/.venvs*/**": true,
5
5
  "**/venv*/**": true
6
6
  },
7
- "mypy-type-checker.args": [
8
- "--config-file=config/mypy.ini"
9
- ],
10
7
  "python.testing.unittestEnabled": false,
11
8
  "python.testing.pytestEnabled": true,
12
9
  "python.testing.pytestArgs": [
@@ -19,6 +16,7 @@
19
16
  "ruff.lint.args": [
20
17
  "--config=config/ruff.toml"
21
18
  ],
19
+ "ty.configurationFile": "config/ty.toml",
22
20
  "yaml.schemas": {
23
21
  "https://squidfunk.github.io/mkdocs-material/schema.json": "mkdocs.yml"
24
22
  },
@@ -0,0 +1,44 @@
1
+ // Project-local debug tasks
2
+ //
3
+ // For more documentation on how to configure debug tasks,
4
+ // see: https://zed.dev/docs/debugger
5
+ [
6
+ {
7
+ "label": "python (current file)",
8
+ "adapter": "Debugpy",
9
+ "request": "launch",
10
+ "program": "$ZED_FILE",
11
+ "justMyCode": false
12
+ },
13
+ {
14
+ "label": "run",
15
+ "adapter": "Debugpy",
16
+ "request": "launch",
17
+ "module": "mkdocs_spellcheck",
18
+ "justMyCode": false
19
+ },
20
+ {
21
+ "label": "docs",
22
+ "adapter": "Debugpy",
23
+ "request": "launch",
24
+ "module": "zensical",
25
+ "args": [
26
+ "serve"
27
+ ],
28
+ "justMyCode": false
29
+ },
30
+ {
31
+ "label": "test",
32
+ "adapter": "Debugpy",
33
+ "request": "launch",
34
+ "module": "pytest",
35
+ "args": [
36
+ "-c=config/pytest.ini",
37
+ "-vvv",
38
+ "--no-cov",
39
+ "--dist=no",
40
+ "tests"
41
+ ],
42
+ "justMyCode": false
43
+ }
44
+ ]
@@ -0,0 +1,43 @@
1
+ // Zed settings
2
+ //
3
+ // For information on how to configure Zed, see the Zed
4
+ // documentation: https://zed.dev/docs/configuring-zed
5
+ //
6
+ // To see all of Zed's default settings without changing your
7
+ // custom settings, run `zed: open default settings` from the
8
+ // command palette (cmd-shift-p / ctrl-shift-p)
9
+ {
10
+ "languages": {
11
+ "YAML": {
12
+ "auto_indent_on_paste": false,
13
+ "auto_indent": "preserve_indent",
14
+ "format_on_save": "off"
15
+ },
16
+ "Python": {
17
+ "language_servers": ["ty", "ruff"],
18
+ "code_actions_on_format": {
19
+ "source.organizeImports.ruff": true
20
+ },
21
+ "formatter": {
22
+ "language_server": {
23
+ "name": "ruff"
24
+ }
25
+ }
26
+ }
27
+ },
28
+ "lsp": {
29
+ "ty": {
30
+ "settings": {
31
+ "configurationFile": "config/ty.toml"
32
+ }
33
+ },
34
+ "ruff": {
35
+ "initialization_options": {
36
+ "settings": {
37
+ "configurationPreference": "filesystemFirst",
38
+ "configuration": "config/ruff.toml"
39
+ }
40
+ }
41
+ }
42
+ }
43
+ }