598 Commits

Author SHA1 Message Date
Oleh Prypin
1910381516 Merge pull request #3463 from mkdocs/anch
Implement validation of anchors in links to other pages
2023-12-09 18:08:16 +01:00
Oleh Prypin
9ff9bb10bf Docs: warn about installing third-party plugins 2023-11-11 16:50:48 +01:00
Oleh Prypin
04cca3bff7 Implement validation of anchors in links to other pages
Example message:

    WARNING -  Doc file 'dev-guide/themes.md' contains a link '../user-guide/configuration.md#google_analytics', but the doc 'user-guide/configuration.md' does not contain an anchor '#google>

It is not enabled by default. To enable, use config `validation: {anchors: warn}`

The implementation only detects Markdown anchors, not raw HTML anchors. As such it may have false positives.

```markdown
<a id="undetectable-anchor"></a>

## Detectable anchor
```

There are plans to improve that in the future.

But that's just about user-authored HTML.
As for HTML that Markdown extensions insert: it will also work correctly if they insert the HTML as etree elements and will never work if they insert it via `htmlStash`. Basically the same rules as for what `toc_tokens` is able to detect.
2023-11-11 16:07:25 +01:00
Oleh Prypin
3f7c5ca129 Update docs about logging in plugins 2023-11-11 16:07:25 +01:00
Oleh Prypin
7c3c3981b8 Docs: fix or drop broken anchor links 2023-11-11 14:28:14 +01:00
Oleh Prypin
dc45916aa1 Allow adding event handlers at multiple priorities (#3448)
-within one plugin.
2023-11-08 18:33:38 +01:00
Vedran Miletić
0bf4963090 Quote pip arguments containing square brackets (#3456)
This is strictly necessary when using non-bash shells (e.g. tcsh).
2023-11-01 17:20:14 +01:00
Oleh Prypin
7ab01c24ff Add an enabled setting for all plugins (#3395)
For every plugin, the user can set `enabled: false` (or something based on an environment variable) and it will not kick in at all.

If the plugin has its own `enabled` config, there's no change for it in that case.
2023-10-30 01:58:27 +01:00
Oleh Prypin
d107e6d32c When nav config is not specified, apply file inclusion
to decide whether a file in included when generating the implicit nav.

Fixes #3336
2023-10-28 17:40:15 +02:00
Oleh Prypin
00b648f088 Release 1.5.3 (#3392) 2023-09-18 23:23:33 +02:00
Oleh Prypin
b0915b4697 Switch to "ruff" linter, enable many of its rules (#3368)
Co-authored-by: Ultrabug <ultrabug@ultrabug.net>
2023-09-04 10:02:38 +02:00
Oleh Prypin
79f17b4b71 Release 1.5.2 (#3330) 2023-08-02 16:51:14 +02:00
Oleh Prypin
2865b0fcc4 Release 1.5.1 (#3315) 2023-07-28 00:42:51 +02:00
Oleh Prypin
0d9e3414e1 Release 1.5.0 (#3296) 2023-07-26 22:30:55 +02:00
Oleh Prypin
89c7aa69ac Merge pull request #3283 from mkdocs/warnc
Expand link validation, add configs for it
2023-07-09 16:04:37 +02:00
Oleh Prypin
8353493606 Use YAML indentation width of 2 spaces (#3287) 2023-07-09 15:59:51 +02:00
C3pa
c99465a4d8 Update choosing-your-theme.md
Fixes some grammar errors on Choosing your theme page
2023-07-06 14:12:35 +02:00
Oleh Prypin
aef55990b9 Propagate 1st-level validation keys to the 2nd-level sub-dicts 2023-07-02 18:50:23 +02:00
Oleh Prypin
4150d2b8ce Configurable diagnostics around broken links to docs
Expand the situations where logs about broken links are produced, make the logging levels fully configurable
2023-07-02 18:50:23 +02:00
Oleh Prypin
efe5bfbc47 Merge pull request #3258 from mkdocs/dirtag
Add YAML placeholder tags that resolve to current paths
2023-07-01 15:42:29 +02:00
Oleh Prypin
25f4ea1533 Docs: small fixes 2023-06-30 00:34:22 +02:00
Oleh Prypin
99a9a90553 Document the !relative tag 2023-06-25 23:11:55 +02:00
Oleh Prypin
a59e280d80 Make config_file_path default to empty string 2023-06-23 18:30:30 +02:00
Oleh Prypin
7b1bc92926 Refactor around dict key access 2023-06-23 16:36:28 +02:00
Oleh Prypin
b162c5e824 Docs: automatically generate the list of locales (#3272) 2023-06-23 09:35:26 +02:00
Oleh Prypin
ce826e94cc Merge pull request #3268 from mkdocs/conft
More precise types; support stdin as the `--config-file`
2023-06-19 22:22:10 +02:00
Oleh Prypin
9394d4b168 Merge remote-tracking branch 'origin/master' into mjs 2023-06-18 19:18:22 +02:00
Oleh Prypin
8b0971c4fe Use type-safe wrappers around run_event 2023-06-18 19:09:59 +02:00
Oleh Prypin
01be507e30 Define a base class for all navigation item classes 2023-06-18 18:03:03 +02:00
Oleh Prypin
d5bb15fa10 Properly support config_file_path being None
* Prevent error when the config file is a stream, to support `-` as the config.
* Fix type annotations and edge cases when `config_file_path` is None
* Properly prevent users setting `config_file_path` in mkdocs.yml - this was not intended.
2023-06-18 17:55:41 +02:00
Oleh Prypin
9d56fa21d9 Merge remote-tracking branch 'origin/master' into ignore 2023-06-09 20:18:54 +02:00
Oleh Prypin
f2d14c52a7 Merge pull request #3205 from mkdocs/getdeps
New `get-deps` command: infer PyPI dependencies from mkdocs.yml
2023-06-09 20:05:07 +02:00
Oleh Prypin
4f98a94f14 Fix typo in extra_javascript doc 2023-06-08 10:33:48 +02:00
Timothée Mazzucotelli
18c01d2e74 Add plugin logger utility (#3245) 2023-06-07 01:22:00 +02:00
Timothée Mazzucotelli
45c8b9669b Add note about formatting code (#3244) 2023-06-07 00:43:45 +02:00
Oleh Prypin
3363c615de Update docs - "best-of-mkdocs" became "catalog" 2023-06-07 00:39:01 +02:00
Timothée Mazzucotelli
73c640f73e Hide instance-attribute labels in docs (#3238) 2023-06-04 18:43:18 +02:00
Oleh Prypin
32d8c3a986 Expand config.extra_javascript to support type, async, defer
The top-level template object `extra_javascript` gets soft-deprecated because it still reports only a list of plain strings.

Themes need to take action and pick up the new config keys from `config.extra_javascript` instead.
2023-06-04 00:37:41 +02:00
Oleh Prypin
0f793b9984 Make TemplateContext typed, move utils.filters to utils.templates 2023-06-04 00:37:41 +02:00
Oleh Prypin
e254d4b1bc Consistently use tojson for pasting strings to JavaScript 2023-06-03 21:12:11 +02:00
Oleh Prypin
d4d483c779 Print the local URL of pages that are "built only for the preview"
And refactor `LiveReloadServer` to not start listening in the constructor
2023-06-03 15:07:35 +02:00
Oleh Prypin
5af8bd3053 Infer titles of pages based on full Markdown parsing (#3191)
Properly parse Markdown and report the first H1 tag rather than naively looking for `# Stuff` at the start of the doc.

This satisfies feature requests such as supporting setext-style headers and fixes attr-list suffixes that failed to be ignored.

Co-authored-by: Hendrik Polczynski <hendrikpolczyn@gmail.com>
Co-authored-by: Darrick Herwehe <darrick@exitcodeone.com>
2023-05-29 21:59:31 +02:00
Oleh Prypin
930ae26a55 New flag mkdocs serve --clean - simulate a pure mkdocs build and then serve
Also rename `--dirtyreload` flag to `--dirty` (keep the old name working)
2023-05-29 01:04:29 +02:00
Oleh Prypin
f37ce51da1 Serve excluded files in mkdocs serve + new not_in_nav config
* Docs that match any of the `not_in_nav` patterns will not produce warnings about never being included into the nav.

* Files that are excluded by `exclude_docs` will now be preserved in the `Files` collection and will even be rendered but only in `mkdocs serve` mode - such files will have a `DRAFT` notice prepended to the content.
2023-05-29 01:04:29 +02:00
Oleh Prypin
67e0e4e052 New exclude_docs config: gitignore-like patterns of files to exclude
These files will not be picked up into the `Files` collection and as such, also the final built site.

Also adds the ability to *un*-ignore the files that MkDocs forcibly ignores.
2023-05-28 23:10:25 +02:00
Zac Knitter
2a232bf153 Update customizing-your-theme.md (#3215)
Fixed typo
2023-05-07 10:20:05 +02:00
Oleh Prypin
3d1b0113c2 Release 1.4.3 (#3208) 2023-05-02 23:16:34 +02:00
Oleh Prypin
4ac1484de3 Link to Best-of-MkDocs instead of Plugins wiki in docs (#3207)
https://github.com/mkdocs/best-of-mkdocs
2023-05-02 22:42:16 +02:00
Oleh Prypin
876995cdf3 Generalize tr_TR translations to just tr, explain how to decide this (#3195) 2023-04-27 19:16:19 +02:00
Ultrabug
e6189fde03 update links and messages to https (#3192)
* docs(guides): update links to use https with newer urls

* docs(gh_deploy): update user CNAME message to use https

---------

Co-authored-by: Oleh Prypin <oleh@pryp.in>
2023-04-24 11:44:49 +02:00