diff --git a/.gitattributes b/.gitattributes
index d9d23f9b..8362faa0 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,10 +1,10 @@
-mkdocs/contrib/search/lunr-language/** linguist-vendored
-mkdocs/themes/mkdocs/js/** linguist-vendored
-mkdocs/themes/mkdocs/js/base.js linguist-vendored=false
-mkdocs/themes/mkdocs/css/** linguist-vendored
-mkdocs/themes/mkdocs/css/base.css linguist-vendored=false
-mkdocs/themes/readthedocs/js/** linguist-vendored
-mkdocs/themes/readthedocs/js/theme.js linguist-vendored=false
-mkdocs/themes/readthedocs/css/** linguist-vendored
-mkdocs/themes/readthedocs/css/theme_extra.css linguist-vendored=false
+properdocs/contrib/search/lunr-language/** linguist-vendored
+properdocs/themes/mkdocs/js/** linguist-vendored
+properdocs/themes/mkdocs/js/base.js linguist-vendored=false
+properdocs/themes/mkdocs/css/** linguist-vendored
+properdocs/themes/mkdocs/css/base.css linguist-vendored=false
+properdocs/themes/readthedocs/js/** linguist-vendored
+properdocs/themes/readthedocs/js/theme.js linguist-vendored=false
+properdocs/themes/readthedocs/css/** linguist-vendored
+properdocs/themes/readthedocs/css/theme_extra.css linguist-vendored=false
docs/img/plugin-events.svg linguist-generated
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index bf93e0d2..51cada0c 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -98,7 +98,7 @@ jobs:
- name: Check packaged files
shell: bash -e -x {0}
run: |
- expected_wheel=(-emkdocs/{templates/sitemap.xml,config/base.py,py.typed,contrib/search/lunr-language/lunr.nl.js,themes/{mkdocs,readthedocs}/{base.html,locales/{de,es}/LC_MESSAGES/messages.mo}})
+ expected_wheel=(-eproperdocs/{templates/sitemap.xml,config/base.py,py.typed,contrib/search/lunr-language/lunr.nl.js,themes/{mkdocs,readthedocs}/{base.html,locales/{de,es}/LC_MESSAGES/messages.mo}})
expected_sdist=("${expected_wheel[@]}" -e{pyproject.toml,hatch_build.py})
- test "$(tar -ztf dist/mkdocs-*.tar.gz | grep -F "${expected_sdist[@]}" | tee /dev/stderr | wc -l)" -eq "${#expected_sdist[@]}"
- test "$(unzip -l dist/mkdocs-*any.whl | grep -F "${expected_wheel[@]}" | tee /dev/stderr | wc -l)" -eq "${#expected_wheel[@]}"
+ test "$(tar -ztf dist/properdocs-*.tar.gz | grep -F "${expected_sdist[@]}" | tee /dev/stderr | wc -l)" -eq "${#expected_sdist[@]}"
+ test "$(unzip -l dist/properdocs-*any.whl | grep -F "${expected_wheel[@]}" | tee /dev/stderr | wc -l)" -eq "${#expected_wheel[@]}"
diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml
index 16d74e52..5c5d028e 100644
--- a/.github/workflows/docs.yml
+++ b/.github/workflows/docs.yml
@@ -17,4 +17,4 @@ jobs:
- name: Install dependencies
run: pip install --no-deps -r requirements/requirements-docs.txt
- name: Build site
- run: mkdocs build --strict
+ run: properdocs build --strict
diff --git a/.gitignore b/.gitignore
index cebf2abb..d68c3bfd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -66,5 +66,5 @@ target/
venv/
ENV/
-# MkDocs documentation
+# ProperDocs documentation
site*/
diff --git a/.jshintignore b/.jshintignore
index 8b54bdfa..911cbd36 100644
--- a/.jshintignore
+++ b/.jshintignore
@@ -1,9 +1,9 @@
-mkdocs/themes/**/js/jquery-**.min.js
-mkdocs/themes/mkdocs/js/highlight.pack.js
-mkdocs/themes/mkdocs/js/bootstrap.bundle.min.js
-mkdocs/themes/mkdocs/js/modernizr-**.min.js
-mkdocs/themes/readthedocs/js/theme.js
-mkdocs/themes/readthedocs/js/html5shiv.min.js
-mkdocs/contrib/search/templates/search/lunr.js
-mkdocs/contrib/search/lunr-language/lunr.**.js
-mkdocs/contrib/search/lunr-language/tinyseg.js
+properdocs/themes/**/js/jquery-**.min.js
+properdocs/themes/mkdocs/js/highlight.pack.js
+properdocs/themes/mkdocs/js/bootstrap.bundle.min.js
+properdocs/themes/mkdocs/js/modernizr-**.min.js
+properdocs/themes/readthedocs/js/theme.js
+properdocs/themes/readthedocs/js/html5shiv.min.js
+properdocs/contrib/search/templates/search/lunr.js
+properdocs/contrib/search/lunr-language/lunr.**.js
+properdocs/contrib/search/lunr-language/tinyseg.js
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 510ef6f6..d6d0e6e8 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,8 +1,8 @@
-# Contributing to MkDocs
+# Contributing to ProperDocs
-An introduction to contributing to the MkDocs project.
+An introduction to contributing to the ProperDocs project.
-The MkDocs project welcomes contributions from developers and
+The ProperDocs project welcomes contributions from developers and
users in the open source community. Contributions can be made in a number of
ways, a few examples are:
@@ -11,12 +11,12 @@ ways, a few examples are:
- Bug reports and patch reviews
For information about available communication channels please refer to the
-[README](https://github.com/mkdocs/mkdocs#readme) file in our
+[README](https://github.com/properdocs/properdocs#readme) file in our
GitHub repository.
## Reporting an Issue
-Please include as much detail as you can. Let us know your platform and MkDocs
+Please include as much detail as you can. Let us know your platform and ProperDocs
version. If the problem is visual (for example a theme or design issue), please
add a screenshot. If you get an error, please include the full error message and
traceback.
@@ -34,19 +34,19 @@ It is particularly helpful if an issue report touches on all of these aspects:
## Trying out the Development Version
If you want to just install and try out the latest development version of
-MkDocs (in case it already contains a fix for your issue),
+ProperDocs (in case it already contains a fix for your issue),
you can do so with the following command. This can be useful if you
want to provide feedback for a new feature or want to confirm if a bug you
have encountered is fixed in the git master. It is **strongly** recommended
that you do this within a [virtualenv].
```bash
-pip install git+https://github.com/mkdocs/mkdocs.git
+pip install git+https://github.com/properdocs/properdocs.git
```
## Installing for Development
-Note that for development you can just use [Hatch] directly as described below. If you wish to install a local clone of MkDocs anyway, you can run `pip install --editable .`. It is **strongly** recommended that you do this within a [virtualenv].
+Note that for development you can just use [Hatch] directly as described below. If you wish to install a local clone of ProperDocs anyway, you can run `pip install --editable .`. It is **strongly** recommended that you do this within a [virtualenv].
## Installing Hatch
@@ -56,7 +56,7 @@ So first, [install it][install Hatch]. Ideally in an isolated way with **`pipx i
## Running all checks
-To run **all** checks that are required for MkDocs, just run the following command in the cloned MkDocs repository:
+To run **all** checks that are required for ProperDocs, just run the following command in the cloned ProperDocs repository:
```bash
hatch run all
@@ -68,7 +68,7 @@ All checks need to pass.
### Running tests
-To run the test suite for MkDocs, run the following commands:
+To run the test suite for ProperDocs, run the following commands:
```bash
hatch run test:test
@@ -81,7 +81,7 @@ will be verified by [GitHub Actions] when you submit a pull request.
### Python code style
-Python code within MkDocs' code base is formatted using [Black] and [Isort] and lint-checked using [Ruff], all of which are configured in `pyproject.toml`.
+Python code within ProperDocs' code base is formatted using [Black] and [Isort] and lint-checked using [Ruff], all of which are configured in `pyproject.toml`.
You can automatically check and format the code according to these tools with the following command:
@@ -103,7 +103,7 @@ There are several other checks, such as spelling and JS style. To run all of the
hatch run lint:check
```
-### Documentation of MkDocs itself
+### Documentation of ProperDocs itself
After making edits to files under the `docs/` dir, you can preview the site locally using the following command:
@@ -125,7 +125,7 @@ If you add a new plugin to mkdocs.yml, you don't need to add it to any "requirem
>
> ```bash
> .venv/bin/pip install -r requirements/requirements-docs.txt # Exact versions of dependencies.
-> .venv/bin/pip install -r $(mkdocs get-deps) # Latest versions of all dependencies.
+> .venv/bin/pip install -r $(properdocs get-deps) # Latest versions of all dependencies.
> ```
## Translating themes
@@ -134,7 +134,7 @@ To localize a theme to your favorite language, follow the guide on [Translating
## Submitting Pull Requests
-If you're considering a large code contribution to MkDocs, please prefer to
+If you're considering a large code contribution to ProperDocs, please prefer to
open an issue first to get early feedback on the idea.
Once you think the code is ready to be reviewed, push
@@ -148,7 +148,7 @@ Do *not* add to *release-notes.md*, this will be written later.
### Submitting changes to the builtin themes
-When installed with `i18n` support (`pip install 'mkdocs[i18n]'`), MkDocs allows
+When installed with `i18n` support (`pip install 'properdocs[i18n]'`), ProperDocs allows
themes to support being translated into various languages (referred to as
locales) if they respect [Jinja's i18n extension] by wrapping text placeholders
with `{% trans %}` and `{% endtrans %}` tags.
@@ -159,8 +159,8 @@ updated by running the `extract_messages` command. To update the
`pot` file for both built-in themes, run these commands:
```bash
-pybabel extract --project=MkDocs --copyright-holder=MkDocs --msgid-bugs-address='https://github.com/mkdocs/mkdocs/issues' --no-wrap --version="$(hatch version)" --mapping-file mkdocs/themes/babel.cfg --output-file mkdocs/themes/mkdocs/messages.pot mkdocs/themes/mkdocs
-pybabel extract --project=MkDocs --copyright-holder=MkDocs --msgid-bugs-address='https://github.com/mkdocs/mkdocs/issues' --no-wrap --version="$(hatch version)" --mapping-file mkdocs/themes/babel.cfg --output-file mkdocs/themes/readthedocs/messages.pot mkdocs/themes/readthedocs
+pybabel extract --project=ProperDocs --copyright-holder=ProperDocs --msgid-bugs-address='https://github.com/properdocs/properdocs/issues' --no-wrap --version="$(hatch version)" --mapping-file properdocs/themes/babel.cfg --output-file properdocs/themes/mkdocs/messages.pot properdocs/themes/mkdocs
+pybabel extract --project=ProperDocs --copyright-holder=ProperDocs --msgid-bugs-address='https://github.com/properdocs/properdocs/issues' --no-wrap --version="$(hatch version)" --mapping-file properdocs/themes/babel.cfg --output-file properdocs/themes/readthedocs/messages.pot properdocs/themes/readthedocs
```
The updated `pot` file should be included in a PR with the updated template.
@@ -175,7 +175,7 @@ file so that everything is ready for translators to do their job.
## Code of Conduct
-Everyone interacting in the MkDocs project's codebases, issue trackers, chat
+Everyone interacting in the ProperDocs project's codebases, issue trackers, chat
rooms, and mailing lists is expected to follow the [PyPA Code of Conduct].
[virtualenv]: https://virtualenv.pypa.io/en/latest/user_guide.html
@@ -184,7 +184,7 @@ rooms, and mailing lists is expected to follow the [PyPA Code of Conduct].
[installing `pipx`]: https://pypa.github.io/pipx/installation/
[GitHub Actions]: https://docs.github.com/actions
[PyPA Code of Conduct]: https://www.pypa.io/en/latest/code-of-conduct/
-[Translating Themes]: https://www.mkdocs.org/dev-guide/translations/
+[Translating Themes]: https://properdocs.org/dev-guide/translations/
[Jinja's i18n extension]: https://jinja.palletsprojects.com/en/latest/extensions/#i18n-extension
[Ruff]: https://docs.astral.sh/ruff/
[Black]: https://black.readthedocs.io/
diff --git a/FUNDING.yml b/FUNDING.yml
index 2e9b9627..733f4c6c 100644
--- a/FUNDING.yml
+++ b/FUNDING.yml
@@ -1 +1 @@
-github: mkdocs
+github: properdocs
diff --git a/README.md b/README.md
index 7b665a23..a63d6605 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# MkDocs
+# ProperDocs
> *Project documentation with Markdown*
@@ -6,26 +6,26 @@
[![Build Status][GHAction-image]][GHAction-link]
[![Coverage Status][codecov-image]][codecov-link]
-MkDocs is a **fast**, **simple** and **downright gorgeous** static site
+ProperDocs is a **fast**, **simple** and **downright gorgeous** static site
generator that's geared towards building project documentation. Documentation
source files are written in Markdown, and configured with a single YAML
configuration file. It is designed to be easy to use and can be extended with
third-party themes, plugins, and Markdown extensions.
-Please see the [Documentation][mkdocs] for an introductory tutorial and a full
+Please see the [Documentation][properdocs] for an introductory tutorial and a full
user guide.
## Features
- Build static HTML files from Markdown files.
-- Use Plugins and Markdown Extensions to enhance MkDocs.
+- Use Plugins and Markdown Extensions to enhance ProperDocs.
- Use the built-in themes, third party themes or create your own.
- Publish your documentation anywhere that static files can be served.
- Much more!
## Support
-If you need help with MkDocs, do not hesitate to get in contact with us!
+If you need help with ProperDocs, do not hesitate to get in contact with us!
- For questions and high-level discussions, use **[Discussions]** on GitHub.
- For small questions, a good alternative is the **[Chat room]** on
@@ -33,7 +33,7 @@ If you need help with MkDocs, do not hesitate to get in contact with us!
- To report a bug or make a feature request, open an **[Issue]** on GitHub.
Please note that we may only provide
-support for problems/questions regarding core features of MkDocs. Any
+support for problems/questions regarding core features of ProperDocs. Any
questions or bug reports about features of third-party themes, plugins,
extensions or similar should be made to their respective projects.
But, such questions are *not* banned from the [chat room].
@@ -42,38 +42,38 @@ Make sure to stick around to answer some questions as well!
## Links
-- [Official Documentation][mkdocs]
+- [Official Documentation][properdocs]
- [Latest Release Notes][release-notes]
- [Catalog of third-party plugins, themes and recipes][catalog]
-## Contributing to MkDocs
+## Contributing to ProperDocs
-The MkDocs project welcomes, and depends on, contributions from developers and
+The ProperDocs project welcomes, and depends on, contributions from developers and
users in the open source community. Please see the [Contributing Guide] for
information on how you can help.
## Code of Conduct
-Everyone interacting in the MkDocs project's codebases, issue trackers, and
+Everyone interacting in the ProperDocs project's codebases, issue trackers, and
discussion forums is expected to follow the [PyPA Code of Conduct].
-[codecov-image]: https://codecov.io/github/mkdocs/mkdocs/coverage.svg?branch=master
-[codecov-link]: https://codecov.io/github/mkdocs/mkdocs?branch=master
-[pypi-v-image]: https://img.shields.io/pypi/v/mkdocs.svg
-[pypi-v-link]: https://pypi.org/project/mkdocs/
-[GHAction-image]: https://github.com/mkdocs/mkdocs/actions/workflows/ci.yml/badge.svg
-[GHAction-link]: https://github.com/mkdocs/mkdocs/actions/workflows/ci.yml
+[codecov-image]: https://codecov.io/github/properdocs/properdocs/coverage.svg?branch=master
+[codecov-link]: https://codecov.io/github/properdocs/properdocs?branch=master
+[pypi-v-image]: https://img.shields.io/pypi/v/properdocs.svg
+[pypi-v-link]: https://pypi.org/project/properdocs/
+[GHAction-image]: https://github.com/properdocs/properdocs/actions/workflows/ci.yml/badge.svg
+[GHAction-link]: https://github.com/properdocs/properdocs/actions/workflows/ci.yml
-[mkdocs]: https://www.mkdocs.org
-[Issue]: https://github.com/mkdocs/mkdocs/issues
-[Discussions]: https://github.com/mkdocs/mkdocs/discussions
+[properdocs]: https://properdocs.org
+[Issue]: https://github.com/properdocs/properdocs/issues
+[Discussions]: https://github.com/properdocs/properdocs/discussions
[Chat room]: https://gitter.im/mkdocs/community
-[release-notes]: https://www.mkdocs.org/about/release-notes/
-[Contributing Guide]: https://www.mkdocs.org/about/contributing/
+[release-notes]: https://properdocs.org/about/release-notes/
+[Contributing Guide]: https://properdocs.org/about/contributing/
[PyPA Code of Conduct]: https://www.pypa.io/en/latest/code-of-conduct/
-[catalog]: https://github.com/mkdocs/catalog
+[catalog]: https://github.com/properdocs/catalog
## License
-[BSD-2-Clause](https://github.com/mkdocs/mkdocs/blob/master/LICENSE)
+[BSD-2-Clause](https://github.com/properdocs/properdocs/blob/master/LICENSE)
diff --git a/docs/CNAME b/docs/CNAME
index d7525f16..ffb9ce08 100644
--- a/docs/CNAME
+++ b/docs/CNAME
@@ -1 +1 @@
-www.mkdocs.org
+properdocs.org
diff --git a/docs/about/release-notes.md b/docs/about/release-notes.md
index 4fd81c15..3cc2406f 100644
--- a/docs/about/release-notes.md
+++ b/docs/about/release-notes.md
@@ -4,22 +4,22 @@
## Upgrading
-To upgrade MkDocs to the latest version, use pip:
+To upgrade ProperDocs to the latest version, use pip:
```bash
-pip install -U mkdocs
+pip install -U properdocs
```
-You can determine your currently installed version using `mkdocs --version`:
+You can determine your currently installed version using `properdocs --version`:
```console
-$ mkdocs --version
-mkdocs, version 1.5.0 from /path/to/mkdocs (Python 3.10)
+$ properdocs --version
+properdocs, version 1.5.0 from /path/to/properdocs (Python 3.10)
```
## Maintenance team
-The current and past members of the MkDocs team.
+The current and past members of the ProperDocs team.
* [@tomchristie](https://github.com/tomchristie/)
* [@d0ugal](https://github.com/d0ugal/)
@@ -75,7 +75,7 @@ Other changes:
MkDocs 1.5 had a change in behavior in deducing the page titles from the first heading. Unfortunately this could cause unescaped HTML tags or entities to appear in edge cases.
-Now tags are always fully sanitized from the title. Though it still remains the case that [`Page.title`][mkdocs.structure.pages.Page.title] is expected to contain HTML entities and is passed directly to the themes.
+Now tags are always fully sanitized from the title. Though it still remains the case that [`Page.title`][properdocs.structure.pages.Page.title] is expected to contain HTML entities and is passed directly to the themes.
Images (notably, emojis in some extensions) get preserved in the title only through their `alt` attribute's value.
@@ -194,15 +194,15 @@ Other changes:
#### Plugins can add multiple handlers for the same event type, at multiple priorities
-See [`mkdocs.plugins.CombinedEvent`][] in [**documentation**](../dev-guide/plugins.md#event-priorities). Context: #3448
+See [`properdocs.plugins.CombinedEvent`][] in [**documentation**](../dev-guide/plugins.md#event-priorities). Context: #3448
-#### Enabling true generated files and expanding the [`File`][mkdocs.structure.files.File] API
+#### Enabling true generated files and expanding the [`File`][properdocs.structure.files.File] API
-See [**documentation**][mkdocs.structure.files.File].
+See [**documentation**][properdocs.structure.files.File].
-* There is a new pair of attributes [`File.content_string`][mkdocs.structure.files.File.content_string]/[`content_bytes`][mkdocs.structure.files.File.content_bytes] that becomes the official API for obtaining the content of a file and is used by MkDocs itself.
+* There is a new pair of attributes [`File.content_string`][properdocs.structure.files.File.content_string]/[`content_bytes`][properdocs.structure.files.File.content_bytes] that becomes the official API for obtaining the content of a file and is used by MkDocs itself.
- This replaces the old approach where one had to manually read the file located at [`File.abs_src_path`][mkdocs.structure.files.File.abs_src_path], although that is still the primary action that these new attributes do under the hood.
+ This replaces the old approach where one had to manually read the file located at [`File.abs_src_path`][properdocs.structure.files.File.abs_src_path], although that is still the primary action that these new attributes do under the hood.
* The content of a `File` can be backed by a string and no longer has to be a real existing file at `abs_src_path`.
@@ -210,29 +210,29 @@ See [**documentation**][mkdocs.structure.files.File].
Further, `abs_src_path` is no longer guaranteed to be present and can be `None` instead. MkDocs itself still uses physical files in all cases, but eventually plugins will appear that don't populate this attribute.
-* There is a new constructor [`File.generated()`][mkdocs.structure.files.File.generated] that should be used by plugins instead of the `File()` constructor. It is much more convenient because one doesn't need to manually look up the values such as `docs_dir` and `use_directory_urls`. Its signature is one of:
+* There is a new constructor [`File.generated()`][properdocs.structure.files.File.generated] that should be used by plugins instead of the `File()` constructor. It is much more convenient because one doesn't need to manually look up the values such as `docs_dir` and `use_directory_urls`. Its signature is one of:
```python
- f = File.generated(config: MkDocsConfig, src_uri: str, content: str | bytes)
- f = File.generated(config: MkDocsConfig, src_uri: str, abs_src_path: str)
+ f = File.generated(config: ProperDocsConfig, src_uri: str, content: str | bytes)
+ f = File.generated(config: ProperDocsConfig, src_uri: str, abs_src_path: str)
```
This way, it is now extremely easy to add a virtual file even from a hook:
```python
- def on_files(files: Files, config: MkDocsConfig):
+ def on_files(files: Files, config: ProperDocsConfig):
files.append(File.generated(config, 'fake/path.md', content="Hello, world!"))
```
For large content it is still best to use physical files, but one no longer needs to manipulate the path by providing a fake unused `docs_dir`.
-* There is a new attribute [`File.generated_by`][mkdocs.structure.files.File.generated_by] that arose by convention - for generated files it should be set to the name of the plugin (the key in the `plugins:` collection) that produced this file. This attribute is populated automatically when using the `File.generated()` constructor.
+* There is a new attribute [`File.generated_by`][properdocs.structure.files.File.generated_by] that arose by convention - for generated files it should be set to the name of the plugin (the key in the `plugins:` collection) that produced this file. This attribute is populated automatically when using the `File.generated()` constructor.
-* It is possible to set the [`edit_uri`][mkdocs.structure.files.File.edit_uri] attribute of a `File`, for example from a plugin or hook, to make it different from the default (equal to `src_uri`), and this will be reflected in the edit link of the document. This can be useful because some pages aren't backed by a real file and are instead created dynamically from some other source file or script. So a hook could set the `edit_uri` to that source file or script accordingly.
+* It is possible to set the [`edit_uri`][properdocs.structure.files.File.edit_uri] attribute of a `File`, for example from a plugin or hook, to make it different from the default (equal to `src_uri`), and this will be reflected in the edit link of the document. This can be useful because some pages aren't backed by a real file and are instead created dynamically from some other source file or script. So a hook could set the `edit_uri` to that source file or script accordingly.
* The `File` object now stores its original `src_dir`, `dest_dir`, `use_directory_urls` values as attributes.
-* Fields of `File` are computed on demand but cached. Only the three above attributes are primary ones, and partly also [`dest_uri`][mkdocs.structure.files.File.dest_uri]. This way, it is possible to, for example, overwrite `dest_uri` of a `File`, and `abs_dest_path` will be calculated based on it. However you need to clear the attribute first using `del f.abs_dest_path`, because the values are cached.
+* Fields of `File` are computed on demand but cached. Only the three above attributes are primary ones, and partly also [`dest_uri`][properdocs.structure.files.File.dest_uri]. This way, it is possible to, for example, overwrite `dest_uri` of a `File`, and `abs_dest_path` will be calculated based on it. However you need to clear the attribute first using `del f.abs_dest_path`, because the values are cached.
* `File` instances are now hashable (can be used as keys of a `dict`). Two files can no longer be considered "equal" unless it's the exact same instance of `File`.
@@ -278,7 +278,7 @@ Context: #3429
* The `sitemap.xml.gz` file is slightly more reproducible and no longer changes on every build, but instead only once per day (upon a date change). Context: #3460
-Other small improvements; see [commit log](https://github.com/mkdocs/mkdocs/compare/1.5.3...1.6.0).
+Other small improvements; see [commit log](https://github.com/properdocs/properdocs/compare/1.5.3...1.6.0).
## Version 1.5.3 (2023-09-18)
@@ -292,9 +292,9 @@ Other small improvements; see [commit log](https://github.com/mkdocs/mkdocs/comp
* Plugins can now set `File.page` to their own subclass of `Page`. There is also now a warning if `File.page` is set to anything other than a strict subclass of `Page`. (#3367, #3381)
- Note that just instantiating a `Page` [sets the file automatically](https://github.com/mkdocs/mkdocs/blob/f94ab3f62d0416d484d81a0c695c8ca86ab3b975/mkdocs/structure/pages.py#L34), so care needs to be taken not to create an unneeded `Page`.
+ Note that just instantiating a `Page` [sets the file automatically](https://github.com/properdocs/properdocs/blob/f94ab3f62d0416d484d81a0c695c8ca86ab3b975/mkdocs/structure/pages.py#L34), so care needs to be taken not to create an unneeded `Page`.
-Other small improvements; see [commit log](https://github.com/mkdocs/mkdocs/compare/1.5.2...1.5.3).
+Other small improvements; see [commit log](https://github.com/properdocs/properdocs/compare/1.5.2...1.5.3).
## Version 1.5.2 (2023-08-02)
@@ -306,7 +306,7 @@ Other small improvements; see [commit log](https://github.com/mkdocs/mkdocs/comp
Plugins should be free to append strings to `config.extra_javascript`, but when reading the values, they must still make sure to read it as `str(value)` in case it is an `ExtraScriptValue` item. For querying the attributes such as `.type` you need to check `isinstance` first. Static type checking will guide you in that. (#3324)
-See [commit log](https://github.com/mkdocs/mkdocs/compare/1.5.1...1.5.2).
+See [commit log](https://github.com/properdocs/properdocs/compare/1.5.1...1.5.2).
## Version 1.5.1 (2023-07-28)
@@ -314,7 +314,7 @@ See [commit log](https://github.com/mkdocs/mkdocs/compare/1.5.1...1.5.2).
* Bugfix (regression in 1.5.0): Prevent errors for special setups that have 3 conflicting files, such as `index.html`, `index.md` *and* `README.md` (#3314)
-See [commit log](https://github.com/mkdocs/mkdocs/compare/1.5.0...1.5.1).
+See [commit log](https://github.com/properdocs/properdocs/compare/1.5.0...1.5.1).
## Version 1.5.0 (2023-07-26)
@@ -332,7 +332,7 @@ The way it works is by scanning `mkdocs.yml` for `themes:`, `plugins:`, `markdow
Of course, you're welcome to use a "virtualenv" with such a command. Also note that for environments that require stability (for example CI) directly installing deps in this way is not a very reliable approach as it precludes dependency pinning.
-The command allows overriding which config file is used (instead of `mkdocs.yml` in the current directory) as well as which catalog of projects is used (instead of downloading it from the default location). See [`mkdocs get-deps --help`](../user-guide/cli.md#mkdocs-get-deps).
+The command allows overriding which config file is used (instead of `mkdocs.yml` in the current directory) as well as which catalog of projects is used (instead of downloading it from the default location). See [`mkdocs get-deps --help`](../user-guide/cli.md#properdocs-get-deps).
Context: #3205
@@ -485,21 +485,21 @@ See [**documentation**](../dev-guide/themes.md#picking-up-css-and-javascript-fro
* `File` has a new attribute `inclusion`. Its value is calculated from both the `exclude_docs` and `not_in_nav` configs, and implements their behavior. Plugins can read this value or write to it. New `File` instances by default follow whatever the configs say, but plugins can choose to make this decision explicitly, per file.
-* When creating a `File`, one can now set a `dest_uri` directly, rather than having to update it (and other dependent attributes) after creation. [Context](https://github.com/mkdocs/mkdocs/commit/d5af6426c52421f1113f6dcc591de1e01bea48bd)
+* When creating a `File`, one can now set a `dest_uri` directly, rather than having to update it (and other dependent attributes) after creation. [Context](https://github.com/properdocs/properdocs/commit/d5af6426c52421f1113f6dcc591de1e01bea48bd)
* A new config option was added - `DictOfItems`. Similarly to `ListOfItems`, it validates a mapping of config options that all have the same type. Keys are arbitrary but always strings. Context: #3242
* A new function `get_plugin_logger` was added. In order to opt into a standardized way for plugins to log messages, please use the idiom:
```python
- log = mkdocs.plugins.get_plugin_logger(__name__)
+ log = properdocs.plugins.get_plugin_logger(__name__)
...
log.info("Hello, world")
```
Context: #3245
-* `SubConfig` config option can be conveniently subclassed with a particular type of config specified. For example, `class ExtraScript(SubConfig[ExtraScriptValue]):`. To see how this is useful, search for this class in code. [Context](https://github.com/mkdocs/mkdocs/commit/73e503990e3e3504bfe1cb627d41a7e97970687e)
+* `SubConfig` config option can be conveniently subclassed with a particular type of config specified. For example, `class ExtraScript(SubConfig[ExtraScriptValue]):`. To see how this is useful, search for this class in code. [Context](https://github.com/properdocs/properdocs/commit/73e503990e3e3504bfe1cb627d41a7e97970687e)
* Bugfix: `SubConfig` had a bug where paths (from `FilesystemObject` options) were not made relative to the main config file as intended, because `config_file_path` was not properly inherited to it. This is now fixed. Context: #3265
@@ -512,15 +512,15 @@ See [**documentation**](../dev-guide/themes.md#picking-up-css-and-javascript-fro
async_ = Type(bool, default=False)
```
- Previously making a config key with a reserved name was impossible with new-style schemas. [Context](https://github.com/mkdocs/mkdocs/commit/1db8e884fa7135a49adf7740add5d875a16a18bc)
+ Previously making a config key with a reserved name was impossible with new-style schemas. [Context](https://github.com/properdocs/properdocs/commit/1db8e884fa7135a49adf7740add5d875a16a18bc)
* `Theme` has its attributes properly declared and gained new attributes `theme.locale`, `theme.custom_dir`.
* Some type annotations were made more precise. For example:
- * The `context` parameter has gained the type `TemplateContext` (`TypedDict`). [Context](https://github.com/mkdocs/mkdocs/commit/0f793b9984c7e6a1d53ce874e7d17b6d27ebf4b2)
- * The classes `Page`, `Section`, `Link` now have a common base class `StructureItem`. [Context](https://github.com/mkdocs/mkdocs/commit/01be507e30b05db0a4c44ef05ba62b2098010653)
- * Some methods stopped accepting `Config` and only accept `MkDocsConfig` as was originally intended. [Context](https://github.com/mkdocs/mkdocs/commit/c459cd24fc0320333f51525e9cf681d4a8370f50)
+ * The `context` parameter has gained the type `TemplateContext` (`TypedDict`). [Context](https://github.com/properdocs/properdocs/commit/0f793b9984c7e6a1d53ce874e7d17b6d27ebf4b2)
+ * The classes `Page`, `Section`, `Link` now have a common base class `StructureItem`. [Context](https://github.com/properdocs/properdocs/commit/01be507e30b05db0a4c44ef05ba62b2098010653)
+ * Some methods stopped accepting `Config` and only accept `ProperDocsConfig` as was originally intended. [Context](https://github.com/properdocs/properdocs/commit/c459cd24fc0320333f51525e9cf681d4a8370f50)
* `config.mdx_configs` got a proper type. Context: #3229
### Theme updates
@@ -547,7 +547,7 @@ This can be used for config overrides on the fly. See updated section at the bot
The command to use this is `mkdocs build -f -`. In previous versions doing this led to an error.
-[Context](https://github.com/mkdocs/mkdocs/commit/d5bb15fa108da86a8e53fb7d84109d8f8d9d6453)
+[Context](https://github.com/properdocs/properdocs/commit/d5bb15fa108da86a8e53fb7d84109d8f8d9d6453)
### New command line flags
@@ -569,13 +569,13 @@ The command to use this is `mkdocs build -f -`. In previous versions doing this
* Accessing the `user_configs` attribute of a `Config` is deprecated. Note: instead of `config.user_configs[*]['theme']['custom_dir']`, please use the new attribute `config.theme.custom_dir`.
-Other small improvements; see [commit log](https://github.com/mkdocs/mkdocs/compare/1.4.3...1.5.0).
+Other small improvements; see [commit log](https://github.com/properdocs/properdocs/compare/1.4.3...1.5.0).
## Version 1.4.3 (2023-05-02)
* Bugfix: for the `hooks` feature, modules no longer fail to load if using some advanced Python features like dataclasses (#3193)
-* Bugfix: Don't create `None` sitemap entries if the page has no populated URL - affects sites that exclude some files from navigation ([`07a297b`](https://github.com/mkdocs/mkdocs/commit/07a297b3b4de4a1b49469b1497ee34039b9f38fa))
+* Bugfix: Don't create `None` sitemap entries if the page has no populated URL - affects sites that exclude some files from navigation ([`07a297b`](https://github.com/properdocs/properdocs/commit/07a297b3b4de4a1b49469b1497ee34039b9f38fa))
* "readthedocs" theme:
* Accessibility: add aria labels to Home logo (#3129) and search inputs (#3046)
@@ -586,7 +586,7 @@ Other small improvements; see [commit log](https://github.com/mkdocs/mkdocs/comp
* Fixed `zh_CN` translation (#3125)
* `tr_TR` translation becomes just `tr` - usage should remain unaffected (#3195)
-See [commit log](https://github.com/mkdocs/mkdocs/compare/1.4.2...1.4.3).
+See [commit log](https://github.com/properdocs/properdocs/compare/1.4.2...1.4.3).
## Version 1.4.2 (2022-11-01)
@@ -612,7 +612,7 @@ See [commit log](https://github.com/mkdocs/mkdocs/compare/1.4.2...1.4.3).
* Plugin-related warnings look more readable (#3016)
-See [commit log](https://github.com/mkdocs/mkdocs/compare/1.4.1...1.4.2).
+See [commit log](https://github.com/properdocs/properdocs/compare/1.4.1...1.4.2).
## Version 1.4.1 (2022-10-15)
@@ -635,7 +635,7 @@ See [commit log](https://github.com/mkdocs/mkdocs/compare/1.4.1...1.4.2).
* The ['mkdocs' package](https://pypi.org/project/mkdocs/#files) (wheel and source) is now produced by Hatch build system and pyproject.toml instead of setup.py (#2988)
-Other small improvements; see [commit log](https://github.com/mkdocs/mkdocs/compare/1.4.0...1.4.1).
+Other small improvements; see [commit log](https://github.com/properdocs/properdocs/compare/1.4.0...1.4.1).
## Version 1.4.0 (2022-09-27)
@@ -687,7 +687,7 @@ To not make a breaking change, there's no change to how *this* property is used,
These consistently use forward slashes, and are now the definitive source that MkDocs itself uses.
-See [source code](https://github.com/mkdocs/mkdocs/blob/1.4.0/mkdocs/structure/files.py#L151).
+See [source code](https://github.com/properdocs/properdocs/blob/1.4.0/mkdocs/structure/files.py#L151).
As a related tip: you should also stop using `os.path.*` or `pathlib.Path()` to deal with these paths, and instead use `posixpath.*` or `pathlib.PurePosixPath()`
@@ -697,11 +697,11 @@ As a related tip: you should also stop using `os.path.*` or `pathlib.Path()` to
MkDocs' plugin event methods now have type annotations. You might have been adding annotations to events already, but now they will be validated to match the original.
-See [source code](https://github.com/mkdocs/mkdocs/blob/1.4.0/mkdocs/plugins.py#L165) and [documentation](../dev-guide/plugins.md#events).
+See [source code](https://github.com/properdocs/properdocs/blob/1.4.0/mkdocs/plugins.py#L165) and [documentation](../dev-guide/plugins.md#events).
-One big update is that now you should annotate method parameters more specifically as `config: defaults.MkDocsConfig` instead of `config: base.Config`. This not only makes it clear that it is the [main config of MkDocs itself](https://github.com/mkdocs/mkdocs/blob/1.4.0/mkdocs/config/defaults.py), but also provides type-safe access through attributes of the object (see next section).
+One big update is that now you should annotate method parameters more specifically as `config: defaults.ProperDocsConfig` instead of `config: base.Config`. This not only makes it clear that it is the [main config of MkDocs itself](https://github.com/properdocs/properdocs/blob/1.4.0/mkdocs/config/defaults.py), but also provides type-safe access through attributes of the object (see next section).
-See [source code](https://github.com/mkdocs/mkdocs/blob/1.4.0/mkdocs/config/defaults.py) and [documentation](../dev-guide/plugins.md#on_event_name).
+See [source code](https://github.com/properdocs/properdocs/blob/1.4.0/mkdocs/config/defaults.py) and [documentation](../dev-guide/plugins.md#on_event_name).
#### Rework ConfigOption schemas as class-based (#2962)
@@ -740,7 +740,7 @@ class MyPluginConfig(base.Config):
bar = c.Type(str, default='')
class MyPlugin(plugins.BasePlugin[MyPluginConfig]):
- def on_page_markdown(self, markdown: str, *, config: defaults.MkDocsConfig, **kwargs):
+ def on_page_markdown(self, markdown: str, *, config: defaults.ProperDocsConfig, **kwargs):
if self.config.foo < 5: # Error, `foo` might be `None`, need to check first.
if config.site_url.startswith('http:'): # Error, MkDocs' `site_url` also might be `None`.
return markdown + self.config.baz # Error, no such attribute `baz`!
@@ -750,7 +750,7 @@ This lets you notice the errors from a static type checker before running the co
```python
class MyPlugin(plugins.BasePlugin[MyPluginConfig]):
- def on_page_markdown(self, markdown: str, *, config: defaults.MkDocsConfig, **kwargs):
+ def on_page_markdown(self, markdown: str, *, config: defaults.ProperDocsConfig, **kwargs):
if self.config.foo is not None and self.config.foo < 5: # OK, `int < int` is valid.
if (config.site_url or '').startswith('http:'): # OK, `str.startswith(str)` is valid.
return markdown + self.config.bar # OK, `str + str` is valid.
@@ -846,7 +846,7 @@ Deprecated config option classes: `ConfigItems` (#2983), `OptionallyRequired` (#
* Bugfix (regression in 1.2): Support listening on an IPv6 address in `mkdocs serve`. (#2951)
-Other small improvements; see [commit log](https://github.com/mkdocs/mkdocs/compare/1.3.1...1.4.0).
+Other small improvements; see [commit log](https://github.com/properdocs/properdocs/compare/1.3.1...1.4.0).
## Version 1.3.1 (2022-07-19)
@@ -861,7 +861,7 @@ Other small improvements; see [commit log](https://github.com/mkdocs/mkdocs/comp
* Built-in themes now also support these languages:
* Italian (#2860)
-Other small improvements; see [commit log](https://github.com/mkdocs/mkdocs/compare/1.3.0...1.3.1).
+Other small improvements; see [commit log](https://github.com/properdocs/properdocs/compare/1.3.0...1.3.1).
## Version 1.3.0 (2022-03-26)
@@ -875,7 +875,7 @@ Other small improvements; see [commit log](https://github.com/mkdocs/mkdocs/comp
* New option `anonymize_ip` for Google Analytics.
* Dependencies were upgraded: jQuery upgraded to 3.6.0, Modernizr.js dropped, and others.
- See [documentation of config options for the theme](https://www.mkdocs.org/user-guide/choosing-your-theme/#readthedocs)
+ See [documentation of config options for the theme](https://properdocs.org/user-guide/choosing-your-theme/#readthedocs)
* Built-in themes now also support these languages:
* German (#2633)
@@ -887,7 +887,7 @@ Other small improvements; see [commit log](https://github.com/mkdocs/mkdocs/comp
Normally MkDocs never reaches into any other directories (so this feature shouldn't be necessary), but some plugins and extensions may do so.
- See [documentation](https://www.mkdocs.org/user-guide/configuration/#watch).
+ See [documentation](https://properdocs.org/user-guide/configuration/#watch).
* New `--no-history` option for `gh_deploy` (#2594)
@@ -911,9 +911,9 @@ Other small improvements; see [commit log](https://github.com/mkdocs/mkdocs/comp
* Recursively validate `nav` (#2680)
- Validation of the nested `nav` structure has been reworked to report errors early and reliably. Some [edge cases](https://github.com/mkdocs/mkdocs/blob/b7272150bbc9bf8f66c878f6517742de3528972b/mkdocs/tests/config/config_options_tests.py#L783) have been declared invalid.
+ Validation of the nested `nav` structure has been reworked to report errors early and reliably. Some [edge cases](https://github.com/properdocs/properdocs/blob/b7272150bbc9bf8f66c878f6517742de3528972b/mkdocs/tests/config/config_options_tests.py#L783) have been declared invalid.
-Other small improvements; see [commit log](https://github.com/mkdocs/mkdocs/compare/1.2.3...1.3.0).
+Other small improvements; see [commit log](https://github.com/properdocs/properdocs/compare/1.2.3...1.3.0).
## Version 1.2.4 (2022-03-26)
@@ -942,7 +942,7 @@ Other small improvements; see [commit log](https://github.com/mkdocs/mkdocs/comp
* Bugfix: Python version 3.10 was displayed incorrectly in `--version` (#2618)
-Other small improvements; see [commit log](https://github.com/mkdocs/mkdocs/compare/1.2.2...1.2.3).
+Other small improvements; see [commit log](https://github.com/properdocs/properdocs/compare/1.2.2...1.2.3).
## Version 1.2.2 (2021-07-18)
diff --git a/docs/dev-guide/README.md b/docs/dev-guide/README.md
index 183365e0..8d262bc5 100644
--- a/docs/dev-guide/README.md
+++ b/docs/dev-guide/README.md
@@ -1,12 +1,12 @@
# Developer Guide
-Extending MkDocs
+Extending ProperDocs
---
-The MkDocs Developer Guide provides documentation for developers of third
+The ProperDocs Developer Guide provides documentation for developers of third
party themes and plugins. Please see the [Contributing Guide] for information
-on contributing to MkDocs itself. You can jump directly to a page listed
+on contributing to ProperDocs itself. You can jump directly to a page listed
below, or use the *next* and *previous* buttons in the navigation bar at the
top of the page to move through the documentation in order.
diff --git a/docs/dev-guide/api.md b/docs/dev-guide/api.md
index b0917402..b4e6bf55 100644
--- a/docs/dev-guide/api.md
+++ b/docs/dev-guide/api.md
@@ -2,23 +2,23 @@
NOTE: The main entry point to the API is through [Events](plugins.md#events) that are received by plugins. These events' descriptions link back to this page.
-::: mkdocs.structure.files.Files
+::: properdocs.structure.files.Files
options:
show_root_heading: true
-::: mkdocs.structure.files.File
+::: properdocs.structure.files.File
options:
show_root_heading: true
-::: mkdocs.config.base.Config
+::: properdocs.config.base.Config
options:
show_root_heading: true
-::: mkdocs.utils.templates.TemplateContext
+::: properdocs.utils.templates.TemplateContext
options:
show_root_heading: true
show_if_no_docstring: true
-::: mkdocs.livereload.LiveReloadServer
+::: properdocs.livereload.LiveReloadServer
options:
show_root_heading: true
diff --git a/docs/dev-guide/plugins.md b/docs/dev-guide/plugins.md
index e0305c3c..646cfeb1 100644
--- a/docs/dev-guide/plugins.md
+++ b/docs/dev-guide/plugins.md
@@ -1,21 +1,21 @@
-# MkDocs Plugins
+# ProperDocs Plugins
-A Guide to installing, using and creating MkDocs Plugins
+A Guide to installing, using and creating ProperDocs Plugins
---
## Installing Plugins
Before a plugin can be used, it must be installed on the system. If you are
-using a plugin which comes with MkDocs, then it was installed when you installed
-MkDocs. However, to install third party plugins, you need to determine the
+using a plugin which comes with ProperDocs, then it was installed when you installed
+ProperDocs. However, to install third party plugins, you need to determine the
appropriate package name and install it using `pip`:
```bash
-pip install mkdocs-foo-plugin
+pip install properdocs-foo-plugin
```
-WARNING: Installing an MkDocs plugin means installing a Python package and executing any code that the author has put in there. So, exercise the usual caution; there's no attempt at sandboxing.
+WARNING: Installing a ProperDocs plugin means installing a Python package and executing any code that the author has put in there. So, exercise the usual caution; there's no attempt at sandboxing.
Once a plugin has been successfully installed, it is ready to use. It just needs
to be [enabled](#using-plugins) in the configuration file. The [Catalog]
@@ -56,15 +56,15 @@ For a list of default plugins and how to override them, see the
## Developing Plugins
-Like MkDocs, plugins must be written in Python. It is generally expected that
+Like ProperDocs, plugins must be written in Python. It is generally expected that
each plugin would be distributed as a separate Python module, although it is
-possible to define multiple plugins in the same module. At a minimum, a MkDocs
+possible to define multiple plugins in the same module. At a minimum, a ProperDocs
Plugin must consist of a [BasePlugin] subclass and an [entry point] which
points to it.
### BasePlugin
-A subclass of `mkdocs.plugins.BasePlugin` should define the behavior of the plugin.
+A subclass of `properdocs.plugins.BasePlugin` should define the behavior of the plugin.
The class generally consists of actions to perform on specific events in the build
process as well as a configuration scheme for the plugin.
@@ -75,16 +75,16 @@ All `BasePlugin` subclasses contain the following attributes:
A tuple of configuration validation instances. Each item must consist of a
two item tuple in which the first item is the string name of the
configuration option and the second item is an instance of
-`mkdocs.config.config_options.BaseConfigOption` or any of its subclasses.
+`properdocs.config.config_options.BaseConfigOption` or any of its subclasses.
For example, the following `config_scheme` defines three configuration options: `foo`, which accepts a string; `bar`, which accepts an integer; and `baz`, which accepts a boolean value.
```python
-class MyPlugin(mkdocs.plugins.BasePlugin):
+class MyPlugin(properdocs.plugins.BasePlugin):
config_scheme = (
- ('foo', mkdocs.config.config_options.Type(str, default='a default value')),
- ('bar', mkdocs.config.config_options.Type(int, default=0)),
- ('baz', mkdocs.config.config_options.Type(bool, default=True))
+ ('foo', properdocs.config.config_options.Type(str, default='a default value')),
+ ('bar', properdocs.config.config_options.Type(int, default=0)),
+ ('baz', properdocs.config.config_options.Type(bool, default=True))
)
```
@@ -95,12 +95,12 @@ class MyPlugin(mkdocs.plugins.BasePlugin):
> To get type safety benefits, if you're targeting only MkDocs 1.4+, define the config schema as a class instead:
>
> ```python
-> class MyPluginConfig(mkdocs.config.base.Config):
-> foo = mkdocs.config.config_options.Type(str, default='a default value')
-> bar = mkdocs.config.config_options.Type(int, default=0)
-> baz = mkdocs.config.config_options.Type(bool, default=True)
+> class MyPluginConfig(properdocs.config.base.Config):
+> foo = properdocs.config.config_options.Type(str, default='a default value')
+> bar = properdocs.config.config_options.Type(int, default=0)
+> baz = properdocs.config.config_options.Type(bool, default=True)
>
-> class MyPlugin(mkdocs.plugins.BasePlugin[MyPluginConfig]):
+> class MyPlugin(properdocs.plugins.BasePlugin[MyPluginConfig]):
> ...
> ```
@@ -109,7 +109,7 @@ class MyPlugin(mkdocs.plugins.BasePlugin):
>! EXAMPLE:
>
> ```python
-> from mkdocs.config import base, config_options as c
+> from properdocs.config import base, config_options as c
>
> class _ValidationOptions(base.Config):
> enabled = c.Type(bool, default=True)
@@ -143,7 +143,7 @@ class MyPlugin(mkdocs.plugins.BasePlugin):
>
> ```python
> import numbers
-> from mkdocs.config import base, config_options as c
+> from properdocs.config import base, config_options as c
>
> class _Rectangle(base.Config):
> width = c.Type(numbers.Real) # required
@@ -169,11 +169,11 @@ class MyPlugin(mkdocs.plugins.BasePlugin):
When the user's configuration is loaded, the above scheme will be used to
validate the configuration and fill in any defaults for settings not
provided by the user. The validation classes may be any of the classes
-provided in `mkdocs.config.config_options` or a third party subclass defined
+provided in `properdocs.config.config_options` or a third party subclass defined
in the plugin.
Any settings provided by the user which fail validation or are not defined
-in the `config_scheme` will raise a `mkdocs.config.base.ValidationError`.
+in the `config_scheme` will raise a `properdocs.config.base.ValidationError`.
#### config
@@ -204,7 +204,7 @@ All `BasePlugin` subclasses contain the following method(s):
#### load_config(options)
Loads configuration from a dictionary of options. Returns a tuple of
-`(errors, warnings)`. This method is called by MkDocs during configuration
+`(errors, warnings)`. This method is called by ProperDocs during configuration
validation and should not need to be called by the plugin.
#### on_<event_name>()
@@ -221,7 +221,7 @@ returns `None`), then the original, unmodified object is used. The keyword
arguments are simply provided to give context and/or supply data which may
be used to determine how the positional argument should be modified. It is
good practice to accept keyword arguments as `**kwargs`. In the event that
-additional keywords are provided to an event in a future version of MkDocs,
+additional keywords are provided to an event in a future version of ProperDocs,
there will be no need to alter your plugin.
For example, the following event would add an additional static_template to
@@ -239,7 +239,7 @@ class MyPlugin(BasePlugin):
> To get type safety benefits, if you're targeting only MkDocs 1.4+, access config options as attributes instead:
>
> ```python
-> def on_config(self, config: MkDocsConfig):
+> def on_config(self, config: ProperDocsConfig):
> config.theme.static_templates.add('my_template.html')
> return config
> ```
@@ -269,25 +269,25 @@ There are three kinds of events: [Global Events], [Page Events] and
#### One-time Events
-One-time events run once per `mkdocs` invocation. The only case where these tangibly differ from [global events](#global-events) is for `mkdocs serve`: global events, unlike these, will run multiple times -- once per *build*.
+One-time events run once per `properdocs` invocation. The only case where these tangibly differ from [global events](#global-events) is for `properdocs serve`: global events, unlike these, will run multiple times -- once per *build*.
##### on_startup
-::: mkdocs.plugins.BasePlugin.on_startup
+::: properdocs.plugins.BasePlugin.on_startup
options:
show_root_heading: false
show_root_toc_entry: false
##### on_shutdown
-::: mkdocs.plugins.BasePlugin.on_shutdown
+::: properdocs.plugins.BasePlugin.on_shutdown
options:
show_root_heading: false
show_root_toc_entry: false
##### on_serve
-::: mkdocs.plugins.BasePlugin.on_serve
+::: properdocs.plugins.BasePlugin.on_serve
options:
show_root_heading: false
show_root_toc_entry: false
@@ -300,49 +300,49 @@ entire site.
##### on_config
-::: mkdocs.plugins.BasePlugin.on_config
+::: properdocs.plugins.BasePlugin.on_config
options:
show_root_heading: false
show_root_toc_entry: false
##### on_pre_build
-::: mkdocs.plugins.BasePlugin.on_pre_build
+::: properdocs.plugins.BasePlugin.on_pre_build
options:
show_root_heading: false
show_root_toc_entry: false
##### on_files
-::: mkdocs.plugins.BasePlugin.on_files
+::: properdocs.plugins.BasePlugin.on_files
options:
show_root_heading: false
show_root_toc_entry: false
##### on_nav
-::: mkdocs.plugins.BasePlugin.on_nav
+::: properdocs.plugins.BasePlugin.on_nav
options:
show_root_heading: false
show_root_toc_entry: false
##### on_env
-::: mkdocs.plugins.BasePlugin.on_env
+::: properdocs.plugins.BasePlugin.on_env
options:
show_root_heading: false
show_root_toc_entry: false
##### on_post_build
-::: mkdocs.plugins.BasePlugin.on_post_build
+::: properdocs.plugins.BasePlugin.on_post_build
options:
show_root_heading: false
show_root_toc_entry: false
##### on_build_error
-::: mkdocs.plugins.BasePlugin.on_build_error
+::: properdocs.plugins.BasePlugin.on_build_error
options:
show_root_heading: false
show_root_toc_entry: false
@@ -356,21 +356,21 @@ called after the [env] event and before any [page events].
##### on_pre_template
-::: mkdocs.plugins.BasePlugin.on_pre_template
+::: properdocs.plugins.BasePlugin.on_pre_template
options:
show_root_heading: false
show_root_toc_entry: false
##### on_template_context
-::: mkdocs.plugins.BasePlugin.on_template_context
+::: properdocs.plugins.BasePlugin.on_template_context
options:
show_root_heading: false
show_root_toc_entry: false
##### on_post_template
-::: mkdocs.plugins.BasePlugin.on_post_template
+::: properdocs.plugins.BasePlugin.on_post_template
options:
show_root_heading: false
show_root_toc_entry: false
@@ -383,42 +383,42 @@ page events are called after the [post_template] event and before the
##### on_pre_page
-::: mkdocs.plugins.BasePlugin.on_pre_page
+::: properdocs.plugins.BasePlugin.on_pre_page
options:
show_root_heading: false
show_root_toc_entry: false
##### on_page_read_source
-::: mkdocs.plugins.BasePlugin.on_page_read_source
+::: properdocs.plugins.BasePlugin.on_page_read_source
options:
show_root_heading: false
show_root_toc_entry: false
##### on_page_markdown
-::: mkdocs.plugins.BasePlugin.on_page_markdown
+::: properdocs.plugins.BasePlugin.on_page_markdown
options:
show_root_heading: false
show_root_toc_entry: false
##### on_page_content
-::: mkdocs.plugins.BasePlugin.on_page_content
+::: properdocs.plugins.BasePlugin.on_page_content
options:
show_root_heading: false
show_root_toc_entry: false
##### on_page_context
-::: mkdocs.plugins.BasePlugin.on_page_context
+::: properdocs.plugins.BasePlugin.on_page_context
options:
show_root_heading: false
show_root_toc_entry: false
##### on_post_page
-::: mkdocs.plugins.BasePlugin.on_post_page
+::: properdocs.plugins.BasePlugin.on_post_page
options:
show_root_heading: false
show_root_toc_entry: false
@@ -429,7 +429,7 @@ For each event type, corresponding methods of plugins are called in the order th
Since MkDocs 1.4, plugins can choose to set a priority value for their events. Events with higher priority are called first. Events without a chosen priority get a default of 0. Events that have the same priority are ordered as they appear in the config.
-#### ::: mkdocs.plugins.event_priority
+#### ::: properdocs.plugins.event_priority
> NEW: **New in version 1.6**
>
@@ -437,24 +437,24 @@ Since MkDocs 1.4, plugins can choose to set a priority value for their events. E
>
> `CombinedEvent` makes this possible.
>
-> #### ::: mkdocs.plugins.CombinedEvent
+> #### ::: properdocs.plugins.CombinedEvent
### Handling Errors
-MkDocs defines four error types:
+ProperDocs defines four error types:
-#### ::: mkdocs.exceptions.MkDocsException
+#### ::: properdocs.exceptions.ProperDocsException
-#### ::: mkdocs.exceptions.ConfigurationError
+#### ::: properdocs.exceptions.ConfigurationError
-#### ::: mkdocs.exceptions.BuildError
+#### ::: properdocs.exceptions.BuildError
-#### ::: mkdocs.exceptions.PluginError
+#### ::: properdocs.exceptions.PluginError
Unexpected and uncaught exceptions will interrupt the build process and produce
typical Python tracebacks, which are useful for debugging your code. However,
users generally find tracebacks overwhelming and often miss the helpful error
-message. Therefore, MkDocs will catch any of the errors listed above, retrieve
+message. Therefore, ProperDocs will catch any of the errors listed above, retrieve
the error message, and exit immediately with only the helpful message displayed
to the user.
@@ -467,8 +467,8 @@ The [on_build_error] event will be triggered for any exception.
For example:
```python
-from mkdocs.exceptions import PluginError
-from mkdocs.plugins import BasePlugin
+from properdocs.exceptions import PluginError
+from properdocs.plugins import BasePlugin
class MyPlugin(BasePlugin):
@@ -486,14 +486,14 @@ class MyPlugin(BasePlugin):
### Logging in plugins
-To ensure that your plugins' log messages adhere with MkDocs' formatting and `--verbose`/`--debug` flags, please write the logs to a logger under the `mkdocs.plugins.` namespace.
+To ensure that your plugins' log messages adhere with ProperDocs' formatting and `--verbose`/`--debug` flags, please write the logs to a logger under the `properdocs.plugins.` namespace.
> EXAMPLE:
>
> ```python
> import logging
>
-> log = logging.getLogger(f"mkdocs.plugins.{__name__}")
+> log = logging.getLogger(f"properdocs.plugins.{__name__}")
>
> log.warning("File '%s' not found. Breaks the build if --strict is passed", my_file_name)
> log.info("Shown normally")
@@ -503,24 +503,24 @@ To ensure that your plugins' log messages adhere with MkDocs' formatting and `--
> log.debug("Very expensive calculation only for debugging: %s", get_my_diagnostics())
> ```
-`log.error()` is another logging level that is differentiated by its look, but in all other ways it functions the same as `warning`, so it's strange to use it. If your plugin encounters an actual error, it is best to just interrupt the build by raising [`mkdocs.exceptions.PluginError`][] (which will also log an ERROR message).
+`log.error()` is another logging level that is differentiated by its look, but in all other ways it functions the same as `warning`, so it's strange to use it. If your plugin encounters an actual error, it is best to just interrupt the build by raising [`properdocs.exceptions.PluginError`][] (which will also log an ERROR message).
> NEW: **New in version 1.5**
>
-> MkDocs now provides a `get_plugin_logger()` convenience function that returns a logger like the above that is also prefixed with the plugin's name.
+> ProperDocs now provides a `get_plugin_logger()` convenience function that returns a logger like the above that is also prefixed with the plugin's name.
>
-> #### ::: mkdocs.plugins.get_plugin_logger
+> #### ::: properdocs.plugins.get_plugin_logger
### Entry Point
Plugins need to be packaged as Python libraries (distributed on PyPI separate
-from MkDocs) and each must register as a Plugin via a setuptools `entry_points`.
+from ProperDocs) and each must register as a Plugin via a setuptools `entry_points`.
Add the following to your `setup.py` script:
```python
entry_points={
- 'mkdocs.plugins': [
+ 'properdocs.plugins': [
'pluginname = path.to.some_plugin:SomePluginClass',
]
}
@@ -535,7 +535,7 @@ entry point.
```python
entry_points={
- 'mkdocs.plugins': [
+ 'properdocs.plugins': [
'featureA = path.to.my_plugins:PluginA',
'featureB = path.to.my_plugins:PluginB'
]
@@ -543,7 +543,7 @@ entry_points={
```
Note that registering a plugin does not activate it. The user still needs to
-tell MkDocs to use it via the config.
+tell ProperDocs to use it via the config.
### Publishing a Plugin
@@ -561,6 +561,6 @@ You should publish a package on [PyPI], then add it to the [Catalog] for discove
[post_template]: #on_post_template
[static_templates]: ../user-guide/configuration.md#static_templates
[Template Events]: #template-events
-[catalog]: https://github.com/mkdocs/catalog
+[catalog]: https://github.com/properdocs/catalog
[on_build_error]: #on_build_error
[PyPI]: https://pypi.org/
diff --git a/docs/dev-guide/themes.md b/docs/dev-guide/themes.md
index ea4b9911..6acd36d7 100644
--- a/docs/dev-guide/themes.md
+++ b/docs/dev-guide/themes.md
@@ -6,7 +6,7 @@ A guide to creating and distributing custom themes.
NOTE:
If you are looking for existing third party themes, they are listed in the
-[community wiki] page and the [MkDocs project catalog][catalog]. If you want to
+[community wiki] page and the [ProperDocs project catalog][catalog]. If you want to
share a theme you create, you should list it there.
When creating a new theme, you can either follow the steps in this guide to
@@ -15,8 +15,8 @@ basic, yet complete, theme with all the boilerplate required. **You can find
this base theme on [GitHub][basic theme]**. It contains detailed comments in
the code to describe the different features and their usage.
-[community wiki]: https://github.com/mkdocs/mkdocs/wiki/MkDocs-Themes
-[catalog]: https://github.com/mkdocs/catalog#-theming
+[community wiki]: https://github.com/properdocs/properdocs/wiki/ProperDocs-Themes
+[catalog]: https://github.com/properdocs/catalog#-theming
[basic theme]: https://github.com/mkdocs/mkdocs-basic-theme
## Creating a custom theme
@@ -109,9 +109,9 @@ respectively. If you wish to write your own theme, it is recommended to start
with one of the [built-in themes] and modify it accordingly.
NOTE:
-As MkDocs uses [Jinja] as its template engine, you have access to all the
+As ProperDocs uses [Jinja] as its template engine, you have access to all the
power of Jinja, including [template inheritance]. You may notice that the
-themes included with MkDocs make extensive use of template inheritance and
+themes included with ProperDocs make extensive use of template inheritance and
blocks, allowing users to easily override small bits and pieces of the
templates from the theme [custom_dir]. Therefore, the built-in themes are
implemented in a `base.html` file, which `main.html` extends. Although not
@@ -125,7 +125,7 @@ themes for consistency.
### Picking up CSS and JavaScript from the config
-MkDocs defines the top-level [extra_css](../user-guide/configuration.md#extra_css) and [extra_javascript](../user-guide/configuration.md#extra_javascript) configs. These are lists of files.
+ProperDocs defines the top-level [extra_css](../user-guide/configuration.md#extra_css) and [extra_javascript](../user-guide/configuration.md#extra_javascript) configs. These are lists of files.
The theme must include the HTML that links the items from these configs, otherwise the configs will be non-functional. You can see the recommended way to render both of them in the [base example above](#basic-theme).
@@ -133,7 +133,7 @@ The theme must include the HTML that links the items from these configs, otherwi
>
> The items of the `config.extra_javascript` list used to be simple strings but now became objects that have these fields: `path`, `type`, `async`, `defer`.
>
-> In that version, MkDocs also gained the [`script_tag` filter](#script_tag).
+> In that version, ProperDocs also gained the [`script_tag` filter](#script_tag).
>
> >? EXAMPLE: **Obsolete style:**
> >
@@ -200,7 +200,7 @@ the `mkdocs_theme.yml` configuration file and any Python files.
### Dot Files
-Theme authors can explicitly force MkDocs to ignore files by starting a file or
+Theme authors can explicitly force ProperDocs to ignore files by starting a file or
directory name with a dot. Any of the following files would be ignored:
```text
@@ -231,7 +231,7 @@ The following variables are available globally on any template.
#### config
-The `config` variable is an instance of MkDocs' config object generated from the
+The `config` variable is an instance of ProperDocs' config object generated from the
`mkdocs.yml` config file. While you can use any config option, some commonly
used options include:
@@ -254,7 +254,7 @@ defined by the [nav] configuration setting.
[nav]: ../user-guide/configuration.md#nav
-::: mkdocs.structure.nav.Navigation
+::: properdocs.structure.nav.Navigation
options:
show_root_heading: false
show_root_toc_entry: true
@@ -264,12 +264,12 @@ defined by the [nav] configuration setting.
In addition to the iterable of [navigation objects](#navigation-objects), the
`nav` object contains the following attributes:
-::: mkdocs.structure.nav.Navigation.homepage
+::: properdocs.structure.nav.Navigation.homepage
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.nav.Navigation.pages
+::: properdocs.structure.nav.Navigation.pages
options:
show_root_full_path: false
heading_level: 5
@@ -310,14 +310,14 @@ navigation as a nested list.
#### base_url
-The `base_url` provides a relative path to the root of the MkDocs project. While
+The `base_url` provides a relative path to the root of the ProperDocs project. While
this can be used directly by prepending it to a local relative URL, it is best
to use the [url](#url) template filter, which is smarter about how it applies
`base_url`.
#### mkdocs_version
-Contains the current MkDocs version.
+Contains the current ProperDocs version.
#### build_date_utc
@@ -340,7 +340,7 @@ the `page` variable contains a `page` object. The same `page` objects are used
as `page` [navigation objects](#navigation-objects) in the global
[navigation](#nav) and in the [pages](#pages) template variable.
-::: mkdocs.structure.pages.Page
+::: properdocs.structure.pages.Page
options:
show_root_heading: false
show_root_toc_entry: true
@@ -349,17 +349,17 @@ as `page` [navigation objects](#navigation-objects) in the global
All `page` objects contain the following attributes:
-::: mkdocs.structure.pages.Page.title
+::: properdocs.structure.pages.Page.title
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.pages.Page.content
+::: properdocs.structure.pages.Page.content
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.pages.Page.toc
+::: properdocs.structure.pages.Page.toc
options:
show_root_full_path: false
heading_level: 5
@@ -378,7 +378,7 @@ for a page.
```
-::: mkdocs.structure.pages.Page.meta
+::: properdocs.structure.pages.Page.meta
options:
show_root_full_path: false
heading_level: 5
@@ -406,7 +406,7 @@ documentation page.
{% endfor %}
```
-::: mkdocs.structure.pages.Page.url
+::: properdocs.structure.pages.Page.url
options:
show_root_full_path: false
heading_level: 5
@@ -418,12 +418,12 @@ page.
{{ page.title }}
```
-::: mkdocs.structure.pages.Page.file
+::: properdocs.structure.pages.Page.file
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.pages.Page.abs_url
+::: properdocs.structure.pages.Page.abs_url
options:
show_root_full_path: false
heading_level: 5
@@ -433,17 +433,17 @@ For example, if `site_url: https://example.com/`, then the value of
`site_url: https://example.com/bar/`, then the value of `page.abs_url` for the
page `foo.md` would be `/bar/foo/`.
-::: mkdocs.structure.pages.Page.canonical_url
+::: properdocs.structure.pages.Page.canonical_url
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.pages.Page.edit_url
+::: properdocs.structure.pages.Page.edit_url
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.pages.Page.is_homepage
+::: properdocs.structure.pages.Page.is_homepage
options:
show_root_full_path: false
heading_level: 5
@@ -456,49 +456,49 @@ on the homepage:
{% if not page.is_homepage %}{{ page.title }} - {% endif %}{{ site_name }}
```
-::: mkdocs.structure.pages.Page.previous_page
+::: properdocs.structure.pages.Page.previous_page
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.pages.Page.next_page
+::: properdocs.structure.pages.Page.next_page
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.StructureItem.parent
+::: properdocs.structure.StructureItem.parent
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.pages.Page.children
+::: properdocs.structure.pages.Page.children
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.pages.Page.active
+::: properdocs.structure.pages.Page.active
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.pages.Page.is_section
+::: properdocs.structure.pages.Page.is_section
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.pages.Page.is_page
+::: properdocs.structure.pages.Page.is_page
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.pages.Page.is_link
+::: properdocs.structure.pages.Page.is_link
options:
show_root_full_path: false
heading_level: 5
#### AnchorLink
-::: mkdocs.structure.toc.AnchorLink
+::: properdocs.structure.toc.AnchorLink
options:
show_root_heading: false
show_root_toc_entry: true
@@ -519,11 +519,11 @@ of those attributes as defined below:
A `section` navigation object defines a named section in the navigation and
contains a list of child navigation objects. Note that sections do not contain
-URLs and are not links of any kind. However, by default, MkDocs sorts index
+URLs and are not links of any kind. However, by default, ProperDocs sorts index
pages to the top and the first child might be used as the URL for a section if a
theme chooses to do so.
-::: mkdocs.structure.nav.Section
+::: properdocs.structure.nav.Section
options:
show_root_heading: false
show_root_toc_entry: true
@@ -532,37 +532,37 @@ theme chooses to do so.
The following attributes are available on `section` objects:
-::: mkdocs.structure.nav.Section.title
+::: properdocs.structure.nav.Section.title
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.StructureItem.parent
+::: properdocs.structure.StructureItem.parent
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.nav.Section.children
+::: properdocs.structure.nav.Section.children
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.nav.Section.active
+::: properdocs.structure.nav.Section.active
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.nav.Section.is_section
+::: properdocs.structure.nav.Section.is_section
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.nav.Section.is_page
+::: properdocs.structure.nav.Section.is_page
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.nav.Section.is_link
+::: properdocs.structure.nav.Section.is_link
options:
show_root_full_path: false
heading_level: 5
@@ -570,9 +570,9 @@ The following attributes are available on `section` objects:
#### Link
A `link` navigation object contains a link which does not point to an internal
-MkDocs page.
+ProperDocs page.
-::: mkdocs.structure.nav.Link
+::: properdocs.structure.nav.Link
options:
show_root_heading: false
show_root_toc_entry: true
@@ -581,42 +581,42 @@ MkDocs page.
The following attributes are available on `link` objects:
-::: mkdocs.structure.nav.Link.title
+::: properdocs.structure.nav.Link.title
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.nav.Link.url
+::: properdocs.structure.nav.Link.url
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.StructureItem.parent
+::: properdocs.structure.StructureItem.parent
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.nav.Link.children
+::: properdocs.structure.nav.Link.children
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.nav.Link.active
+::: properdocs.structure.nav.Link.active
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.nav.Link.is_section
+::: properdocs.structure.nav.Link.is_section
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.nav.Link.is_page
+::: properdocs.structure.nav.Link.is_page
options:
show_root_full_path: false
heading_level: 5
-::: mkdocs.structure.nav.Link.is_link
+::: properdocs.structure.nav.Link.is_link
options:
show_root_full_path: false
heading_level: 5
@@ -635,9 +635,9 @@ following `extra` configuration:
extra:
version: 0.13.0
links:
- - https://github.com/mkdocs
+ - https://github.com/properdocs
- https://docs.readthedocs.org/en/latest/builds.html#mkdocs
- - https://www.mkdocs.org/
+ - https://properdocs.org/
```
And then displayed with this HTML in the custom theme.
@@ -657,7 +657,7 @@ And then displayed with this HTML in the custom theme.
## Template Filters
In addition to [Jinja's default filters], the following custom filters are
-available to use in MkDocs templates:
+available to use in ProperDocs templates:
### url
@@ -676,7 +676,7 @@ Safely convert a Python object to a value in a JavaScript script.
```django
```
@@ -690,7 +690,7 @@ See how to use it in the [base example above](#basic-theme)
## Search and themes
-As of MkDocs version *0.17* client side search support has been added to MkDocs
+As of ProperDocs version *0.17* client side search support has been added to ProperDocs
via the `search` plugin. A theme needs to provide a few things for the plugin to
work with the theme.
@@ -725,18 +725,18 @@ full search implementation to your theme.
+
Sorry, page not found.
```
The JavaScript in the plugin works by looking for the specific ID's used in the
above HTML. The form input for the user to type the search query must be
-identified with `id="mkdocs-search-query"` and the div where the results will be
-placed must be identified with `id="mkdocs-search-results"`.
+identified with `id="properdocs-search-query"` and the div where the results will be
+placed must be identified with `id="properdocs-search-results"`.
The plugin supports the following options being set in the [theme's
configuration file], `mkdocs_theme.yml`:
@@ -782,7 +782,7 @@ objects.
If present, the `config` object contains the key/value pairs of config options
defined for the plugin in the user's `mkdocs.yml` config file under
-`plugings.search`. The `config` object was new in MkDocs version *1.0*.
+`plugings.search`. The `config` object was new in ProperDocs version *1.0*.
The `docs` object contains a list of document objects. Each document object is
made up of a `location` (URL), a `title`, and `text` which can be used to create
@@ -792,10 +792,10 @@ If present, the `index` object contains a pre-built index which offers
performance improvements for larger sites. Note that the pre-built index is only
created if the user explicitly enables the [prebuild_index] config option.
Themes should expect the index to not be present, but can choose to use the
-index when it is available. The `index` object was new in MkDocs version *1.0*.
+index when it is available. The `index` object was new in ProperDocs version *1.0*.
[Jinja2 template]: https://jinja.palletsprojects.com/
-[built-in themes]: https://github.com/mkdocs/mkdocs/tree/master/mkdocs/themes
+[built-in themes]: https://github.com/properdocs/properdocs/tree/master/properdocs/themes
[theme's configuration file]: #theme-configuration
[lunr.js]: https://lunrjs.com/
[site_dir]: ../user-guide/configuration.md#site_dir
@@ -804,11 +804,11 @@ index when it is available. The `index` object was new in MkDocs version *1.0*.
## Packaging Themes
-MkDocs makes use of [Python packaging] to distribute themes. This comes with a
+ProperDocs makes use of [Python packaging] to distribute themes. This comes with a
few requirements.
-To see an example of a package containing one theme, see the [MkDocs Bootstrap
-theme] and to see a package that contains many themes, see the [MkDocs
+To see an example of a package containing one theme, see the [ProperDocs Bootstrap
+theme] and to see a package that contains many themes, see the [ProperDocs
Bootswatch theme].
NOTE:
@@ -821,8 +821,8 @@ your theme, your users can more easily install it, they can rely on a default
[custom_dir] to make tweaks to your theme to better suit their needs.
[Python packaging]: https://packaging.python.org/en/latest/
-[MkDocs Bootstrap theme]: https://mkdocs.github.io/mkdocs-bootstrap/
-[MkDocs Bootswatch theme]: https://mkdocs.github.io/mkdocs-bootswatch/
+[ProperDocs Bootstrap theme]: https://mkdocs.github.io/mkdocs-bootstrap/
+[ProperDocs Bootswatch theme]: https://mkdocs.github.io/mkdocs-bootswatch/
### Package Layout
@@ -860,7 +860,7 @@ from setuptools import setup, find_packages
VERSION = '0.0.1'
setup(
- name="mkdocs-themename",
+ name="properdocs-themename",
version=VERSION,
url='',
license='',
@@ -870,7 +870,7 @@ setup(
packages=find_packages(),
include_package_data=True,
entry_points={
- 'mkdocs.themes': [
+ 'properdocs.themes': [
'themename = theme_name',
]
},
@@ -880,12 +880,12 @@ setup(
Fill in the URL, license, description, author and author email address.
-The name should follow the convention `mkdocs-themename` (like
-`mkdocs-bootstrap` and `mkdocs-bootswatch`), starting with MkDocs, using
+The name should follow the convention `properdocs-themename` (like
+`mkdocs-bootstrap` and `mkdocs-bootswatch`), starting with ProperDocs, using
hyphens to separate words and including the name of your theme.
Most of the rest of the file can be left unedited. The last section we need to
-change is the entry_points. This is how MkDocs finds the theme(s) you are
+change is the entry_points. This is how ProperDocs finds the theme(s) you are
including in the package. The name on the left is the one that users will use
in their mkdocs.yml and the one on the right is the directory containing your
theme files.
@@ -931,7 +931,7 @@ theme:
show_sidebar: false
```
-In addition to arbitrary options defined by the theme, MkDocs defines a few
+In addition to arbitrary options defined by the theme, ProperDocs defines a few
special options which alters its behavior:
> BLOCK:
@@ -999,7 +999,7 @@ With the above changes, your theme should now be ready to install. This can be
done with pip, using `pip install .` if you are still in the same directory as
the setup.py.
-Most Python packages, including MkDocs, are distributed on PyPI. To do this,
+Most Python packages, including ProperDocs, are distributed on PyPI. To do this,
you should run the following command.
```bash
@@ -1027,7 +1027,7 @@ will experience consistent behavior regardless of the theme they may choose.
The method for managing translations is up to the developers of a theme.
However, if a theme developer chooses to use the same mechanisms used by the
built-in themes, the sections below outline how to enable and make use of the
-same commands utilized by MkDocs.
+same commands utilized by ProperDocs.
[localization/translation]: ../user-guide/localizing-your-theme.md
@@ -1037,12 +1037,12 @@ WARNING:
As **[pybabel] is not installed by default** and most users will not have
pybabel installed, theme developers and/or translators should make sure to
have installed the necessary dependencies
-(using `pip install 'mkdocs[i18n]'`) in order for the commands to be
+(using `pip install 'properdocs[i18n]'`) in order for the commands to be
available for use.
The translation commands should be called from the root of your theme's working tree.
-For an overview of the workflow used by MkDocs to translate the built-in
+For an overview of the workflow used by ProperDocs to translate the built-in
themes, see the appropriate [section] of the Contributing Guide and the
[Translation Guide].
@@ -1054,7 +1054,7 @@ themes, see the appropriate [section] of the Contributing Guide and the
> NOTE: If your theme inherits from an existing theme which already provides
> translation catalogs, your theme's translations will be merged with the
-> parent theme's translations during a MkDocs build.
+> parent theme's translations during a ProperDocs build.
>
> This means that you only need to concentrate on the added translations.
> Yet, you will still benefit from the translations of the parent theme. At
@@ -1073,8 +1073,8 @@ Edit the templates by wrapping text in your HTML sources with
--
This is an example theme for MkDocs.
-+
{% trans %}This is an example theme for MkDocs.{% endtrans %}
+-
This is an example theme for ProperDocs.
++
{% trans %}This is an example theme for ProperDocs.{% endtrans %}
It is designed to be read by looking at the theme HTML which is heavily
@@ -1088,21 +1088,21 @@ running.
While the Portable Object Template (`pot`) file created by the
`extract_messages` command and the Portable Object (`po`) files created by the
`init_catalog` and `update_catalog` commands are useful for creating and
-editing translations, they are not used by MkDocs directly and do not need to
-be included in a packaged release of a theme. When MkDocs builds a site with
+editing translations, they are not used by ProperDocs directly and do not need to
+be included in a packaged release of a theme. When ProperDocs builds a site with
translations, it only makes use of the binary `mo` files(s) for the specified
locale. Therefore, when [packaging a theme], make sure to include it in the
"wheels", using a `MANIFEST.in` file or otherwise.
Then, before building your Python package, you will want to ensure that the
binary `mo` file for each locale is up-to-date by running the `compile_catalog`
-command for each locale. MkDocs expects the binary `mo` files to be located at
+command for each locale. ProperDocs expects the binary `mo` files to be located at
`locales//LC_MESSAGES/messages.mo`, which the `compile_catalog`
command automatically does for you. See [Testing theme translations] for
details.
NOTE:
-As outlined in our [Translation Guide], the MkDocs project has chosen to
+As outlined in our [Translation Guide], the ProperDocs project has chosen to
include the `pot` and `po` files in our code repository, but not the
`mo` files. This requires us to always run `compile_catalog` before
packaging a new release regardless of whether any changes were made to a
diff --git a/docs/dev-guide/translations.md b/docs/dev-guide/translations.md
index 4c408b29..eb2fdddb 100644
--- a/docs/dev-guide/translations.md
+++ b/docs/dev-guide/translations.md
@@ -4,14 +4,14 @@ Theme localization guide.
---
-The [built-in themes] that are included with MkDocs provide support for
+The [built-in themes] that are included with ProperDocs provide support for
translations. This is a guide for translators, which documents the process for
contributing new translations and/or updating existing translations. For
guidance on modifying the existing themes, see the [Contributing Guide][update
themes]. To enable a specific translation see the documentation about the
specific theme you are using in the [User Guide][built-in themes]. For
translations of third-party themes, please see the documentation for those
-themes. For a third-party theme to make use of MkDocs' translation tools and
+themes. For a third-party theme to make use of ProperDocs' translation tools and
methods, that theme must be properly [configured] to make use of those tools.
NOTE:
@@ -38,7 +38,7 @@ are working from a properly configured development environment.
Make sure translation requirements are installed in your environment:
```bash
-pip install 'mkdocs[i18n]'
+pip install 'properdocs[i18n]'
```
[babel]: https://babel.pocoo.org/en/latest/cmdline.html
@@ -54,9 +54,9 @@ translation by following the steps below.
Here is a quick summary of what you'll need to do:
-1. [Fork and clone the MkDocs repository](#fork-and-clone-the-mkdocs-repository) and then [install MkDocs for development](../about/contributing.md#installing-for-development) for adding and testing translations.
+1. [Fork and clone the ProperDocs repository](#fork-and-clone-the-properdocs-repository) and then [install ProperDocs for development](../about/contributing.md#installing-for-development) for adding and testing translations.
2. [Initialize new localization catalogs](#initializing-the-localization-catalogs) for your language (if a translation for your locale already exists, follow the instructions for [updating theme localization files](#updating-the-translation-catalogs) instead).
-3. [Add a translation](#translating-the-mkdocs-themes) for every text placeholder in the localized catalogs.
+3. [Add a translation](#translating-the-properdocs-themes) for every text placeholder in the localized catalogs.
4. [Locally serve and test](#testing-theme-translations) the translated themes for your language.
5. [Update the documentation](#updating-theme-documentation) about supported translations for each translated theme.
6. [Contribute your translation](#contributing-translations) through a Pull Request.
@@ -70,13 +70,13 @@ use of a term which differs from the general language translation.
[ISO-639-1]: https://en.wikipedia.org/wiki/ISO_639-1
-### Fork and clone the MkDocs repository
+### Fork and clone the ProperDocs repository
-In the following steps you'll work with a fork of the MkDocs repository. Follow
-the instructions for [forking and cloning the MkDocs
+In the following steps you'll work with a fork of the ProperDocs repository. Follow
+the instructions for [forking and cloning the ProperDocs
repository](../about/contributing.md#installing-for-development).
-To test the translations you also need to [install MkDocs for
+To test the translations you also need to [install ProperDocs for
development](../about/contributing.md#installing-for-development) from your fork.
### Initializing the localization catalogs
@@ -104,21 +104,21 @@ In particular, the way to know that the `pt` language should be disambiguated as
So, if we pick `es` (Spanish) as our example language code, to add a translation for it to both built-in themes, run these commands:
```bash
-pybabel init --input-file mkdocs/themes/mkdocs/messages.pot --output-dir mkdocs/themes/mkdocs/locales -l es
-pybabel init --input-file mkdocs/themes/readthedocs/messages.pot --output-dir mkdocs/themes/readthedocs/locales -l es
+pybabel init --input-file properdocs/themes/mkdocs/messages.pot --output-dir properdocs/themes/mkdocs/locales -l es
+pybabel init --input-file properdocs/themes/readthedocs/messages.pot --output-dir properdocs/themes/readthedocs/locales -l es
```
The above command will create a file structure as follows:
```text
-mkdocs/themes/mkdocs/locales
+properdocs/themes/mkdocs/locales
├── es
│ └── LC_MESSAGES
│ └── messages.po
```
You can now move on to the next step and [add a
-translation](#translating-the-mkdocs-themes) for every text placeholder in the
+translation](#translating-the-properdocs-themes) for every text placeholder in the
localized catalog.
## Updating a theme translation
@@ -128,7 +128,7 @@ since the `messages.po` was last updated for your locale, follow the steps
below to update the theme's `messages.po` file:
1. [Update the theme's translation catalog](#updating-the-translation-catalogs) to refresh the translatable text placeholders of each theme.
-2. [Translate](#translating-the-mkdocs-themes) the newly added translatable text placeholders on every `messages.po` catalog file language you can.
+2. [Translate](#translating-the-properdocs-themes) the newly added translatable text placeholders on every `messages.po` catalog file language you can.
3. [Locally serve and test](#testing-theme-translations) the translated themes for your language.
4. [Contribute your translation](#contributing-translations) through a Pull Request.
@@ -141,16 +141,16 @@ for.
To update the `fr` translation catalog of both built-in themes, use the following commands:
```bash
-pybabel update --ignore-obsolete --input-file mkdocs/themes/mkdocs/messages.pot --output-dir mkdocs/themes/mkdocs/locales -l fr
-pybabel update --ignore-obsolete --input-file mkdocs/themes/readthedocs/messages.pot --output-dir mkdocs/themes/readthedocs/locales -l fr
+pybabel update --ignore-obsolete --input-file properdocs/themes/mkdocs/messages.pot --output-dir properdocs/themes/mkdocs/locales -l fr
+pybabel update --ignore-obsolete --input-file properdocs/themes/readthedocs/messages.pot --output-dir properdocs/themes/readthedocs/locales -l fr
```
You can now move on to the next step and [add a translation] for every updated
text placeholder in the localized catalog.
-[add a translation]: #translating-the-mkdocs-themes
+[add a translation]: #translating-the-properdocs-themes
-### Translating the MkDocs themes
+### Translating the ProperDocs themes
Now that your localized `messages.po` files are ready, all you need to do is
add a translation in each `msgstr` item for each `msgid` item in the file.
@@ -174,14 +174,14 @@ files of your theme into `messages.mo` files. The following commands will compil
the `es` translation for both built-in themes:
```bash
-pybabel compile --statistics --directory mkdocs/themes/mkdocs/locales -l es
-pybabel compile --statistics --directory mkdocs/themes/readthedocs/locales -l es
+pybabel compile --statistics --directory properdocs/themes/mkdocs/locales -l es
+pybabel compile --statistics --directory properdocs/themes/readthedocs/locales -l es
```
The above command results in the following file structure:
```text
-mkdocs/themes/mkdocs/locales
+properdocs/themes/mkdocs/locales
├── es
│ └── LC_MESSAGES
│ ├── messages.mo
@@ -200,7 +200,7 @@ theme:
locale: es
```
-Finally, run `mkdocs serve` to check out your new localized version of the theme.
+Finally, run `properdocs serve` to check out your new localized version of the theme.
> NOTE:
> The build and release process takes care of compiling and distributing
diff --git a/docs/getting-started.md b/docs/getting-started.md
index 490b95d9..0c70b3ca 100644
--- a/docs/getting-started.md
+++ b/docs/getting-started.md
@@ -1,4 +1,4 @@
-# Getting Started with MkDocs
+# Getting Started with ProperDocs
An introductory tutorial!
@@ -6,10 +6,10 @@ An introductory tutorial!
## Installation
-To install MkDocs, run the following command from the command line:
+To install ProperDocs, run the following command from the command line:
```bash
-pip install mkdocs
+pip install properdocs
```
For more details, see the [Installation Guide].
@@ -20,26 +20,26 @@ Getting started is super easy. To create a new project, run the following
command from the command line:
```bash
-mkdocs new my-project
+properdocs new my-project
cd my-project
```
Take a moment to review the initial project that has been created for you.
-
+
There's a single configuration file named `mkdocs.yml`, and a folder named
`docs` that will contain your documentation source files (`docs` is
the default value for the [docs_dir] configuration setting). Right now the `docs`
folder just contains a single documentation page, named `index.md`.
-MkDocs comes with a built-in dev-server that lets you preview your documentation
+ProperDocs comes with a built-in dev-server that lets you preview your documentation
as you work on it. Make sure you're in the same directory as the `mkdocs.yml`
-configuration file, and then start the server by running the `mkdocs serve`
+configuration file, and then start the server by running the `properdocs serve`
command:
```console
-$ mkdocs serve
+$ properdocs serve
INFO - Building documentation...
INFO - Cleaning site directory
INFO - Documentation built in 0.22 seconds
@@ -50,7 +50,7 @@ INFO - [15:50:43] Serving on http://127.0.0.1:8000/
Open up in your browser, and you'll see the default
home page being displayed:
-
+
The dev-server also supports auto-reloading, and will rebuild your documentation
whenever anything in the configuration file, documentation directory, or theme
@@ -130,12 +130,12 @@ Save your changes, and you'll see the ReadTheDocs theme being used.
## Changing the Favicon Icon
-By default, MkDocs uses the [MkDocs favicon] icon. To use a different icon, create
+By default, ProperDocs uses the [ProperDocs favicon] icon. To use a different icon, create
an `img` subdirectory in the `docs` directory and copy your custom `favicon.ico`
-file to that directory. MkDocs will automatically detect and use that file as your
+file to that directory. ProperDocs will automatically detect and use that file as your
favicon icon.
-[MkDocs favicon]: img/favicon.ico
+[ProperDocs favicon]: img/favicon.ico
## Building the site
@@ -143,7 +143,7 @@ That's looking good. You're ready to deploy the first pass of your `MkLorum`
documentation. First build the documentation:
```bash
-mkdocs build
+properdocs build
```
This will create a new directory, named `site`. Take a look inside the
@@ -152,13 +152,13 @@ directory:
```console
$ ls site
about fonts index.html license search.html
-css img js mkdocs sitemap.xml
+css img js properdocs sitemap.xml
```
Notice that your source documentation has been output as two HTML files named
`index.html` and `about/index.html`. You also have various other media that's
been copied into the `site` directory as part of the documentation theme. You
-even have a `sitemap.xml` file and `mkdocs/search_index.json`.
+even have a `sitemap.xml` file and `properdocs/search_index.json`.
If you're using source code control such as `git` you probably don't want to
check your documentation builds into the repository. Add a line containing
@@ -177,7 +177,7 @@ There are various other commands and options available. For a complete list of
commands, use the `--help` flag:
```bash
-mkdocs --help
+properdocs --help
```
To view a list of options available on a given command, use the `--help` flag
@@ -185,7 +185,7 @@ with that command. For example, to get a list of all options available for the
`build` command run the following:
```bash
-mkdocs build --help
+properdocs build --help
```
## Deploying
@@ -198,16 +198,16 @@ you're done. For specific instructions on a number of common hosts, see the
## Getting help
-See the [User Guide] for more complete documentation of all of MkDocs' features.
+See the [User Guide] for more complete documentation of all of ProperDocs' features.
-To get help with MkDocs, please use the [GitHub discussions] or [GitHub issues].
+To get help with ProperDocs, please use the [GitHub discussions] or [GitHub issues].
[Installation Guide]: user-guide/installation.md
[docs_dir]: user-guide/configuration.md#docs_dir
[deploy]: user-guide/deploying-your-docs.md
[nav]: user-guide/configuration.md#nav
-[GitHub discussions]: https://github.com/mkdocs/mkdocs/discussions
-[GitHub issues]: https://github.com/mkdocs/mkdocs/issues
+[GitHub discussions]: https://github.com/properdocs/properdocs/discussions
+[GitHub issues]: https://github.com/properdocs/properdocs/issues
[site_name]: user-guide/configuration.md#site_name
[theme]: user-guide/configuration.md#theme
[User Guide]: user-guide/README.md
diff --git a/docs/hooks.py b/docs/hooks.py
index 15e52dbb..44f2082e 100644
--- a/docs/hooks.py
+++ b/docs/hooks.py
@@ -5,8 +5,8 @@
from typing import TYPE_CHECKING
if TYPE_CHECKING:
- from mkdocs.config.defaults import MkDocsConfig
- from mkdocs.structure.nav import Page
+ from properdocs.config.defaults import ProperDocsConfig
+ from properdocs.structure.nav import Page
def _get_language_of_translation_file(path: Path) -> str:
@@ -17,7 +17,7 @@ def _get_language_of_translation_file(path: Path) -> str:
return m[1]
-def on_page_markdown(markdown: str, page: Page, config: MkDocsConfig, **kwargs) -> str | None:
+def on_page_markdown(markdown: str, page: Page, config: ProperDocsConfig, **kwargs) -> str | None:
if page.file.src_uri == 'user-guide/choosing-your-theme.md':
here = Path(config.config_file_path).parent
diff --git a/docs/img/plugin-events.py b/docs/img/plugin-events.py
index 0ad1f982..e032ee8d 100644
--- a/docs/img/plugin-events.py
+++ b/docs/img/plugin-events.py
@@ -7,7 +7,7 @@
from graphviz import Digraph
-graph = Digraph("MkDocs", format="svg")
+graph = Digraph("ProperDocs", format="svg")
graph.attr(compound="true", bgcolor="transparent")
graph.graph_attr.update(fontname="inherit", tooltip=" ")
graph.node_attr.update(fontname="inherit", tooltip=" ", style="filled")
diff --git a/docs/img/plugin-events.svg b/docs/img/plugin-events.svg
index 6fc4702b..d9d42df1 100644
--- a/docs/img/plugin-events.svg
+++ b/docs/img/plugin-events.svg
@@ -1,7 +1,7 @@
-MkDocs
+ProperDocs
diff --git a/docs/index.md b/docs/index.md
index f796a054..de0b1654 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -1,10 +1,10 @@
-# MkDocs
+# ProperDocs
Project documentation with Markdown.
---
-MkDocs is a **fast**, **simple** and **downright gorgeous** static site
+ProperDocs is a **fast**, **simple** and **downright gorgeous** static site
generator that's geared towards building project documentation. Documentation
source files are written in Markdown, and configured with a single YAML
configuration file. Start by reading the [introductory tutorial], then check the
@@ -27,13 +27,13 @@ configuration file. Start by reading the [introductory tutorial], then check the
Great themes available
- There's a stack of good looking themes available for MkDocs.
+ There's a stack of good looking themes available for ProperDocs.
Choose between the built in themes:
mkdocs and
readthedocs ,
select one of the third-party themes
- (on the MkDocs Themes wiki page
- as well as the MkDocs Catalog ),
+ (on the ProperDocs Themes wiki page
+ as well as the ProperDocs Catalog ),
or build your own .
@@ -77,7 +77,7 @@ configuration file. Start by reading the [introductory tutorial], then check the
Host anywhere
- MkDocs builds completely static HTML sites that you can host on
+ ProperDocs builds completely static HTML sites that you can host on
GitHub Pages, Amazon S3, or anywhere else you
choose.
diff --git a/docs/user-guide/README.md b/docs/user-guide/README.md
index aea3ba83..65b7859d 100644
--- a/docs/user-guide/README.md
+++ b/docs/user-guide/README.md
@@ -1,10 +1,10 @@
# User Guide
-Building Documentation with MkDocs
+Building Documentation with ProperDocs
---
-The MkDocs User Guide provides documentation for users of MkDocs. See
+The ProperDocs User Guide provides documentation for users of ProperDocs. See
[Getting Started] for an introductory tutorial. You can jump directly to a
page listed below, or use the *next* and *previous* buttons in the navigation
bar at the top of the page to move through the documentation in order.
diff --git a/docs/user-guide/choosing-your-theme.md b/docs/user-guide/choosing-your-theme.md
index 92d0eb65..210d0450 100644
--- a/docs/user-guide/choosing-your-theme.md
+++ b/docs/user-guide/choosing-your-theme.md
@@ -4,7 +4,7 @@ Selecting and configuring a theme.
---
-MkDocs includes two built-in themes ([mkdocs](#mkdocs) and
+ProperDocs includes two built-in themes ([mkdocs](#mkdocs) and
[readthedocs](#readthedocs)), as documented below. However, many [third party
themes] are available to choose from as well.
@@ -19,7 +19,7 @@ theme:
## mkdocs
The default theme, which was built as a custom [Bootstrap] theme, supports almost
-every feature of MkDocs.
+every feature of ProperDocs.
@@ -126,7 +126,7 @@ supports the following options:
The following locales are supported by this theme:
* `en`: English (default)
- * (see the list of existing directories `mkdocs/themes/mkdocs/locales/*/`)
+ * (see the list of existing directories `properdocs/themes/mkdocs/locales/*/`)
See the guide on [localizing your theme] for more information.
@@ -176,7 +176,7 @@ theme supports the following options:
set this to `True`. Default: `False`.
* **`include_homepage_in_sidebar`**: Lists the homepage in the sidebar menu. As
- MkDocs requires that the homepage be listed in the `nav` configuration
+ ProperDocs requires that the homepage be listed in the `nav` configuration
option, this setting allows the homepage to be included or excluded from
the sidebar. Note that the site name/logo always links to the homepage.
Default: `True`.
@@ -203,7 +203,7 @@ theme supports the following options:
The following locales are supported by this theme:
* `en`: English (default)
- * (see the list of existing directories `mkdocs/themes/readthedocs/locales/*/`)
+ * (see the list of existing directories `properdocs/themes/readthedocs/locales/*/`)
See the guide on [localizing your theme] for more information.
@@ -214,7 +214,7 @@ theme supports the following options:
A list of third party themes can be found at the [community wiki] page and [the ranked catalog][catalog]. If you have created your own, please add them there.
-WARNING: Installing an MkDocs theme means installing a Python package and executing any code that the author has put in there. So, exercise the usual caution; there's no attempt at sandboxing.
+WARNING: Installing a ProperDocs theme means installing a Python package and executing any code that the author has put in there. So, exercise the usual caution; there's no attempt at sandboxing.
[third party themes]: #third-party-themes
[theme]: configuration.md#theme
@@ -224,6 +224,6 @@ WARNING: Installing an MkDocs theme means installing a Python package and execut
[setup-GA4]: https://support.google.com/analytics/answer/9304153?hl=en&ref_topic=9303319
[upgrade-GA4]: https://support.google.com/analytics/answer/9744165?hl=en&ref_topic=9303319
[Read the Docs]: https://readthedocs.org/
-[community wiki]: https://github.com/mkdocs/mkdocs/wiki/MkDocs-Themes
-[catalog]: https://github.com/mkdocs/catalog#-theming
+[community wiki]: https://github.com/properdocs/properdocs/wiki/ProperDocs-Themes
+[catalog]: https://github.com/properdocs/catalog#-theming
[localizing your theme]: localizing-your-theme.md
diff --git a/docs/user-guide/cli.md b/docs/user-guide/cli.md
index 987c1382..854c093e 100644
--- a/docs/user-guide/cli.md
+++ b/docs/user-guide/cli.md
@@ -1,8 +1,8 @@
# Command Line Interface
::: mkdocs-click
- :module: mkdocs.__main__
+ :module: properdocs.__main__
:command: cli
- :prog_name: mkdocs
+ :prog_name: properdocs
:style: table
:list_subcommands: true
diff --git a/docs/user-guide/configuration.md b/docs/user-guide/configuration.md
index 5f925a9e..509511ae 100644
--- a/docs/user-guide/configuration.md
+++ b/docs/user-guide/configuration.md
@@ -8,7 +8,7 @@ Guide to all available configuration settings.
Project settings are configured by default using a YAML configuration file in
the project directory named `mkdocs.yml`. You can specify another path for it
-by using the `-f`/`--config-file` option (see `mkdocs build --help`).
+by using the `-f`/`--config-file` option (see `properdocs build --help`).
At a minimum, this configuration file must contain the `site_name`. All other settings are optional.
@@ -30,10 +30,10 @@ variable.
Set the canonical URL of the site. This will add a `link` tag with the
`canonical` URL to the `head` section of each HTML page. If the 'root' of the
-MkDocs site will be within a subdirectory of a domain, be sure to include that
+ProperDocs site will be within a subdirectory of a domain, be sure to include that
subdirectory in the setting (`https://example.com/foo/`).
-This setting is also used for `mkdocs serve`: the server will be mounted onto a
+This setting is also used for `properdocs serve`: the server will be mounted onto a
path taken from the path component of the URL, e.g. `some/page.md` will be
served from `http://127.0.0.1:8000/foo/some/page/` to mimic the expected remote
layout.
@@ -62,7 +62,7 @@ those domains, otherwise the hostname from the `repo_url`.
The path from the base `repo_url` to the docs directory when directly viewing a
page, accounting for specifics of the repository host (e.g. GitHub, Bitbucket,
-etc), the branch, and the docs directory itself. MkDocs concatenates `repo_url`
+etc), the branch, and the docs directory itself. ProperDocs concatenates `repo_url`
and `edit_uri`, and appends the input path of the page.
When set, and if your theme supports it, provides a link directly to the page in
@@ -254,7 +254,7 @@ Navigation items may also include links to external sites. While titles are
optional for internal links, they are required for external links. An external
link may be a full URL or a relative URL. Any path which is not found in the
files is assumed to be an external link. See the section about [Meta-Data] on
-how MkDocs determines the page title of a document.
+how ProperDocs determines the page title of a document.
```yaml
nav:
@@ -266,7 +266,7 @@ nav:
In the above example, the first two items point to local files while the third
points to an external site.
-However, sometimes the MkDocs site is hosted in a subdirectory of a project's
+However, sometimes the ProperDocs site is hosted in a subdirectory of a project's
site and you may want to link to other parts of the same site without including
the full domain. In that case, you may use an appropriate relative URL.
@@ -280,12 +280,12 @@ nav:
```
In the above example, two different styles of external links are used. First,
-note that the `site_url` indicates that the MkDocs site is hosted in the `/foo/`
+note that the `site_url` indicates that the ProperDocs site is hosted in the `/foo/`
subdirectory of the domain. Therefore, the `Home` navigation item is a relative
link that steps up one level to the server root and effectively points to
`https://example.com/`. The `Bug Tracker` item uses an absolute path from the
server root and effectively points to `https://example.com/bugs/`. Of course, the
-`User Guide` points to a local MkDocs page.
+`User Guide` points to a local ProperDocs page.
**default**: By default `nav` will contain an alphanumerically sorted, nested
list of all the Markdown files found within the `docs_dir` and its
@@ -297,7 +297,7 @@ NEW: **New in version 1.5.**
> DANGER: **Changed in version 1.6:**
>
-> This config no longer applies the "drafts" functionality for `mkdocs serve`. If you have draft documents that you want available in "serve" and not "build", replace `exclude_docs` with the new [`draft_docs`](#draft_docs) config option.
+> This config no longer applies the "drafts" functionality for `properdocs serve`. If you have draft documents that you want available in "serve" and not "build", replace `exclude_docs` with the new [`draft_docs`](#draft_docs) config option.
This config defines patterns of files (under [`docs_dir`](#docs_dir)) to not be picked up into the built site.
@@ -342,7 +342,7 @@ exclude_docs: |
NEW: **New in version 1.6.**
-This config defines patterns of files (under [`docs_dir`](#docs_dir)) to be treated as a draft. Draft files are available during `mkdocs serve` and include a "DRAFT" mark but will not be included in the build. To prevent this effect and make "serve" behave the same as "build", you can run `mkdocs serve --clean`.
+This config defines patterns of files (under [`docs_dir`](#docs_dir)) to be treated as a draft. Draft files are available during `properdocs serve` and include a "DRAFT" mark but will not be included in the build. To prevent this effect and make "serve" behave the same as "build", you can run `properdocs serve --clean`.
Example:
@@ -368,7 +368,7 @@ NEW: **New in version 1.5.**
>
> If the [`nav`](#nav) config is not specified at all, pages specified in this config will now be excluded from the inferred navigation.
-If you want to include some docs into the site but intentionally exclude them from the nav, normally MkDocs warns about this.
+If you want to include some docs into the site but intentionally exclude them from the nav, normally ProperDocs warns about this.
Adding such patterns of files (relative to [`docs_dir`](#docs_dir)) into the `not_in_nav` config will prevent such warnings.
@@ -391,13 +391,13 @@ NOTE: Adding a given file to [`exclude_docs`](#exclude_docs) takes precedence ov
NEW: **New in version 1.5.**
-Configure the strictness of MkDocs' diagnostic messages when validating links to documents.
+Configure the strictness of ProperDocs' diagnostic messages when validating links to documents.
-This is a tree of configs, and for each one the value can be one of the three: `warn`, `info`, `ignore`. Which cause a logging message of the corresponding severity to be produced. The `warn` level is, of course, intended for use with `mkdocs build --strict` (where it becomes an error), which you can employ in continuous testing.
+This is a tree of configs, and for each one the value can be one of the three: `warn`, `info`, `ignore`. Which cause a logging message of the corresponding severity to be produced. The `warn` level is, of course, intended for use with `properdocs build --strict` (where it becomes an error), which you can employ in continuous testing.
The config `validation.links.absolute_links` additionally has a special value `relative_to_docs`, for [validation of absolute links](#validation-of-absolute-links).
->? EXAMPLE: **Defaults of this config as of MkDocs 1.6:**
+>? EXAMPLE: **Defaults of this config as of ProperDocs 1.6:**
>
> ```yaml
> validation:
@@ -416,7 +416,7 @@ The config `validation.links.absolute_links` additionally has a special value `r
The defaults of some of the behaviors already differ from MkDocs 1.4 and below - they were ignored before.
->? EXAMPLE: **Configure MkDocs 1.6 to behave like MkDocs 1.4 and below (reduce strictness):**
+>? EXAMPLE: **Configure ProperDocs 1.6 to behave like MkDocs 1.4 and below (reduce strictness):**
>
> ```yaml
> validation:
@@ -430,9 +430,9 @@ The defaults of some of the behaviors already differ from MkDocs 1.4 and below -
> ```yaml
> validation:
> omitted_files: warn
-> absolute_links: warn # Or 'relative_to_docs' - new in MkDocs 1.6
+> absolute_links: warn # Or 'relative_to_docs' - new in ProperDocs 1.6
> unrecognized_links: warn
-> anchors: warn # New in MkDocs 1.6
+> anchors: warn # New in ProperDocs 1.6
> ```
Note how in the above examples we omitted the 'nav' and 'links' keys. Here `absolute_links:` means setting both `nav: absolute_links:` and `links: absolute_links:`.
@@ -463,9 +463,9 @@ Full list of values and examples of log messages that they can hide or make more
NEW: **New in version 1.6.**
-> Historically, within Markdown, MkDocs only recognized **relative** links that lead to another physical `*.md` document (or media file). This is a good convention to follow because then the source pages are also freely browsable without MkDocs, for example on GitHub. Whereas absolute links were left unmodified (making them often not work as expected) or, more recently, warned against. If you dislike having to always use relative links, now you can opt into absolute links and have them work correctly.
+> Historically, within Markdown, ProperDocs only recognized **relative** links that lead to another physical `*.md` document (or media file). This is a good convention to follow because then the source pages are also freely browsable without ProperDocs, for example on GitHub. Whereas absolute links were left unmodified (making them often not work as expected) or, more recently, warned against. If you dislike having to always use relative links, now you can opt into absolute links and have them work correctly.
-If you set the setting `validation.links.absolute_links` to the new value `relative_to_docs`, all Markdown links starting with `/` will be understood as being relative to the `docs_dir` root. The links will then be validated for correctness according to all the other rules that were already working for relative links in prior versions of MkDocs. For the HTML output, these links will still be turned relative so that the site still works reliably.
+If you set the setting `validation.links.absolute_links` to the new value `relative_to_docs`, all Markdown links starting with `/` will be understood as being relative to the `docs_dir` root. The links will then be validated for correctness according to all the other rules that were already working for relative links in prior versions of ProperDocs. For the HTML output, these links will still be turned relative so that the site still works reliably.
So, now any document (e.g. "dir1/foo.md") can link to the document "dir2/bar.md" as `[link](/dir2/bar.md)`, in addition to the previously only correct way `[link](../dir2/bar.md)`.
@@ -626,8 +626,8 @@ NOTE: `*.js` and `*.css` files, just like any other type of file, are always cop
### extra_templates
-Set a list of templates in your `docs_dir` to be built by MkDocs. To see more
-about writing templates for MkDocs read the documentation about [custom themes]
+Set a list of templates in your `docs_dir` to be built by ProperDocs. To see more
+about writing templates for ProperDocs read the documentation about [custom themes]
and specifically the section about the [available variables] to
templates. See the example in [extra_css] for usage.
@@ -655,7 +655,7 @@ extra:
### watch
-Determines additional directories to watch when running `mkdocs serve`.
+Determines additional directories to watch when running `properdocs serve`.
Configuration is a YAML list.
```yaml
@@ -665,7 +665,7 @@ watch:
```
Allows a custom default to be set without the need to pass it through the `-w`/`--watch`
-option every time the `mkdocs serve` command is called.
+option every time the `properdocs serve` command is called.
> NOTE:
> The paths provided via the configuration file are relative to the configuration file.
@@ -722,11 +722,11 @@ This is also available as a command line flag: `--strict`.
### dev_addr
-Determines the address used when running `mkdocs serve`. Must be of the format
+Determines the address used when running `properdocs serve`. Must be of the format
`IP:PORT`.
Allows a custom default to be set without the need to pass it through the
-`--dev-addr` option every time the `mkdocs serve` command is called.
+`--dev-addr` option every time the `properdocs serve` command is called.
**default**: `'127.0.0.1:8000'`
@@ -736,10 +736,10 @@ See also: [site_url](#site_url).
### markdown_extensions
-MkDocs uses the [Python Markdown][pymkd] library to translate Markdown files
+ProperDocs uses the [Python Markdown][pymkd] library to translate Markdown files
into HTML. Python Markdown supports a variety of [extensions][pymdk-extensions]
that customize how pages are formatted. This setting lets you enable a list of
-extensions beyond the ones that MkDocs uses by default (`meta`, `toc`, `tables`,
+extensions beyond the ones that ProperDocs uses by default (`meta`, `toc`, `tables`,
and `fenced_code`).
For example, to enable the [SmartyPants typography extension][smarty], use:
@@ -789,7 +789,7 @@ markdown_extensions:
> NOTE: **Dynamic config values.**
>
-> To dynamically configure the extensions, you can get the config values from [environment variables](#environment-variables) or [obtain paths](#paths-relative-to-the-current-file-or-site) of the currently rendered Markdown file or the overall MkDocs site.
+> To dynamically configure the extensions, you can get the config values from [environment variables](#environment-variables) or [obtain paths](#paths-relative-to-the-current-file-or-site) of the currently rendered Markdown file or the overall ProperDocs site.
In the above examples, each extension is a list item (starts with a `-`). As an
alternative, key/value pairs can be used instead. However, in that case an empty
@@ -813,7 +813,7 @@ This alternative syntax is required if you intend to override some options via
> which are available out-of-the-box. For a list of configuration options
> available for a given extension, see the documentation for that extension.
>
-> You may also install and use various third party extensions ([Python-Markdown wiki], [MkDocs project catalog][catalog]). Consult
+> You may also install and use various third party extensions ([Python-Markdown wiki], [ProperDocs project catalog][catalog]). Consult
> the documentation provided by those extensions for installation instructions
> and available configuration options.
@@ -845,11 +845,11 @@ def on_page_markdown(markdown, **kwargs):
>
> ```python
> import logging, re
-> import mkdocs.plugins
+> import properdocs.plugins
>
-> log = logging.getLogger('mkdocs')
+> log = logging.getLogger('properdocs')
>
-> @mkdocs.plugins.event_priority(-50)
+> @properdocs.plugins.event_priority(-50)
> def on_page_markdown(markdown, page, **kwargs):
> path = page.file.src_uri
> for m in re.finditer(r'\bhttp://[^) ]+', markdown):
@@ -858,7 +858,7 @@ def on_page_markdown(markdown, **kwargs):
This does not enable any new abilities compared to [plugins][], it only simplifies one-off usages, as these don't need to be *installed* like plugins do.
-Note that for `mkdocs serve` the hook module will *not* be reloaded on each build.
+Note that for `properdocs serve` the hook module will *not* be reloaded on each build.
You might have seen this feature in the [mkdocs-simple-hooks plugin](https://github.com/aklajnert/mkdocs-simple-hooks). If using standard method names, it can be directly replaced, e.g.:
@@ -871,7 +871,7 @@ You might have seen this feature in the [mkdocs-simple-hooks plugin](https://git
+ - my_hooks.py
```
-> NEW: **New in MkDocs 1.6.**
+> NEW: **New in ProperDocs 1.6.**
>
> If a hook file has a file `foo.py` adjacent to it, it can use the normal Python syntax `import foo` to access its functions.
>
@@ -882,7 +882,7 @@ You might have seen this feature in the [mkdocs-simple-hooks plugin](https://git
A list of plugins (with optional configuration settings) to use when building
the site. See the [Plugins] documentation for full details.
-**default**: `['search']` (the "search" plugin included with MkDocs).
+**default**: `['search']` (the "search" plugin included with ProperDocs).
If the `plugins` config setting is defined in the `mkdocs.yml` config file, then
any defaults (such as `search`) are ignored and you need to explicitly re-enable
@@ -913,9 +913,9 @@ plugins: []
#### `enabled` option
-> NEW: **New in MkDocs 1.6.**
+> NEW: **New in ProperDocs 1.6.**
>
-> Each plugin has its own options keys. However MkDocs also ensures that each plugin has the `enabled` boolean option. This can be used to conditionally enable a particular plugin, as in the following example:
+> Each plugin has its own options keys. However ProperDocs also ensures that each plugin has the `enabled` boolean option. This can be used to conditionally enable a particular plugin, as in the following example:
>
> ```yaml
> plugins:
@@ -946,7 +946,7 @@ This alternative syntax is required if you intend to override some options via
#### Search
-A search plugin is provided by default with MkDocs which uses [lunr.js] as a
+A search plugin is provided by default with ProperDocs which uses [lunr.js] as a
search engine. The following config options are available to alter the behavior
of the search plugin:
@@ -1012,7 +1012,7 @@ WARNING:
While search does support using multiple languages together, it is best not
to add additional languages unless you really need them. Each additional
language adds significant bandwidth requirements and uses more browser
-resources. Generally, it is best to keep each instance of MkDocs to a single
+resources. Generally, it is best to keep each instance of ProperDocs to a single
language.
NOTE:
@@ -1179,9 +1179,9 @@ site_name: Foo Project
site_url: https://example.com/foo
```
-When running `mkdocs build`, the file at `foo/mkdocs.yml` would be passed in as
-the configuration file. MkDocs will then parse that file, retrieve and parse the
-parent file `base.yml` and deep merge the two. This would result in MkDocs
+When running `properdocs build`, the file at `foo/mkdocs.yml` would be passed in as
+the configuration file. ProperDocs will then parse that file, retrieve and parse the
+parent file `base.yml` and deep merge the two. This would result in ProperDocs
receiving the following merged configuration:
```yaml
@@ -1251,7 +1251,7 @@ navigation would be defined in the primary configuration file for a project.
WARNING:
As a reminder, all path based configuration options must be relative to the
-primary configuration file and MkDocs does not alter the paths when merging.
+primary configuration file and ProperDocs does not alter the paths when merging.
Therefore, defining paths in a parent file which is inherited by multiple
different sites may not work as expected. It is generally best to define
path based options in the primary configuration file only.
@@ -1259,7 +1259,7 @@ path based options in the primary configuration file only.
The inheritance can also be used as a quick way to override keys on the command line - by using stdin as the config file. For example:
```bash
-echo '{INHERIT: mkdocs.yml, site_name: "Renamed site"}' | mkdocs build -f -
+echo '{INHERIT: mkdocs.yml, site_name: "Renamed site"}' | properdocs build -f -
```
[Theme Developer Guide]: ../dev-guide/themes.md
@@ -1270,7 +1270,7 @@ echo '{INHERIT: mkdocs.yml, site_name: "Renamed site"}' | mkdocs build -f -
[smarty]: https://python-markdown.github.io/extensions/smarty/
[exts]: https://python-markdown.github.io/extensions/
[Python-Markdown wiki]: https://github.com/Python-Markdown/markdown/wiki/Third-Party-Extensions
-[catalog]: https://github.com/mkdocs/catalog
+[catalog]: https://github.com/properdocs/catalog
[configuring pages and navigation]: writing-your-docs.md#configure-pages-and-navigation
[Meta-Data]: writing-your-docs.md#meta-data
[theme_dir]: customizing-your-theme.md#using-the-theme-custom_dir
diff --git a/docs/user-guide/customizing-your-theme.md b/docs/user-guide/customizing-your-theme.md
index 0b3357f0..ef41ba55 100644
--- a/docs/user-guide/customizing-your-theme.md
+++ b/docs/user-guide/customizing-your-theme.md
@@ -35,7 +35,7 @@ extra_css:
```
After making these changes, they should be visible when you run
-`mkdocs serve` - if you already had this running, you should see that the CSS
+`properdocs serve` - if you already had this running, you should see that the CSS
changes were automatically picked up and the documentation will be updated.
NOTE:
@@ -133,7 +133,7 @@ The built-in themes implement many of their parts inside template blocks which
can be individually overridden in the `main.html` template. Simply create a
`main.html` template file in your `custom_dir` and define replacement blocks
within that file. Just make sure that the `main.html` extends `base.html`. For
-example, to alter the title of the MkDocs theme, your replacement `main.html`
+example, to alter the title of the ProperDocs theme, your replacement `main.html`
template would contain the following:
```django
@@ -150,7 +150,7 @@ You may re-define as many blocks as you desire, as long as those blocks are
defined in the parent. For example, you could replace the Google Analytics
script with one for a different service or replace the search feature with your
own. You will need to consult the parent theme you are using to determine what
-blocks are available to override. The MkDocs and ReadTheDocs themes provide the
+blocks are available to override. The ProperDocs and ReadTheDocs themes provide the
following blocks:
* `site_meta`: Contains meta tags in the document head.
@@ -176,7 +176,7 @@ explanation of blocks, consult the [Jinja documentation].
### Combining the custom_dir and Template Blocks
Adding a JavaScript library to the `custom_dir` will make it available, but
-won't include it in the pages generated by MkDocs. Therefore, a link needs to
+won't include it in the pages generated by ProperDocs. Therefore, a link needs to
be added to the library from the HTML.
Starting the with directory structure above (truncated):
@@ -219,7 +219,7 @@ any additional CSS files included in the `custom_dir`.
[custom_dir]: ./configuration.md#custom_dir
[name]: ./configuration.md#name
[mkdocs]: ./choosing-your-theme.md#mkdocs
-[browse source]: https://github.com/mkdocs/mkdocs/tree/master/mkdocs/themes/mkdocs
+[browse source]: https://github.com/properdocs/properdocs/tree/master/properdocs/themes/mkdocs
[Template Variables]: ../dev-guide/themes.md#template-variables
[Jinja documentation]: https://jinja.palletsprojects.com/en/latest/templates/#template-inheritance
[super block]: https://jinja.palletsprojects.com/en/latest/templates/#super-blocks
diff --git a/docs/user-guide/deploying-your-docs.md b/docs/user-guide/deploying-your-docs.md
index 8224cb9a..8f34a031 100644
--- a/docs/user-guide/deploying-your-docs.md
+++ b/docs/user-guide/deploying-your-docs.md
@@ -20,14 +20,14 @@ primary working branch (usually `master`) of the git repository where you
maintain the source documentation for your project, run the following command:
```sh
-mkdocs gh-deploy
+properdocs gh-deploy
```
-That's it! Behind the scenes, MkDocs will build your docs and use the
+That's it! Behind the scenes, ProperDocs will build your docs and use the
[ghp-import] tool to commit them to the `gh-pages` branch and push the
`gh-pages` branch to GitHub.
-Use `mkdocs gh-deploy --help` to get a full list of options available for the
+Use `properdocs gh-deploy --help` to get a full list of options available for the
`gh-deploy` command.
Be aware that you will not be able to review the built site before it is pushed
@@ -42,7 +42,7 @@ run the command.
WARNING:
If there are untracked files or uncommitted work in the local repository where
-`mkdocs gh-deploy` is run, these will be included in the pages that are deployed.
+`properdocs gh-deploy` is run, these will be included in the pages that are deployed.
### Organization and User Pages
@@ -61,11 +61,11 @@ orgname.github.io/
After making and verifying updates to your project you need to change
directories to the `orgname.github.io` repository and call the
-`mkdocs gh-deploy` command from there:
+`properdocs gh-deploy` command from there:
```sh
cd ../orgname.github.io/
-mkdocs gh-deploy --config-file ../my-project/mkdocs.yml --remote-branch master
+properdocs gh-deploy --config-file ../my-project/mkdocs.yml --remote-branch master
```
Note that you need to explicitly point to the `mkdocs.yml` configuration file as
@@ -79,15 +79,15 @@ branch of your project, which you probably don't want.
GitHub Pages includes support for using a [Custom Domain] for your site. In
addition to the steps documented by GitHub, you need to take one additional step
-so that MkDocs will work with your custom domain. You need to add a `CNAME` file
+so that ProperDocs will work with your custom domain. You need to add a `CNAME` file
to the root of your [docs_dir]. The file must contain a single bare domain or
-subdomain on a single line (see MkDocs' own [CNAME file] as an example). You may
+subdomain on a single line (see ProperDocs' own [CNAME file] as an example). You may
create the file manually, or use GitHub's web interface to set up the custom
domain (under Settings / Custom Domain). If you use the web interface, GitHub
will create the `CNAME` file for you and save it to the root of your "pages"
branch. So that the file does not get removed the next time you deploy, you need
to copy the file to your `docs_dir`. With the file properly included in your
-`docs_dir`, MkDocs will include the file in your built site and push it to your
+`docs_dir`, ProperDocs will include the file in your built site and push it to your
"pages" branch each time you run the `gh-deploy` command.
If you are having problems getting a custom domain to work, see GitHub's
@@ -100,29 +100,29 @@ documentation on [Troubleshooting custom domains].
[remote_branch]: ./configuration.md#remote_branch
[Custom Domain]: https://help.github.com/articles/adding-or-removing-a-custom-domain-for-your-github-pages-site
[docs_dir]: ./configuration.md#docs_dir
-[CNAME file]: https://github.com/mkdocs/mkdocs/blob/master/docs/CNAME
+[CNAME file]: https://github.com/properdocs/properdocs/blob/master/docs/CNAME
[Troubleshooting custom domains]: https://help.github.com/articles/troubleshooting-custom-domains/
## Read the Docs
[Read the Docs][rtd] offers free documentation hosting. You can import your docs
-using the Git version control system. Read the Docs supports MkDocs out-of-the-box.
+using the Git version control system. Read the Docs supports ProperDocs out-of-the-box.
Follow the [instructions] on their site to arrange the files in your repository properly,
create an account and point it at your publicly hosted repository. If properly
configured, your documentation will update each time you push commits to your
public repository.
[rtd]: https://readthedocs.org/
-[instructions]: https://docs.readthedocs.io/en/stable/intro/getting-started-with-mkdocs.html
+[instructions]: https://docs.readthedocs.io/en/stable/intro/getting-started-with-properdocs.html
## Other Providers
Any hosting provider which can serve static files can be used to serve
-documentation generated by MkDocs. While it would be impossible to document how
+documentation generated by ProperDocs. While it would be impossible to document how
to upload the docs to every hosting provider out there, the following guidelines
should provide some general assistance.
-When you build your site (using the `mkdocs build` command), all of the files
+When you build your site (using the `properdocs build` command), all of the files
are written to the directory assigned to the [site_dir] configuration option
(defaults to `"site"`) in your `mkdocs.yaml` config file. Generally, you will
simply need to copy the contents of that directory to the root directory of your
@@ -134,7 +134,7 @@ For example, a typical set of commands from the command line might look
something like this:
```sh
-mkdocs build
+properdocs build
scp -r ./site user@host:/path/to/server/root
```
@@ -162,7 +162,7 @@ settings will need to be customized in very specific ways.
- [site_url]:
- The `site_url` must be set to an empty string, which instructs MkDocs to
+ The `site_url` must be set to an empty string, which instructs ProperDocs to
build your site so that it will work with the `file://` scheme.
```yaml
@@ -201,7 +201,7 @@ careful about which themes you choose. Many themes make use of CDNs for various
support files, which require a live Internet connection. You will need to choose
a theme which includes all support files directly in the theme.
-When you build your site (using the `mkdocs build` command), all of the files
+When you build your site (using the `properdocs build` command), all of the files
are written to the directory assigned to the [site_dir] configuration option
(defaults to `"site"`) in your `mkdocs.yaml` config file. Generally, you will
simply need to copy the contents of that directory and distribute it to your
@@ -210,7 +210,7 @@ HTML files to some other documentation format.
## 404 Pages
-When MkDocs builds the documentation it will include a 404.html file in the
+When ProperDocs builds the documentation it will include a 404.html file in the
[build directory][site_dir]. This file will be automatically used when
deploying to [GitHub](#github-pages) but only on a custom domain. Other web
servers may be configured to use it but the feature won't always be available.
diff --git a/docs/user-guide/installation.md b/docs/user-guide/installation.md
index fbf0b918..2d12c9e6 100644
--- a/docs/user-guide/installation.md
+++ b/docs/user-guide/installation.md
@@ -1,4 +1,4 @@
-# MkDocs Installation
+# ProperDocs Installation
A detailed guide.
@@ -6,7 +6,7 @@ A detailed guide.
## Requirements
-MkDocs requires a recent version of [Python] and the Python package
+ProperDocs requires a recent version of [Python] and the Python package
manager, [pip], to be installed on your system.
You can check if you already have these installed from the command line:
@@ -19,7 +19,7 @@ pip 20.0.2 from /usr/local/lib/python3.8/site-packages/pip (python 3.8)
```
If you already have those packages installed, you may skip down to [Installing
-MkDocs](#installing-mkdocs).
+ProperDocs](#installing-properdocs).
### Installing Python
@@ -50,29 +50,29 @@ Then run the following command to install it:
python get-pip.py
```
-## Installing MkDocs
+## Installing ProperDocs
-Install the `mkdocs` package using pip:
+Install the `properdocs` package using pip:
```bash
-pip install mkdocs
+pip install properdocs
```
-You should now have the `mkdocs` command installed on your system. Run `mkdocs
+You should now have the `properdocs` command installed on your system. Run `properdocs
--version` to check that everything worked okay.
```console
-$ mkdocs --version
-mkdocs, version 1.2.0 from /usr/local/lib/python3.8/site-packages/mkdocs (Python 3.8)
+$ properdocs --version
+properdocs, version 1.2.0 from /usr/local/lib/python3.8/site-packages/properdocs (Python 3.8)
```
> NOTE:
-> If you would like manpages installed for MkDocs, the [click-man] tool can
+> If you would like manpages installed for ProperDocs, the [click-man] tool can
> generate and install them for you. Simply run the following two commands:
>
> ```bash
> pip install click-man
-> click-man --target path/to/man/pages mkdocs
+> click-man --target path/to/man/pages properdocs
> ```
>
> See the [click-man documentation] for an explanation of why manpages are
@@ -86,8 +86,8 @@ mkdocs, version 1.2.0 from /usr/local/lib/python3.8/site-packages/mkdocs (Python
> like this:
>
> ```bash
-> python -m pip install mkdocs
-> python -m mkdocs
+> python -m pip install properdocs
+> python -m properdocs
> ```
>
> For a more permanent solution, you may need to edit your `PATH` environment
diff --git a/docs/user-guide/localizing-your-theme.md b/docs/user-guide/localizing-your-theme.md
index 279f4a8e..54e5b53b 100644
--- a/docs/user-guide/localizing-your-theme.md
+++ b/docs/user-guide/localizing-your-theme.md
@@ -14,10 +14,10 @@ internationalization/localization plugin.
## Installation
For theme localization to work, you must use a theme which supports it and
-enable `i18n` (internationalization) support by installing `mkdocs[i18n]`:
+enable `i18n` (internationalization) support by installing `properdocs[i18n]`:
```bash
-pip install 'mkdocs[i18n]'
+pip install 'properdocs[i18n]'
```
## Supported locales
@@ -36,11 +36,11 @@ documentation.
WARNING:
If you configure a language locale which is not yet supported by the theme
-that you are using, MkDocs will fall back to the theme's default locale.
+that you are using, ProperDocs will fall back to the theme's default locale.
## Usage
-To specify the locale that MkDocs should use, set the [locale]
+To specify the locale that ProperDocs should use, set the [locale]
parameter of the [theme] configuration option to the appropriate code.
For example, to build the `mkdocs` theme in French you would use the following
diff --git a/docs/user-guide/writing-your-docs.md b/docs/user-guide/writing-your-docs.md
index 8327b107..dde0bd47 100644
--- a/docs/user-guide/writing-your-docs.md
+++ b/docs/user-guide/writing-your-docs.md
@@ -27,7 +27,7 @@ extensions may be used for your Markdown source files: `markdown`, `mdown`,
directory will be rendered in the built site regardless of any settings.
NOTE:
-Files and directories with names which begin with a dot (for example: `.foo.md` or `.bar/baz.md`) are ignored by MkDocs. This can be overridden with the [`exclude_docs` config](configuration.md#exclude_docs).
+Files and directories with names which begin with a dot (for example: `.foo.md` or `.bar/baz.md`) are ignored by ProperDocs. This can be overridden with the [`exclude_docs` config](configuration.md#exclude_docs).
You can also create multi-page documentation, by creating several Markdown
files:
@@ -72,7 +72,7 @@ nested URLs, like so:
Any files which are not identified as Markdown files (by their file extension)
within the [documentation directory](configuration.md#docs_dir) are copied by
-MkDocs to the built site unaltered. See
+ProperDocs to the built site unaltered. See
[how to link to images and media](#linking-to-images-and-media) below for details.
### Index pages
@@ -80,14 +80,14 @@ MkDocs to the built site unaltered. See
When a directory is requested, by default, most web servers will return an index
file (usually named `index.html`) contained within that directory if one exists.
For that reason, the homepage in all of the examples above has been named
-`index.md`, which MkDocs will render to `index.html` when building the site.
+`index.md`, which ProperDocs will render to `index.html` when building the site.
Many repository hosting sites provide special treatment for README files by
displaying the contents of the README file when browsing the contents of a
-directory. Therefore, MkDocs will allow you to name your index pages as
+directory. Therefore, ProperDocs will allow you to name your index pages as
`README.md` instead of `index.md`. In that way, when users are browsing your
source code, the repository host can display the index page of that directory as
-it is a README file. However, when MkDocs renders your site, the file will be
+it is a README file. However, when ProperDocs renders your site, the file will be
renamed to `index.html` so that the server will serve it as a proper index file.
If both an `index.md` file and a `README.md` file are found in the same
@@ -167,20 +167,20 @@ pages will be "hidden" unless linked to directly.
## Writing with Markdown
-MkDocs pages must be authored in [Markdown][md], a lightweight markup language
+ProperDocs pages must be authored in [Markdown][md], a lightweight markup language
which results in easy-to-read, easy-to-write plain text documents that can be
converted to valid HTML documents in a predictable manner.
-MkDocs uses the [Python-Markdown] library to render Markdown documents to HTML.
+ProperDocs uses the [Python-Markdown] library to render Markdown documents to HTML.
Python-Markdown is almost completely compliant with the [reference
implementation][md], although there are a few very minor [differences].
In addition to the base Markdown [syntax] which is common across all Markdown
-implementations, MkDocs includes support for extending the Markdown syntax with
-Python-Markdown [extensions]. See the MkDocs' [markdown_extensions]
+implementations, ProperDocs includes support for extending the Markdown syntax with
+Python-Markdown [extensions]. See the ProperDocs' [markdown_extensions]
configuration setting for details on how to enable extensions.
-MkDocs includes some extensions by default, which are highlighted below.
+ProperDocs includes some extensions by default, which are highlighted below.
[Python-Markdown]: https://python-markdown.github.io/
[md]: https://daringfireball.net/projects/markdown/
@@ -191,9 +191,9 @@ MkDocs includes some extensions by default, which are highlighted below.
### Internal links
-MkDocs allows you to interlink your documentation by using regular Markdown
+ProperDocs allows you to interlink your documentation by using regular Markdown
[links]. However, there are a few additional benefits to formatting those links
-specifically for MkDocs as outlined below.
+specifically for ProperDocs as outlined below.
[links]: https://daringfireball.net/projects/markdown/syntax#link
@@ -207,12 +207,12 @@ document you wish to link to.
Please see the [project license](license.md) for further details.
```
-When the MkDocs build runs, these Markdown links will automatically be
+When the ProperDocs build runs, these Markdown links will automatically be
transformed into an HTML hyperlink to the appropriate HTML page.
WARNING:
Using absolute paths with links is not officially supported. Relative paths
-are adjusted by MkDocs to ensure they are always relative to the page. Absolute
+are adjusted by ProperDocs to ensure they are always relative to the page. Absolute
paths are not modified at all. This means that your links using absolute paths
might work fine in your local environment but they might break once you deploy
them to your production server.
@@ -224,7 +224,7 @@ sure to include any relative directory path in the link.
Please see the [project license](../about/license.md) for further details.
```
-The [toc] extension is used by MkDocs to generate an ID for every header in your
+The [toc] extension is used by ProperDocs to generate an ID for every header in your
Markdown documents. You can use that ID to link to a section within a target
document by using an anchor link. The generated HTML will correctly transform
the path portion of the link, and leave the anchor portion intact.
@@ -340,32 +340,32 @@ also be previewed if you're working on the documentation with a Markdown editor.
#### Linking from raw HTML
Markdown allows document authors to fall back to raw HTML when the Markdown
-syntax does not meets the author's needs. MkDocs does not limit Markdown in this
-regard. However, as all raw HTML is ignored by the Markdown parser, MkDocs is
+syntax does not meets the author's needs. ProperDocs does not limit Markdown in this
+regard. However, as all raw HTML is ignored by the Markdown parser, ProperDocs is
not able to validate or convert links contained in raw HTML. When including
internal links within raw HTML, you will need to manually format the link
appropriately for the rendered document.
### Meta-Data
-MkDocs includes support for both YAML and MultiMarkdown style meta-data (often
+ProperDocs includes support for both YAML and MultiMarkdown style meta-data (often
called front-matter). Meta-data consists of a series of keywords and values
defined at the beginning of a Markdown document, which are stripped from the
document prior to it being processing by Python-Markdown. The key/value pairs
-are passed by MkDocs to the page template. Therefore, if a theme includes
+are passed by ProperDocs to the page template. Therefore, if a theme includes
support, the values of any keys can be displayed on the page or used to control
the page rendering. See your theme's documentation for information about which
keys may be supported, if any.
-In addition to displaying information in a template, MkDocs includes support for
-a few predefined meta-data keys which can alter the behavior of MkDocs for that
+In addition to displaying information in a template, ProperDocs includes support for
+a few predefined meta-data keys which can alter the behavior of ProperDocs for that
specific page. The following keys are supported:
* **`template`**
The template to use with the current page.
- By default, MkDocs uses the `main.html` template of a theme to render
+ By default, ProperDocs uses the `main.html` template of a theme to render
Markdown pages. You can use the `template` meta-data key to define a
different template file for that specific page. The template file must be
available on the path(s) defined in the theme's environment.
@@ -374,7 +374,7 @@ specific page. The following keys are supported:
The "title" to use for the document.
- MkDocs will attempt to determine the title of a document in the following
+ ProperDocs will attempt to determine the title of a document in the following
ways, in order:
1. A title defined in the [nav] configuration setting for a document.
@@ -415,10 +415,10 @@ This is the first paragraph of the document.
YAML is able to detect data types. Therefore, in the above example, the values
of `title`, `summary` and `some_url` are strings, the value of `authors` is a
list of strings and the value of `date` is a `datetime.date` object. Note that
-the YAML keys are case sensitive and MkDocs expects keys to be all lowercase.
+the YAML keys are case sensitive and ProperDocs expects keys to be all lowercase.
The top level of the YAML must be a collection of key/value pairs, which results
in a Python `dict` being returned. If any other type is returned or the YAML
-parser encounters an error, then MkDocs does not recognize the section as
+parser encounters an error, then ProperDocs does not recognize the section as
meta-data, the page's `meta` attribute will be empty, and the section is not
removed from the document.
@@ -452,12 +452,12 @@ The first blank line ends all meta-data for the document. Therefore, the first
line of a document must not be blank.
NOTE:
-MkDocs does not support YAML style delimiters (`---` or `...`) for
-MultiMarkdown style meta-data. In fact, MkDocs relies on the the presence or
+ProperDocs does not support YAML style delimiters (`---` or `...`) for
+MultiMarkdown style meta-data. In fact, ProperDocs relies on the the presence or
absence of the delimiters to determine whether YAML style meta-data or
MultiMarkdown style meta-data is being used. If the delimiters are
detected, but the content between the delimiters is not valid YAML
-meta-data, MkDocs does not attempt to parse the content as MultiMarkdown
+meta-data, ProperDocs does not attempt to parse the content as MultiMarkdown
style meta-data.
[YAML]: https://yaml.org
diff --git a/hatch_build.py b/hatch_build.py
index 9f76ebdd..3b31da46 100644
--- a/hatch_build.py
+++ b/hatch_build.py
@@ -9,6 +9,6 @@ def initialize(self, version, build_data):
for theme in 'mkdocs', 'readthedocs':
cmd = compile_catalog()
- cmd.directory = os.path.join('mkdocs', 'themes', theme, 'locales')
+ cmd.directory = os.path.join('properdocs', 'themes', theme, 'locales')
cmd.finalize_options()
cmd.run()
diff --git a/mkdocs.yml b/mkdocs.yml
index 7246e148..bd457197 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -1,9 +1,9 @@
-site_name: MkDocs
-site_url: https://www.mkdocs.org/
+site_name: ProperDocs
+site_url: https://properdocs.org/
site_description: Project documentation with Markdown.
-site_author: MkDocs Team
+site_author: ProperDocs Team
-repo_url: https://github.com/mkdocs/mkdocs/
+repo_url: https://github.com/properdocs/properdocs/
edit_uri: blob/master/docs/
theme:
@@ -45,11 +45,11 @@ markdown_extensions:
- pymdownx.superfences
- callouts
- mdx_gh_links:
- user: mkdocs
- repo: mkdocs
+ user: properdocs
+ repo: properdocs
- mkdocs-click
-copyright: Copyright © 2014
Tom Christie , Maintained by the
MkDocs Team .
+copyright: Copyright © 2014
Tom Christie , Maintained by the
ProperDocs Team .
hooks:
- docs/hooks.py
@@ -76,4 +76,4 @@ plugins:
show_signature_annotations: true
watch:
- - mkdocs
+ - properdocs
diff --git a/mkdocs/config/__init__.py b/mkdocs/config/__init__.py
deleted file mode 100644
index 3fa69c6b..00000000
--- a/mkdocs/config/__init__.py
+++ /dev/null
@@ -1,3 +0,0 @@
-from mkdocs.config.base import Config, load_config
-
-__all__ = ['load_config', 'Config']
diff --git a/mkdocs/tests/integration/minimal/docs/testing.md b/mkdocs/tests/integration/minimal/docs/testing.md
deleted file mode 100644
index 0e680e68..00000000
--- a/mkdocs/tests/integration/minimal/docs/testing.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# Welcome to MkDocs
-
-For full documentation visit [mkdocs.org](https://www.mkdocs.org).
-
-## Commands
-
-* `mkdocs new [dir-name]` - Create a new project.
-* `mkdocs serve` - Start the live-reloading docs server.
-* `mkdocs build` - Build the documentation site.
-* `mkdocs help` - Print this help message.
-
-## Project layout
-
- mkdocs.yml # The configuration file.
- docs/
- index.md # The documentation homepage.
- ... # Other markdown pages, images and other files.
diff --git "a/mkdocs/tests/integration/unicode/docs/\303\234bersicht.md" "b/mkdocs/tests/integration/unicode/docs/\303\234bersicht.md"
deleted file mode 100644
index f60b3b1e..00000000
--- "a/mkdocs/tests/integration/unicode/docs/\303\234bersicht.md"
+++ /dev/null
@@ -1,17 +0,0 @@
-Welcome to MkDocs
-
-For full documentation visit [mkdocs.org](https://www.mkdocs.org).
-
-## Commands
-
-* `mkdocs new [dir-name]` - Create a new project.
-* `mkdocs serve` - Start the live-reloading docs server.
-* `mkdocs build` - Build the documentation site.
-* `mkdocs -h` - Print this help message.
-
-## Project layout
-
- mkdocs.yml # The configuration file.
- docs/
- index.md # The documentation homepage.
- ... # Other markdown pages, images and other files.
diff --git "a/mkdocs/tests/integration/unicode/docs/\342\231\252.md" "b/mkdocs/tests/integration/unicode/docs/\342\231\252.md"
deleted file mode 100644
index 1ddff18b..00000000
--- "a/mkdocs/tests/integration/unicode/docs/\342\231\252.md"
+++ /dev/null
@@ -1,17 +0,0 @@
-Welcome to MkDocs
-
-For full documentation visit [mkdocs.org](https://www.mkdocs.org).
-
-## Commands
-
-* `mkdocs new [dir-name]` - Create a new project.
-* `mkdocs serve` - Start the live-reloading docs server.
-* `mkdocs build` - Build the documentation site.
-* `mkdocs help` - Print this help message.
-
-## Project layout
-
- mkdocs.yml # The configuration file.
- docs/
- index.md # The documentation homepage.
- ... # Other markdown pages, images and other files.
diff --git a/mkdocs/themes/mkdocs/locales/fr/LC_MESSAGES/messages.po b/mkdocs/themes/mkdocs/locales/fr/LC_MESSAGES/messages.po
deleted file mode 100644
index 95c35e68..00000000
--- a/mkdocs/themes/mkdocs/locales/fr/LC_MESSAGES/messages.po
+++ /dev/null
@@ -1,103 +0,0 @@
-# French translations for MkDocs.
-# Copyright (C) 2022 MkDocs
-# This file is distributed under the same license as the MkDocs project.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: MkDocs 1.2\n"
-"Report-Msgid-Bugs-To: https://github.com/mkdocs/mkdocs/issues\n"
-"POT-Creation-Date: 2024-04-18 21:03+0200\n"
-"PO-Revision-Date: 2021-02-23 23:56+0100\n"
-"Last-Translator: Alexys Jacob @ultrabug\n"
-"Language: fr\n"
-"Language-Team: fr
\n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
-
-#: mkdocs/themes/mkdocs/404.html:8
-msgid "Page not found"
-msgstr "Page non trouvée"
-
-#: mkdocs/themes/mkdocs/base.html:117
-#: mkdocs/themes/mkdocs/keyboard-modal.html:31
-#: mkdocs/themes/mkdocs/search-modal.html:5
-msgid "Search"
-msgstr "Rechercher"
-
-#: mkdocs/themes/mkdocs/base.html:127
-msgid "Previous"
-msgstr "Précédent"
-
-#: mkdocs/themes/mkdocs/base.html:132
-msgid "Next"
-msgstr "Suivant"
-
-#: mkdocs/themes/mkdocs/base.html:143 mkdocs/themes/mkdocs/base.html:145
-#: mkdocs/themes/mkdocs/base.html:147 mkdocs/themes/mkdocs/base.html:149
-#, python-format
-msgid "Edit on %(repo_name)s"
-msgstr "Editer dans %(repo_name)s"
-
-#: mkdocs/themes/mkdocs/base.html:151
-msgid "Edit"
-msgstr "Editer"
-
-#: mkdocs/themes/mkdocs/base.html:225
-#, python-format
-msgid "Documentation built with %(mkdocs_link)s."
-msgstr "Documentation générée avec %(mkdocs_link)s."
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:5
-msgid "Keyboard Shortcuts"
-msgstr "Raccourcis Clavier"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:6
-#: mkdocs/themes/mkdocs/search-modal.html:6
-msgid "Close"
-msgstr "Fermer"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:12
-msgid "Keys"
-msgstr "Touches"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:13
-msgid "Action"
-msgstr ""
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:19
-msgid "Open this help"
-msgstr "Ouvrir l'aide"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:23
-msgid "Next page"
-msgstr "Page suivante"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:27
-msgid "Previous page"
-msgstr "Page précédente"
-
-#: mkdocs/themes/mkdocs/search-modal.html:9
-msgid "From here you can search these documents. Enter your search terms below."
-msgstr ""
-"Ici vous pouvez chercher dans les documents. Entrez votre recherche ci-"
-"dessous."
-
-#: mkdocs/themes/mkdocs/search-modal.html:12
-msgid "Search..."
-msgstr "Rechercher..."
-
-#: mkdocs/themes/mkdocs/search-modal.html:12
-msgid "Type search term here"
-msgstr "Tapez vos mots clés ici"
-
-#: mkdocs/themes/mkdocs/search-modal.html:15
-msgid "No results found"
-msgstr "Aucun résultat trouvé"
-
-#: mkdocs/themes/mkdocs/toc.html:3
-msgid "Table of Contents"
-msgstr "Table des matières"
-
diff --git a/mkdocs/themes/mkdocs/locales/nb/LC_MESSAGES/messages.po b/mkdocs/themes/mkdocs/locales/nb/LC_MESSAGES/messages.po
deleted file mode 100644
index 743a51bc..00000000
--- a/mkdocs/themes/mkdocs/locales/nb/LC_MESSAGES/messages.po
+++ /dev/null
@@ -1,101 +0,0 @@
-# Norwegian Bokmål translations for MkDocs.
-# Copyright (C) 2022 MkDocs
-# This file is distributed under the same license as the MkDocs project.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: MkDocs 1.3.1\n"
-"Report-Msgid-Bugs-To: \"https://github.com/mkdocs/mkdocs/issues\"\n"
-"POT-Creation-Date: 2024-04-18 21:03+0200\n"
-"PO-Revision-Date: 2022-10-26 11:10+0200\n"
-"Last-Translator: Per Christian Gaustad \n"
-"Language: nb\n"
-"Language-Team: nb \n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
-
-#: mkdocs/themes/mkdocs/404.html:8
-msgid "Page not found"
-msgstr "Fant ikke siden"
-
-#: mkdocs/themes/mkdocs/base.html:117
-#: mkdocs/themes/mkdocs/keyboard-modal.html:31
-#: mkdocs/themes/mkdocs/search-modal.html:5
-msgid "Search"
-msgstr "Søk"
-
-#: mkdocs/themes/mkdocs/base.html:127
-msgid "Previous"
-msgstr "Forrige"
-
-#: mkdocs/themes/mkdocs/base.html:132
-msgid "Next"
-msgstr "Neste"
-
-#: mkdocs/themes/mkdocs/base.html:143 mkdocs/themes/mkdocs/base.html:145
-#: mkdocs/themes/mkdocs/base.html:147 mkdocs/themes/mkdocs/base.html:149
-#, python-format
-msgid "Edit on %(repo_name)s"
-msgstr "Rediger på %(repo_name)s"
-
-#: mkdocs/themes/mkdocs/base.html:151
-msgid "Edit"
-msgstr "Rediger"
-
-#: mkdocs/themes/mkdocs/base.html:225
-#, python-format
-msgid "Documentation built with %(mkdocs_link)s."
-msgstr "Dokumentasjonen bygget med %(mkdocs_link)s."
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:5
-msgid "Keyboard Shortcuts"
-msgstr "Tastatursnarveier"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:6
-#: mkdocs/themes/mkdocs/search-modal.html:6
-msgid "Close"
-msgstr "Lukk"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:12
-msgid "Keys"
-msgstr "Taster"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:13
-msgid "Action"
-msgstr "Handling"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:19
-msgid "Open this help"
-msgstr "Åpne denne hjelpen"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:23
-msgid "Next page"
-msgstr "Neste side"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:27
-msgid "Previous page"
-msgstr "Forrige side"
-
-#: mkdocs/themes/mkdocs/search-modal.html:9
-msgid "From here you can search these documents. Enter your search terms below."
-msgstr "Her kan du søke i disse dokumentene. Skriv søketeksten nedenfor."
-
-#: mkdocs/themes/mkdocs/search-modal.html:12
-msgid "Search..."
-msgstr "Søk ..."
-
-#: mkdocs/themes/mkdocs/search-modal.html:12
-msgid "Type search term here"
-msgstr "Skriv søketeksten her"
-
-#: mkdocs/themes/mkdocs/search-modal.html:15
-msgid "No results found"
-msgstr "Fant ingen resultater"
-
-#: mkdocs/themes/mkdocs/toc.html:3
-msgid "Table of Contents"
-msgstr "Innholdsfortegnelse"
-
diff --git a/mkdocs/themes/mkdocs/locales/nn/LC_MESSAGES/messages.po b/mkdocs/themes/mkdocs/locales/nn/LC_MESSAGES/messages.po
deleted file mode 100644
index 39b92e68..00000000
--- a/mkdocs/themes/mkdocs/locales/nn/LC_MESSAGES/messages.po
+++ /dev/null
@@ -1,101 +0,0 @@
-# Norwegian Nynorsk translations for MkDocs.
-# Copyright (C) 2022 MkDocs
-# This file is distributed under the same license as the MkDocs project.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: MkDocs 1.3.1\n"
-"Report-Msgid-Bugs-To: \"https://github.com/mkdocs/mkdocs/issues\"\n"
-"POT-Creation-Date: 2024-04-18 21:03+0200\n"
-"PO-Revision-Date: 2022-10-26 11:10+0200\n"
-"Last-Translator: Per Christian Gaustad \n"
-"Language: nn\n"
-"Language-Team: nn \n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
-
-#: mkdocs/themes/mkdocs/404.html:8
-msgid "Page not found"
-msgstr "Fann ikkje sida"
-
-#: mkdocs/themes/mkdocs/base.html:117
-#: mkdocs/themes/mkdocs/keyboard-modal.html:31
-#: mkdocs/themes/mkdocs/search-modal.html:5
-msgid "Search"
-msgstr "Søk"
-
-#: mkdocs/themes/mkdocs/base.html:127
-msgid "Previous"
-msgstr "Førre"
-
-#: mkdocs/themes/mkdocs/base.html:132
-msgid "Next"
-msgstr "Neste"
-
-#: mkdocs/themes/mkdocs/base.html:143 mkdocs/themes/mkdocs/base.html:145
-#: mkdocs/themes/mkdocs/base.html:147 mkdocs/themes/mkdocs/base.html:149
-#, python-format
-msgid "Edit on %(repo_name)s"
-msgstr "Rediger på %(repo_name)s"
-
-#: mkdocs/themes/mkdocs/base.html:151
-msgid "Edit"
-msgstr "Rediger"
-
-#: mkdocs/themes/mkdocs/base.html:225
-#, python-format
-msgid "Documentation built with %(mkdocs_link)s."
-msgstr "Dokumentasjonen bygd med %(mkdocs_link)s."
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:5
-msgid "Keyboard Shortcuts"
-msgstr "Tastatursnarvegar"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:6
-#: mkdocs/themes/mkdocs/search-modal.html:6
-msgid "Close"
-msgstr "Lukk"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:12
-msgid "Keys"
-msgstr "Tastar"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:13
-msgid "Action"
-msgstr "Handling"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:19
-msgid "Open this help"
-msgstr "Opn denne hjelpa"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:23
-msgid "Next page"
-msgstr "Neste side"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:27
-msgid "Previous page"
-msgstr "Førre side"
-
-#: mkdocs/themes/mkdocs/search-modal.html:9
-msgid "From here you can search these documents. Enter your search terms below."
-msgstr "Her kan du søke i desse dokumenta. Skriv søketeksta nedanfor."
-
-#: mkdocs/themes/mkdocs/search-modal.html:12
-msgid "Search..."
-msgstr "Søk ..."
-
-#: mkdocs/themes/mkdocs/search-modal.html:12
-msgid "Type search term here"
-msgstr "Skriv søketeksta her"
-
-#: mkdocs/themes/mkdocs/search-modal.html:15
-msgid "No results found"
-msgstr "Fann ingen resultat"
-
-#: mkdocs/themes/mkdocs/toc.html:3
-msgid "Table of Contents"
-msgstr "Innhaldsliste"
-
diff --git a/mkdocs/themes/mkdocs/locales/pt_BR/LC_MESSAGES/messages.po b/mkdocs/themes/mkdocs/locales/pt_BR/LC_MESSAGES/messages.po
deleted file mode 100644
index 5a9fe654..00000000
--- a/mkdocs/themes/mkdocs/locales/pt_BR/LC_MESSAGES/messages.po
+++ /dev/null
@@ -1,103 +0,0 @@
-# Portuguese (Brazil) translations for MkDocs.
-# Copyright (C) 2022 MkDocs
-# This file is distributed under the same license as the MkDocs project.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: MkDocs 1.2\n"
-"Report-Msgid-Bugs-To: https://github.com/mkdocs/mkdocs/issues\n"
-"POT-Creation-Date: 2024-04-18 21:03+0200\n"
-"PO-Revision-Date: 2021-09-07 12:06+0200\n"
-"Last-Translator: Nicole Buitoni \n"
-"Language: pt_BR\n"
-"Language-Team: pt_BR\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
-
-#: mkdocs/themes/mkdocs/404.html:8
-msgid "Page not found"
-msgstr "Página não encontrada"
-
-#: mkdocs/themes/mkdocs/base.html:117
-#: mkdocs/themes/mkdocs/keyboard-modal.html:31
-#: mkdocs/themes/mkdocs/search-modal.html:5
-msgid "Search"
-msgstr "Buscar"
-
-#: mkdocs/themes/mkdocs/base.html:127
-msgid "Previous"
-msgstr "Anterior"
-
-#: mkdocs/themes/mkdocs/base.html:132
-msgid "Next"
-msgstr "Seguinte"
-
-#: mkdocs/themes/mkdocs/base.html:143 mkdocs/themes/mkdocs/base.html:145
-#: mkdocs/themes/mkdocs/base.html:147 mkdocs/themes/mkdocs/base.html:149
-#, python-format
-msgid "Edit on %(repo_name)s"
-msgstr "Editar em %(repo_name)s"
-
-#: mkdocs/themes/mkdocs/base.html:151
-msgid "Edit"
-msgstr "Editar"
-
-#: mkdocs/themes/mkdocs/base.html:225
-#, python-format
-msgid "Documentation built with %(mkdocs_link)s."
-msgstr "Documentação construída com %(mkdocs_link)s."
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:5
-msgid "Keyboard Shortcuts"
-msgstr "Atalhos de teclado"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:6
-#: mkdocs/themes/mkdocs/search-modal.html:6
-msgid "Close"
-msgstr "Fechar"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:12
-msgid "Keys"
-msgstr "Teclas"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:13
-msgid "Action"
-msgstr "Ação"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:19
-msgid "Open this help"
-msgstr "Abrir esta ajuda"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:23
-msgid "Next page"
-msgstr "Próxima página"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:27
-msgid "Previous page"
-msgstr "Página anterior"
-
-#: mkdocs/themes/mkdocs/search-modal.html:9
-msgid "From here you can search these documents. Enter your search terms below."
-msgstr ""
-"A partir daqui você pode buscar pelo documento. Digite os termos de "
-"pesquisa abaixo."
-
-#: mkdocs/themes/mkdocs/search-modal.html:12
-msgid "Search..."
-msgstr "Buscando..."
-
-#: mkdocs/themes/mkdocs/search-modal.html:12
-msgid "Type search term here"
-msgstr "Digite o termo a ser buscado aqui"
-
-#: mkdocs/themes/mkdocs/search-modal.html:15
-msgid "No results found"
-msgstr "Não foram encontrados resultados"
-
-#: mkdocs/themes/mkdocs/toc.html:3
-msgid "Table of Contents"
-msgstr "Tabela de Conteúdos"
-
diff --git a/mkdocs/themes/mkdocs/locales/tr/LC_MESSAGES/messages.po b/mkdocs/themes/mkdocs/locales/tr/LC_MESSAGES/messages.po
deleted file mode 100644
index 1829fd5d..00000000
--- a/mkdocs/themes/mkdocs/locales/tr/LC_MESSAGES/messages.po
+++ /dev/null
@@ -1,103 +0,0 @@
-# Turkish translations for MkDocs.
-# Copyright (C) 2022 MkDocs
-# This file is distributed under the same license as the MkDocs project.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: MkDocs 1.3.1\n"
-"Report-Msgid-Bugs-To: \"https://github.com/mkdocs/mkdocs/issues\"\n"
-"POT-Creation-Date: 2024-04-18 21:03+0200\n"
-"PO-Revision-Date: 2022-08-21 18:58+0300\n"
-"Last-Translator: Mustafa Sami Salt \n"
-"Language: tr\n"
-"Language-Team: tr \n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
-
-#: mkdocs/themes/mkdocs/404.html:8
-msgid "Page not found"
-msgstr "Sayfa bulunamadı"
-
-#: mkdocs/themes/mkdocs/base.html:117
-#: mkdocs/themes/mkdocs/keyboard-modal.html:31
-#: mkdocs/themes/mkdocs/search-modal.html:5
-msgid "Search"
-msgstr "Ara"
-
-#: mkdocs/themes/mkdocs/base.html:127
-msgid "Previous"
-msgstr "Önceki"
-
-#: mkdocs/themes/mkdocs/base.html:132
-msgid "Next"
-msgstr "Sonraki"
-
-#: mkdocs/themes/mkdocs/base.html:143 mkdocs/themes/mkdocs/base.html:145
-#: mkdocs/themes/mkdocs/base.html:147 mkdocs/themes/mkdocs/base.html:149
-#, python-format
-msgid "Edit on %(repo_name)s"
-msgstr "%(repo_name)s içinde düzenle"
-
-#: mkdocs/themes/mkdocs/base.html:151
-msgid "Edit"
-msgstr "Düzenle"
-
-#: mkdocs/themes/mkdocs/base.html:225
-#, python-format
-msgid "Documentation built with %(mkdocs_link)s."
-msgstr "Belgeler %(mkdocs_link)s ile oluşturuldu."
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:5
-msgid "Keyboard Shortcuts"
-msgstr "Klavye Kısayolları"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:6
-#: mkdocs/themes/mkdocs/search-modal.html:6
-msgid "Close"
-msgstr "Kapat"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:12
-msgid "Keys"
-msgstr "Tuşlar"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:13
-msgid "Action"
-msgstr "Eylem"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:19
-msgid "Open this help"
-msgstr "Bu yardımı aç"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:23
-msgid "Next page"
-msgstr "Sonraki sayfa"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:27
-msgid "Previous page"
-msgstr "Önceki sayfa"
-
-#: mkdocs/themes/mkdocs/search-modal.html:9
-msgid "From here you can search these documents. Enter your search terms below."
-msgstr ""
-"Buradan belgelerde arama yapabilirsiniz. Arama terimlerinizi aşağıya "
-"girin."
-
-#: mkdocs/themes/mkdocs/search-modal.html:12
-msgid "Search..."
-msgstr "Ara..."
-
-#: mkdocs/themes/mkdocs/search-modal.html:12
-msgid "Type search term here"
-msgstr "Arama terimini buraya yazın"
-
-#: mkdocs/themes/mkdocs/search-modal.html:15
-msgid "No results found"
-msgstr "Sonuç bulunamadı"
-
-#: mkdocs/themes/mkdocs/toc.html:3
-msgid "Table of Contents"
-msgstr "İçindekiler"
-
diff --git a/mkdocs/themes/mkdocs/locales/zh_CN/LC_MESSAGES/messages.po b/mkdocs/themes/mkdocs/locales/zh_CN/LC_MESSAGES/messages.po
deleted file mode 100644
index 0fb565c0..00000000
--- a/mkdocs/themes/mkdocs/locales/zh_CN/LC_MESSAGES/messages.po
+++ /dev/null
@@ -1,101 +0,0 @@
-# Chinese (Simplified, China) translations for MkDocs.
-# Copyright (C) 2022 MkDocs
-# This file is distributed under the same license as the MkDocs project.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: MkDocs 1.2\n"
-"Report-Msgid-Bugs-To: https://github.com/mkdocs/mkdocs/issues\n"
-"POT-Creation-Date: 2024-04-18 21:03+0200\n"
-"PO-Revision-Date: 2024-04-26 06:34+0800\n"
-"Last-Translator: xingkong0113 \n"
-"Language-Team: zh_Hans_CN \n"
-"Language: zh_CN\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"Generated-By: Babel 2.14.0\n"
-"X-Generator: Poedit 3.4.2\n"
-
-#: mkdocs/themes/mkdocs/404.html:8
-msgid "Page not found"
-msgstr "找不到页面"
-
-#: mkdocs/themes/mkdocs/base.html:117
-#: mkdocs/themes/mkdocs/keyboard-modal.html:31
-#: mkdocs/themes/mkdocs/search-modal.html:5
-msgid "Search"
-msgstr "搜索"
-
-#: mkdocs/themes/mkdocs/base.html:127
-msgid "Previous"
-msgstr "上一章"
-
-#: mkdocs/themes/mkdocs/base.html:132
-msgid "Next"
-msgstr "下一章"
-
-#: mkdocs/themes/mkdocs/base.html:143 mkdocs/themes/mkdocs/base.html:145
-#: mkdocs/themes/mkdocs/base.html:147 mkdocs/themes/mkdocs/base.html:149
-#, python-format
-msgid "Edit on %(repo_name)s"
-msgstr "在%(repo_name)s上编辑"
-
-#: mkdocs/themes/mkdocs/base.html:151
-msgid "Edit"
-msgstr "编辑"
-
-#: mkdocs/themes/mkdocs/base.html:225
-#, python-format
-msgid "Documentation built with %(mkdocs_link)s."
-msgstr "用%(mkdocs_link)s建立的文档。"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:5
-msgid "Keyboard Shortcuts"
-msgstr "键盘热键"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:6
-#: mkdocs/themes/mkdocs/search-modal.html:6
-msgid "Close"
-msgstr "关闭"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:12
-msgid "Keys"
-msgstr "键"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:13
-msgid "Action"
-msgstr "动作"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:19
-msgid "Open this help"
-msgstr "打开这个帮助"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:23
-msgid "Next page"
-msgstr "下一页面"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:27
-msgid "Previous page"
-msgstr "上一页面"
-
-#: mkdocs/themes/mkdocs/search-modal.html:9
-msgid "From here you can search these documents. Enter your search terms below."
-msgstr "从这里您可以搜索这些文档。在下面输入您需要搜索的内容。"
-
-#: mkdocs/themes/mkdocs/search-modal.html:12
-msgid "Search..."
-msgstr "搜索..."
-
-#: mkdocs/themes/mkdocs/search-modal.html:12
-msgid "Type search term here"
-msgstr "在此输入搜索内容"
-
-#: mkdocs/themes/mkdocs/search-modal.html:15
-msgid "No results found"
-msgstr "没有搜索到结果"
-
-#: mkdocs/themes/mkdocs/toc.html:3
-msgid "Table of Contents"
-msgstr "目录"
diff --git a/mkdocs/themes/mkdocs/locales/zh_TW/LC_MESSAGES/messages.po b/mkdocs/themes/mkdocs/locales/zh_TW/LC_MESSAGES/messages.po
deleted file mode 100644
index dba6e8f2..00000000
--- a/mkdocs/themes/mkdocs/locales/zh_TW/LC_MESSAGES/messages.po
+++ /dev/null
@@ -1,101 +0,0 @@
-# Chinese (Traditional, Taiwan) translations for MkDocs.
-# Copyright (C) 2022 MkDocs
-# This file is distributed under the same license as the MkDocs project.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: MkDocs 1.3.1\n"
-"Report-Msgid-Bugs-To: \"https://github.com/mkdocs/mkdocs/issues\"\n"
-"POT-Creation-Date: 2024-04-18 21:03+0200\n"
-"PO-Revision-Date: 2023-09-06 02:13+0800\n"
-"Last-Translator: Peter Dave Hello \n"
-"Language: zh_Hant_TW\n"
-"Language-Team: zh_Hant_TW \n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
-
-#: mkdocs/themes/mkdocs/404.html:8
-msgid "Page not found"
-msgstr "找不到頁面"
-
-#: mkdocs/themes/mkdocs/base.html:117
-#: mkdocs/themes/mkdocs/keyboard-modal.html:31
-#: mkdocs/themes/mkdocs/search-modal.html:5
-msgid "Search"
-msgstr "搜尋"
-
-#: mkdocs/themes/mkdocs/base.html:127
-msgid "Previous"
-msgstr "上一頁"
-
-#: mkdocs/themes/mkdocs/base.html:132
-msgid "Next"
-msgstr "下一頁"
-
-#: mkdocs/themes/mkdocs/base.html:143 mkdocs/themes/mkdocs/base.html:145
-#: mkdocs/themes/mkdocs/base.html:147 mkdocs/themes/mkdocs/base.html:149
-#, python-format
-msgid "Edit on %(repo_name)s"
-msgstr "在 %(repo_name)s 上編輯"
-
-#: mkdocs/themes/mkdocs/base.html:151
-msgid "Edit"
-msgstr "編輯"
-
-#: mkdocs/themes/mkdocs/base.html:225
-#, python-format
-msgid "Documentation built with %(mkdocs_link)s."
-msgstr "使用 %(mkdocs_link)s 建立的文件"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:5
-msgid "Keyboard Shortcuts"
-msgstr "鍵盤快捷鍵"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:6
-#: mkdocs/themes/mkdocs/search-modal.html:6
-msgid "Close"
-msgstr "關閉"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:12
-msgid "Keys"
-msgstr "按鍵"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:13
-msgid "Action"
-msgstr "操作"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:19
-msgid "Open this help"
-msgstr "開啟這個說明"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:23
-msgid "Next page"
-msgstr "下一頁"
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:27
-msgid "Previous page"
-msgstr "上一頁"
-
-#: mkdocs/themes/mkdocs/search-modal.html:9
-msgid "From here you can search these documents. Enter your search terms below."
-msgstr "從這裡您可以搜尋這些文件。請在下方輸入您要搜尋的內容。"
-
-#: mkdocs/themes/mkdocs/search-modal.html:12
-msgid "Search..."
-msgstr "搜尋..."
-
-#: mkdocs/themes/mkdocs/search-modal.html:12
-msgid "Type search term here"
-msgstr "在此輸入要搜尋的內容"
-
-#: mkdocs/themes/mkdocs/search-modal.html:15
-msgid "No results found"
-msgstr "沒有找到結果"
-
-#: mkdocs/themes/mkdocs/toc.html:3
-msgid "Table of Contents"
-msgstr "目錄"
-
diff --git a/mkdocs/themes/mkdocs/messages.pot b/mkdocs/themes/mkdocs/messages.pot
deleted file mode 100644
index 828dd2e6..00000000
--- a/mkdocs/themes/mkdocs/messages.pot
+++ /dev/null
@@ -1,101 +0,0 @@
-# Translations template for MkDocs.
-# Copyright (C) 2024 MkDocs
-# This file is distributed under the same license as the MkDocs project.
-# FIRST AUTHOR , 2024.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: MkDocs 1.5.3\n"
-"Report-Msgid-Bugs-To: https://github.com/mkdocs/mkdocs/issues\n"
-"POT-Creation-Date: 2024-04-18 21:03+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
-
-#: mkdocs/themes/mkdocs/404.html:8
-msgid "Page not found"
-msgstr ""
-
-#: mkdocs/themes/mkdocs/base.html:117
-#: mkdocs/themes/mkdocs/keyboard-modal.html:31
-#: mkdocs/themes/mkdocs/search-modal.html:5
-msgid "Search"
-msgstr ""
-
-#: mkdocs/themes/mkdocs/base.html:127
-msgid "Previous"
-msgstr ""
-
-#: mkdocs/themes/mkdocs/base.html:132
-msgid "Next"
-msgstr ""
-
-#: mkdocs/themes/mkdocs/base.html:143 mkdocs/themes/mkdocs/base.html:145
-#: mkdocs/themes/mkdocs/base.html:147 mkdocs/themes/mkdocs/base.html:149
-#, python-format
-msgid "Edit on %(repo_name)s"
-msgstr ""
-
-#: mkdocs/themes/mkdocs/base.html:151
-msgid "Edit"
-msgstr ""
-
-#: mkdocs/themes/mkdocs/base.html:225
-#, python-format
-msgid "Documentation built with %(mkdocs_link)s."
-msgstr ""
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:5
-msgid "Keyboard Shortcuts"
-msgstr ""
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:6
-#: mkdocs/themes/mkdocs/search-modal.html:6
-msgid "Close"
-msgstr ""
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:12
-msgid "Keys"
-msgstr ""
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:13
-msgid "Action"
-msgstr ""
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:19
-msgid "Open this help"
-msgstr ""
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:23
-msgid "Next page"
-msgstr ""
-
-#: mkdocs/themes/mkdocs/keyboard-modal.html:27
-msgid "Previous page"
-msgstr ""
-
-#: mkdocs/themes/mkdocs/search-modal.html:9
-msgid "From here you can search these documents. Enter your search terms below."
-msgstr ""
-
-#: mkdocs/themes/mkdocs/search-modal.html:12
-msgid "Search..."
-msgstr ""
-
-#: mkdocs/themes/mkdocs/search-modal.html:12
-msgid "Type search term here"
-msgstr ""
-
-#: mkdocs/themes/mkdocs/search-modal.html:15
-msgid "No results found"
-msgstr ""
-
-#: mkdocs/themes/mkdocs/toc.html:3
-msgid "Table of Contents"
-msgstr ""
-
diff --git a/mkdocs/themes/readthedocs/locales/de/LC_MESSAGES/messages.po b/mkdocs/themes/readthedocs/locales/de/LC_MESSAGES/messages.po
deleted file mode 100644
index b8cb0266..00000000
--- a/mkdocs/themes/readthedocs/locales/de/LC_MESSAGES/messages.po
+++ /dev/null
@@ -1,111 +0,0 @@
-# German translations for MkDocs.
-# Copyright (C) 2022 MkDocs
-# This file is distributed under the same license as the MkDocs project.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: MkDocs 1.2.3\n"
-"Report-Msgid-Bugs-To: \"https://github.com/mkdocs/mkdocs/issues\"\n"
-"POT-Creation-Date: 2024-04-09 16:13+0200\n"
-"PO-Revision-Date: 2021-10-23 18:52+0200\n"
-"Last-Translator: Marc Dietz \n"
-"Language: de\n"
-"Language-Team: de \n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
-
-#: mkdocs/themes/readthedocs/404.html:7
-msgid "Page not found"
-msgstr "Seite nicht gefunden"
-
-#: mkdocs/themes/readthedocs/base.html:96
-msgid "Logo"
-msgstr "Logo"
-
-#: mkdocs/themes/readthedocs/base.html:110
-msgid "Navigation menu"
-msgstr "Navigationsmenü"
-
-#: mkdocs/themes/readthedocs/base.html:147
-msgid "Mobile navigation menu"
-msgstr "Mobile Navigationsmenü"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:3
-msgid "Docs"
-msgstr "Dokumentation"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:18
-#: mkdocs/themes/readthedocs/breadcrumbs.html:20
-#: mkdocs/themes/readthedocs/breadcrumbs.html:22
-#: mkdocs/themes/readthedocs/breadcrumbs.html:24
-#, python-format
-msgid "Edit on %(repo_name)s"
-msgstr "Bearbeiten auf %(repo_name)s"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:26
-msgid "Edit"
-msgstr "Bearbeiten"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:34
-msgid "Breadcrumb Navigation"
-msgstr "Breadcrumb-Navigation"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:36
-#: mkdocs/themes/readthedocs/footer.html:7
-#: mkdocs/themes/readthedocs/versions.html:21
-msgid "Previous"
-msgstr "Zurück"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:39
-#: mkdocs/themes/readthedocs/footer.html:10
-#: mkdocs/themes/readthedocs/versions.html:24
-msgid "Next"
-msgstr "Weiter"
-
-#: mkdocs/themes/readthedocs/footer.html:5
-msgid "Footer Navigation"
-msgstr "Footer-Navigation"
-
-#: mkdocs/themes/readthedocs/footer.html:25
-#, python-format
-msgid ""
-"Built with %(mkdocs_link)s using a %(sphinx_link)s provided by "
-"%(rtd_link)s."
-msgstr "Erzeugt mit %(mkdocs_link)s mit einem %(sphinx_link)s von %(rtd_link)s."
-
-#: mkdocs/themes/readthedocs/footer.html:25
-msgid "theme"
-msgstr "Thema"
-
-#: mkdocs/themes/readthedocs/search.html:5
-msgid "Search Results"
-msgstr "Suchergebnisse"
-
-#: mkdocs/themes/readthedocs/search.html:9
-msgid "Search the Docs"
-msgstr "Dokumentation durchsuchen"
-
-#: mkdocs/themes/readthedocs/search.html:9
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Type search term here"
-msgstr "Tragen Sie hier den gesuchten Begriff ein"
-
-#: mkdocs/themes/readthedocs/search.html:12
-msgid "No results found"
-msgstr "Keine Ergebnisse gefunden"
-
-#: mkdocs/themes/readthedocs/search.html:13
-msgid "Searching..."
-msgstr "Suche..."
-
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Search docs"
-msgstr "Durchsuchen"
-
-#: mkdocs/themes/readthedocs/versions.html:1
-msgid "Versions"
-msgstr "Versionen"
-
diff --git a/mkdocs/themes/readthedocs/locales/es/LC_MESSAGES/messages.po b/mkdocs/themes/readthedocs/locales/es/LC_MESSAGES/messages.po
deleted file mode 100644
index c3421adb..00000000
--- a/mkdocs/themes/readthedocs/locales/es/LC_MESSAGES/messages.po
+++ /dev/null
@@ -1,113 +0,0 @@
-# Spanish translations for MkDocs.
-# Copyright (C) 2022 MkDocs
-# This file is distributed under the same license as the MkDocs project.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: MkDocs 1.2\n"
-"Report-Msgid-Bugs-To: https://github.com/mkdocs/mkdocs/issues\n"
-"POT-Creation-Date: 2024-04-09 16:13+0200\n"
-"PO-Revision-Date: 2021-12-06 13:33+0100\n"
-"Last-Translator: Álvaro Mondéjar Rubio \n"
-"Language: es\n"
-"Language-Team: es\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
-
-#: mkdocs/themes/readthedocs/404.html:7
-msgid "Page not found"
-msgstr "Página no encontrada"
-
-#: mkdocs/themes/readthedocs/base.html:96
-msgid "Logo"
-msgstr "Logo"
-
-#: mkdocs/themes/readthedocs/base.html:110
-msgid "Navigation menu"
-msgstr "Menu de navegación"
-
-#: mkdocs/themes/readthedocs/base.html:147
-msgid "Mobile navigation menu"
-msgstr "Menú de navegación en móvil"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:3
-msgid "Docs"
-msgstr "Documentos"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:18
-#: mkdocs/themes/readthedocs/breadcrumbs.html:20
-#: mkdocs/themes/readthedocs/breadcrumbs.html:22
-#: mkdocs/themes/readthedocs/breadcrumbs.html:24
-#, python-format
-msgid "Edit on %(repo_name)s"
-msgstr "Editar en %(repo_name)s"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:26
-msgid "Edit"
-msgstr "Editar"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:34
-msgid "Breadcrumb Navigation"
-msgstr "Navegación de rastro"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:36
-#: mkdocs/themes/readthedocs/footer.html:7
-#: mkdocs/themes/readthedocs/versions.html:21
-msgid "Previous"
-msgstr "Anterior"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:39
-#: mkdocs/themes/readthedocs/footer.html:10
-#: mkdocs/themes/readthedocs/versions.html:24
-msgid "Next"
-msgstr "Siguiente"
-
-#: mkdocs/themes/readthedocs/footer.html:5
-msgid "Footer Navigation"
-msgstr "Navegación de pie de página"
-
-#: mkdocs/themes/readthedocs/footer.html:25
-#, python-format
-msgid ""
-"Built with %(mkdocs_link)s using a %(sphinx_link)s provided by "
-"%(rtd_link)s."
-msgstr ""
-"Construído con %(mkdocs_link)s usando un %(sphinx_link)s provisto por "
-"%(rtd_link)s."
-
-#: mkdocs/themes/readthedocs/footer.html:25
-msgid "theme"
-msgstr "tema"
-
-#: mkdocs/themes/readthedocs/search.html:5
-msgid "Search Results"
-msgstr "Resultados de búsqueda"
-
-#: mkdocs/themes/readthedocs/search.html:9
-msgid "Search the Docs"
-msgstr "Buscar en la documentación"
-
-#: mkdocs/themes/readthedocs/search.html:9
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Type search term here"
-msgstr "Escriba el término de búsqueda aquí"
-
-#: mkdocs/themes/readthedocs/search.html:12
-msgid "No results found"
-msgstr "No se encontraron resultados"
-
-#: mkdocs/themes/readthedocs/search.html:13
-msgid "Searching..."
-msgstr "Buscando..."
-
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Search docs"
-msgstr "Buscar documentos"
-
-#: mkdocs/themes/readthedocs/versions.html:1
-msgid "Versions"
-msgstr "Versiones"
-
diff --git a/mkdocs/themes/readthedocs/locales/fa/LC_MESSAGES/messages.po b/mkdocs/themes/readthedocs/locales/fa/LC_MESSAGES/messages.po
deleted file mode 100644
index dcc042ec..00000000
--- a/mkdocs/themes/readthedocs/locales/fa/LC_MESSAGES/messages.po
+++ /dev/null
@@ -1,113 +0,0 @@
-# Persian translations for MkDocs.
-# Copyright (C) 2022 MkDocs
-# This file is distributed under the same license as the MkDocs project.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: MkDocs 1.2.2\n"
-"Report-Msgid-Bugs-To: \"https://github.com/mkdocs/mkdocs/issues\"\n"
-"POT-Creation-Date: 2024-04-09 16:13+0200\n"
-"PO-Revision-Date: 2022-03-03 15:56+0330\n"
-"Last-Translator: Peyman Mohammadi <@peymanr34>\n"
-"Language: fa\n"
-"Language-Team: fa \n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
-
-#: mkdocs/themes/readthedocs/404.html:7
-msgid "Page not found"
-msgstr "صفحه یافت نشد"
-
-#: mkdocs/themes/readthedocs/base.html:96
-msgid "Logo"
-msgstr "لوگو"
-
-#: mkdocs/themes/readthedocs/base.html:110
-msgid "Navigation menu"
-msgstr "منوی ناوبری"
-
-#: mkdocs/themes/readthedocs/base.html:147
-msgid "Mobile navigation menu"
-msgstr "منوی ناوبری موبایل"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:3
-msgid "Docs"
-msgstr "مستندات"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:18
-#: mkdocs/themes/readthedocs/breadcrumbs.html:20
-#: mkdocs/themes/readthedocs/breadcrumbs.html:22
-#: mkdocs/themes/readthedocs/breadcrumbs.html:24
-#, python-format
-msgid "Edit on %(repo_name)s"
-msgstr "ویرایش در %(repo_name)s"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:26
-msgid "Edit"
-msgstr ""
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:34
-msgid "Breadcrumb Navigation"
-msgstr "فهرست مسیر"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:36
-#: mkdocs/themes/readthedocs/footer.html:7
-#: mkdocs/themes/readthedocs/versions.html:21
-msgid "Previous"
-msgstr "قبلی"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:39
-#: mkdocs/themes/readthedocs/footer.html:10
-#: mkdocs/themes/readthedocs/versions.html:24
-msgid "Next"
-msgstr "بعدی"
-
-#: mkdocs/themes/readthedocs/footer.html:5
-msgid "Footer Navigation"
-msgstr "ناوبری پاورقی"
-
-#: mkdocs/themes/readthedocs/footer.html:25
-#, python-format
-msgid ""
-"Built with %(mkdocs_link)s using a %(sphinx_link)s provided by "
-"%(rtd_link)s."
-msgstr ""
-"ساخته شده توسط %(mkdocs_link)s با استفاده از %(sphinx_link)s ارائه شده "
-"توسط %(rtd_link)s."
-
-#: mkdocs/themes/readthedocs/footer.html:25
-msgid "theme"
-msgstr ""
-
-#: mkdocs/themes/readthedocs/search.html:5
-msgid "Search Results"
-msgstr "نتایج جستجو"
-
-#: mkdocs/themes/readthedocs/search.html:9
-msgid "Search the Docs"
-msgstr "جستجوی مستندات"
-
-#: mkdocs/themes/readthedocs/search.html:9
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Type search term here"
-msgstr "عبارت جستجو را اینجا وارد کنید"
-
-#: mkdocs/themes/readthedocs/search.html:12
-msgid "No results found"
-msgstr "موردی یافت نشد"
-
-#: mkdocs/themes/readthedocs/search.html:13
-msgid "Searching..."
-msgstr "درحال جستجو..."
-
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Search docs"
-msgstr "جستجوی مستندات"
-
-#: mkdocs/themes/readthedocs/versions.html:1
-msgid "Versions"
-msgstr "نسخهها"
-
diff --git a/mkdocs/themes/readthedocs/locales/fr/LC_MESSAGES/messages.po b/mkdocs/themes/readthedocs/locales/fr/LC_MESSAGES/messages.po
deleted file mode 100644
index 4138a186..00000000
--- a/mkdocs/themes/readthedocs/locales/fr/LC_MESSAGES/messages.po
+++ /dev/null
@@ -1,113 +0,0 @@
-# French translations for MkDocs.
-# Copyright (C) 2022 MkDocs
-# This file is distributed under the same license as the MkDocs project.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: MkDocs 1.2\n"
-"Report-Msgid-Bugs-To: https://github.com/mkdocs/mkdocs/issues\n"
-"POT-Creation-Date: 2024-04-09 16:13+0200\n"
-"PO-Revision-Date: 2021-02-23 23:56+0100\n"
-"Last-Translator: Alexys Jacob @ultrabug\n"
-"Language: fr\n"
-"Language-Team: fr \n"
-"Plural-Forms: nplurals=2; plural=(n > 1);\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
-
-#: mkdocs/themes/readthedocs/404.html:7
-msgid "Page not found"
-msgstr "Page non trouvée"
-
-#: mkdocs/themes/readthedocs/base.html:96
-msgid "Logo"
-msgstr "Logo"
-
-#: mkdocs/themes/readthedocs/base.html:110
-msgid "Navigation menu"
-msgstr "Menu de navigation"
-
-#: mkdocs/themes/readthedocs/base.html:147
-msgid "Mobile navigation menu"
-msgstr "Menu de navigation sur mobile"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:3
-msgid "Docs"
-msgstr "Documents"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:18
-#: mkdocs/themes/readthedocs/breadcrumbs.html:20
-#: mkdocs/themes/readthedocs/breadcrumbs.html:22
-#: mkdocs/themes/readthedocs/breadcrumbs.html:24
-#, python-format
-msgid "Edit on %(repo_name)s"
-msgstr "Editer dans %(repo_name)s"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:26
-msgid "Edit"
-msgstr "Editer"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:34
-msgid "Breadcrumb Navigation"
-msgstr "Fil d'Ariane"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:36
-#: mkdocs/themes/readthedocs/footer.html:7
-#: mkdocs/themes/readthedocs/versions.html:21
-msgid "Previous"
-msgstr "Précédent"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:39
-#: mkdocs/themes/readthedocs/footer.html:10
-#: mkdocs/themes/readthedocs/versions.html:24
-msgid "Next"
-msgstr "Suivant"
-
-#: mkdocs/themes/readthedocs/footer.html:5
-msgid "Footer Navigation"
-msgstr "Navigation de pied de page"
-
-#: mkdocs/themes/readthedocs/footer.html:25
-#, python-format
-msgid ""
-"Built with %(mkdocs_link)s using a %(sphinx_link)s provided by "
-"%(rtd_link)s."
-msgstr ""
-"Générée avec %(mkdocs_link)s avec un %(sphinx_link)s fourni par "
-"%(rtd_link)s."
-
-#: mkdocs/themes/readthedocs/footer.html:25
-msgid "theme"
-msgstr "thème"
-
-#: mkdocs/themes/readthedocs/search.html:5
-msgid "Search Results"
-msgstr "Résultats de la recherche"
-
-#: mkdocs/themes/readthedocs/search.html:9
-msgid "Search the Docs"
-msgstr "Rechercher dans la documentation"
-
-#: mkdocs/themes/readthedocs/search.html:9
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Type search term here"
-msgstr "Tapez vos mots clés ici"
-
-#: mkdocs/themes/readthedocs/search.html:12
-msgid "No results found"
-msgstr "Aucun résultat trouvé"
-
-#: mkdocs/themes/readthedocs/search.html:13
-msgid "Searching..."
-msgstr "Recherche en cours..."
-
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Search docs"
-msgstr "Rechercher des documents"
-
-#: mkdocs/themes/readthedocs/versions.html:1
-msgid "Versions"
-msgstr "Versions"
-
diff --git a/mkdocs/themes/readthedocs/locales/id/LC_MESSAGES/messages.po b/mkdocs/themes/readthedocs/locales/id/LC_MESSAGES/messages.po
deleted file mode 100644
index 25f99c4a..00000000
--- a/mkdocs/themes/readthedocs/locales/id/LC_MESSAGES/messages.po
+++ /dev/null
@@ -1,114 +0,0 @@
-# Indonesian translations for MkDocs.
-# Copyright (C) 2022 MkDocs
-# This file is distributed under the same license as the MkDocs project.
-# Kira , 2021.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: MkDocs 1.3.1\n"
-"Report-Msgid-Bugs-To: \"https://github.com/mkdocs/mkdocs/issues\"\n"
-"POT-Creation-Date: 2024-04-09 16:13+0200\n"
-"PO-Revision-Date: 2023-03-21 21:00+0800\n"
-"Last-Translator: Kira \n"
-"Language: id\n"
-"Language-Team: id \n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
-
-#: mkdocs/themes/readthedocs/404.html:7
-msgid "Page not found"
-msgstr "Halaman tidak ditemukan"
-
-#: mkdocs/themes/readthedocs/base.html:96
-msgid "Logo"
-msgstr "Logo"
-
-#: mkdocs/themes/readthedocs/base.html:110
-msgid "Navigation menu"
-msgstr "Menu navigasi"
-
-#: mkdocs/themes/readthedocs/base.html:147
-msgid "Mobile navigation menu"
-msgstr "Menu navigasi seluler"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:3
-msgid "Docs"
-msgstr "Dokumen"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:18
-#: mkdocs/themes/readthedocs/breadcrumbs.html:20
-#: mkdocs/themes/readthedocs/breadcrumbs.html:22
-#: mkdocs/themes/readthedocs/breadcrumbs.html:24
-#, python-format
-msgid "Edit on %(repo_name)s"
-msgstr "Sunting pada %(repo_name)s"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:26
-msgid "Edit"
-msgstr "Sunting"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:34
-msgid "Breadcrumb Navigation"
-msgstr "Navigasi Remah Roti"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:36
-#: mkdocs/themes/readthedocs/footer.html:7
-#: mkdocs/themes/readthedocs/versions.html:21
-msgid "Previous"
-msgstr "Sebelumnya"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:39
-#: mkdocs/themes/readthedocs/footer.html:10
-#: mkdocs/themes/readthedocs/versions.html:24
-msgid "Next"
-msgstr "Selanjutnya"
-
-#: mkdocs/themes/readthedocs/footer.html:5
-msgid "Footer Navigation"
-msgstr "Navigasi Footer"
-
-#: mkdocs/themes/readthedocs/footer.html:25
-#, python-format
-msgid ""
-"Built with %(mkdocs_link)s using a %(sphinx_link)s provided by "
-"%(rtd_link)s."
-msgstr ""
-"Dibangun dengan %(mkdocs_link)s menggunakan %(sphinx_link)s yang "
-"disediakan oleh %(rtd_link)s."
-
-#: mkdocs/themes/readthedocs/footer.html:25
-msgid "theme"
-msgstr ""
-
-#: mkdocs/themes/readthedocs/search.html:5
-msgid "Search Results"
-msgstr "Hasil Penelusuran"
-
-#: mkdocs/themes/readthedocs/search.html:9
-msgid "Search the Docs"
-msgstr "Telusuri Dokumen"
-
-#: mkdocs/themes/readthedocs/search.html:9
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Type search term here"
-msgstr "Ketik istilah pencarian di sini"
-
-#: mkdocs/themes/readthedocs/search.html:12
-msgid "No results found"
-msgstr "Tidak ada hasil yang ditemukan"
-
-#: mkdocs/themes/readthedocs/search.html:13
-msgid "Searching..."
-msgstr "Menelusuri..."
-
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Search docs"
-msgstr "Telusuri dokumen"
-
-#: mkdocs/themes/readthedocs/versions.html:1
-msgid "Versions"
-msgstr "Versi"
-
diff --git a/mkdocs/themes/readthedocs/locales/it/LC_MESSAGES/messages.po b/mkdocs/themes/readthedocs/locales/it/LC_MESSAGES/messages.po
deleted file mode 100644
index f73364e4..00000000
--- a/mkdocs/themes/readthedocs/locales/it/LC_MESSAGES/messages.po
+++ /dev/null
@@ -1,113 +0,0 @@
-# Italian translations for MkDocs.
-# Copyright (C) 2022 MkDocs
-# This file is distributed under the same license as the MkDocs project.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: MkDocs 1.2\n"
-"Report-Msgid-Bugs-To: https://github.com/mkdocs/mkdocs/issues\n"
-"POT-Creation-Date: 2024-04-09 16:13+0200\n"
-"PO-Revision-Date: 2022-06-05 13:13+0200\n"
-"Last-Translator: Francesco Maida \n"
-"Language: it\n"
-"Language-Team: fr \n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
-
-#: mkdocs/themes/readthedocs/404.html:7
-msgid "Page not found"
-msgstr "Pagina non trovata"
-
-#: mkdocs/themes/readthedocs/base.html:96
-msgid "Logo"
-msgstr "Logo"
-
-#: mkdocs/themes/readthedocs/base.html:110
-msgid "Navigation menu"
-msgstr "Menu"
-
-#: mkdocs/themes/readthedocs/base.html:147
-msgid "Mobile navigation menu"
-msgstr "Menu di navigazione mobile"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:3
-msgid "Docs"
-msgstr "Documenti"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:18
-#: mkdocs/themes/readthedocs/breadcrumbs.html:20
-#: mkdocs/themes/readthedocs/breadcrumbs.html:22
-#: mkdocs/themes/readthedocs/breadcrumbs.html:24
-#, python-format
-msgid "Edit on %(repo_name)s"
-msgstr "Modifica su %(repo_name)s"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:26
-msgid "Edit"
-msgstr "Modificare"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:34
-msgid "Breadcrumb Navigation"
-msgstr "Navigazione breadcrumb"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:36
-#: mkdocs/themes/readthedocs/footer.html:7
-#: mkdocs/themes/readthedocs/versions.html:21
-msgid "Previous"
-msgstr "Precedente"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:39
-#: mkdocs/themes/readthedocs/footer.html:10
-#: mkdocs/themes/readthedocs/versions.html:24
-msgid "Next"
-msgstr "Successivo"
-
-#: mkdocs/themes/readthedocs/footer.html:5
-msgid "Footer Navigation"
-msgstr "Navigazione a pié di pagina"
-
-#: mkdocs/themes/readthedocs/footer.html:25
-#, python-format
-msgid ""
-"Built with %(mkdocs_link)s using a %(sphinx_link)s provided by "
-"%(rtd_link)s."
-msgstr ""
-"Creato con %(mkdocs_link)s utilizzando un %(sphinx_link)s fornito da "
-"%(rtd_link)s."
-
-#: mkdocs/themes/readthedocs/footer.html:25
-msgid "theme"
-msgstr "tema"
-
-#: mkdocs/themes/readthedocs/search.html:5
-msgid "Search Results"
-msgstr "Risultati della ricerca"
-
-#: mkdocs/themes/readthedocs/search.html:9
-msgid "Search the Docs"
-msgstr "Cerca nei documenti"
-
-#: mkdocs/themes/readthedocs/search.html:9
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Type search term here"
-msgstr "Digita il termine di ricerca qui"
-
-#: mkdocs/themes/readthedocs/search.html:12
-msgid "No results found"
-msgstr "Nessun risultato trovato"
-
-#: mkdocs/themes/readthedocs/search.html:13
-msgid "Searching..."
-msgstr "Ricerca in corso…"
-
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Search docs"
-msgstr "Cerca documenti"
-
-#: mkdocs/themes/readthedocs/versions.html:1
-msgid "Versions"
-msgstr "Versioni"
-
diff --git a/mkdocs/themes/readthedocs/locales/ja/LC_MESSAGES/messages.po b/mkdocs/themes/readthedocs/locales/ja/LC_MESSAGES/messages.po
deleted file mode 100644
index 123e3bdf..00000000
--- a/mkdocs/themes/readthedocs/locales/ja/LC_MESSAGES/messages.po
+++ /dev/null
@@ -1,111 +0,0 @@
-# Japanese translations for MkDocs.
-# Copyright (C) 2022 MkDocs
-# This file is distributed under the same license as the MkDocs project.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: MkDocs 1.2\n"
-"Report-Msgid-Bugs-To: https://github.com/mkdocs/mkdocs/issues\n"
-"POT-Creation-Date: 2024-04-09 16:13+0200\n"
-"PO-Revision-Date: 2021-07-31 12:07+0900\n"
-"Last-Translator: Goto Hayato \n"
-"Language: ja\n"
-"Language-Team: ja \n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
-
-#: mkdocs/themes/readthedocs/404.html:7
-msgid "Page not found"
-msgstr "ページが見つかりません"
-
-#: mkdocs/themes/readthedocs/base.html:96
-msgid "Logo"
-msgstr "ロゴ"
-
-#: mkdocs/themes/readthedocs/base.html:110
-msgid "Navigation menu"
-msgstr "ナビゲーションメニュー"
-
-#: mkdocs/themes/readthedocs/base.html:147
-msgid "Mobile navigation menu"
-msgstr "モバイルナビゲーションメニュー"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:3
-msgid "Docs"
-msgstr "ドキュメント"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:18
-#: mkdocs/themes/readthedocs/breadcrumbs.html:20
-#: mkdocs/themes/readthedocs/breadcrumbs.html:22
-#: mkdocs/themes/readthedocs/breadcrumbs.html:24
-#, python-format
-msgid "Edit on %(repo_name)s"
-msgstr "%(repo_name)s で編集"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:26
-msgid "Edit"
-msgstr ""
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:34
-msgid "Breadcrumb Navigation"
-msgstr "パンくずリストナビゲーション"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:36
-#: mkdocs/themes/readthedocs/footer.html:7
-#: mkdocs/themes/readthedocs/versions.html:21
-msgid "Previous"
-msgstr "前へ"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:39
-#: mkdocs/themes/readthedocs/footer.html:10
-#: mkdocs/themes/readthedocs/versions.html:24
-msgid "Next"
-msgstr "次へ"
-
-#: mkdocs/themes/readthedocs/footer.html:5
-msgid "Footer Navigation"
-msgstr "フッターナビゲーション"
-
-#: mkdocs/themes/readthedocs/footer.html:25
-#, python-format
-msgid ""
-"Built with %(mkdocs_link)s using a %(sphinx_link)s provided by "
-"%(rtd_link)s."
-msgstr "%(rtd_link)s 提供の %(sphinx_link)s を使って %(mkdocs_link)s でビルドされました。"
-
-#: mkdocs/themes/readthedocs/footer.html:25
-msgid "theme"
-msgstr ""
-
-#: mkdocs/themes/readthedocs/search.html:5
-msgid "Search Results"
-msgstr "検索結果"
-
-#: mkdocs/themes/readthedocs/search.html:9
-msgid "Search the Docs"
-msgstr "ドキュメントを検索"
-
-#: mkdocs/themes/readthedocs/search.html:9
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Type search term here"
-msgstr "検索語句を入力してください"
-
-#: mkdocs/themes/readthedocs/search.html:12
-msgid "No results found"
-msgstr "結果がありません"
-
-#: mkdocs/themes/readthedocs/search.html:13
-msgid "Searching..."
-msgstr "検索しています..."
-
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Search docs"
-msgstr "ドキュメントを検索"
-
-#: mkdocs/themes/readthedocs/versions.html:1
-msgid "Versions"
-msgstr "バージョン"
-
diff --git a/mkdocs/themes/readthedocs/locales/nl/LC_MESSAGES/messages.po b/mkdocs/themes/readthedocs/locales/nl/LC_MESSAGES/messages.po
deleted file mode 100644
index f4d3d797..00000000
--- a/mkdocs/themes/readthedocs/locales/nl/LC_MESSAGES/messages.po
+++ /dev/null
@@ -1,114 +0,0 @@
-# Dutch translations for MkDocs.
-# Copyright (C) 2024 MkDocs
-# This file is distributed under the same license as the MkDocs project.
-# FIRST AUTHOR , 2024.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: MkDocs 1.5.3\n"
-"Report-Msgid-Bugs-To: https://github.com/mkdocs/mkdocs/issues\n"
-"POT-Creation-Date: 2024-04-09 16:13+0200\n"
-"PO-Revision-Date: 2024-08-12 11:34+0200\n"
-"Last-Translator: Jeroen van de Nieuwenhof \n"
-"Language: nl\n"
-"Language-Team: nl \n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.16.0\n"
-
-#: mkdocs/themes/readthedocs/404.html:7
-msgid "Page not found"
-msgstr "Pagina niet gevonden"
-
-#: mkdocs/themes/readthedocs/base.html:96
-msgid "Logo"
-msgstr "Logo"
-
-#: mkdocs/themes/readthedocs/base.html:110
-msgid "Navigation menu"
-msgstr "Navigatiemenu"
-
-#: mkdocs/themes/readthedocs/base.html:147
-msgid "Mobile navigation menu"
-msgstr "Mobiel navigatiemenu"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:3
-msgid "Docs"
-msgstr "Documentatie"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:18
-#: mkdocs/themes/readthedocs/breadcrumbs.html:20
-#: mkdocs/themes/readthedocs/breadcrumbs.html:22
-#: mkdocs/themes/readthedocs/breadcrumbs.html:24
-#, python-format
-msgid "Edit on %(repo_name)s"
-msgstr "Bewerk op %(repo_name)s"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:26
-msgid "Edit"
-msgstr "Bewerk"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:34
-msgid "Breadcrumb Navigation"
-msgstr "Kruimelpadnavigatie"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:36
-#: mkdocs/themes/readthedocs/footer.html:7
-#: mkdocs/themes/readthedocs/versions.html:21
-msgid "Previous"
-msgstr "Vorige"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:39
-#: mkdocs/themes/readthedocs/footer.html:10
-#: mkdocs/themes/readthedocs/versions.html:24
-msgid "Next"
-msgstr "Volgende"
-
-#: mkdocs/themes/readthedocs/footer.html:5
-msgid "Footer Navigation"
-msgstr "Footernavigatie"
-
-#: mkdocs/themes/readthedocs/footer.html:25
-#, python-format
-msgid ""
-"Built with %(mkdocs_link)s using a %(sphinx_link)s provided by "
-"%(rtd_link)s."
-msgstr ""
-"Gemaakt met %(mkdocs_link)s met behulp van een %(sphinx_link)s geleverd door "
-"%(rtd_link)s."
-
-#: mkdocs/themes/readthedocs/footer.html:25
-msgid "theme"
-msgstr "Thema"
-
-#: mkdocs/themes/readthedocs/search.html:5
-msgid "Search Results"
-msgstr "Zoekresultaten"
-
-#: mkdocs/themes/readthedocs/search.html:9
-msgid "Search the Docs"
-msgstr "Doorzoek de documentatie"
-
-#: mkdocs/themes/readthedocs/search.html:9
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Type search term here"
-msgstr "Typ hier uw zoekterm"
-
-#: mkdocs/themes/readthedocs/search.html:12
-msgid "No results found"
-msgstr "Geen resultaten gevonden"
-
-#: mkdocs/themes/readthedocs/search.html:13
-msgid "Searching..."
-msgstr "Zoeken..."
-
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Search docs"
-msgstr "Doorzoek documentatie"
-
-#: mkdocs/themes/readthedocs/versions.html:1
-msgid "Versions"
-msgstr "Versies"
-
diff --git a/mkdocs/themes/readthedocs/locales/pl/LC_MESSAGES/messages.po b/mkdocs/themes/readthedocs/locales/pl/LC_MESSAGES/messages.po
deleted file mode 100644
index 32dfbb24..00000000
--- a/mkdocs/themes/readthedocs/locales/pl/LC_MESSAGES/messages.po
+++ /dev/null
@@ -1,114 +0,0 @@
-# Polish translations for MkDocs.
-# Copyright (C) 2024 MkDocs
-# This file is distributed under the same license as the MkDocs project.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: MkDocs 1.3.1\n"
-"Report-Msgid-Bugs-To: \"https://github.com/mkdocs/mkdocs/issues\"\n"
-"POT-Creation-Date: 2024-04-09 16:13+0200\n"
-"PO-Revision-Date: 2024-03-21 17:46+0100\n"
-"Last-Translator: Szymon Rakowski \n"
-"Language: pl\n"
-"Language-Team: pl \n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && "
-"(n%100<10 || n%100>=20) ? 1 : 2);\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
-
-#: mkdocs/themes/readthedocs/404.html:7
-msgid "Page not found"
-msgstr "Nie znaleziono strony"
-
-#: mkdocs/themes/readthedocs/base.html:96
-msgid "Logo"
-msgstr "Logo"
-
-#: mkdocs/themes/readthedocs/base.html:110
-msgid "Navigation menu"
-msgstr "Menu nawigacji"
-
-#: mkdocs/themes/readthedocs/base.html:147
-msgid "Mobile navigation menu"
-msgstr "Mobilne menu nawigacji"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:3
-msgid "Docs"
-msgstr "Dokumentacja"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:18
-#: mkdocs/themes/readthedocs/breadcrumbs.html:20
-#: mkdocs/themes/readthedocs/breadcrumbs.html:22
-#: mkdocs/themes/readthedocs/breadcrumbs.html:24
-#, python-format
-msgid "Edit on %(repo_name)s"
-msgstr "Edytuj w %(repo_name)s"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:26
-msgid "Edit"
-msgstr "Edytuj"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:34
-msgid "Breadcrumb Navigation"
-msgstr "Nawigacja typu Breadcrumb"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:36
-#: mkdocs/themes/readthedocs/footer.html:7
-#: mkdocs/themes/readthedocs/versions.html:21
-msgid "Previous"
-msgstr "Wstecz"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:39
-#: mkdocs/themes/readthedocs/footer.html:10
-#: mkdocs/themes/readthedocs/versions.html:24
-msgid "Next"
-msgstr "Dalej"
-
-#: mkdocs/themes/readthedocs/footer.html:5
-msgid "Footer Navigation"
-msgstr "Nawigacja w stopce"
-
-#: mkdocs/themes/readthedocs/footer.html:25
-#, python-format
-msgid ""
-"Built with %(mkdocs_link)s using a %(sphinx_link)s provided by "
-"%(rtd_link)s."
-msgstr ""
-"Zbudowano przy użyciu pakietu %(mkdocs_link)s oraz %(sphinx_link)s "
-"dostarczonego przez %(rtd_link)s."
-
-#: mkdocs/themes/readthedocs/footer.html:25
-msgid "theme"
-msgstr "motywu"
-
-#: mkdocs/themes/readthedocs/search.html:5
-msgid "Search Results"
-msgstr "Wyniki wyszukiwania"
-
-#: mkdocs/themes/readthedocs/search.html:9
-msgid "Search the Docs"
-msgstr "Przeszukaj dokumentację"
-
-#: mkdocs/themes/readthedocs/search.html:9
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Type search term here"
-msgstr "Wpisz tutaj frazę do wyszukania"
-
-#: mkdocs/themes/readthedocs/search.html:12
-msgid "No results found"
-msgstr "Nie znaleziono wyników"
-
-#: mkdocs/themes/readthedocs/search.html:13
-msgid "Searching..."
-msgstr "Wyszukiwanie..."
-
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Search docs"
-msgstr "Przeszukaj dokumentację"
-
-#: mkdocs/themes/readthedocs/versions.html:1
-msgid "Versions"
-msgstr "Wersje"
-
diff --git a/mkdocs/themes/readthedocs/locales/pt_BR/LC_MESSAGES/messages.po b/mkdocs/themes/readthedocs/locales/pt_BR/LC_MESSAGES/messages.po
deleted file mode 100644
index 3aa29e19..00000000
--- a/mkdocs/themes/readthedocs/locales/pt_BR/LC_MESSAGES/messages.po
+++ /dev/null
@@ -1,114 +0,0 @@
-# Portuguese (Brazil) translations for MkDocs.
-# Copyright (C) 2022 MkDocs
-# This file is distributed under the same license as the MkDocs project.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: MkDocs 1.2\n"
-"Report-Msgid-Bugs-To: https://github.com/mkdocs/mkdocs/issues\n"
-"POT-Creation-Date: 2024-04-09 16:13+0200\n"
-"PO-Revision-Date: 2021-09-07 12:06+0200\n"
-"Last-Translator: Gustavo Lucas Valente \n"
-"Language: pt_BR\n"
-"Language-Team: pt_BR\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
-
-#: mkdocs/themes/readthedocs/404.html:7
-msgid "Page not found"
-msgstr "Página não encontrada"
-
-#: mkdocs/themes/readthedocs/base.html:96
-msgid "Logo"
-msgstr "Logo"
-
-#: mkdocs/themes/readthedocs/base.html:110
-msgid "Navigation menu"
-msgstr "Menu de navegação"
-
-#: mkdocs/themes/readthedocs/base.html:147
-msgid "Mobile navigation menu"
-msgstr "Menu de navegação em dispositivo móvel"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:3
-msgid "Docs"
-msgstr "Documentos"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:18
-#: mkdocs/themes/readthedocs/breadcrumbs.html:20
-#: mkdocs/themes/readthedocs/breadcrumbs.html:22
-#: mkdocs/themes/readthedocs/breadcrumbs.html:24
-#, python-format
-msgid "Edit on %(repo_name)s"
-msgstr "Editar em %(repo_name)s"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:26
-msgid "Edit"
-msgstr "Editar"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:34
-msgid "Breadcrumb Navigation"
-msgstr "Caminho de migalhas"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:36
-#: mkdocs/themes/readthedocs/footer.html:7
-#: mkdocs/themes/readthedocs/versions.html:21
-msgid "Previous"
-msgstr "Anterior"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:39
-#: mkdocs/themes/readthedocs/footer.html:10
-#: mkdocs/themes/readthedocs/versions.html:24
-msgid "Next"
-msgstr "Seguinte"
-
-#: mkdocs/themes/readthedocs/footer.html:5
-msgid "Footer Navigation"
-msgstr "Navegação no rodapé"
-
-#: mkdocs/themes/readthedocs/footer.html:25
-#, python-format
-msgid ""
-"Built with %(mkdocs_link)s using a %(sphinx_link)s provided by "
-"%(rtd_link)s."
-msgstr ""
-"Construído com %(mkdocs_link)s usando um %(sphinx_link)s provido por "
-"%(rtd_link)s."
-
-#: mkdocs/themes/readthedocs/footer.html:25
-msgid "theme"
-msgstr "tema"
-
-#: mkdocs/themes/readthedocs/search.html:5
-msgid "Search Results"
-msgstr "Resultados da busca"
-
-#: mkdocs/themes/readthedocs/search.html:9
-msgid "Search the Docs"
-msgstr "Buscar na documentação"
-
-#: mkdocs/themes/readthedocs/search.html:9
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Type search term here"
-msgstr "Digite o termo a ser buscado aqui"
-
-#: mkdocs/themes/readthedocs/search.html:12
-msgid "No results found"
-msgstr "Não foram encontrados resultados"
-
-#: mkdocs/themes/readthedocs/search.html:13
-#, fuzzy
-msgid "Searching..."
-msgstr "Buscando..."
-
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Search docs"
-msgstr "Buscar documentos"
-
-#: mkdocs/themes/readthedocs/versions.html:1
-msgid "Versions"
-msgstr "Versões"
-
diff --git a/mkdocs/themes/readthedocs/locales/tr/LC_MESSAGES/messages.po b/mkdocs/themes/readthedocs/locales/tr/LC_MESSAGES/messages.po
deleted file mode 100644
index ab4eb192..00000000
--- a/mkdocs/themes/readthedocs/locales/tr/LC_MESSAGES/messages.po
+++ /dev/null
@@ -1,113 +0,0 @@
-# Turkish translations for MkDocs.
-# Copyright (C) 2022 MkDocs
-# This file is distributed under the same license as the MkDocs project.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: MkDocs 1.3.1\n"
-"Report-Msgid-Bugs-To: \"https://github.com/mkdocs/mkdocs/issues\"\n"
-"POT-Creation-Date: 2024-04-09 16:13+0200\n"
-"PO-Revision-Date: 2022-08-21 18:39+0300\n"
-"Last-Translator: Mustafa Sami Salt \n"
-"Language: tr\n"
-"Language-Team: tr \n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
-
-#: mkdocs/themes/readthedocs/404.html:7
-msgid "Page not found"
-msgstr "Sayfa bulunamadı"
-
-#: mkdocs/themes/readthedocs/base.html:96
-msgid "Logo"
-msgstr "Logo"
-
-#: mkdocs/themes/readthedocs/base.html:110
-msgid "Navigation menu"
-msgstr "Gezinme menüsü"
-
-#: mkdocs/themes/readthedocs/base.html:147
-msgid "Mobile navigation menu"
-msgstr "Mobil gezinme menüsü"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:3
-msgid "Docs"
-msgstr "Belgeler"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:18
-#: mkdocs/themes/readthedocs/breadcrumbs.html:20
-#: mkdocs/themes/readthedocs/breadcrumbs.html:22
-#: mkdocs/themes/readthedocs/breadcrumbs.html:24
-#, python-format
-msgid "Edit on %(repo_name)s"
-msgstr "%(repo_name)s içinde düzenle"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:26
-msgid "Edit"
-msgstr "Düzenle"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:34
-msgid "Breadcrumb Navigation"
-msgstr "Breadcrumb Gezinmesi"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:36
-#: mkdocs/themes/readthedocs/footer.html:7
-#: mkdocs/themes/readthedocs/versions.html:21
-msgid "Previous"
-msgstr "Önceki"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:39
-#: mkdocs/themes/readthedocs/footer.html:10
-#: mkdocs/themes/readthedocs/versions.html:24
-msgid "Next"
-msgstr "Sonraki"
-
-#: mkdocs/themes/readthedocs/footer.html:5
-msgid "Footer Navigation"
-msgstr "Footer Gezinmesi"
-
-#: mkdocs/themes/readthedocs/footer.html:25
-#, python-format
-msgid ""
-"Built with %(mkdocs_link)s using a %(sphinx_link)s provided by "
-"%(rtd_link)s."
-msgstr ""
-"%(rtd_link)s tarafından sağlanan %(sphinx_link)s kullanılarak "
-"%(mkdocs_link)s ile oluşturuldu."
-
-#: mkdocs/themes/readthedocs/footer.html:25
-msgid "theme"
-msgstr ""
-
-#: mkdocs/themes/readthedocs/search.html:5
-msgid "Search Results"
-msgstr "Arama Sonuçları"
-
-#: mkdocs/themes/readthedocs/search.html:9
-msgid "Search the Docs"
-msgstr "Belgelerde Ara"
-
-#: mkdocs/themes/readthedocs/search.html:9
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Type search term here"
-msgstr "Arama terimini buraya yazın"
-
-#: mkdocs/themes/readthedocs/search.html:12
-msgid "No results found"
-msgstr "Sonuç bulunamadı"
-
-#: mkdocs/themes/readthedocs/search.html:13
-msgid "Searching..."
-msgstr "Aranıyor..."
-
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Search docs"
-msgstr "Belgelerde ara"
-
-#: mkdocs/themes/readthedocs/versions.html:1
-msgid "Versions"
-msgstr "Sürümler"
-
diff --git a/mkdocs/themes/readthedocs/locales/uk/LC_MESSAGES/messages.po b/mkdocs/themes/readthedocs/locales/uk/LC_MESSAGES/messages.po
deleted file mode 100644
index e48fa3df..00000000
--- a/mkdocs/themes/readthedocs/locales/uk/LC_MESSAGES/messages.po
+++ /dev/null
@@ -1,114 +0,0 @@
-# Ukrainian translations for MkDocs.
-# Copyright (C) 2022 MkDocs
-# This file is distributed under the same license as the MkDocs project.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: MkDocs 1.3.1\n"
-"Report-Msgid-Bugs-To: \"https://github.com/mkdocs/mkdocs/issues\"\n"
-"POT-Creation-Date: 2024-04-09 16:13+0200\n"
-"PO-Revision-Date: 2022-09-17 15:51+0200\n"
-"Last-Translator: Oleh Prypin <@oprypin>\n"
-"Language: uk\n"
-"Language-Team: uk \n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
-"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
-
-#: mkdocs/themes/readthedocs/404.html:7
-msgid "Page not found"
-msgstr "Сторінку не знайдено"
-
-#: mkdocs/themes/readthedocs/base.html:96
-msgid "Logo"
-msgstr "Логотип"
-
-#: mkdocs/themes/readthedocs/base.html:110
-msgid "Navigation menu"
-msgstr "Меню навігації"
-
-#: mkdocs/themes/readthedocs/base.html:147
-msgid "Mobile navigation menu"
-msgstr "Мобільна версія меню"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:3
-msgid "Docs"
-msgstr "Документація"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:18
-#: mkdocs/themes/readthedocs/breadcrumbs.html:20
-#: mkdocs/themes/readthedocs/breadcrumbs.html:22
-#: mkdocs/themes/readthedocs/breadcrumbs.html:24
-#, python-format
-msgid "Edit on %(repo_name)s"
-msgstr "Редагувати в %(repo_name)s"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:26
-msgid "Edit"
-msgstr "Редагувати"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:34
-msgid "Breadcrumb Navigation"
-msgstr "Навігаційна стежка"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:36
-#: mkdocs/themes/readthedocs/footer.html:7
-#: mkdocs/themes/readthedocs/versions.html:21
-msgid "Previous"
-msgstr "Назад"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:39
-#: mkdocs/themes/readthedocs/footer.html:10
-#: mkdocs/themes/readthedocs/versions.html:24
-msgid "Next"
-msgstr "Вперед"
-
-#: mkdocs/themes/readthedocs/footer.html:5
-msgid "Footer Navigation"
-msgstr "Нижнє меню навігації"
-
-#: mkdocs/themes/readthedocs/footer.html:25
-#, python-format
-msgid ""
-"Built with %(mkdocs_link)s using a %(sphinx_link)s provided by "
-"%(rtd_link)s."
-msgstr ""
-"Зібрано у %(mkdocs_link)s з використанням %(sphinx_link)s від "
-"%(rtd_link)s."
-
-#: mkdocs/themes/readthedocs/footer.html:25
-msgid "theme"
-msgstr "теми"
-
-#: mkdocs/themes/readthedocs/search.html:5
-msgid "Search Results"
-msgstr "Результати пошуку"
-
-#: mkdocs/themes/readthedocs/search.html:9
-msgid "Search the Docs"
-msgstr "Пошук у документах"
-
-#: mkdocs/themes/readthedocs/search.html:9
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Type search term here"
-msgstr "Введіть пошуковий запит"
-
-#: mkdocs/themes/readthedocs/search.html:12
-msgid "No results found"
-msgstr "Нічого не знайдено"
-
-#: mkdocs/themes/readthedocs/search.html:13
-msgid "Searching..."
-msgstr "Пошук..."
-
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Search docs"
-msgstr "Пошук у документації"
-
-#: mkdocs/themes/readthedocs/versions.html:1
-msgid "Versions"
-msgstr "Версії"
-
diff --git a/mkdocs/themes/readthedocs/locales/zh_CN/LC_MESSAGES/messages.po b/mkdocs/themes/readthedocs/locales/zh_CN/LC_MESSAGES/messages.po
deleted file mode 100644
index a59e4622..00000000
--- a/mkdocs/themes/readthedocs/locales/zh_CN/LC_MESSAGES/messages.po
+++ /dev/null
@@ -1,113 +0,0 @@
-# Chinese (Simplified, China) translations for MkDocs.
-# Copyright (C) 2022 MkDocs
-# This file is distributed under the same license as the MkDocs project.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: MkDocs 1.2\n"
-"Report-Msgid-Bugs-To: \"https://github.com/mkdocs/mkdocs/"
-"issues\"\n"
-"POT-Creation-Date: 2024-04-09 16:13+0200\n"
-"PO-Revision-Date: 2024-04-26 06:39+0800\n"
-"Last-Translator: xingkong0113 \n"
-"Language-Team: zh_Hans_CN \n"
-"Language: zh_CN\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"Generated-By: Babel 2.14.0\n"
-"X-Generator: Poedit 3.4.2\n"
-
-#: mkdocs/themes/readthedocs/404.html:7
-msgid "Page not found"
-msgstr "找不到页面"
-
-#: mkdocs/themes/readthedocs/base.html:96
-msgid "Logo"
-msgstr "Logo"
-
-#: mkdocs/themes/readthedocs/base.html:110
-msgid "Navigation menu"
-msgstr "导航栏"
-
-#: mkdocs/themes/readthedocs/base.html:147
-msgid "Mobile navigation menu"
-msgstr "移动导航栏"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:3
-msgid "Docs"
-msgstr "文档"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:18
-#: mkdocs/themes/readthedocs/breadcrumbs.html:20
-#: mkdocs/themes/readthedocs/breadcrumbs.html:22
-#: mkdocs/themes/readthedocs/breadcrumbs.html:24
-#, python-format
-msgid "Edit on %(repo_name)s"
-msgstr "在%(repo_name)s上编辑"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:26
-msgid "Edit"
-msgstr "编辑"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:34
-msgid "Breadcrumb Navigation"
-msgstr "面包屑导航"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:36
-#: mkdocs/themes/readthedocs/footer.html:7
-#: mkdocs/themes/readthedocs/versions.html:21
-msgid "Previous"
-msgstr "上一章"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:39
-#: mkdocs/themes/readthedocs/footer.html:10
-#: mkdocs/themes/readthedocs/versions.html:24
-msgid "Next"
-msgstr "下一章"
-
-#: mkdocs/themes/readthedocs/footer.html:5
-msgid "Footer Navigation"
-msgstr "页脚导航"
-
-#: mkdocs/themes/readthedocs/footer.html:25
-#, python-format
-msgid ""
-"Built with %(mkdocs_link)s using a %(sphinx_link)s provided by "
-"%(rtd_link)s."
-msgstr ""
-"用%(mkdocs_link)s构建,使用%(rtd_link)s提供的%(sphinx_link)s。"
-
-#: mkdocs/themes/readthedocs/footer.html:25
-msgid "theme"
-msgstr "主题"
-
-#: mkdocs/themes/readthedocs/search.html:5
-msgid "Search Results"
-msgstr "搜索结果"
-
-#: mkdocs/themes/readthedocs/search.html:9
-msgid "Search the Docs"
-msgstr "搜索文档"
-
-#: mkdocs/themes/readthedocs/search.html:9
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Type search term here"
-msgstr "在此输入需要搜索的内容"
-
-#: mkdocs/themes/readthedocs/search.html:12
-msgid "No results found"
-msgstr "没有搜到结果"
-
-#: mkdocs/themes/readthedocs/search.html:13
-msgid "Searching..."
-msgstr "搜索中..."
-
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Search docs"
-msgstr "搜索文档"
-
-#: mkdocs/themes/readthedocs/versions.html:1
-msgid "Versions"
-msgstr "版本"
diff --git a/mkdocs/themes/readthedocs/locales/zh_TW/LC_MESSAGES/messages.po b/mkdocs/themes/readthedocs/locales/zh_TW/LC_MESSAGES/messages.po
deleted file mode 100644
index 31d8abda..00000000
--- a/mkdocs/themes/readthedocs/locales/zh_TW/LC_MESSAGES/messages.po
+++ /dev/null
@@ -1,111 +0,0 @@
-# Chinese (Traditional, Taiwan) translations for MkDocs.
-# Copyright (C) 2022 MkDocs
-# This file is distributed under the same license as the MkDocs project.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: MkDocs 1.3.1\n"
-"Report-Msgid-Bugs-To: \"https://github.com/mkdocs/mkdocs/issues\"\n"
-"POT-Creation-Date: 2024-04-09 16:13+0200\n"
-"PO-Revision-Date: 2023-09-06 02:19+0800\n"
-"Last-Translator: Peter Dave Hello \n"
-"Language: zh_Hant_TW\n"
-"Language-Team: zh_Hant_TW \n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
-
-#: mkdocs/themes/readthedocs/404.html:7
-msgid "Page not found"
-msgstr "找不到頁面"
-
-#: mkdocs/themes/readthedocs/base.html:96
-msgid "Logo"
-msgstr "Logo"
-
-#: mkdocs/themes/readthedocs/base.html:110
-msgid "Navigation menu"
-msgstr "導覽列"
-
-#: mkdocs/themes/readthedocs/base.html:147
-msgid "Mobile navigation menu"
-msgstr "行動裝置導覽列"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:3
-msgid "Docs"
-msgstr "文件"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:18
-#: mkdocs/themes/readthedocs/breadcrumbs.html:20
-#: mkdocs/themes/readthedocs/breadcrumbs.html:22
-#: mkdocs/themes/readthedocs/breadcrumbs.html:24
-#, python-format
-msgid "Edit on %(repo_name)s"
-msgstr "在 %(repo_name)s 上編輯"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:26
-msgid "Edit"
-msgstr "編輯"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:34
-msgid "Breadcrumb Navigation"
-msgstr "軌跡瀏覽"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:36
-#: mkdocs/themes/readthedocs/footer.html:7
-#: mkdocs/themes/readthedocs/versions.html:21
-msgid "Previous"
-msgstr "上一頁"
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:39
-#: mkdocs/themes/readthedocs/footer.html:10
-#: mkdocs/themes/readthedocs/versions.html:24
-msgid "Next"
-msgstr "下一頁"
-
-#: mkdocs/themes/readthedocs/footer.html:5
-msgid "Footer Navigation"
-msgstr "頁尾導覽"
-
-#: mkdocs/themes/readthedocs/footer.html:25
-#, python-format
-msgid ""
-"Built with %(mkdocs_link)s using a %(sphinx_link)s provided by "
-"%(rtd_link)s."
-msgstr "使用 %(mkdocs_link)s 建置,並採用 %(rtd_link)s 所提供的 %(sphinx_link)s。"
-
-#: mkdocs/themes/readthedocs/footer.html:25
-msgid "theme"
-msgstr ""
-
-#: mkdocs/themes/readthedocs/search.html:5
-msgid "Search Results"
-msgstr "搜尋結果"
-
-#: mkdocs/themes/readthedocs/search.html:9
-msgid "Search the Docs"
-msgstr "搜尋文件"
-
-#: mkdocs/themes/readthedocs/search.html:9
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Type search term here"
-msgstr "在此輸入要搜尋的內容"
-
-#: mkdocs/themes/readthedocs/search.html:12
-msgid "No results found"
-msgstr "沒有找到結果"
-
-#: mkdocs/themes/readthedocs/search.html:13
-msgid "Searching..."
-msgstr "搜尋中..."
-
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Search docs"
-msgstr "搜尋文件"
-
-#: mkdocs/themes/readthedocs/versions.html:1
-msgid "Versions"
-msgstr "版本"
-
diff --git a/mkdocs/themes/readthedocs/messages.pot b/mkdocs/themes/readthedocs/messages.pot
deleted file mode 100644
index 9780e912..00000000
--- a/mkdocs/themes/readthedocs/messages.pot
+++ /dev/null
@@ -1,109 +0,0 @@
-# Translations template for MkDocs.
-# Copyright (C) 2024 MkDocs
-# This file is distributed under the same license as the MkDocs project.
-# FIRST AUTHOR , 2024.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: MkDocs 1.5.3\n"
-"Report-Msgid-Bugs-To: https://github.com/mkdocs/mkdocs/issues\n"
-"POT-Creation-Date: 2024-04-09 16:13+0200\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.14.0\n"
-
-#: mkdocs/themes/readthedocs/404.html:7
-msgid "Page not found"
-msgstr ""
-
-#: mkdocs/themes/readthedocs/base.html:96
-msgid "Logo"
-msgstr ""
-
-#: mkdocs/themes/readthedocs/base.html:110
-msgid "Navigation menu"
-msgstr ""
-
-#: mkdocs/themes/readthedocs/base.html:147
-msgid "Mobile navigation menu"
-msgstr ""
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:3
-msgid "Docs"
-msgstr ""
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:18
-#: mkdocs/themes/readthedocs/breadcrumbs.html:20
-#: mkdocs/themes/readthedocs/breadcrumbs.html:22
-#: mkdocs/themes/readthedocs/breadcrumbs.html:24
-#, python-format
-msgid "Edit on %(repo_name)s"
-msgstr ""
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:26
-msgid "Edit"
-msgstr ""
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:34
-msgid "Breadcrumb Navigation"
-msgstr ""
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:36
-#: mkdocs/themes/readthedocs/footer.html:7
-#: mkdocs/themes/readthedocs/versions.html:21
-msgid "Previous"
-msgstr ""
-
-#: mkdocs/themes/readthedocs/breadcrumbs.html:39
-#: mkdocs/themes/readthedocs/footer.html:10
-#: mkdocs/themes/readthedocs/versions.html:24
-msgid "Next"
-msgstr ""
-
-#: mkdocs/themes/readthedocs/footer.html:5
-msgid "Footer Navigation"
-msgstr ""
-
-#: mkdocs/themes/readthedocs/footer.html:25
-#, python-format
-msgid "Built with %(mkdocs_link)s using a %(sphinx_link)s provided by %(rtd_link)s."
-msgstr ""
-
-#: mkdocs/themes/readthedocs/footer.html:25
-msgid "theme"
-msgstr ""
-
-#: mkdocs/themes/readthedocs/search.html:5
-msgid "Search Results"
-msgstr ""
-
-#: mkdocs/themes/readthedocs/search.html:9
-msgid "Search the Docs"
-msgstr ""
-
-#: mkdocs/themes/readthedocs/search.html:9
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Type search term here"
-msgstr ""
-
-#: mkdocs/themes/readthedocs/search.html:12
-msgid "No results found"
-msgstr ""
-
-#: mkdocs/themes/readthedocs/search.html:13
-msgid "Searching..."
-msgstr ""
-
-#: mkdocs/themes/readthedocs/searchbox.html:3
-msgid "Search docs"
-msgstr ""
-
-#: mkdocs/themes/readthedocs/versions.html:1
-msgid "Versions"
-msgstr ""
-
diff --git a/mkdocs/themes/readthedocs/search.html b/mkdocs/themes/readthedocs/search.html
deleted file mode 100644
index b5b82b24..00000000
--- a/mkdocs/themes/readthedocs/search.html
+++ /dev/null
@@ -1,16 +0,0 @@
-{% extends "main.html" %}
-
-{% block content %}
-
- {% trans %}Search Results{% endtrans %}
-
-
-
-
- {% trans %}Searching...{% endtrans %}
-
-
-{% endblock %}
diff --git a/mkdocs/__init__.py b/properdocs/__init__.py
similarity index 100%
rename from mkdocs/__init__.py
rename to properdocs/__init__.py
diff --git a/mkdocs/__main__.py b/properdocs/__main__.py
similarity index 90%
rename from mkdocs/__main__.py
rename to properdocs/__main__.py
index c8d40969..2b851a0e 100644
--- a/mkdocs/__main__.py
+++ b/properdocs/__main__.py
@@ -12,7 +12,7 @@
import click
-from mkdocs import __version__, config, utils
+from properdocs import __version__, config, utils
if sys.platform.startswith("win"):
try:
@@ -50,7 +50,7 @@ def _enable_warnings():
# In that case, we skip warnings configuration since
# we don't want to overwrite the user configuration.
if not sys.warnoptions:
- from mkdocs.commands import build
+ from properdocs.commands import build
build.log.addFilter(utils.DuplicateFilter())
@@ -91,14 +91,14 @@ def format(self, record):
class State:
"""Maintain logging level."""
- def __init__(self, log_name='mkdocs', level=logging.INFO):
+ def __init__(self, log_name='properdocs', level=logging.INFO):
self.logger = logging.getLogger(log_name)
self.logger.setLevel(level)
self.logger.propagate = False
self.stream = logging.StreamHandler()
self.stream.setFormatter(ColorFormatter())
- self.stream.name = 'MkDocsStreamHandler'
+ self.stream.name = 'ProperDocsStreamHandler'
self.logger.addHandler(self.stream)
def __del__(self):
@@ -109,11 +109,11 @@ def __del__(self):
clean_help = "Remove old files from the site_dir before building (the default)."
config_help = (
- "Provide a specific MkDocs config. This can be a file name, or '-' to read from stdin."
+ "Provide a specific ProperDocs config. This can be a file name, or '-' to read from stdin."
)
dev_addr_help = "IP address and port to serve documentation locally (default: localhost:8000)"
serve_open_help = "Open the website in a Web browser after the initial build finishes."
-strict_help = "Enable strict mode. This will cause MkDocs to abort the build on any warnings."
+strict_help = "Enable strict mode. This will cause ProperDocs to abort the build on any warnings."
theme_help = "The theme to use when building your documentation."
theme_choices = sorted(utils.get_theme_names())
site_dir_help = "The directory to output the result of the documentation build."
@@ -122,11 +122,11 @@ def __del__(self):
no_reload_help = "Disable the live reloading in the development server."
serve_dirty_help = "Only re-build files that have changed."
serve_clean_help = (
- "Build the site without any effects of `mkdocs serve` - pure `mkdocs build`, then serve."
+ "Build the site without any effects of `properdocs serve` - pure `properdocs build`, then serve."
)
commit_message_help = (
"A commit message to use when committing to the "
- "GitHub Pages remote branch. Commit {sha} and MkDocs {version} are available as expansions"
+ "GitHub Pages remote branch. Commit {sha} and ProperDocs {version} are available as expansions"
)
remote_branch_help = (
"The remote branch to commit to for GitHub Pages. This "
@@ -138,7 +138,7 @@ def __del__(self):
force_help = "Force the push to the repository."
no_history_help = "Replace the whole Git history with one new commit."
ignore_version_help = (
- "Ignore check that build is not being deployed with an older version of MkDocs."
+ "Ignore check that build is not being deployed with an older version of ProperDocs."
)
watch_theme_help = (
"Include the theme in list of files to watch for live reloading. "
@@ -147,7 +147,7 @@ def __del__(self):
shell_help = "Use the shell when invoking Git."
watch_help = "A directory or file to watch for live reloading. Can be supplied multiple times."
projects_file_help = (
- "URL or local path of the registry file that declares all known MkDocs-related projects."
+ "URL or local path of the registry file that declares all known ProperDocs-related projects."
)
@@ -247,7 +247,7 @@ def callback(ctx, param, value):
@common_options
@color_option
def cli():
- """MkDocs - Project documentation with Markdown."""
+ """ProperDocs - Project documentation with Markdown."""
@cli.command(name="serve")
@@ -266,7 +266,7 @@ def cli():
@common_options
def serve_command(**kwargs):
"""Run the builtin development server."""
- from mkdocs.commands import serve
+ from properdocs.commands import serve
_enable_warnings()
serve.serve(**kwargs)
@@ -278,8 +278,8 @@ def serve_command(**kwargs):
@click.option('-d', '--site-dir', type=click.Path(), help=site_dir_help)
@common_options
def build_command(clean, **kwargs):
- """Build the MkDocs documentation."""
- from mkdocs.commands import build
+ """Build the ProperDocs documentation."""
+ from properdocs.commands import build
_enable_warnings()
cfg = config.load_config(**kwargs)
@@ -306,7 +306,7 @@ def gh_deploy_command(
clean, message, remote_branch, remote_name, force, no_history, ignore_version, shell, **kwargs
):
"""Deploy your documentation to GitHub Pages."""
- from mkdocs.commands import build, gh_deploy
+ from properdocs.commands import build, gh_deploy
_enable_warnings()
cfg = config.load_config(remote_branch=remote_branch, remote_name=remote_name, **kwargs)
@@ -339,11 +339,11 @@ def get_deps_command(config_file, projects_file):
"""Show required PyPI packages inferred from plugins in mkdocs.yml."""
from mkdocs_get_deps import get_deps, get_projects_file
- from mkdocs.config.base import _open_config_file
+ from properdocs.config.base import _open_config_file
warning_counter = utils.CountHandler()
warning_counter.setLevel(logging.WARNING)
- logging.getLogger('mkdocs').addHandler(warning_counter)
+ logging.getLogger('properdocs').addHandler(warning_counter)
with get_projects_file(projects_file) as p:
with _open_config_file(config_file) as f:
@@ -360,8 +360,8 @@ def get_deps_command(config_file, projects_file):
@click.argument("project_directory")
@common_options
def new_command(project_directory):
- """Create a new MkDocs project."""
- from mkdocs.commands import new
+ """Create a new ProperDocs project."""
+ from properdocs.commands import new
new.new(project_directory)
diff --git a/mkdocs/commands/__init__.py b/properdocs/commands/__init__.py
similarity index 100%
rename from mkdocs/commands/__init__.py
rename to properdocs/commands/__init__.py
diff --git a/mkdocs/commands/build.py b/properdocs/commands/build.py
similarity index 89%
rename from mkdocs/commands/build.py
rename to properdocs/commands/build.py
index f111bcdc..fb9de37e 100644
--- a/mkdocs/commands/build.py
+++ b/properdocs/commands/build.py
@@ -10,17 +10,17 @@
import jinja2
from jinja2.exceptions import TemplateNotFound
-import mkdocs
-from mkdocs import utils
-from mkdocs.exceptions import Abort, BuildError
-from mkdocs.structure.files import File, Files, InclusionLevel, get_files, set_exclusions
-from mkdocs.structure.nav import Navigation, get_navigation
-from mkdocs.structure.pages import Page
-from mkdocs.utils import DuplicateFilter # noqa: F401 - legacy re-export
-from mkdocs.utils import templates
+import properdocs
+from properdocs import utils
+from properdocs.exceptions import Abort, BuildError
+from properdocs.structure.files import File, Files, InclusionLevel, get_files, set_exclusions
+from properdocs.structure.nav import Navigation, get_navigation
+from properdocs.structure.pages import Page
+from properdocs.utils import DuplicateFilter # noqa: F401 - legacy re-export
+from properdocs.utils import templates
if TYPE_CHECKING:
- from mkdocs.config.defaults import MkDocsConfig
+ from properdocs.config.defaults import ProperDocsConfig
log = logging.getLogger(__name__)
@@ -29,7 +29,7 @@
def get_context(
nav: Navigation,
files: Sequence[File] | Files,
- config: MkDocsConfig,
+ config: ProperDocsConfig,
page: Page | None = None,
base_url: str = '',
) -> templates.TemplateContext:
@@ -51,7 +51,7 @@ def get_context(
base_url=base_url,
extra_css=extra_css,
extra_javascript=extra_javascript,
- mkdocs_version=mkdocs.__version__,
+ mkdocs_version=properdocs.__version__,
build_date_utc=utils.get_build_datetime(),
config=config,
page=page,
@@ -59,7 +59,7 @@ def get_context(
def _build_template(
- name: str, template: jinja2.Template, files: Files, config: MkDocsConfig, nav: Navigation
+ name: str, template: jinja2.Template, files: Files, config: ProperDocsConfig, nav: Navigation
) -> str:
"""Return rendered output for given template as a string."""
# Run `pre_template` plugin events.
@@ -89,7 +89,11 @@ def _build_template(
def _build_theme_template(
- template_name: str, env: jinja2.Environment, files: Files, config: MkDocsConfig, nav: Navigation
+ template_name: str,
+ env: jinja2.Environment,
+ files: Files,
+ config: ProperDocsConfig,
+ nav: Navigation,
) -> None:
"""Build a template using the theme environment."""
log.debug(f"Building theme template: {template_name}")
@@ -121,7 +125,9 @@ def _build_theme_template(
log.info(f"Template skipped: '{template_name}' generated empty output.")
-def _build_extra_template(template_name: str, files: Files, config: MkDocsConfig, nav: Navigation):
+def _build_extra_template(
+ template_name: str, files: Files, config: ProperDocsConfig, nav: Navigation
+):
"""Build user templates which are not part of the theme."""
log.debug(f"Building extra template: {template_name}")
@@ -144,7 +150,7 @@ def _build_extra_template(template_name: str, files: Files, config: MkDocsConfig
log.info(f"Template skipped: '{template_name}' generated empty output.")
-def _populate_page(page: Page, config: MkDocsConfig, files: Files, dirty: bool = False) -> None:
+def _populate_page(page: Page, config: ProperDocsConfig, files: Files, dirty: bool = False) -> None:
"""Read page content from docs_dir and render Markdown."""
config._current_page = page
try:
@@ -184,7 +190,7 @@ def _populate_page(page: Page, config: MkDocsConfig, files: Files, dirty: bool =
def _build_page(
page: Page,
- config: MkDocsConfig,
+ config: ProperDocsConfig,
doc_files: Sequence[File],
nav: Navigation,
env: jinja2.Environment,
@@ -214,7 +220,7 @@ def _build_page(
if excluded:
page.content = (
- ''
+ '
'
'DRAFT'
'
' + (page.content or '')
)
@@ -246,15 +252,15 @@ def _build_page(
config._current_page = None
-def build(config: MkDocsConfig, *, serve_url: str | None = None, dirty: bool = False) -> None:
+def build(config: ProperDocsConfig, *, serve_url: str | None = None, dirty: bool = False) -> None:
"""Perform a full site build."""
- logger = logging.getLogger('mkdocs')
+ logger = logging.getLogger('properdocs')
# Add CountHandler for strict mode
warning_counter = utils.CountHandler()
warning_counter.setLevel(logging.WARNING)
if config.strict:
- logging.getLogger('mkdocs').addHandler(warning_counter)
+ logging.getLogger('properdocs').addHandler(warning_counter)
inclusion = InclusionLevel.is_in_serve if serve_url else InclusionLevel.is_included
@@ -311,7 +317,7 @@ def build(config: MkDocsConfig, *, serve_url: str | None = None, dirty: bool = F
if excluded:
log.info(
"The following pages are being built only for the preview "
- "but will be excluded from `mkdocs build` per `draft_docs` config:\n - "
+ "but will be excluded from `properdocs build` per `draft_docs` config:\n - "
+ "\n - ".join(excluded)
)
diff --git a/mkdocs/commands/gh_deploy.py b/properdocs/commands/gh_deploy.py
similarity index 91%
rename from mkdocs/commands/gh_deploy.py
rename to properdocs/commands/gh_deploy.py
index 50c3fa07..331bc463 100644
--- a/mkdocs/commands/gh_deploy.py
+++ b/properdocs/commands/gh_deploy.py
@@ -9,15 +9,15 @@
import ghp_import # type: ignore
from packaging import version
-import mkdocs
-from mkdocs.exceptions import Abort
+import properdocs
+from properdocs.exceptions import Abort
if TYPE_CHECKING:
- from mkdocs.config.defaults import MkDocsConfig
+ from properdocs.config.defaults import ProperDocsConfig
log = logging.getLogger(__name__)
-default_message = """Deployed {sha} with MkDocs version: {version}"""
+default_message = """Deployed {sha} with ProperDocs version: {version}"""
def _is_cwd_git_repo() -> bool:
@@ -80,17 +80,17 @@ def _check_version(branch: str) -> None:
msg = stdout.decode('utf-8').strip()
m = re.search(r'\d+(\.\d+)+((a|b|rc)\d+)?(\.post\d+)?(\.dev\d+)?', msg, re.X | re.I)
previousv = version.parse(m.group()) if m else None
- currentv = version.parse(mkdocs.__version__)
+ currentv = version.parse(properdocs.__version__)
if not previousv:
log.warning('Version check skipped: No version specified in previous deployment.')
elif currentv > previousv:
log.info(
- f'Previous deployment was done with MkDocs version {previousv}; '
+ f'Previous deployment was done with ProperDocs version {previousv}; '
f'you are deploying with a newer version ({currentv})'
)
elif currentv < previousv:
log.error(
- f'Deployment terminated: Previous deployment was made with MkDocs version {previousv}; '
+ f'Deployment terminated: Previous deployment was made with ProperDocs version {previousv}; '
f'you are attempting to deploy with an older version ({currentv}). Use --ignore-version '
'to deploy anyway.'
)
@@ -98,7 +98,7 @@ def _check_version(branch: str) -> None:
def gh_deploy(
- config: MkDocsConfig,
+ config: ProperDocsConfig,
message: str | None = None,
force=False,
no_history=False,
@@ -117,7 +117,7 @@ def gh_deploy(
if message is None:
message = default_message
sha = _get_current_sha(os.path.dirname(config.config_file_path))
- message = message.format(version=mkdocs.__version__, sha=sha)
+ message = message.format(version=properdocs.__version__, sha=sha)
log.info(
"Copying '%s' to '%s' branch and pushing to GitHub.",
diff --git a/mkdocs/commands/new.py b/properdocs/commands/new.py
similarity index 77%
rename from mkdocs/commands/new.py
rename to properdocs/commands/new.py
index 38c3068d..c2e9d408 100644
--- a/mkdocs/commands/new.py
+++ b/properdocs/commands/new.py
@@ -4,16 +4,16 @@
import os
config_text = 'site_name: My Docs\n'
-index_text = """# Welcome to MkDocs
+index_text = """# Welcome to ProperDocs
-For full documentation visit [mkdocs.org](https://www.mkdocs.org).
+For full documentation visit [properdocs.org](https://properdocs.org).
## Commands
-* `mkdocs new [dir-name]` - Create a new project.
-* `mkdocs serve` - Start the live-reloading docs server.
-* `mkdocs build` - Build the documentation site.
-* `mkdocs -h` - Print help message and exit.
+* `properdocs new [dir-name]` - Create a new project.
+* `properdocs serve` - Start the live-reloading docs server.
+* `properdocs build` - Build the documentation site.
+* `properdocs -h` - Print help message and exit.
## Project layout
diff --git a/mkdocs/commands/serve.py b/properdocs/commands/serve.py
similarity index 88%
rename from mkdocs/commands/serve.py
rename to properdocs/commands/serve.py
index 3a426314..2ddb9f53 100644
--- a/mkdocs/commands/serve.py
+++ b/properdocs/commands/serve.py
@@ -7,12 +7,12 @@
from typing import TYPE_CHECKING
from urllib.parse import urlsplit
-from mkdocs.commands.build import build
-from mkdocs.config import load_config
-from mkdocs.livereload import LiveReloadServer, _serve_url
+from properdocs.commands.build import build
+from properdocs.config import load_config
+from properdocs.livereload import LiveReloadServer, _serve_url
if TYPE_CHECKING:
- from mkdocs.config.defaults import MkDocsConfig
+ from properdocs.config.defaults import ProperDocsConfig
log = logging.getLogger(__name__)
@@ -28,14 +28,14 @@ def serve(
**kwargs,
) -> None:
"""
- Start the MkDocs development server.
+ Start the ProperDocs development server.
By default it will serve the documentation on http://localhost:8000/ and
it will rebuild the documentation and refresh the page automatically
whenever a file is edited.
"""
# Create a temporary build directory, and set some options to serve it
- site_dir = tempfile.mkdtemp(prefix='mkdocs_')
+ site_dir = tempfile.mkdtemp(prefix='properdocs_')
def get_config():
config = load_config(
@@ -56,7 +56,7 @@ def get_config():
mount_path = urlsplit(config.site_url or '/').path
config.site_url = serve_url = _serve_url(host, port, mount_path)
- def builder(config: MkDocsConfig | None = None):
+ def builder(config: ProperDocsConfig | None = None):
log.info("Building documentation...")
if config is None:
config = get_config()
diff --git a/properdocs/config/__init__.py b/properdocs/config/__init__.py
new file mode 100644
index 00000000..6c0ad139
--- /dev/null
+++ b/properdocs/config/__init__.py
@@ -0,0 +1,3 @@
+from properdocs.config.base import Config, load_config
+
+__all__ = ['load_config', 'Config']
diff --git a/mkdocs/config/base.py b/properdocs/config/base.py
similarity index 94%
rename from mkdocs/config/base.py
rename to properdocs/config/base.py
index d21b42ab..558f24a4 100644
--- a/mkdocs/config/base.py
+++ b/properdocs/config/base.py
@@ -21,14 +21,14 @@
overload,
)
-from mkdocs import exceptions, utils
-from mkdocs.utils import weak_property
+from properdocs import exceptions, utils
+from properdocs.utils import weak_property
if TYPE_CHECKING:
- from mkdocs.config.defaults import MkDocsConfig
+ from properdocs.config.defaults import ProperDocsConfig
-log = logging.getLogger('mkdocs.config')
+log = logging.getLogger('properdocs.config')
T = TypeVar('T')
@@ -122,10 +122,10 @@ def __eq__(self, other):
class Config(UserDict):
"""
- Base class for MkDocs configuration, plugin configuration (and sub-configuration) objects.
+ Base class for ProperDocs configuration, plugin configuration (and sub-configuration) objects.
It should be subclassed and have `ConfigOption`s defined as attributes.
- For examples, see mkdocs/contrib/search/__init__.py and mkdocs/config/defaults.py.
+ For examples, see properdocs/contrib/search/__init__.py and properdocs/config/defaults.py.
Behavior as it was prior to MkDocs 1.4 is now handled by LegacyConfig.
"""
@@ -257,7 +257,7 @@ def load_file(self, config_file: IO) -> None:
"""Load config options from the open file descriptor of a YAML file."""
warnings.warn(
"Config.load_file is not used since MkDocs 1.5 and will be removed soon. "
- "Use MkDocsConfig.load_file instead",
+ "Use ProperDocsConfig.load_file instead",
DeprecationWarning,
)
return self.load_dict(utils.yaml_load(config_file))
@@ -265,7 +265,7 @@ def load_file(self, config_file: IO) -> None:
@weak_property
def user_configs(self) -> Sequence[Mapping[str, Any]]:
warnings.warn(
- "user_configs is never used in MkDocs and will be removed soon.", DeprecationWarning
+ "user_configs is never used in ProperDocs and will be removed soon.", DeprecationWarning
)
return self.__user_configs
@@ -339,7 +339,7 @@ def _open_config_file(config_file: str | IO | None) -> Iterator[IO]:
def load_config(
config_file: str | IO | None = None, *, config_file_path: str | None = None, **kwargs
-) -> MkDocsConfig:
+) -> ProperDocsConfig:
"""
Load the configuration for a given file object or name.
@@ -359,12 +359,12 @@ def load_config(
with _open_config_file(config_file) as fd:
# Initialize the config with the default schema.
- from mkdocs.config.defaults import MkDocsConfig
+ from properdocs.config.defaults import ProperDocsConfig
if config_file_path is None:
if sys.stdin and fd is not sys.stdin.buffer:
config_file_path = getattr(fd, 'name', None)
- cfg = MkDocsConfig(config_file_path=config_file_path)
+ cfg = ProperDocsConfig(config_file_path=config_file_path)
# load the config file
cfg.load_file(fd)
diff --git a/mkdocs/config/config_options.py b/properdocs/config/config_options.py
similarity index 99%
rename from mkdocs/config/config_options.py
rename to properdocs/config/config_options.py
index 94171c45..0902e1fa 100644
--- a/mkdocs/config/config_options.py
+++ b/properdocs/config/config_options.py
@@ -33,15 +33,15 @@
import pathspec
import pathspec.gitignore
-from mkdocs import plugins, theme, utils
-from mkdocs.config.base import (
+from properdocs import plugins, theme, utils
+from properdocs.config.base import (
BaseConfigOption,
Config,
LegacyConfig,
PlainConfigSchemaItem,
ValidationError,
)
-from mkdocs.exceptions import ConfigurationError
+from properdocs.exceptions import ConfigurationError
T = TypeVar('T')
SomeConfig = TypeVar('SomeConfig', bound=Config)
@@ -403,7 +403,7 @@ def __init__(
self.moved_to = moved_to
if not message:
if removed:
- message = "The configuration option '{}' was removed from MkDocs."
+ message = "The configuration option '{}' was removed from ProperDocs."
else:
message = (
"The configuration option '{}' has been deprecated and "
@@ -569,7 +569,7 @@ def reset_warnings(self):
class RepoURL(URL):
def __init__(self, *args, **kwargs):
warnings.warn(
- "RepoURL is no longer used in MkDocs and will be removed.", DeprecationWarning
+ "RepoURL is no longer used in ProperDocs and will be removed.", DeprecationWarning
)
super().__init__(*args, **kwargs)
@@ -790,7 +790,7 @@ def post_validation(self, config: Config, key_name: str):
raise ValidationError(
f"The 'docs_dir' should not be within the 'site_dir' as this "
f"can mean the source files are overwritten by the output or "
- f"it will be deleted if --clean is passed to mkdocs build. "
+ f"it will be deleted if --clean is passed to properdocs build. "
f"(site_dir: '{site_dir}', docs_dir: '{docs_dir}')"
)
elif (site_dir + os.sep).startswith(docs_dir.rstrip(os.sep) + os.sep):
diff --git a/mkdocs/config/defaults.py b/properdocs/config/defaults.py
similarity index 91%
rename from mkdocs/config/defaults.py
rename to properdocs/config/defaults.py
index 68ebf3a8..b306137e 100644
--- a/mkdocs/config/defaults.py
+++ b/properdocs/config/defaults.py
@@ -3,10 +3,10 @@
import logging
from typing import IO, Dict, Mapping
-from mkdocs.config import base
-from mkdocs.config import config_options as c
-from mkdocs.structure.pages import Page, _AbsoluteLinksValidationValue
-from mkdocs.utils.yaml import get_yaml_loader, yaml_load
+from properdocs.config import base
+from properdocs.config import config_options as c
+from properdocs.structure.pages import Page, _AbsoluteLinksValidationValue
+from properdocs.utils.yaml import get_yaml_loader, yaml_load
class _LogLevel(c.OptionallyRequired[int]):
@@ -35,8 +35,8 @@ class _AbsoluteLinksValidation(_LogLevel):
# NOTE: The order here is important. During validation some config options
# depend on others. So, if config option A depends on B, then A should be
# listed higher in the schema.
-class MkDocsConfig(base.Config):
- """The configuration of MkDocs itself (the root object of mkdocs.yml)."""
+class ProperDocsConfig(base.Config):
+ """The configuration of ProperDocs itself (the root object of mkdocs.yml)."""
config_file_path: str = c.Type(str) # type: ignore[assignment]
"""The path to the mkdocs.yml config file. Can't be populated from the config."""
@@ -71,7 +71,7 @@ class MkDocsConfig(base.Config):
"""The name of the author to add to the HTML meta tags."""
theme = c.Theme(default='mkdocs')
- """The MkDocs theme for the documentation."""
+ """The ProperDocs theme for the documentation."""
docs_dir = c.DocsDir(default='docs', exists=True)
"""The directory containing the documentation markdown."""
@@ -85,13 +85,13 @@ class MkDocsConfig(base.Config):
google_analytics = c.Deprecated(
message=(
'The configuration option {} has been deprecated and '
- 'will be removed in a future release of MkDocs. See the '
+ 'will be removed in a future release of ProperDocs. See the '
'options available on your theme for an alternative.'
),
option_type=c.Type(list, length=2),
)
"""set of values for Google analytics containing the account IO and domain
- this should look like, ['UA-27795084-5', 'mkdocs.org']"""
+ this should look like, ['UA-27795084-5', 'properdocs.org']"""
dev_addr = c.IpAddress(default='127.0.0.1:8000')
"""The address on which to serve the live reloading docs server."""
@@ -138,7 +138,7 @@ class MkDocsConfig(base.Config):
"""PyMarkdown extension configs. Populated from `markdown_extensions`."""
strict = c.Type(bool, default=False)
- """Enabling strict mode causes MkDocs to stop the build when a problem is
+ """Enabling strict mode causes ProperDocs to stop the build when a problem is
encountered rather than display an error."""
remote_branch = c.Type(str, default='gh-pages')
@@ -151,7 +151,7 @@ class MkDocsConfig(base.Config):
"""extra is a mapping/dictionary of data that is passed to the template.
This allows template authors to require extra configuration that not
relevant to all themes and doesn't need to be explicitly supported by
- MkDocs itself. A good example here would be including the current
+ ProperDocs itself. A good example here would be including the current
project version."""
plugins = c.Plugins(theme_key='theme', default=['search'])
@@ -164,7 +164,7 @@ class MkDocsConfig(base.Config):
an instance of a plugin each."""
watch = c.ListOfPaths(default=[])
- """A list of extra paths to watch while running `mkdocs serve`."""
+ """A list of extra paths to watch while running `properdocs serve`."""
class Validation(base.Config):
class NavValidation(base.Config):
@@ -215,4 +215,4 @@ def load_file(self, config_file: IO) -> None:
def get_schema() -> base.PlainConfigSchema:
"""Soft-deprecated, do not use."""
- return MkDocsConfig._schema
+ return ProperDocsConfig._schema
diff --git a/mkdocs/contrib/__init__.py b/properdocs/contrib/__init__.py
similarity index 100%
rename from mkdocs/contrib/__init__.py
rename to properdocs/contrib/__init__.py
diff --git a/mkdocs/contrib/search/__init__.py b/properdocs/contrib/search/__init__.py
similarity index 87%
rename from mkdocs/contrib/search/__init__.py
rename to properdocs/contrib/search/__init__.py
index 74b96bbb..5b939a83 100644
--- a/mkdocs/contrib/search/__init__.py
+++ b/properdocs/contrib/search/__init__.py
@@ -4,16 +4,16 @@
import os
from typing import TYPE_CHECKING, List
-from mkdocs import utils
-from mkdocs.config import base
-from mkdocs.config import config_options as c
-from mkdocs.contrib.search.search_index import SearchIndex
-from mkdocs.plugins import BasePlugin
+from properdocs import utils
+from properdocs.config import base
+from properdocs.config import config_options as c
+from properdocs.contrib.search.search_index import SearchIndex
+from properdocs.plugins import BasePlugin
if TYPE_CHECKING:
- from mkdocs.config.defaults import MkDocsConfig
- from mkdocs.structure.pages import Page
- from mkdocs.utils.templates import TemplateContext
+ from properdocs.config.defaults import ProperDocsConfig
+ from properdocs.structure.pages import Page
+ from properdocs.utils.templates import TemplateContext
log = logging.getLogger(__name__)
@@ -60,9 +60,9 @@ class _PluginConfig(base.Config):
class SearchPlugin(BasePlugin[_PluginConfig]):
- """Add a search feature to MkDocs."""
+ """Add a search feature to ProperDocs."""
- def on_config(self, config: MkDocsConfig, **kwargs) -> MkDocsConfig:
+ def on_config(self, config: ProperDocsConfig, **kwargs) -> ProperDocsConfig:
"""Add plugin templates and scripts to config."""
if config.theme.get('include_search_page'):
config.theme.static_templates.add('search.html')
@@ -84,7 +84,7 @@ def on_config(self, config: MkDocsConfig, **kwargs) -> MkDocsConfig:
)
return config
- def on_pre_build(self, config: MkDocsConfig, **kwargs) -> None:
+ def on_pre_build(self, config: ProperDocsConfig, **kwargs) -> None:
"""Create search index instance for later use."""
self.search_index = SearchIndex(**self.config)
@@ -92,7 +92,7 @@ def on_page_context(self, context: TemplateContext, page: Page, **kwargs) -> Non
"""Add page to search index."""
self.search_index.add_entry_from_context(page)
- def on_post_build(self, config: MkDocsConfig, **kwargs) -> None:
+ def on_post_build(self, config: ProperDocsConfig, **kwargs) -> None:
"""Build search index."""
output_base_path = os.path.join(config.site_dir, 'search')
search_index = self.search_index.generate_search_index()
diff --git a/mkdocs/contrib/search/lunr-language/lunr.ar.js b/properdocs/contrib/search/lunr-language/lunr.ar.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.ar.js
rename to properdocs/contrib/search/lunr-language/lunr.ar.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.da.js b/properdocs/contrib/search/lunr-language/lunr.da.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.da.js
rename to properdocs/contrib/search/lunr-language/lunr.da.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.de.js b/properdocs/contrib/search/lunr-language/lunr.de.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.de.js
rename to properdocs/contrib/search/lunr-language/lunr.de.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.du.js b/properdocs/contrib/search/lunr-language/lunr.du.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.du.js
rename to properdocs/contrib/search/lunr-language/lunr.du.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.es.js b/properdocs/contrib/search/lunr-language/lunr.es.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.es.js
rename to properdocs/contrib/search/lunr-language/lunr.es.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.fi.js b/properdocs/contrib/search/lunr-language/lunr.fi.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.fi.js
rename to properdocs/contrib/search/lunr-language/lunr.fi.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.fr.js b/properdocs/contrib/search/lunr-language/lunr.fr.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.fr.js
rename to properdocs/contrib/search/lunr-language/lunr.fr.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.hi.js b/properdocs/contrib/search/lunr-language/lunr.hi.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.hi.js
rename to properdocs/contrib/search/lunr-language/lunr.hi.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.hu.js b/properdocs/contrib/search/lunr-language/lunr.hu.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.hu.js
rename to properdocs/contrib/search/lunr-language/lunr.hu.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.hy.js b/properdocs/contrib/search/lunr-language/lunr.hy.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.hy.js
rename to properdocs/contrib/search/lunr-language/lunr.hy.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.it.js b/properdocs/contrib/search/lunr-language/lunr.it.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.it.js
rename to properdocs/contrib/search/lunr-language/lunr.it.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.ja.js b/properdocs/contrib/search/lunr-language/lunr.ja.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.ja.js
rename to properdocs/contrib/search/lunr-language/lunr.ja.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.jp.js b/properdocs/contrib/search/lunr-language/lunr.jp.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.jp.js
rename to properdocs/contrib/search/lunr-language/lunr.jp.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.kn.js b/properdocs/contrib/search/lunr-language/lunr.kn.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.kn.js
rename to properdocs/contrib/search/lunr-language/lunr.kn.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.ko.js b/properdocs/contrib/search/lunr-language/lunr.ko.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.ko.js
rename to properdocs/contrib/search/lunr-language/lunr.ko.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.multi.js b/properdocs/contrib/search/lunr-language/lunr.multi.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.multi.js
rename to properdocs/contrib/search/lunr-language/lunr.multi.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.nl.js b/properdocs/contrib/search/lunr-language/lunr.nl.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.nl.js
rename to properdocs/contrib/search/lunr-language/lunr.nl.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.no.js b/properdocs/contrib/search/lunr-language/lunr.no.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.no.js
rename to properdocs/contrib/search/lunr-language/lunr.no.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.pt.js b/properdocs/contrib/search/lunr-language/lunr.pt.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.pt.js
rename to properdocs/contrib/search/lunr-language/lunr.pt.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.ro.js b/properdocs/contrib/search/lunr-language/lunr.ro.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.ro.js
rename to properdocs/contrib/search/lunr-language/lunr.ro.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.ru.js b/properdocs/contrib/search/lunr-language/lunr.ru.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.ru.js
rename to properdocs/contrib/search/lunr-language/lunr.ru.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.sa.js b/properdocs/contrib/search/lunr-language/lunr.sa.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.sa.js
rename to properdocs/contrib/search/lunr-language/lunr.sa.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.stemmer.support.js b/properdocs/contrib/search/lunr-language/lunr.stemmer.support.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.stemmer.support.js
rename to properdocs/contrib/search/lunr-language/lunr.stemmer.support.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.sv.js b/properdocs/contrib/search/lunr-language/lunr.sv.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.sv.js
rename to properdocs/contrib/search/lunr-language/lunr.sv.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.ta.js b/properdocs/contrib/search/lunr-language/lunr.ta.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.ta.js
rename to properdocs/contrib/search/lunr-language/lunr.ta.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.te.js b/properdocs/contrib/search/lunr-language/lunr.te.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.te.js
rename to properdocs/contrib/search/lunr-language/lunr.te.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.th.js b/properdocs/contrib/search/lunr-language/lunr.th.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.th.js
rename to properdocs/contrib/search/lunr-language/lunr.th.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.tr.js b/properdocs/contrib/search/lunr-language/lunr.tr.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.tr.js
rename to properdocs/contrib/search/lunr-language/lunr.tr.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.vi.js b/properdocs/contrib/search/lunr-language/lunr.vi.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.vi.js
rename to properdocs/contrib/search/lunr-language/lunr.vi.js
diff --git a/mkdocs/contrib/search/lunr-language/lunr.zh.js b/properdocs/contrib/search/lunr-language/lunr.zh.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/lunr.zh.js
rename to properdocs/contrib/search/lunr-language/lunr.zh.js
diff --git a/mkdocs/contrib/search/lunr-language/tinyseg.js b/properdocs/contrib/search/lunr-language/tinyseg.js
similarity index 100%
rename from mkdocs/contrib/search/lunr-language/tinyseg.js
rename to properdocs/contrib/search/lunr-language/tinyseg.js
diff --git a/mkdocs/contrib/search/prebuild-index.js b/properdocs/contrib/search/prebuild-index.js
similarity index 100%
rename from mkdocs/contrib/search/prebuild-index.js
rename to properdocs/contrib/search/prebuild-index.js
diff --git a/mkdocs/contrib/search/search_index.py b/properdocs/contrib/search/search_index.py
similarity index 98%
rename from mkdocs/contrib/search/search_index.py
rename to properdocs/contrib/search/search_index.py
index 770f24fe..6fc56440 100644
--- a/mkdocs/contrib/search/search_index.py
+++ b/properdocs/contrib/search/search_index.py
@@ -9,8 +9,8 @@
from typing import TYPE_CHECKING
if TYPE_CHECKING:
- from mkdocs.structure.pages import Page
- from mkdocs.structure.toc import AnchorLink, TableOfContents
+ from properdocs.structure.pages import Page
+ from properdocs.structure.toc import AnchorLink, TableOfContents
try:
from lunr import lunr # type: ignore
diff --git a/mkdocs/contrib/search/templates/search/lunr.js b/properdocs/contrib/search/templates/search/lunr.js
similarity index 100%
rename from mkdocs/contrib/search/templates/search/lunr.js
rename to properdocs/contrib/search/templates/search/lunr.js
diff --git a/mkdocs/contrib/search/templates/search/main.js b/properdocs/contrib/search/templates/search/main.js
similarity index 93%
rename from mkdocs/contrib/search/templates/search/main.js
rename to properdocs/contrib/search/templates/search/main.js
index a5e469d7..c8590a2f 100644
--- a/mkdocs/contrib/search/templates/search/main.js
+++ b/properdocs/contrib/search/templates/search/main.js
@@ -33,7 +33,7 @@ function formatResult (location, title, summary) {
}
function displayResults (results) {
- var search_results = document.getElementById("mkdocs-search-results");
+ var search_results = document.getElementById("properdocs-search-results");
while (search_results.firstChild) {
search_results.removeChild(search_results.firstChild);
}
@@ -53,7 +53,7 @@ function displayResults (results) {
}
function doSearch () {
- var query = document.getElementById('mkdocs-search-query').value;
+ var query = document.getElementById('properdocs-search-query').value;
if (query.length > min_search_length) {
if (!window.Worker) {
displayResults(search(query));
@@ -67,7 +67,7 @@ function doSearch () {
}
function initSearch () {
- var search_input = document.getElementById('mkdocs-search-query');
+ var search_input = document.getElementById('properdocs-search-query');
if (search_input) {
search_input.addEventListener("keyup", doSearch);
}
diff --git a/mkdocs/contrib/search/templates/search/worker.js b/properdocs/contrib/search/templates/search/worker.js
similarity index 100%
rename from mkdocs/contrib/search/templates/search/worker.js
rename to properdocs/contrib/search/templates/search/worker.js
diff --git a/mkdocs/exceptions.py b/properdocs/exceptions.py
similarity index 59%
rename from mkdocs/exceptions.py
rename to properdocs/exceptions.py
index e1177769..091be448 100644
--- a/mkdocs/exceptions.py
+++ b/properdocs/exceptions.py
@@ -3,14 +3,14 @@
from click import ClickException, echo
-class MkDocsException(ClickException):
+class ProperDocsException(ClickException):
"""
- The base class which all MkDocs exceptions inherit from. This should
+ The base class which all ProperDocs exceptions inherit from. This should
not be raised directly. One of the subclasses should be raised instead.
"""
-class Abort(MkDocsException, SystemExit):
+class Abort(ProperDocsException, SystemExit):
"""Abort the build."""
code = 1
@@ -19,7 +19,7 @@ def show(self, *args, **kwargs) -> None:
echo('\n' + self.format_message())
-class ConfigurationError(MkDocsException):
+class ConfigurationError(ProperDocsException):
"""
This error is raised by configuration validation when a validation error
is encountered. This error should be raised by any configuration options
@@ -27,15 +27,15 @@ class ConfigurationError(MkDocsException):
"""
-class BuildError(MkDocsException):
+class BuildError(ProperDocsException):
"""
- This error may be raised by MkDocs during the build process. Plugins should
+ This error may be raised by ProperDocs during the build process. Plugins should
not raise this error.
"""
class PluginError(BuildError):
"""
- A subclass of [`mkdocs.exceptions.BuildError`][] which can be raised by plugin
+ A subclass of [`properdocs.exceptions.BuildError`][] which can be raised by plugin
events.
"""
diff --git a/mkdocs/livereload/__init__.py b/properdocs/livereload/__init__.py
similarity index 99%
rename from mkdocs/livereload/__init__.py
rename to properdocs/livereload/__init__.py
index 70d44ba2..7f71566c 100644
--- a/mkdocs/livereload/__init__.py
+++ b/properdocs/livereload/__init__.py
@@ -345,7 +345,7 @@ def _log_poll_request(cls, url, request_id):
@classmethod
def _guess_type(cls, path):
- # MkDocs only ensures a few common types (as seen in livereload_tests.py::test_mime_types).
+ # ProperDocs only ensures a few common types (as seen in livereload_tests.py::test_mime_types).
# Other uncommon types will not be accepted.
if path.endswith((".js", ".JS", ".mjs")):
return "application/javascript"
diff --git a/mkdocs/localization.py b/properdocs/localization.py
similarity index 95%
rename from mkdocs/localization.py
rename to properdocs/localization.py
index aff643fd..41b5f702 100644
--- a/mkdocs/localization.py
+++ b/properdocs/localization.py
@@ -6,7 +6,7 @@
from jinja2.ext import Extension, InternationalizationExtension
-from mkdocs.config.base import ValidationError
+from properdocs.config.base import ValidationError
if TYPE_CHECKING:
import jinja2
@@ -17,7 +17,7 @@
has_babel = True
except ImportError: # pragma: no cover
- from mkdocs.utils.babel_stub import Locale, UnknownLocaleError # type: ignore
+ from properdocs.utils.babel_stub import Locale, UnknownLocaleError # type: ignore
has_babel = False
diff --git a/mkdocs/plugins.py b/properdocs/plugins.py
similarity index 83%
rename from mkdocs/plugins.py
rename to properdocs/plugins.py
index f3dcb996..0bd5a9df 100644
--- a/mkdocs/plugins.py
+++ b/properdocs/plugins.py
@@ -1,4 +1,4 @@
-"""Implements the plugin API for MkDocs."""
+"""Implements the plugin API for ProperDocs."""
from __future__ import annotations
@@ -14,16 +14,22 @@
if TYPE_CHECKING:
import jinja2.environment
-from mkdocs import utils
-from mkdocs.config.base import Config, ConfigErrors, ConfigWarnings, LegacyConfig, PlainConfigSchema
+from properdocs import utils
+from properdocs.config.base import (
+ Config,
+ ConfigErrors,
+ ConfigWarnings,
+ LegacyConfig,
+ PlainConfigSchema,
+)
if TYPE_CHECKING:
- from mkdocs.config.defaults import MkDocsConfig
- from mkdocs.livereload import LiveReloadServer
- from mkdocs.structure.files import Files
- from mkdocs.structure.nav import Navigation
- from mkdocs.structure.pages import Page
- from mkdocs.utils.templates import TemplateContext
+ from properdocs.config.defaults import ProperDocsConfig
+ from properdocs.livereload import LiveReloadServer
+ from properdocs.structure.files import Files
+ from properdocs.structure.nav import Navigation
+ from properdocs.structure.pages import Page
+ from properdocs.utils.templates import TemplateContext
if TYPE_CHECKING:
from typing_extensions import Concatenate, ParamSpec
@@ -34,17 +40,17 @@
T = TypeVar('T')
-log = logging.getLogger('mkdocs.plugins')
+log = logging.getLogger('properdocs.plugins')
def get_plugins() -> dict[str, EntryPoint]:
"""Return a dict of all installed Plugins as {name: EntryPoint}."""
- plugins = entry_points(group='mkdocs.plugins')
+ plugins = entry_points(group='properdocs.plugins')
# Allow third-party plugins to override core plugins
pluginmap = {}
for plugin in plugins:
- if plugin.name in pluginmap and plugin.value.startswith("mkdocs.contrib."):
+ if plugin.name in pluginmap and plugin.value.startswith("properdocs.contrib."):
continue
pluginmap[plugin.name] = plugin
@@ -77,7 +83,7 @@ def __class_getitem__(cls, config_class: type[Config]):
def __init_subclass__(cls):
if not issubclass(cls.config_class, Config):
raise TypeError(
- f"config_class {cls.config_class} must be a subclass of `mkdocs.config.base.Config`"
+ f"config_class {cls.config_class} must be a subclass of `properdocs.config.base.Config`"
)
if cls.config_class is not LegacyConfig:
cls.config_scheme = cls.config_class._schema # For compatibility.
@@ -99,40 +105,40 @@ def load_config(
def on_startup(self, *, command: Literal['build', 'gh-deploy', 'serve'], dirty: bool) -> None:
"""
- The `startup` event runs once at the very beginning of an `mkdocs` invocation.
+ The `startup` event runs once at the very beginning of an `properdocs` invocation.
New in MkDocs 1.4.
The presence of an `on_startup` method (even if empty) migrates the plugin to the new
- system where the plugin object is kept across builds within one `mkdocs serve`.
+ system where the plugin object is kept across builds within one `properdocs serve`.
Note that for initializing variables, the `__init__` method is still preferred.
For initializing per-build variables (and whenever in doubt), use the `on_config` event.
Args:
- command: the command that MkDocs was invoked with, e.g. "serve" for `mkdocs serve`.
+ command: the command that ProperDocs was invoked with, e.g. "serve" for `properdocs serve`.
dirty: whether `--dirty` flag was passed.
"""
def on_shutdown(self) -> None:
"""
- The `shutdown` event runs once at the very end of an `mkdocs` invocation, before exiting.
+ The `shutdown` event runs once at the very end of an `properdocs` invocation, before exiting.
- This event is relevant only for support of `mkdocs serve`, otherwise within a
+ This event is relevant only for support of `properdocs serve`, otherwise within a
single build it's undistinguishable from `on_post_build`.
New in MkDocs 1.4.
The presence of an `on_shutdown` method (even if empty) migrates the plugin to the new
- system where the plugin object is kept across builds within one `mkdocs serve`.
+ system where the plugin object is kept across builds within one `properdocs serve`.
Note the `on_post_build` method is still preferred for cleanups, when possible, as it has
a much higher chance of actually triggering. `on_shutdown` is "best effort" because it
- relies on detecting a graceful shutdown of MkDocs.
+ relies on detecting a graceful shutdown of ProperDocs.
"""
def on_serve(
- self, server: LiveReloadServer, /, *, config: MkDocsConfig, builder: Callable
+ self, server: LiveReloadServer, /, *, config: ProperDocsConfig, builder: Callable
) -> LiveReloadServer | None:
"""
The `serve` event is only called when the `serve` command is used during
@@ -153,7 +159,7 @@ def on_serve(
# Global events
- def on_config(self, config: MkDocsConfig) -> MkDocsConfig | None:
+ def on_config(self, config: ProperDocsConfig) -> ProperDocsConfig | None:
"""
The `config` event is the first event called on build and is run immediately
after the user configuration is loaded and validated. Any alterations to the
@@ -167,7 +173,7 @@ def on_config(self, config: MkDocsConfig) -> MkDocsConfig | None:
"""
return config
- def on_pre_build(self, *, config: MkDocsConfig) -> None:
+ def on_pre_build(self, *, config: ProperDocsConfig) -> None:
"""
The `pre_build` event does not alter any variables. Use this event to call
pre-build scripts.
@@ -176,7 +182,7 @@ def on_pre_build(self, *, config: MkDocsConfig) -> None:
config: global configuration object
"""
- def on_files(self, files: Files, /, *, config: MkDocsConfig) -> Files | None:
+ def on_files(self, files: Files, /, *, config: ProperDocsConfig) -> Files | None:
"""
The `files` event is called after the files collection is populated from the
`docs_dir`. Use this event to add, remove, or alter files in the
@@ -194,7 +200,7 @@ def on_files(self, files: Files, /, *, config: MkDocsConfig) -> Files | None:
return files
def on_nav(
- self, nav: Navigation, /, *, config: MkDocsConfig, files: Files
+ self, nav: Navigation, /, *, config: ProperDocsConfig, files: Files
) -> Navigation | None:
"""
The `nav` event is called after the site navigation is created and can
@@ -211,7 +217,7 @@ def on_nav(
return nav
def on_env(
- self, env: jinja2.Environment, /, *, config: MkDocsConfig, files: Files
+ self, env: jinja2.Environment, /, *, config: ProperDocsConfig, files: Files
) -> jinja2.Environment | None:
"""
The `env` event is called after the Jinja template environment is created
@@ -228,7 +234,7 @@ def on_env(
"""
return env
- def on_post_build(self, *, config: MkDocsConfig) -> None:
+ def on_post_build(self, *, config: ProperDocsConfig) -> None:
"""
The `post_build` event does not alter any variables. Use this event to call
post-build scripts.
@@ -240,8 +246,8 @@ def on_post_build(self, *, config: MkDocsConfig) -> None:
def on_build_error(self, *, error: Exception) -> None:
"""
The `build_error` event is called after an exception of any kind
- is caught by MkDocs during the build process.
- Use this event to clean things up before MkDocs terminates. Note that any other
+ is caught by ProperDocs during the build process.
+ Use this event to clean things up before ProperDocs terminates. Note that any other
events which were scheduled to run after the error will have been skipped. See
[Handling Errors](plugins.md#handling-errors) for more details.
@@ -252,7 +258,7 @@ def on_build_error(self, *, error: Exception) -> None:
# Template events
def on_pre_template(
- self, template: jinja2.Template, /, *, template_name: str, config: MkDocsConfig
+ self, template: jinja2.Template, /, *, template_name: str, config: ProperDocsConfig
) -> jinja2.Template | None:
"""
The `pre_template` event is called immediately after the subject template is
@@ -269,7 +275,7 @@ def on_pre_template(
return template
def on_template_context(
- self, context: TemplateContext, /, *, template_name: str, config: MkDocsConfig
+ self, context: TemplateContext, /, *, template_name: str, config: ProperDocsConfig
) -> TemplateContext | None:
"""
The `template_context` event is called immediately after the context is created
@@ -287,7 +293,7 @@ def on_template_context(
return context
def on_post_template(
- self, output_content: str, /, *, template_name: str, config: MkDocsConfig
+ self, output_content: str, /, *, template_name: str, config: ProperDocsConfig
) -> str | None:
"""
The `post_template` event is called after the template is rendered, but before
@@ -307,33 +313,33 @@ def on_post_template(
# Page events
- def on_pre_page(self, page: Page, /, *, config: MkDocsConfig, files: Files) -> Page | None:
+ def on_pre_page(self, page: Page, /, *, config: ProperDocsConfig, files: Files) -> Page | None:
"""
The `pre_page` event is called before any actions are taken on the subject
page and can be used to alter the `Page` instance.
Args:
- page: `mkdocs.structure.pages.Page` instance
+ page: `properdocs.structure.pages.Page` instance
config: global configuration object
files: global files collection
Returns:
- `mkdocs.structure.pages.Page` instance
+ `properdocs.structure.pages.Page` instance
"""
return page
- def on_page_read_source(self, /, *, page: Page, config: MkDocsConfig) -> str | None:
+ def on_page_read_source(self, /, *, page: Page, config: ProperDocsConfig) -> str | None:
"""
> DEPRECATED: Instead of this event, prefer one of these alternatives:
>
- > * Since MkDocs 1.6, instead set `content_bytes`/`content_string` of a `File` inside [`on_files`][].
+ > * Since ProperDocs 1.6, instead set `content_bytes`/`content_string` of a `File` inside [`on_files`][].
> * Usually (although it's not an exact alternative), `on_page_markdown` can serve the same purpose.
The `on_page_read_source` event can replace the default mechanism to read
the contents of a page's source from the filesystem.
Args:
- page: `mkdocs.structure.pages.Page` instance
+ page: `properdocs.structure.pages.Page` instance
config: global configuration object
Returns:
@@ -343,7 +349,7 @@ def on_page_read_source(self, /, *, page: Page, config: MkDocsConfig) -> str | N
return None
def on_page_markdown(
- self, markdown: str, /, *, page: Page, config: MkDocsConfig, files: Files
+ self, markdown: str, /, *, page: Page, config: ProperDocsConfig, files: Files
) -> str | None:
"""
The `page_markdown` event is called after the page's markdown is loaded
@@ -352,7 +358,7 @@ def on_page_markdown(
Args:
markdown: Markdown source text of page as string
- page: `mkdocs.structure.pages.Page` instance
+ page: `properdocs.structure.pages.Page` instance
config: global configuration object
files: global files collection
@@ -362,7 +368,7 @@ def on_page_markdown(
return markdown
def on_page_content(
- self, html: str, /, *, page: Page, config: MkDocsConfig, files: Files
+ self, html: str, /, *, page: Page, config: ProperDocsConfig, files: Files
) -> str | None:
"""
The `page_content` event is called after the Markdown text is rendered to
@@ -371,7 +377,7 @@ def on_page_content(
Args:
html: HTML rendered from Markdown source as string
- page: `mkdocs.structure.pages.Page` instance
+ page: `properdocs.structure.pages.Page` instance
config: global configuration object
files: global files collection
@@ -381,7 +387,7 @@ def on_page_content(
return html
def on_page_context(
- self, context: TemplateContext, /, *, page: Page, config: MkDocsConfig, nav: Navigation
+ self, context: TemplateContext, /, *, page: Page, config: ProperDocsConfig, nav: Navigation
) -> TemplateContext | None:
"""
The `page_context` event is called after the context for a page is created
@@ -389,7 +395,7 @@ def on_page_context(
Args:
context: dict of template context variables
- page: `mkdocs.structure.pages.Page` instance
+ page: `properdocs.structure.pages.Page` instance
config: global configuration object
nav: global navigation object
@@ -398,7 +404,7 @@ def on_page_context(
"""
return context
- def on_post_page(self, output: str, /, *, page: Page, config: MkDocsConfig) -> str | None:
+ def on_post_page(self, output: str, /, *, page: Page, config: ProperDocsConfig) -> str | None:
"""
The `post_page` event is called after the template is rendered, but
before it is written to disc and can be used to alter the output of the
@@ -407,7 +413,7 @@ def on_post_page(self, output: str, /, *, page: Page, config: MkDocsConfig) -> s
Args:
output: output of rendered template as string
- page: `mkdocs.structure.pages.Page` instance
+ page: `properdocs.structure.pages.Page` instance
config: global configuration object
Returns:
@@ -444,7 +450,7 @@ def on_files(self, files, config, **kwargs):
```python
try:
- from mkdocs.plugins import event_priority
+ from properdocs.plugins import event_priority
except ImportError:
event_priority = lambda priority: lambda f: f # No-op fallback
```
@@ -579,70 +585,72 @@ def on_shutdown(self) -> None:
return self.run_event('shutdown')
def on_serve(
- self, server: LiveReloadServer, *, config: MkDocsConfig, builder: Callable
+ self, server: LiveReloadServer, *, config: ProperDocsConfig, builder: Callable
) -> LiveReloadServer:
return self.run_event('serve', server, config=config, builder=builder)
- def on_config(self, config: MkDocsConfig) -> MkDocsConfig:
+ def on_config(self, config: ProperDocsConfig) -> ProperDocsConfig:
return self.run_event('config', config)
- def on_pre_build(self, *, config: MkDocsConfig) -> None:
+ def on_pre_build(self, *, config: ProperDocsConfig) -> None:
return self.run_event('pre_build', config=config)
- def on_files(self, files: Files, *, config: MkDocsConfig) -> Files:
+ def on_files(self, files: Files, *, config: ProperDocsConfig) -> Files:
return self.run_event('files', files, config=config)
- def on_nav(self, nav: Navigation, *, config: MkDocsConfig, files: Files) -> Navigation:
+ def on_nav(self, nav: Navigation, *, config: ProperDocsConfig, files: Files) -> Navigation:
return self.run_event('nav', nav, config=config, files=files)
- def on_env(self, env: jinja2.Environment, *, config: MkDocsConfig, files: Files):
+ def on_env(self, env: jinja2.Environment, *, config: ProperDocsConfig, files: Files):
return self.run_event('env', env, config=config, files=files)
- def on_post_build(self, *, config: MkDocsConfig) -> None:
+ def on_post_build(self, *, config: ProperDocsConfig) -> None:
return self.run_event('post_build', config=config)
def on_build_error(self, *, error: Exception) -> None:
return self.run_event('build_error', error=error)
def on_pre_template(
- self, template: jinja2.Template, *, template_name: str, config: MkDocsConfig
+ self, template: jinja2.Template, *, template_name: str, config: ProperDocsConfig
) -> jinja2.Template:
return self.run_event('pre_template', template, template_name=template_name, config=config)
def on_template_context(
- self, context: TemplateContext, *, template_name: str, config: MkDocsConfig
+ self, context: TemplateContext, *, template_name: str, config: ProperDocsConfig
) -> TemplateContext:
return self.run_event(
'template_context', context, template_name=template_name, config=config
)
def on_post_template(
- self, output_content: str, *, template_name: str, config: MkDocsConfig
+ self, output_content: str, *, template_name: str, config: ProperDocsConfig
) -> str:
return self.run_event(
'post_template', output_content, template_name=template_name, config=config
)
- def on_pre_page(self, page: Page, *, config: MkDocsConfig, files: Files) -> Page:
+ def on_pre_page(self, page: Page, *, config: ProperDocsConfig, files: Files) -> Page:
return self.run_event('pre_page', page, config=config, files=files)
- def on_page_read_source(self, *, page: Page, config: MkDocsConfig) -> str | None:
+ def on_page_read_source(self, *, page: Page, config: ProperDocsConfig) -> str | None:
return self.run_event('page_read_source', page=page, config=config)
def on_page_markdown(
- self, markdown: str, *, page: Page, config: MkDocsConfig, files: Files
+ self, markdown: str, *, page: Page, config: ProperDocsConfig, files: Files
) -> str:
return self.run_event('page_markdown', markdown, page=page, config=config, files=files)
- def on_page_content(self, html: str, *, page: Page, config: MkDocsConfig, files: Files) -> str:
+ def on_page_content(
+ self, html: str, *, page: Page, config: ProperDocsConfig, files: Files
+ ) -> str:
return self.run_event('page_content', html, page=page, config=config, files=files)
def on_page_context(
- self, context: TemplateContext, *, page: Page, config: MkDocsConfig, nav: Navigation
+ self, context: TemplateContext, *, page: Page, config: ProperDocsConfig, nav: Navigation
) -> TemplateContext:
return self.run_event('page_context', context, page=page, config=config, nav=nav)
- def on_post_page(self, output: str, *, page: Page, config: MkDocsConfig) -> str:
+ def on_post_page(self, output: str, *, page: Page, config: ProperDocsConfig) -> str:
return self.run_event('post_page', output, page=page, config=config)
@@ -682,16 +690,16 @@ def get_plugin_logger(name: str) -> PrefixedLogger:
name: The name to use with `logging.getLogger`.
Returns:
- A logger configured to work well in MkDocs,
+ A logger configured to work well in ProperDocs,
prefixing each message with the plugin package name.
Example:
```python
- from mkdocs.plugins import get_plugin_logger
+ from properdocs.plugins import get_plugin_logger
log = get_plugin_logger(__name__)
log.info("My plugin message")
```
"""
- logger = logging.getLogger(f"mkdocs.plugins.{name}")
+ logger = logging.getLogger(f"properdocs.plugins.{name}")
return PrefixedLogger(name.split(".", 1)[0], logger)
diff --git a/mkdocs/py.typed b/properdocs/py.typed
similarity index 100%
rename from mkdocs/py.typed
rename to properdocs/py.typed
diff --git a/mkdocs/structure/__init__.py b/properdocs/structure/__init__.py
similarity index 85%
rename from mkdocs/structure/__init__.py
rename to properdocs/structure/__init__.py
index c99b6575..d7ad60a9 100644
--- a/mkdocs/structure/__init__.py
+++ b/properdocs/structure/__init__.py
@@ -4,11 +4,11 @@
from typing import TYPE_CHECKING, Iterable
if TYPE_CHECKING:
- from mkdocs.structure.nav import Section
+ from properdocs.structure.nav import Section
class StructureItem(metaclass=abc.ABCMeta):
- """An item in MkDocs structure - see concrete subclasses Section, Page or Link."""
+ """An item in ProperDocs structure - see concrete subclasses Section, Page or Link."""
@abc.abstractmethod
def __init__(self):
diff --git a/mkdocs/structure/files.py b/properdocs/structure/files.py
similarity index 96%
rename from mkdocs/structure/files.py
rename to properdocs/structure/files.py
index 86f94bd6..a384af22 100644
--- a/mkdocs/structure/files.py
+++ b/properdocs/structure/files.py
@@ -16,13 +16,13 @@
import pathspec.gitignore
import pathspec.util
-from mkdocs import utils
+from properdocs import utils
if TYPE_CHECKING:
import jinja2.environment
- from mkdocs.config.defaults import MkDocsConfig
- from mkdocs.structure.pages import Page
+ from properdocs.config.defaults import ProperDocsConfig
+ from properdocs.structure.pages import Page
log = logging.getLogger(__name__)
@@ -32,7 +32,7 @@ class InclusionLevel(enum.Enum):
EXCLUDED = -3
"""The file is excluded and will not be processed."""
DRAFT = -2
- """The file is excluded from the final site, but will still be populated during `mkdocs serve`."""
+ """The file is excluded from the final site, but will still be populated during `properdocs serve`."""
NOT_IN_NAV = -1
"""The file is part of the site, but doesn't produce nav warnings."""
UNDEFINED = 0
@@ -60,7 +60,7 @@ def is_not_in_nav(self):
class Files:
- """A collection of [File][mkdocs.structure.files.File] objects."""
+ """A collection of [File][properdocs.structure.files.File] objects."""
def __init__(self, files: Iterable[File]) -> None:
self._src_uris = {f.src_uri: f for f in files}
@@ -86,7 +86,7 @@ def src_paths(self) -> dict[str, File]:
def src_uris(self) -> Mapping[str, File]:
"""
A mapping containing every file, with the keys being their
- [`src_uri`][mkdocs.structure.files.File.src_uri].
+ [`src_uri`][properdocs.structure.files.File.src_uri].
"""
return self._src_uris
@@ -143,7 +143,7 @@ def css_files(self) -> Sequence[File]:
"""Return iterable of all CSS file objects."""
return [file for file in self if file.is_css()]
- def add_files_from_theme(self, env: jinja2.Environment, config: MkDocsConfig) -> None:
+ def add_files_from_theme(self, env: jinja2.Environment, config: ProperDocsConfig) -> None:
"""Retrieve static files from Jinja environment and add to collection."""
def filter(name):
@@ -180,14 +180,14 @@ def _files(self, value: Iterable[File]):
class File:
"""
- A MkDocs File object.
+ A ProperDocs File object.
It represents how the contents of one file should be populated in the destination site.
A file always has its `abs_dest_path` (obtained by joining `dest_dir` and `dest_path`),
where the `dest_dir` is understood to be the *site* directory.
- `content_bytes`/`content_string` (new in MkDocs 1.6) can always be used to obtain the file's
+ `content_bytes`/`content_string` (new in ProperDocs 1.6) can always be used to obtain the file's
content. But it may be backed by one of the two sources:
* A physical source file at `abs_src_path` (by default obtained by joining `src_dir` and
@@ -197,7 +197,7 @@ class File:
`src_dir` *should* be populated for real files and should be `None` for generated files.
- * Since MkDocs 1.6 a file may alternatively be stored in memory - `content_string`/`content_bytes`.
+ * Since ProperDocs 1.6 a file may alternatively be stored in memory - `content_string`/`content_bytes`.
Then `src_dir` and `abs_src_path` will remain `None`. `content_bytes`/`content_string` need
to be written to, or populated through the `content` argument in the constructor.
@@ -270,7 +270,7 @@ def dest_path(self, value: str):
@classmethod
def generated(
cls,
- config: MkDocsConfig,
+ config: ProperDocsConfig,
src_uri: str,
*,
content: str | bytes,
@@ -286,7 +286,7 @@ def generated(
@classmethod
def generated(
cls,
- config: MkDocsConfig,
+ config: ProperDocsConfig,
src_uri: str,
*,
abs_src_path: str,
@@ -301,7 +301,7 @@ def generated(
@classmethod
def generated(
cls,
- config: MkDocsConfig,
+ config: ProperDocsConfig,
src_uri: str,
*,
content: str | bytes | None = None,
@@ -524,7 +524,7 @@ def is_css(self) -> bool:
_default_exclude = pathspec.gitignore.GitIgnoreSpec.from_lines(['.*', '/templates/'])
-def set_exclusions(files: Iterable[File], config: MkDocsConfig) -> None:
+def set_exclusions(files: Iterable[File], config: ProperDocsConfig) -> None:
"""Re-calculate which files are excluded, based on the patterns in the config."""
exclude: pathspec.gitignore.GitIgnoreSpec | None = config.get('exclude_docs')
exclude = _default_exclude + exclude if exclude else _default_exclude
@@ -543,7 +543,7 @@ def set_exclusions(files: Iterable[File], config: MkDocsConfig) -> None:
file.inclusion = InclusionLevel.INCLUDED
-def get_files(config: MkDocsConfig) -> Files:
+def get_files(config: ProperDocsConfig) -> Files:
"""Walk the `docs_dir` and return a Files collection."""
files: list[File] = []
conflicting_files: list[tuple[File, File]] = []
@@ -612,7 +612,8 @@ def _sort_files(filenames: Iterable[str]) -> list[str]:
def _filter_paths(basename: str, path: str, is_dir: bool, exclude: Iterable[str]) -> bool:
warnings.warn(
- "_filter_paths is not used since MkDocs 1.5 and will be removed soon.", DeprecationWarning
+ "_filter_paths is not used since ProperDocs 1.5 and will be removed soon.",
+ DeprecationWarning,
)
for item in exclude:
# Items ending in '/' apply only to directories.
diff --git a/mkdocs/structure/nav.py b/properdocs/structure/nav.py
similarity index 92%
rename from mkdocs/structure/nav.py
rename to properdocs/structure/nav.py
index 21815fe6..435e965e 100644
--- a/mkdocs/structure/nav.py
+++ b/properdocs/structure/nav.py
@@ -4,15 +4,15 @@
from typing import TYPE_CHECKING, Iterator, TypeVar
from urllib.parse import urlsplit
-from mkdocs.exceptions import BuildError
-from mkdocs.structure import StructureItem
-from mkdocs.structure.files import file_sort_key
-from mkdocs.structure.pages import Page, _AbsoluteLinksValidationValue
-from mkdocs.utils import nest_paths
+from properdocs.exceptions import BuildError
+from properdocs.structure import StructureItem
+from properdocs.structure.files import file_sort_key
+from properdocs.structure.pages import Page, _AbsoluteLinksValidationValue
+from properdocs.utils import nest_paths
if TYPE_CHECKING:
- from mkdocs.config.defaults import MkDocsConfig
- from mkdocs.structure.files import Files
+ from properdocs.config.defaults import ProperDocsConfig
+ from properdocs.structure.files import Files
log = logging.getLogger(__name__)
@@ -30,10 +30,10 @@ def __init__(self, items: list, pages: list[Page]) -> None:
break
homepage: Page | None
- """The [page][mkdocs.structure.pages.Page] object for the homepage of the site."""
+ """The [page][properdocs.structure.pages.Page] object for the homepage of the site."""
pages: list[Page]
- """A flat list of all [page][mkdocs.structure.pages.Page] objects contained in the navigation."""
+ """A flat list of all [page][properdocs.structure.pages.Page] objects contained in the navigation."""
def __str__(self) -> str:
return '\n'.join(item._indent_print() for item in self)
@@ -127,7 +127,7 @@ def __repr__(self):
"""Indicates that the navigation object is a "link" object. Always `True` for link objects."""
-def get_navigation(files: Files, config: MkDocsConfig) -> Navigation:
+def get_navigation(files: Files, config: ProperDocsConfig) -> Navigation:
"""Build site navigation from config and files."""
documentation_pages = files.documentation_pages()
nav_config = config['nav']
@@ -185,7 +185,7 @@ def get_navigation(files: Files, config: MkDocsConfig) -> Navigation:
return Navigation(items, pages)
-def _data_to_navigation(data, files: Files, config: MkDocsConfig):
+def _data_to_navigation(data, files: Files, config: ProperDocsConfig):
if isinstance(data, dict):
return [
_data_to_navigation((key, value), files, config)
diff --git a/mkdocs/structure/pages.py b/properdocs/structure/pages.py
similarity index 92%
rename from mkdocs/structure/pages.py
rename to properdocs/structure/pages.py
index 52f5cb3c..63ef132b 100644
--- a/mkdocs/structure/pages.py
+++ b/properdocs/structure/pages.py
@@ -15,25 +15,25 @@
import markdown.treeprocessors
from markdown.util import AMP_SUBSTITUTE
-from mkdocs import utils
-from mkdocs.structure import StructureItem
-from mkdocs.structure.toc import get_toc
-from mkdocs.utils import _removesuffix, get_build_date, get_markdown_title, meta, weak_property
-from mkdocs.utils.rendering import get_heading_text
+from properdocs import utils
+from properdocs.structure import StructureItem
+from properdocs.structure.toc import get_toc
+from properdocs.utils import _removesuffix, get_build_date, get_markdown_title, meta, weak_property
+from properdocs.utils.rendering import get_heading_text
if TYPE_CHECKING:
from xml.etree import ElementTree as etree
- from mkdocs.config.defaults import MkDocsConfig
- from mkdocs.structure.files import File, Files
- from mkdocs.structure.toc import TableOfContents
+ from properdocs.config.defaults import ProperDocsConfig
+ from properdocs.structure.files import File, Files
+ from properdocs.structure.toc import TableOfContents
log = logging.getLogger(__name__)
class Page(StructureItem):
- def __init__(self, title: str | None, file: File, config: MkDocsConfig) -> None:
+ def __init__(self, title: str | None, file: File, config: ProperDocsConfig) -> None:
file.page = self
self.file = file
if title is not None:
@@ -82,21 +82,21 @@ def __repr__(self):
toc: TableOfContents
"""An iterable object representing the Table of contents for a page. Each item in
- the `toc` is an [`AnchorLink`][mkdocs.structure.toc.AnchorLink]."""
+ the `toc` is an [`AnchorLink`][properdocs.structure.toc.AnchorLink]."""
meta: MutableMapping[str, Any]
"""A mapping of the metadata included at the top of the markdown page."""
@property
def url(self) -> str:
- """The URL of the page relative to the MkDocs `site_dir`."""
+ """The URL of the page relative to the ProperDocs `site_dir`."""
url = self.file.url
if url in ('.', './'):
return ''
return url
file: File
- """The documentation [`File`][mkdocs.structure.files.File] that the page is being rendered from."""
+ """The documentation [`File`][properdocs.structure.files.File] that the page is being rendered from."""
abs_url: str | None
"""The absolute URL of the page from the server root as determined by the value
@@ -137,12 +137,12 @@ def is_homepage(self) -> bool:
return self.is_top_level and self.is_index and self.file.url in ('.', './', 'index.html')
previous_page: Page | None
- """The [page][mkdocs.structure.pages.Page] object for the previous page or `None`.
+ """The [page][properdocs.structure.pages.Page] object for the previous page or `None`.
The value will be `None` if the current page is the first item in the site navigation
or if the current page is not included in the navigation at all."""
next_page: Page | None
- """The [page][mkdocs.structure.pages.Page] object for the next page or `None`.
+ """The [page][properdocs.structure.pages.Page] object for the next page or `None`.
The value will be `None` if the current page is the last item in the site navigation
or if the current page is not included in the navigation at all."""
@@ -205,7 +205,7 @@ def _set_edit_url(
self.edit_url = urljoin(repo_url or '', file_edit_uri)
- def read_source(self, config: MkDocsConfig) -> None:
+ def read_source(self, config: ProperDocsConfig) -> None:
source = config.plugins.on_page_read_source(page=self, config=config)
if source is None:
try:
@@ -221,7 +221,8 @@ def read_source(self, config: MkDocsConfig) -> None:
def _set_title(self) -> None:
warnings.warn(
- "_set_title is no longer used in MkDocs and will be removed soon.", DeprecationWarning
+ "_set_title is no longer used in ProperDocs and will be removed soon.",
+ DeprecationWarning,
)
@weak_property
@@ -260,7 +261,7 @@ def title(self) -> str | None: # type: ignore[override]
title = title.capitalize()
return title
- def render(self, config: MkDocsConfig, files: Files) -> None:
+ def render(self, config: ProperDocsConfig, files: Files) -> None:
"""Convert the Markdown source file to HTML as per the config."""
if self.markdown is None:
raise RuntimeError("`markdown` field hasn't been set (via `read_source`)")
@@ -327,7 +328,7 @@ def validate_anchor_links(self, *, files: Files, log_level: int) -> None:
class _ExtractAnchorsTreeprocessor(markdown.treeprocessors.Treeprocessor):
- def __init__(self, file: File, files: Files, config: MkDocsConfig) -> None:
+ def __init__(self, file: File, files: Files, config: ProperDocsConfig) -> None:
self.present_anchor_ids: set[str] = set()
def run(self, root: etree.Element) -> None:
@@ -340,11 +341,11 @@ def run(self, root: etree.Element) -> None:
add(anchor)
def _register(self, md: markdown.Markdown) -> None:
- md.treeprocessors.register(self, "mkdocs_extract_anchors", priority=5) # Same as 'toc'.
+ md.treeprocessors.register(self, "properdocs_extract_anchors", priority=5) # Same as 'toc'.
class _RelativePathTreeprocessor(markdown.treeprocessors.Treeprocessor):
- def __init__(self, file: File, files: Files, config: MkDocsConfig) -> None:
+ def __init__(self, file: File, files: Files, config: ProperDocsConfig) -> None:
self.file = file
self.files = files
self.config = config
@@ -533,7 +534,7 @@ def run(self, lines: list[str]) -> list[str]:
def _register(self, md: markdown.Markdown) -> None:
md.preprocessors.register(
- self, "mkdocs_raw_html", priority=21 # Right before 'html_block'.
+ self, "properdocs_raw_html", priority=21 # Right before 'html_block'.
)
@@ -562,7 +563,7 @@ def run(self, root: etree.Element) -> etree.Element:
def _register(self, md: markdown.Markdown) -> None:
self.md = md
- md.treeprocessors.register(self, "mkdocs_extract_title", priority=1) # Close to the end.
+ md.treeprocessors.register(self, "properdocs_extract_title", priority=1) # Close to the end.
class _AbsoluteLinksValidationValue(enum.IntEnum):
diff --git a/mkdocs/structure/toc.py b/properdocs/structure/toc.py
similarity index 100%
rename from mkdocs/structure/toc.py
rename to properdocs/structure/toc.py
diff --git a/mkdocs/templates/sitemap.xml b/properdocs/templates/sitemap.xml
similarity index 100%
rename from mkdocs/templates/sitemap.xml
rename to properdocs/templates/sitemap.xml
diff --git a/mkdocs/tests/__init__.py b/properdocs/tests/__init__.py
similarity index 100%
rename from mkdocs/tests/__init__.py
rename to properdocs/tests/__init__.py
diff --git a/mkdocs/tests/base.py b/properdocs/tests/base.py
similarity index 90%
rename from mkdocs/tests/base.py
rename to properdocs/tests/base.py
index 96ca4f81..66a46685 100644
--- a/mkdocs/tests/base.py
+++ b/properdocs/tests/base.py
@@ -8,8 +8,8 @@
import markdown
-from mkdocs import utils
-from mkdocs.config.defaults import MkDocsConfig
+from properdocs import utils
+from properdocs.config.defaults import ProperDocsConfig
def dedent(text):
@@ -23,7 +23,7 @@ def get_markdown_toc(markdown_source):
return md.toc_tokens
-def load_config(config_file_path: str | None = None, **cfg) -> MkDocsConfig:
+def load_config(config_file_path: str | None = None, **cfg) -> ProperDocsConfig:
"""Helper to build a simple config for testing."""
path_base = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'integration', 'minimal')
if 'site_name' not in cfg:
@@ -33,7 +33,9 @@ def load_config(config_file_path: str | None = None, **cfg) -> MkDocsConfig:
cfg['docs_dir'] = os.path.join(path_base, 'docs')
if 'plugins' not in cfg:
cfg['plugins'] = []
- conf = MkDocsConfig(config_file_path=config_file_path or os.path.join(path_base, 'mkdocs.yml'))
+ conf = ProperDocsConfig(
+ config_file_path=config_file_path or os.path.join(path_base, 'mkdocs.yml')
+ )
conf.load_dict(cfg)
errors_warnings = conf.validate()
@@ -66,9 +68,9 @@ def example(self, tdir):
with open(pth, 'r', encoding='utf-8') as f:
assert f.read() == 'bar content'
"""
- files = {f: '' for f in files} if isinstance(files, (list, tuple)) else files or {}
+ files = dict.fromkeys(files, '') if isinstance(files, (list, tuple)) else files or {}
- kw['prefix'] = 'mkdocs_test-' + kw.get('prefix', '')
+ kw['prefix'] = 'properdocs_test-' + kw.get('prefix', '')
def decorator(fn):
@wraps(fn)
diff --git a/mkdocs/tests/build_tests.py b/properdocs/tests/build_tests.py
similarity index 90%
rename from mkdocs/tests/build_tests.py
rename to properdocs/tests/build_tests.py
index 4fc1cf4c..ed8b9868 100644
--- a/mkdocs/tests/build_tests.py
+++ b/properdocs/tests/build_tests.py
@@ -13,17 +13,17 @@
import markdown.preprocessors
-from mkdocs.commands import build
-from mkdocs.config import base
-from mkdocs.exceptions import PluginError
-from mkdocs.structure.files import File, Files
-from mkdocs.structure.nav import get_navigation
-from mkdocs.structure.pages import Page
-from mkdocs.tests.base import PathAssertionMixin, load_config, tempdir
-from mkdocs.utils import meta
+from properdocs.commands import build
+from properdocs.config import base
+from properdocs.exceptions import PluginError
+from properdocs.structure.files import File, Files
+from properdocs.structure.nav import get_navigation
+from properdocs.structure.pages import Page
+from properdocs.tests.base import PathAssertionMixin, load_config, tempdir
+from properdocs.utils import meta
if TYPE_CHECKING:
- from mkdocs.config.defaults import MkDocsConfig
+ from properdocs.config.defaults import ProperDocsConfig
def build_page(title, path, config, md_src=''):
@@ -198,12 +198,12 @@ def test_context_extra_css_path_warning(self):
fs = [File('index.md', cfg.docs_dir, cfg.site_dir, cfg.use_directory_urls)]
files = Files(fs)
nav = get_navigation(files, cfg)
- with self.assertLogs('mkdocs') as cm:
+ with self.assertLogs('properdocs') as cm:
context = build.get_context(nav, files, cfg, nav.pages[0])
self.assertEqual(context['extra_css'], ['assets/style.css'])
self.assertEqual(
'\n'.join(cm.output),
- "WARNING:mkdocs.utils:Path 'assets\\style.css' uses OS-specific separator '\\'. "
+ "WARNING:properdocs.utils:Path 'assets\\style.css' uses OS-specific separator '\\'. "
"That will be unsupported in a future release. Please change it to '/'.",
)
@@ -220,8 +220,8 @@ def test_extra_context(self):
# Test build._build_theme_template
- @mock.patch('mkdocs.utils.write_file')
- @mock.patch('mkdocs.commands.build._build_template', return_value='some content')
+ @mock.patch('properdocs.utils.write_file')
+ @mock.patch('properdocs.commands.build._build_template', return_value='some content')
def test_build_theme_template(self, mock_build_template, mock_write_file):
cfg = load_config()
env = cfg.theme.get_env()
@@ -229,8 +229,8 @@ def test_build_theme_template(self, mock_build_template, mock_write_file):
mock_write_file.assert_called_once()
mock_build_template.assert_called_once()
- @mock.patch('mkdocs.utils.write_file')
- @mock.patch('mkdocs.commands.build._build_template', return_value='some content')
+ @mock.patch('properdocs.utils.write_file')
+ @mock.patch('properdocs.commands.build._build_template', return_value='some content')
@mock.patch('gzip.GzipFile')
@tempdir()
def test_build_sitemap_template(
@@ -243,30 +243,30 @@ def test_build_sitemap_template(
mock_build_template.assert_called_once()
mock_gzip_gzipfile.assert_called_once()
- @mock.patch('mkdocs.utils.write_file')
- @mock.patch('mkdocs.commands.build._build_template', return_value='')
+ @mock.patch('properdocs.utils.write_file')
+ @mock.patch('properdocs.commands.build._build_template', return_value='')
def test_skip_missing_theme_template(self, mock_build_template, mock_write_file):
cfg = load_config()
env = cfg.theme.get_env()
- with self.assertLogs('mkdocs') as cm:
+ with self.assertLogs('properdocs') as cm:
build._build_theme_template('missing.html', env, Files([]), cfg, mock.Mock())
self.assertEqual(
'\n'.join(cm.output),
- "WARNING:mkdocs.commands.build:Template skipped: 'missing.html' not found in theme directories.",
+ "WARNING:properdocs.commands.build:Template skipped: 'missing.html' not found in theme directories.",
)
mock_write_file.assert_not_called()
mock_build_template.assert_not_called()
- @mock.patch('mkdocs.utils.write_file')
- @mock.patch('mkdocs.commands.build._build_template', return_value='')
+ @mock.patch('properdocs.utils.write_file')
+ @mock.patch('properdocs.commands.build._build_template', return_value='')
def test_skip_theme_template_empty_output(self, mock_build_template, mock_write_file):
cfg = load_config()
env = cfg.theme.get_env()
- with self.assertLogs('mkdocs') as cm:
+ with self.assertLogs('properdocs') as cm:
build._build_theme_template('main.html', env, Files([]), cfg, mock.Mock())
self.assertEqual(
'\n'.join(cm.output),
- "INFO:mkdocs.commands.build:Template skipped: 'main.html' generated empty output.",
+ "INFO:properdocs.commands.build:Template skipped: 'main.html' generated empty output.",
)
mock_write_file.assert_not_called()
mock_build_template.assert_called_once()
@@ -274,47 +274,47 @@ def test_skip_theme_template_empty_output(self, mock_build_template, mock_write_
# Test build._build_extra_template
@tempdir()
- @mock.patch('mkdocs.structure.files.open', mock.mock_open(read_data='template content'))
+ @mock.patch('properdocs.structure.files.open', mock.mock_open(read_data='template content'))
def test_build_extra_template(self, site_dir):
cfg = load_config(site_dir=site_dir)
fs = [File('foo.html', cfg.docs_dir, cfg.site_dir, cfg.use_directory_urls)]
files = Files(fs)
build._build_extra_template('foo.html', files, cfg, mock.Mock())
- @mock.patch('mkdocs.structure.files.open', mock.mock_open(read_data='template content'))
+ @mock.patch('properdocs.structure.files.open', mock.mock_open(read_data='template content'))
def test_skip_missing_extra_template(self):
cfg = load_config()
fs = [File('foo.html', cfg.docs_dir, cfg.site_dir, cfg.use_directory_urls)]
files = Files(fs)
- with self.assertLogs('mkdocs') as cm:
+ with self.assertLogs('properdocs') as cm:
build._build_extra_template('missing.html', files, cfg, mock.Mock())
self.assertEqual(
'\n'.join(cm.output),
- "WARNING:mkdocs.commands.build:Template skipped: 'missing.html' not found in docs_dir.",
+ "WARNING:properdocs.commands.build:Template skipped: 'missing.html' not found in docs_dir.",
)
- @mock.patch('mkdocs.structure.files.open', mock.Mock(side_effect=OSError('Error message.')))
+ @mock.patch('properdocs.structure.files.open', mock.Mock(side_effect=OSError('Error message.')))
def test_skip_ioerror_extra_template(self):
cfg = load_config()
fs = [File('foo.html', cfg.docs_dir, cfg.site_dir, cfg.use_directory_urls)]
files = Files(fs)
- with self.assertLogs('mkdocs') as cm:
+ with self.assertLogs('properdocs') as cm:
build._build_extra_template('foo.html', files, cfg, mock.Mock())
self.assertEqual(
'\n'.join(cm.output),
- "WARNING:mkdocs.commands.build:Error reading template 'foo.html': Error message.",
+ "WARNING:properdocs.commands.build:Error reading template 'foo.html': Error message.",
)
- @mock.patch('mkdocs.structure.files.open', mock.mock_open(read_data=''))
+ @mock.patch('properdocs.structure.files.open', mock.mock_open(read_data=''))
def test_skip_extra_template_empty_output(self):
cfg = load_config()
fs = [File('foo.html', cfg.docs_dir, cfg.site_dir, cfg.use_directory_urls)]
files = Files(fs)
- with self.assertLogs('mkdocs') as cm:
+ with self.assertLogs('properdocs') as cm:
build._build_extra_template('foo.html', files, cfg, mock.Mock())
self.assertEqual(
'\n'.join(cm.output),
- "INFO:mkdocs.commands.build:Template skipped: 'foo.html' generated empty output.",
+ "INFO:properdocs.commands.build:Template skipped: 'foo.html' generated empty output.",
)
# Test build._populate_page
@@ -333,9 +333,9 @@ def test_populate_page_dirty_modified(self, site_dir):
file = File('testing.md', cfg.docs_dir, cfg.site_dir, cfg.use_directory_urls)
page = Page('Foo', file, cfg)
build._populate_page(page, cfg, Files([file]), dirty=True)
- self.assertTrue(page.markdown.startswith('# Welcome to MkDocs'))
+ self.assertTrue(page.markdown.startswith('# Welcome to ProperDocs'))
self.assertTrue(
- page.content.startswith('
Welcome to MkDocs ')
+ page.content.startswith('
Welcome to ProperDocs ')
)
@tempdir(files={'index.md': 'page content'})
@@ -350,19 +350,19 @@ def test_populate_page_dirty_not_modified(self, site_dir, docs_dir):
self.assertEqual(page.content, None)
@tempdir(files={'index.md': 'new page content'})
- @mock.patch('mkdocs.structure.files.open', side_effect=OSError('Error message.'))
+ @mock.patch('properdocs.structure.files.open', side_effect=OSError('Error message.'))
def test_populate_page_read_error(self, docs_dir, mock_open):
cfg = load_config(docs_dir=docs_dir)
file = File('missing.md', cfg.docs_dir, cfg.site_dir, cfg.use_directory_urls)
page = Page('Foo', file, cfg)
- with self.assertLogs('mkdocs') as cm:
+ with self.assertLogs('properdocs') as cm:
with self.assertRaises(OSError):
build._populate_page(page, cfg, Files([file]))
self.assertEqual(
cm.output,
[
- 'ERROR:mkdocs.structure.pages:File not found: missing.md',
- "ERROR:mkdocs.commands.build:Error reading page 'missing.md': Error message.",
+ 'ERROR:properdocs.structure.pages:File not found: missing.md',
+ "ERROR:properdocs.commands.build:Error reading page 'missing.md': Error message.",
],
)
mock_open.assert_called_once()
@@ -377,12 +377,12 @@ def on_page_markdown(*args, **kwargs):
file = File('index.md', cfg.docs_dir, cfg.site_dir, cfg.use_directory_urls)
page = Page('Foo', file, cfg)
- with self.assertLogs('mkdocs') as cm:
+ with self.assertLogs('properdocs') as cm:
with self.assertRaises(PluginError):
build._populate_page(page, cfg, Files([file]))
self.assertEqual(
'\n'.join(cm.output),
- "ERROR:mkdocs.commands.build:Error reading page 'index.md':",
+ "ERROR:properdocs.commands.build:Error reading page 'index.md':",
)
# Test build._build_page
@@ -408,20 +408,20 @@ def test_build_page_empty(self, site_dir, render_mock):
fs = [File('index.md', cfg.docs_dir, cfg.site_dir, cfg.use_directory_urls)]
files = Files(fs)
nav = get_navigation(files, cfg)
- with self.assertLogs('mkdocs') as cm:
+ with self.assertLogs('properdocs') as cm:
build._build_page(
files.documentation_pages()[0].page, cfg, files, nav, cfg.theme.get_env()
)
self.assertEqual(
'\n'.join(cm.output),
- "INFO:mkdocs.commands.build:Page skipped: 'index.md'. Generated empty output.",
+ "INFO:properdocs.commands.build:Page skipped: 'index.md'. Generated empty output.",
)
self.assertPathNotExists(site_dir, 'index.html')
render_mock.assert_called_once()
@tempdir(files={'index.md': 'page content'})
@tempdir(files={'index.html': '
page content
'})
- @mock.patch('mkdocs.utils.write_file')
+ @mock.patch('properdocs.utils.write_file')
def test_build_page_dirty_modified(self, site_dir, docs_dir, mock_write_file):
cfg = load_config(docs_dir=docs_dir, site_dir=site_dir, nav=['index.md'])
fs = [File('index.md', cfg.docs_dir, cfg.site_dir, cfg.use_directory_urls)]
@@ -438,7 +438,7 @@ def test_build_page_dirty_modified(self, site_dir, docs_dir, mock_write_file):
mock_write_file.assert_not_called()
@tempdir(files={'testing.html': '
page content
'})
- @mock.patch('mkdocs.utils.write_file')
+ @mock.patch('properdocs.utils.write_file')
def test_build_page_dirty_not_modified(self, site_dir, mock_write_file):
cfg = load_config(site_dir=site_dir, nav=['testing.md'])
fs = [File('testing.md', cfg.docs_dir, cfg.site_dir, cfg.use_directory_urls)]
@@ -470,7 +470,7 @@ def test_build_page_custom_template(self, site_dir):
self.assertPathIsFile(site_dir, 'index.html')
@tempdir()
- @mock.patch('mkdocs.utils.write_file', side_effect=OSError('Error message.'))
+ @mock.patch('properdocs.utils.write_file', side_effect=OSError('Error message.'))
def test_build_page_error(self, site_dir, mock_write_file):
cfg = load_config(site_dir=site_dir, nav=['index.md'])
fs = [File('index.md', cfg.docs_dir, cfg.site_dir, cfg.use_directory_urls)]
@@ -481,12 +481,12 @@ def test_build_page_error(self, site_dir, mock_write_file):
page.title = 'Title'
page.markdown = 'page content'
page.content = '
page content
'
- with self.assertLogs('mkdocs') as cm:
+ with self.assertLogs('properdocs') as cm:
with self.assertRaises(OSError):
build._build_page(page, cfg, files, nav, self._get_env_with_null_translations(cfg))
self.assertEqual(
'\n'.join(cm.output),
- "ERROR:mkdocs.commands.build:Error building page 'index.md': Error message.",
+ "ERROR:properdocs.commands.build:Error building page 'index.md': Error message.",
)
mock_write_file.assert_called_once()
@@ -505,12 +505,12 @@ def on_page_context(*args, **kwargs):
page.title = 'Title'
page.markdown = 'page content'
page.content = '
page content
'
- with self.assertLogs('mkdocs') as cm:
+ with self.assertLogs('properdocs') as cm:
with self.assertRaises(PluginError):
build._build_page(page, cfg, files, nav, cfg.theme.get_env())
self.assertEqual(
'\n'.join(cm.output),
- "ERROR:mkdocs.commands.build:Error building page 'index.md':",
+ "ERROR:properdocs.commands.build:Error building page 'index.md':",
)
# Test build.build
@@ -560,7 +560,7 @@ def test_copy_theme_files(self, site_dir, docs_dir):
@contextlib.contextmanager
def _assert_build_logs(self, expected):
- with self.assertLogs('mkdocs') as cm:
+ with self.assertLogs('properdocs') as cm:
yield
msgs = [f'{r.levelname}:{r.message}' for r in cm.records]
if msgs and msgs[0].startswith('INFO:Cleaning site directory'):
@@ -609,7 +609,7 @@ def test_draft_docs_with_comments_from_user_guide(self, site_dir, docs_dir):
serve_url = 'http://localhost:123/documentation/'
with self.subTest(serve_url=serve_url):
expected_logs = '''
- INFO:The following pages are being built only for the preview but will be excluded from `mkdocs build` per `draft_docs` config:
+ INFO:The following pages are being built only for the preview but will be excluded from `properdocs build` per `draft_docs` config:
- http://localhost:123/documentation/other_unpublished.html
- http://localhost:123/documentation/test/other_unpublished.html
'''
@@ -663,7 +663,7 @@ def test_draft_pages_with_invalid_links(self, site_dir, docs_dir):
expected_logs = '''
INFO:Doc file 'test/bar.md' contains a link 'nonexistent.md', but the target 'test/nonexistent.md' is not found among documentation files.
INFO:Doc file 'test/foo.md' contains a link to 'test/bar.md' which is excluded from the built site.
- INFO:The following pages are being built only for the preview but will be excluded from `mkdocs build` per `draft_docs` config:
+ INFO:The following pages are being built only for the preview but will be excluded from `properdocs build` per `draft_docs` config:
- http://localhost:123/documentation/test/bar.html
- http://localhost:123/documentation/test/baz.html
'''
@@ -813,13 +813,13 @@ def test_anchor_warning_for_footnote(self, site_dir, docs_dir):
@tempdir()
@tempdir()
def test_plugins_adding_files_and_interacting(self, tmp_dir, site_dir, docs_dir):
- def on_files_1(files: Files, config: MkDocsConfig) -> Files:
+ def on_files_1(files: Files, config: ProperDocsConfig) -> Files:
# Plugin 1 generates a file.
Path(tmp_dir, 'SUMMARY.md').write_text('foo.md\nbar.md\n')
files.append(File('SUMMARY.md', tmp_dir, config.site_dir, config.use_directory_urls))
return files
- def on_files_2(files: Files, config: MkDocsConfig) -> None:
+ def on_files_2(files: Files, config: ProperDocsConfig) -> None:
# Plugin 2 reads that file and uses it to configure the nav.
f = files.get_file_from_path('SUMMARY.md')
assert f is not None
@@ -846,7 +846,7 @@ def on_files_2(files: Files, config: MkDocsConfig) -> None:
'''
if exclude == 'drafts' and serve_url:
expected_logs = '''
- INFO:The following pages are being built only for the preview but will be excluded from `mkdocs build` per `draft_docs` config:
+ INFO:The following pages are being built only for the preview but will be excluded from `properdocs build` per `draft_docs` config:
- http://localhost:123/SUMMARY.html
'''
with self._assert_build_logs(expected_logs):
@@ -909,7 +909,7 @@ def test_markdown_extension_with_relative(self, config_dir):
site_name: test
use_directory_urls: false
markdown_extensions:
- - mkdocs.tests.build_tests:
+ - properdocs.tests.build_tests:
base_path: {base_path}
'''
config = base.load_config(
@@ -952,7 +952,7 @@ def __init__(self, base_path: str) -> None:
self.base_path = str(base_path)
def extendMarkdown(self, md: markdown.Markdown) -> None:
- md.preprocessors.register(_TestPreprocessor(self.base_path), "mkdocs_test", priority=32)
+ md.preprocessors.register(_TestPreprocessor(self.base_path), "properdocs_test", priority=32)
makeExtension = _TestExtension
diff --git a/mkdocs/tests/cli_tests.py b/properdocs/tests/cli_tests.py
similarity index 79%
rename from mkdocs/tests/cli_tests.py
rename to properdocs/tests/cli_tests.py
index 8bdc19b2..54ad5e49 100644
--- a/mkdocs/tests/cli_tests.py
+++ b/properdocs/tests/cli_tests.py
@@ -7,14 +7,14 @@
from click.testing import CliRunner
-from mkdocs import __main__ as cli
+from properdocs import __main__ as cli
class CLITests(unittest.TestCase):
def setUp(self):
self.runner = CliRunner()
- @mock.patch('mkdocs.commands.serve.serve', autospec=True)
+ @mock.patch('properdocs.commands.serve.serve', autospec=True)
def test_serve_default(self, mock_serve):
result = self.runner.invoke(cli.cli, ["serve"], catch_exceptions=False)
@@ -32,7 +32,7 @@ def test_serve_default(self, mock_serve):
watch=(),
)
- @mock.patch('mkdocs.commands.serve.serve', autospec=True)
+ @mock.patch('properdocs.commands.serve.serve', autospec=True)
def test_serve_config_file(self, mock_serve):
result = self.runner.invoke(
cli.cli, ["serve", "--config-file", "mkdocs.yml"], catch_exceptions=False
@@ -45,7 +45,7 @@ def test_serve_config_file(self, mock_serve):
self.assertIsInstance(kwargs['config_file'], io.BufferedReader)
self.assertEqual(kwargs['config_file'].name, 'mkdocs.yml')
- @mock.patch('mkdocs.commands.serve.serve', autospec=True)
+ @mock.patch('properdocs.commands.serve.serve', autospec=True)
def test_serve_dev_addr(self, mock_serve):
result = self.runner.invoke(
cli.cli, ["serve", '--dev-addr', '0.0.0.0:80'], catch_exceptions=False
@@ -65,7 +65,7 @@ def test_serve_dev_addr(self, mock_serve):
watch=(),
)
- @mock.patch('mkdocs.commands.serve.serve', autospec=True)
+ @mock.patch('properdocs.commands.serve.serve', autospec=True)
def test_serve_strict(self, mock_serve):
result = self.runner.invoke(cli.cli, ["serve", '--strict'], catch_exceptions=False)
@@ -83,7 +83,7 @@ def test_serve_strict(self, mock_serve):
watch=(),
)
- @mock.patch('mkdocs.commands.serve.serve', autospec=True)
+ @mock.patch('properdocs.commands.serve.serve', autospec=True)
def test_serve_theme(self, mock_serve):
result = self.runner.invoke(
cli.cli, ["serve", '--theme', 'readthedocs'], catch_exceptions=False
@@ -103,7 +103,7 @@ def test_serve_theme(self, mock_serve):
watch=(),
)
- @mock.patch('mkdocs.commands.serve.serve', autospec=True)
+ @mock.patch('properdocs.commands.serve.serve', autospec=True)
def test_serve_use_directory_urls(self, mock_serve):
result = self.runner.invoke(
cli.cli, ["serve", '--use-directory-urls'], catch_exceptions=False
@@ -123,7 +123,7 @@ def test_serve_use_directory_urls(self, mock_serve):
watch=(),
)
- @mock.patch('mkdocs.commands.serve.serve', autospec=True)
+ @mock.patch('properdocs.commands.serve.serve', autospec=True)
def test_serve_no_directory_urls(self, mock_serve):
result = self.runner.invoke(
cli.cli, ["serve", '--no-directory-urls'], catch_exceptions=False
@@ -143,7 +143,7 @@ def test_serve_no_directory_urls(self, mock_serve):
watch=(),
)
- @mock.patch('mkdocs.commands.serve.serve', autospec=True)
+ @mock.patch('properdocs.commands.serve.serve', autospec=True)
def test_serve_livereload(self, mock_serve):
result = self.runner.invoke(cli.cli, ["serve", '--livereload'], catch_exceptions=False)
@@ -161,7 +161,7 @@ def test_serve_livereload(self, mock_serve):
watch=(),
)
- @mock.patch('mkdocs.commands.serve.serve', autospec=True)
+ @mock.patch('properdocs.commands.serve.serve', autospec=True)
def test_serve_no_livereload(self, mock_serve):
result = self.runner.invoke(cli.cli, ["serve", '--no-livereload'], catch_exceptions=False)
@@ -179,7 +179,7 @@ def test_serve_no_livereload(self, mock_serve):
watch=(),
)
- @mock.patch('mkdocs.commands.serve.serve', autospec=True)
+ @mock.patch('properdocs.commands.serve.serve', autospec=True)
def test_serve_dirtyreload(self, mock_serve):
result = self.runner.invoke(cli.cli, ["serve", '--dirty'], catch_exceptions=False)
@@ -197,7 +197,7 @@ def test_serve_dirtyreload(self, mock_serve):
watch=(),
)
- @mock.patch('mkdocs.commands.serve.serve', autospec=True)
+ @mock.patch('properdocs.commands.serve.serve', autospec=True)
def test_serve_watch_theme(self, mock_serve):
result = self.runner.invoke(cli.cli, ["serve", '--watch-theme'], catch_exceptions=False)
@@ -215,8 +215,8 @@ def test_serve_watch_theme(self, mock_serve):
watch=(),
)
- @mock.patch('mkdocs.config.load_config', autospec=True)
- @mock.patch('mkdocs.commands.build.build', autospec=True)
+ @mock.patch('properdocs.config.load_config', autospec=True)
+ @mock.patch('properdocs.commands.build.build', autospec=True)
def test_build_defaults(self, mock_build, mock_load_config):
result = self.runner.invoke(cli.cli, ['build'], catch_exceptions=False)
@@ -232,11 +232,11 @@ def test_build_defaults(self, mock_build, mock_load_config):
use_directory_urls=None,
site_dir=None,
)
- for log_name in 'mkdocs', 'mkdocs.structure.pages', 'mkdocs.plugins.foo':
+ for log_name in 'properdocs', 'properdocs.structure.pages', 'properdocs.plugins.foo':
self.assertEqual(logging.getLogger(log_name).getEffectiveLevel(), logging.INFO)
- @mock.patch('mkdocs.config.load_config', autospec=True)
- @mock.patch('mkdocs.commands.build.build', autospec=True)
+ @mock.patch('properdocs.config.load_config', autospec=True)
+ @mock.patch('properdocs.commands.build.build', autospec=True)
def test_build_clean(self, mock_build, mock_load_config):
result = self.runner.invoke(cli.cli, ['build', '--clean'], catch_exceptions=False)
@@ -246,8 +246,8 @@ def test_build_clean(self, mock_build, mock_load_config):
self.assertTrue('dirty' in kwargs)
self.assertFalse(kwargs['dirty'])
- @mock.patch('mkdocs.config.load_config', autospec=True)
- @mock.patch('mkdocs.commands.build.build', autospec=True)
+ @mock.patch('properdocs.config.load_config', autospec=True)
+ @mock.patch('properdocs.commands.build.build', autospec=True)
def test_build_dirty(self, mock_build, mock_load_config):
result = self.runner.invoke(cli.cli, ['build', '--dirty'], catch_exceptions=False)
@@ -257,8 +257,8 @@ def test_build_dirty(self, mock_build, mock_load_config):
self.assertTrue('dirty' in kwargs)
self.assertTrue(kwargs['dirty'])
- @mock.patch('mkdocs.config.load_config', autospec=True)
- @mock.patch('mkdocs.commands.build.build', autospec=True)
+ @mock.patch('properdocs.config.load_config', autospec=True)
+ @mock.patch('properdocs.commands.build.build', autospec=True)
def test_build_config_file(self, mock_build, mock_load_config):
result = self.runner.invoke(
cli.cli, ['build', '--config-file', 'mkdocs.yml'], catch_exceptions=False
@@ -272,8 +272,8 @@ def test_build_config_file(self, mock_build, mock_load_config):
self.assertIsInstance(kwargs['config_file'], io.BufferedReader)
self.assertEqual(kwargs['config_file'].name, 'mkdocs.yml')
- @mock.patch('mkdocs.config.load_config', autospec=True)
- @mock.patch('mkdocs.commands.build.build', autospec=True)
+ @mock.patch('properdocs.config.load_config', autospec=True)
+ @mock.patch('properdocs.commands.build.build', autospec=True)
def test_build_strict(self, mock_build, mock_load_config):
result = self.runner.invoke(cli.cli, ['build', '--strict'], catch_exceptions=False)
@@ -287,8 +287,8 @@ def test_build_strict(self, mock_build, mock_load_config):
site_dir=None,
)
- @mock.patch('mkdocs.config.load_config', autospec=True)
- @mock.patch('mkdocs.commands.build.build', autospec=True)
+ @mock.patch('properdocs.config.load_config', autospec=True)
+ @mock.patch('properdocs.commands.build.build', autospec=True)
def test_build_theme(self, mock_build, mock_load_config):
result = self.runner.invoke(
cli.cli, ['build', '--theme', 'readthedocs'], catch_exceptions=False
@@ -304,8 +304,8 @@ def test_build_theme(self, mock_build, mock_load_config):
site_dir=None,
)
- @mock.patch('mkdocs.config.load_config', autospec=True)
- @mock.patch('mkdocs.commands.build.build', autospec=True)
+ @mock.patch('properdocs.config.load_config', autospec=True)
+ @mock.patch('properdocs.commands.build.build', autospec=True)
def test_build_use_directory_urls(self, mock_build, mock_load_config):
result = self.runner.invoke(
cli.cli, ['build', '--use-directory-urls'], catch_exceptions=False
@@ -321,8 +321,8 @@ def test_build_use_directory_urls(self, mock_build, mock_load_config):
site_dir=None,
)
- @mock.patch('mkdocs.config.load_config', autospec=True)
- @mock.patch('mkdocs.commands.build.build', autospec=True)
+ @mock.patch('properdocs.config.load_config', autospec=True)
+ @mock.patch('properdocs.commands.build.build', autospec=True)
def test_build_no_directory_urls(self, mock_build, mock_load_config):
result = self.runner.invoke(
cli.cli, ['build', '--no-directory-urls'], catch_exceptions=False
@@ -338,8 +338,8 @@ def test_build_no_directory_urls(self, mock_build, mock_load_config):
site_dir=None,
)
- @mock.patch('mkdocs.config.load_config', autospec=True)
- @mock.patch('mkdocs.commands.build.build', autospec=True)
+ @mock.patch('properdocs.config.load_config', autospec=True)
+ @mock.patch('properdocs.commands.build.build', autospec=True)
def test_build_site_dir(self, mock_build, mock_load_config):
result = self.runner.invoke(
cli.cli, ['build', '--site-dir', 'custom'], catch_exceptions=False
@@ -355,36 +355,36 @@ def test_build_site_dir(self, mock_build, mock_load_config):
site_dir='custom',
)
- @mock.patch('mkdocs.config.load_config', autospec=True)
- @mock.patch('mkdocs.commands.build.build', autospec=True)
+ @mock.patch('properdocs.config.load_config', autospec=True)
+ @mock.patch('properdocs.commands.build.build', autospec=True)
def test_build_verbose(self, mock_build, mock_load_config):
result = self.runner.invoke(cli.cli, ['build', '--verbose'], catch_exceptions=False)
self.assertEqual(result.exit_code, 0)
self.assertEqual(mock_build.call_count, 1)
- for log_name in 'mkdocs', 'mkdocs.structure.pages', 'mkdocs.plugins.foo':
+ for log_name in 'properdocs', 'properdocs.structure.pages', 'properdocs.plugins.foo':
self.assertEqual(logging.getLogger(log_name).getEffectiveLevel(), logging.DEBUG)
- @mock.patch('mkdocs.config.load_config', autospec=True)
- @mock.patch('mkdocs.commands.build.build', autospec=True)
+ @mock.patch('properdocs.config.load_config', autospec=True)
+ @mock.patch('properdocs.commands.build.build', autospec=True)
def test_build_quiet(self, mock_build, mock_load_config):
result = self.runner.invoke(cli.cli, ['build', '--quiet'], catch_exceptions=False)
self.assertEqual(result.exit_code, 0)
self.assertEqual(mock_build.call_count, 1)
- for log_name in 'mkdocs', 'mkdocs.structure.pages', 'mkdocs.plugins.foo':
+ for log_name in 'properdocs', 'properdocs.structure.pages', 'properdocs.plugins.foo':
self.assertEqual(logging.getLogger(log_name).getEffectiveLevel(), logging.ERROR)
- @mock.patch('mkdocs.commands.new.new', autospec=True)
+ @mock.patch('properdocs.commands.new.new', autospec=True)
def test_new(self, mock_new):
result = self.runner.invoke(cli.cli, ["new", "project"], catch_exceptions=False)
self.assertEqual(result.exit_code, 0)
mock_new.assert_called_once_with('project')
- @mock.patch('mkdocs.config.load_config', autospec=True)
- @mock.patch('mkdocs.commands.build.build', autospec=True)
- @mock.patch('mkdocs.commands.gh_deploy.gh_deploy', autospec=True)
+ @mock.patch('properdocs.config.load_config', autospec=True)
+ @mock.patch('properdocs.commands.build.build', autospec=True)
+ @mock.patch('properdocs.commands.gh_deploy.gh_deploy', autospec=True)
def test_gh_deploy_defaults(self, mock_gh_deploy, mock_build, mock_load_config):
result = self.runner.invoke(cli.cli, ['gh-deploy'], catch_exceptions=False)
@@ -411,9 +411,9 @@ def test_gh_deploy_defaults(self, mock_gh_deploy, mock_build, mock_load_config):
site_dir=None,
)
- @mock.patch('mkdocs.config.load_config', autospec=True)
- @mock.patch('mkdocs.commands.build.build', autospec=True)
- @mock.patch('mkdocs.commands.gh_deploy.gh_deploy', autospec=True)
+ @mock.patch('properdocs.config.load_config', autospec=True)
+ @mock.patch('properdocs.commands.build.build', autospec=True)
+ @mock.patch('properdocs.commands.gh_deploy.gh_deploy', autospec=True)
def test_gh_deploy_clean(self, mock_gh_deploy, mock_build, mock_load_config):
result = self.runner.invoke(cli.cli, ['gh-deploy', '--clean'], catch_exceptions=False)
@@ -424,9 +424,9 @@ def test_gh_deploy_clean(self, mock_gh_deploy, mock_build, mock_load_config):
self.assertTrue('dirty' in kwargs)
self.assertFalse(kwargs['dirty'])
- @mock.patch('mkdocs.config.load_config', autospec=True)
- @mock.patch('mkdocs.commands.build.build', autospec=True)
- @mock.patch('mkdocs.commands.gh_deploy.gh_deploy', autospec=True)
+ @mock.patch('properdocs.config.load_config', autospec=True)
+ @mock.patch('properdocs.commands.build.build', autospec=True)
+ @mock.patch('properdocs.commands.gh_deploy.gh_deploy', autospec=True)
def test_gh_deploy_dirty(self, mock_gh_deploy, mock_build, mock_load_config):
result = self.runner.invoke(cli.cli, ['gh-deploy', '--dirty'], catch_exceptions=False)
@@ -437,9 +437,9 @@ def test_gh_deploy_dirty(self, mock_gh_deploy, mock_build, mock_load_config):
self.assertTrue('dirty' in kwargs)
self.assertTrue(kwargs['dirty'])
- @mock.patch('mkdocs.config.load_config', autospec=True)
- @mock.patch('mkdocs.commands.build.build', autospec=True)
- @mock.patch('mkdocs.commands.gh_deploy.gh_deploy', autospec=True)
+ @mock.patch('properdocs.config.load_config', autospec=True)
+ @mock.patch('properdocs.commands.build.build', autospec=True)
+ @mock.patch('properdocs.commands.gh_deploy.gh_deploy', autospec=True)
def test_gh_deploy_config_file(self, mock_gh_deploy, mock_build, mock_load_config):
result = self.runner.invoke(
cli.cli, ['gh-deploy', '--config-file', 'mkdocs.yml'], catch_exceptions=False
@@ -454,9 +454,9 @@ def test_gh_deploy_config_file(self, mock_gh_deploy, mock_build, mock_load_confi
self.assertIsInstance(kwargs['config_file'], io.BufferedReader)
self.assertEqual(kwargs['config_file'].name, 'mkdocs.yml')
- @mock.patch('mkdocs.config.load_config', autospec=True)
- @mock.patch('mkdocs.commands.build.build', autospec=True)
- @mock.patch('mkdocs.commands.gh_deploy.gh_deploy', autospec=True)
+ @mock.patch('properdocs.config.load_config', autospec=True)
+ @mock.patch('properdocs.commands.build.build', autospec=True)
+ @mock.patch('properdocs.commands.gh_deploy.gh_deploy', autospec=True)
def test_gh_deploy_message(self, mock_gh_deploy, mock_build, mock_load_config):
result = self.runner.invoke(
cli.cli, ['gh-deploy', '--message', 'A commit message'], catch_exceptions=False
@@ -470,9 +470,9 @@ def test_gh_deploy_message(self, mock_gh_deploy, mock_build, mock_load_config):
self.assertEqual(mock_build.call_count, 1)
self.assertEqual(mock_load_config.call_count, 1)
- @mock.patch('mkdocs.config.load_config', autospec=True)
- @mock.patch('mkdocs.commands.build.build', autospec=True)
- @mock.patch('mkdocs.commands.gh_deploy.gh_deploy', autospec=True)
+ @mock.patch('properdocs.config.load_config', autospec=True)
+ @mock.patch('properdocs.commands.build.build', autospec=True)
+ @mock.patch('properdocs.commands.gh_deploy.gh_deploy', autospec=True)
def test_gh_deploy_remote_branch(self, mock_gh_deploy, mock_build, mock_load_config):
result = self.runner.invoke(
cli.cli, ['gh-deploy', '--remote-branch', 'foo'], catch_exceptions=False
@@ -491,9 +491,9 @@ def test_gh_deploy_remote_branch(self, mock_gh_deploy, mock_build, mock_load_con
site_dir=None,
)
- @mock.patch('mkdocs.config.load_config', autospec=True)
- @mock.patch('mkdocs.commands.build.build', autospec=True)
- @mock.patch('mkdocs.commands.gh_deploy.gh_deploy', autospec=True)
+ @mock.patch('properdocs.config.load_config', autospec=True)
+ @mock.patch('properdocs.commands.build.build', autospec=True)
+ @mock.patch('properdocs.commands.gh_deploy.gh_deploy', autospec=True)
def test_gh_deploy_remote_name(self, mock_gh_deploy, mock_build, mock_load_config):
result = self.runner.invoke(
cli.cli, ['gh-deploy', '--remote-name', 'foo'], catch_exceptions=False
@@ -512,9 +512,9 @@ def test_gh_deploy_remote_name(self, mock_gh_deploy, mock_build, mock_load_confi
site_dir=None,
)
- @mock.patch('mkdocs.config.load_config', autospec=True)
- @mock.patch('mkdocs.commands.build.build', autospec=True)
- @mock.patch('mkdocs.commands.gh_deploy.gh_deploy', autospec=True)
+ @mock.patch('properdocs.config.load_config', autospec=True)
+ @mock.patch('properdocs.commands.build.build', autospec=True)
+ @mock.patch('properdocs.commands.gh_deploy.gh_deploy', autospec=True)
def test_gh_deploy_force(self, mock_gh_deploy, mock_build, mock_load_config):
result = self.runner.invoke(cli.cli, ['gh-deploy', '--force'], catch_exceptions=False)
@@ -526,9 +526,9 @@ def test_gh_deploy_force(self, mock_gh_deploy, mock_build, mock_load_config):
self.assertEqual(mock_build.call_count, 1)
self.assertEqual(mock_load_config.call_count, 1)
- @mock.patch('mkdocs.config.load_config', autospec=True)
- @mock.patch('mkdocs.commands.build.build', autospec=True)
- @mock.patch('mkdocs.commands.gh_deploy.gh_deploy', autospec=True)
+ @mock.patch('properdocs.config.load_config', autospec=True)
+ @mock.patch('properdocs.commands.build.build', autospec=True)
+ @mock.patch('properdocs.commands.gh_deploy.gh_deploy', autospec=True)
def test_gh_deploy_ignore_version(self, mock_gh_deploy, mock_build, mock_load_config):
result = self.runner.invoke(
cli.cli, ['gh-deploy', '--ignore-version'], catch_exceptions=False
@@ -542,9 +542,9 @@ def test_gh_deploy_ignore_version(self, mock_gh_deploy, mock_build, mock_load_co
self.assertEqual(mock_build.call_count, 1)
self.assertEqual(mock_load_config.call_count, 1)
- @mock.patch('mkdocs.config.load_config', autospec=True)
- @mock.patch('mkdocs.commands.build.build', autospec=True)
- @mock.patch('mkdocs.commands.gh_deploy.gh_deploy', autospec=True)
+ @mock.patch('properdocs.config.load_config', autospec=True)
+ @mock.patch('properdocs.commands.build.build', autospec=True)
+ @mock.patch('properdocs.commands.gh_deploy.gh_deploy', autospec=True)
def test_gh_deploy_strict(self, mock_gh_deploy, mock_build, mock_load_config):
result = self.runner.invoke(cli.cli, ['gh-deploy', '--strict'], catch_exceptions=False)
@@ -561,9 +561,9 @@ def test_gh_deploy_strict(self, mock_gh_deploy, mock_build, mock_load_config):
site_dir=None,
)
- @mock.patch('mkdocs.config.load_config', autospec=True)
- @mock.patch('mkdocs.commands.build.build', autospec=True)
- @mock.patch('mkdocs.commands.gh_deploy.gh_deploy', autospec=True)
+ @mock.patch('properdocs.config.load_config', autospec=True)
+ @mock.patch('properdocs.commands.build.build', autospec=True)
+ @mock.patch('properdocs.commands.gh_deploy.gh_deploy', autospec=True)
def test_gh_deploy_theme(self, mock_gh_deploy, mock_build, mock_load_config):
result = self.runner.invoke(
cli.cli, ['gh-deploy', '--theme', 'readthedocs'], catch_exceptions=False
@@ -582,9 +582,9 @@ def test_gh_deploy_theme(self, mock_gh_deploy, mock_build, mock_load_config):
site_dir=None,
)
- @mock.patch('mkdocs.config.load_config', autospec=True)
- @mock.patch('mkdocs.commands.build.build', autospec=True)
- @mock.patch('mkdocs.commands.gh_deploy.gh_deploy', autospec=True)
+ @mock.patch('properdocs.config.load_config', autospec=True)
+ @mock.patch('properdocs.commands.build.build', autospec=True)
+ @mock.patch('properdocs.commands.gh_deploy.gh_deploy', autospec=True)
def test_gh_deploy_use_directory_urls(self, mock_gh_deploy, mock_build, mock_load_config):
result = self.runner.invoke(
cli.cli, ['gh-deploy', '--use-directory-urls'], catch_exceptions=False
@@ -603,9 +603,9 @@ def test_gh_deploy_use_directory_urls(self, mock_gh_deploy, mock_build, mock_loa
site_dir=None,
)
- @mock.patch('mkdocs.config.load_config', autospec=True)
- @mock.patch('mkdocs.commands.build.build', autospec=True)
- @mock.patch('mkdocs.commands.gh_deploy.gh_deploy', autospec=True)
+ @mock.patch('properdocs.config.load_config', autospec=True)
+ @mock.patch('properdocs.commands.build.build', autospec=True)
+ @mock.patch('properdocs.commands.gh_deploy.gh_deploy', autospec=True)
def test_gh_deploy_no_directory_urls(self, mock_gh_deploy, mock_build, mock_load_config):
result = self.runner.invoke(
cli.cli, ['gh-deploy', '--no-directory-urls'], catch_exceptions=False
@@ -624,9 +624,9 @@ def test_gh_deploy_no_directory_urls(self, mock_gh_deploy, mock_build, mock_load
site_dir=None,
)
- @mock.patch('mkdocs.config.load_config', autospec=True)
- @mock.patch('mkdocs.commands.build.build', autospec=True)
- @mock.patch('mkdocs.commands.gh_deploy.gh_deploy', autospec=True)
+ @mock.patch('properdocs.config.load_config', autospec=True)
+ @mock.patch('properdocs.commands.build.build', autospec=True)
+ @mock.patch('properdocs.commands.gh_deploy.gh_deploy', autospec=True)
def test_gh_deploy_site_dir(self, mock_gh_deploy, mock_build, mock_load_config):
result = self.runner.invoke(
cli.cli, ['gh-deploy', '--site-dir', 'custom'], catch_exceptions=False
diff --git a/mkdocs/tests/config/__init__.py b/properdocs/tests/config/__init__.py
similarity index 100%
rename from mkdocs/tests/config/__init__.py
rename to properdocs/tests/config/__init__.py
diff --git a/mkdocs/tests/config/base_tests.py b/properdocs/tests/config/base_tests.py
similarity index 81%
rename from mkdocs/tests/config/base_tests.py
rename to properdocs/tests/config/base_tests.py
index fe738a20..11a44c8f 100644
--- a/mkdocs/tests/config/base_tests.py
+++ b/properdocs/tests/config/base_tests.py
@@ -1,17 +1,17 @@
import os
import unittest
-from mkdocs import exceptions
-from mkdocs.config import base
-from mkdocs.config import config_options as c
-from mkdocs.config import defaults
-from mkdocs.config.base import ValidationError
-from mkdocs.tests.base import change_dir, tempdir
+from properdocs import exceptions
+from properdocs.config import base
+from properdocs.config import config_options as c
+from properdocs.config import defaults
+from properdocs.config.base import ValidationError
+from properdocs.tests.base import change_dir, tempdir
class ConfigBaseTests(unittest.TestCase):
def test_unrecognised_keys(self):
- conf = defaults.MkDocsConfig()
+ conf = defaults.ProperDocsConfig()
conf.load_dict(
{
'not_a_valid_config_option': "test",
@@ -31,7 +31,7 @@ def test_unrecognised_keys(self):
)
def test_missing_required(self):
- conf = defaults.MkDocsConfig()
+ conf = defaults.ProperDocsConfig()
errors, warnings = conf.validate()
@@ -47,48 +47,48 @@ def test_load_from_file(self, temp_dir):
Allows users to specify a config other than the default `mkdocs.yml`.
"""
with open(os.path.join(temp_dir, 'mkdocs.yml'), 'w') as config_file:
- config_file.write("site_name: MkDocs Test\n")
+ config_file.write("site_name: ProperDocs Test\n")
os.mkdir(os.path.join(temp_dir, 'docs'))
cfg = base.load_config(config_file=config_file.name)
- self.assertTrue(isinstance(cfg, defaults.MkDocsConfig))
- self.assertEqual(cfg.site_name, 'MkDocs Test')
+ self.assertTrue(isinstance(cfg, defaults.ProperDocsConfig))
+ self.assertEqual(cfg.site_name, 'ProperDocs Test')
@tempdir()
def test_load_default_file(self, temp_dir):
"""Test that `mkdocs.yml` will be loaded when '--config' is not set."""
with open(os.path.join(temp_dir, 'mkdocs.yml'), 'w') as config_file:
- config_file.write("site_name: MkDocs Test\n")
+ config_file.write("site_name: ProperDocs Test\n")
os.mkdir(os.path.join(temp_dir, 'docs'))
with change_dir(temp_dir):
cfg = base.load_config(config_file=None)
- self.assertTrue(isinstance(cfg, defaults.MkDocsConfig))
- self.assertEqual(cfg.site_name, 'MkDocs Test')
+ self.assertTrue(isinstance(cfg, defaults.ProperDocsConfig))
+ self.assertEqual(cfg.site_name, 'ProperDocs Test')
@tempdir()
def test_load_default_file_with_yaml(self, temp_dir):
"""Test that `mkdocs.yml` will be loaded when '--config' is not set."""
with open(os.path.join(temp_dir, 'mkdocs.yaml'), 'w') as config_file:
- config_file.write("site_name: MkDocs Test\n")
+ config_file.write("site_name: ProperDocs Test\n")
os.mkdir(os.path.join(temp_dir, 'docs'))
with change_dir(temp_dir):
cfg = base.load_config(config_file=None)
- self.assertTrue(isinstance(cfg, defaults.MkDocsConfig))
- self.assertEqual(cfg.site_name, 'MkDocs Test')
+ self.assertTrue(isinstance(cfg, defaults.ProperDocsConfig))
+ self.assertEqual(cfg.site_name, 'ProperDocs Test')
@tempdir()
def test_load_default_file_prefer_yml(self, temp_dir):
"""Test that `mkdocs.yml` will be loaded when '--config' is not set."""
with open(os.path.join(temp_dir, 'mkdocs.yml'), 'w') as config_file1:
- config_file1.write("site_name: MkDocs Test1\n")
+ config_file1.write("site_name: ProperDocs Test1\n")
with open(os.path.join(temp_dir, 'mkdocs.yaml'), 'w') as config_file2:
- config_file2.write("site_name: MkDocs Test2\n")
+ config_file2.write("site_name: ProperDocs Test2\n")
os.mkdir(os.path.join(temp_dir, 'docs'))
with change_dir(temp_dir):
cfg = base.load_config(config_file=None)
- self.assertTrue(isinstance(cfg, defaults.MkDocsConfig))
- self.assertEqual(cfg.site_name, 'MkDocs Test1')
+ self.assertTrue(isinstance(cfg, defaults.ProperDocsConfig))
+ self.assertEqual(cfg.site_name, 'ProperDocs Test1')
def test_load_from_missing_file(self):
with self.assertRaisesRegex(
@@ -101,13 +101,13 @@ def test_load_from_open_file(self, temp_path):
"""`load_config` can accept an open file descriptor."""
config_fname = os.path.join(temp_path, 'mkdocs.yml')
config_file = open(config_fname, 'w+')
- config_file.write("site_name: MkDocs Test\n")
+ config_file.write("site_name: ProperDocs Test\n")
config_file.flush()
os.mkdir(os.path.join(temp_path, 'docs'))
cfg = base.load_config(config_file=config_file)
- self.assertTrue(isinstance(cfg, defaults.MkDocsConfig))
- self.assertEqual(cfg.site_name, 'MkDocs Test')
+ self.assertTrue(isinstance(cfg, defaults.ProperDocsConfig))
+ self.assertEqual(cfg.site_name, 'ProperDocs Test')
# load_config will always close the file
self.assertTrue(config_file.closed)
@@ -118,26 +118,26 @@ def test_load_from_closed_file(self, temp_dir):
Ensure `load_config` reloads the closed file.
"""
with open(os.path.join(temp_dir, 'mkdocs.yml'), 'w') as config_file:
- config_file.write("site_name: MkDocs Test\n")
+ config_file.write("site_name: ProperDocs Test\n")
os.mkdir(os.path.join(temp_dir, 'docs'))
cfg = base.load_config(config_file=config_file)
- self.assertTrue(isinstance(cfg, defaults.MkDocsConfig))
- self.assertEqual(cfg.site_name, 'MkDocs Test')
+ self.assertTrue(isinstance(cfg, defaults.ProperDocsConfig))
+ self.assertEqual(cfg.site_name, 'ProperDocs Test')
@tempdir()
def test_load_missing_required(self, temp_dir):
"""`site_name` is a required setting."""
with open(os.path.join(temp_dir, 'mkdocs.yml'), 'w') as config_file:
- config_file.write("site_dir: output\nsite_url: https://www.mkdocs.org\n")
+ config_file.write("site_dir: output\nsite_url: https://properdocs.org\n")
os.mkdir(os.path.join(temp_dir, 'docs'))
- with self.assertLogs('mkdocs') as cm:
+ with self.assertLogs('properdocs') as cm:
with self.assertRaises(exceptions.Abort):
base.load_config(config_file=config_file.name)
self.assertEqual(
'\n'.join(cm.output),
- "ERROR:mkdocs.config:Config value 'site_name': Required configuration not provided.",
+ "ERROR:properdocs.config:Config value 'site_name': Required configuration not provided.",
)
def test_pre_validation_error(self):
@@ -249,13 +249,13 @@ def test_load_from_file_with_relative_paths(self, config_dir):
"""
config_fname = os.path.join(config_dir, 'mkdocs.yml')
with open(config_fname, 'w') as config_file:
- config_file.write("docs_dir: src\nsite_name: MkDocs Test\n")
+ config_file.write("docs_dir: src\nsite_name: ProperDocs Test\n")
docs_dir = os.path.join(config_dir, 'src')
os.mkdir(docs_dir)
cfg = base.load_config(config_file=config_file)
- self.assertTrue(isinstance(cfg, defaults.MkDocsConfig))
- self.assertEqual(cfg.site_name, 'MkDocs Test')
+ self.assertTrue(isinstance(cfg, defaults.ProperDocsConfig))
+ self.assertEqual(cfg.site_name, 'ProperDocs Test')
self.assertEqual(cfg.docs_dir, docs_dir)
self.assertEqual(cfg.config_file_path, config_fname)
self.assertIsInstance(cfg.config_file_path, str)
diff --git a/mkdocs/tests/config/config_options_legacy_tests.py b/properdocs/tests/config/config_options_legacy_tests.py
similarity index 97%
rename from mkdocs/tests/config/config_options_legacy_tests.py
rename to properdocs/tests/config/config_options_legacy_tests.py
index 499933f7..ee50d685 100644
--- a/mkdocs/tests/config/config_options_legacy_tests.py
+++ b/properdocs/tests/config/config_options_legacy_tests.py
@@ -11,11 +11,11 @@
from typing import Any
from unittest import mock
-import mkdocs
-from mkdocs.config import base
-from mkdocs.config import config_options as c
-from mkdocs.tests.base import tempdir
-from mkdocs.utils import write_file, yaml_load
+import properdocs
+from properdocs.config import base
+from properdocs.config import config_options as c
+from properdocs.tests.base import tempdir
+from properdocs.utils import write_file, yaml_load
class UnexpectedError(Exception):
@@ -234,7 +234,7 @@ class Schema:
d = c.Deprecated(removed=True, moved_to='foo')
with self.expect_error(
- d="The configuration option 'd' was removed from MkDocs. Use 'foo' instead.",
+ d="The configuration option 'd' was removed from ProperDocs. Use 'foo' instead.",
):
self.get_config(Schema, {'d': 'value'})
@@ -409,8 +409,8 @@ def test_valid_url(self):
class Schema:
option = c.URL()
- conf = self.get_config(Schema, {'option': "https://mkdocs.org"})
- self.assertEqual(conf['option'], "https://mkdocs.org")
+ conf = self.get_config(Schema, {'option': "https://properdocs.org"})
+ self.assertEqual(conf['option'], "https://properdocs.org")
conf = self.get_config(Schema, {'option': ""})
self.assertEqual(conf['option'], "")
@@ -419,11 +419,11 @@ def test_valid_url_is_dir(self):
class Schema:
option = c.URL(is_dir=True)
- conf = self.get_config(Schema, {'option': "http://mkdocs.org/"})
- self.assertEqual(conf['option'], "http://mkdocs.org/")
+ conf = self.get_config(Schema, {'option': "http://properdocs.org/"})
+ self.assertEqual(conf['option'], "http://properdocs.org/")
- conf = self.get_config(Schema, {'option': "https://mkdocs.org"})
- self.assertEqual(conf['option'], "https://mkdocs.org/")
+ conf = self.get_config(Schema, {'option': "https://properdocs.org"})
+ self.assertEqual(conf['option'], "https://properdocs.org/")
def test_optional(self):
class Schema:
@@ -442,7 +442,7 @@ class Schema:
with self.expect_error(option="Required configuration not provided."):
self.get_config(Schema, {'option': None})
- for url in "www.mkdocs.org", "//mkdocs.org/test", "http:/mkdocs.org/", "/hello/":
+ for url in "properdocs.org", "//properdocs.org/test", "http:/properdocs.org/", "/hello/":
with self.subTest(url=url):
with self.expect_error(
option="The URL isn't valid, it should include the http:// (scheme)"
@@ -467,7 +467,7 @@ class Schema:
def test_repo_name_github(self):
conf = self.get_config(
self.Schema,
- {'repo_url': "https://github.com/mkdocs/mkdocs"},
+ {'repo_url': "https://github.com/properdocs/properdocs"},
)
self.assertEqual(conf['repo_name'], "GitHub")
@@ -495,10 +495,10 @@ def test_repo_name_custom(self):
def test_edit_uri_github(self):
conf = self.get_config(
self.Schema,
- {'repo_url': "https://github.com/mkdocs/mkdocs"},
+ {'repo_url': "https://github.com/properdocs/properdocs"},
)
self.assertEqual(conf['edit_uri'], 'edit/master/docs/')
- self.assertEqual(conf['repo_url'], "https://github.com/mkdocs/mkdocs")
+ self.assertEqual(conf['repo_url'], "https://github.com/properdocs/properdocs")
def test_edit_uri_bitbucket(self):
conf = self.get_config(
@@ -526,7 +526,7 @@ def test_edit_uri_custom(self):
def test_repo_name_custom_and_empty_edit_uri(self):
conf = self.get_config(
self.Schema,
- {'repo_url': "https://github.com/mkdocs/mkdocs", 'repo_name': 'mkdocs'},
+ {'repo_url': "https://github.com/properdocs/properdocs", 'repo_name': 'properdocs'},
)
self.assertEqual(conf['edit_uri'], 'edit/master/docs/')
@@ -534,7 +534,7 @@ def test_edit_uri_template_ok(self):
conf = self.get_config(
self.Schema,
{
- 'repo_url': "https://github.com/mkdocs/mkdocs",
+ 'repo_url': "https://github.com/properdocs/properdocs",
'edit_uri_template': 'edit/foo/docs/{path}',
},
)
@@ -547,7 +547,7 @@ def test_edit_uri_template_errors(self):
self.get_config(
self.Schema,
{
- 'repo_url': "https://github.com/mkdocs/mkdocs",
+ 'repo_url': "https://github.com/properdocs/properdocs",
'edit_uri_template': 'edit/master/{path',
},
)
@@ -556,7 +556,7 @@ def test_edit_uri_template_errors(self):
self.get_config(
self.Schema,
{
- 'repo_url': "https://github.com/mkdocs/mkdocs",
+ 'repo_url': "https://github.com/properdocs/properdocs",
'edit_uri_template': 'edit/master/{path!z}',
},
)
@@ -565,7 +565,7 @@ def test_edit_uri_template_errors(self):
self.get_config(
self.Schema,
{
- 'repo_url': "https://github.com/mkdocs/mkdocs",
+ 'repo_url': "https://github.com/properdocs/properdocs",
'edit_uri_template': 'edit/master/{foo}',
},
)
@@ -574,7 +574,7 @@ def test_edit_uri_template_warning(self):
conf = self.get_config(
self.Schema,
{
- 'repo_url': "https://github.com/mkdocs/mkdocs",
+ 'repo_url': "https://github.com/properdocs/properdocs",
'edit_uri': 'edit',
'edit_uri_template': 'edit/master/{path}',
},
@@ -854,7 +854,7 @@ class Schema:
def test_doc_dir_in_site_dir(self):
j = os.path.join
# The parent dir is not the same on every system, so use the actual dir name
- parent_dir = mkdocs.__file__.split(os.sep)[-3]
+ parent_dir = properdocs.__file__.split(os.sep)[-3]
test_configs = (
{'docs_dir': j('site', 'docs'), 'site_dir': 'site'},
diff --git a/mkdocs/tests/config/config_options_tests.py b/properdocs/tests/config/config_options_tests.py
similarity index 97%
rename from mkdocs/tests/config/config_options_tests.py
rename to properdocs/tests/config/config_options_tests.py
index 0f5f07d3..0c14d3e6 100644
--- a/mkdocs/tests/config/config_options_tests.py
+++ b/properdocs/tests/config/config_options_tests.py
@@ -20,14 +20,14 @@ def assert_type(val, typ):
return None
-import mkdocs
-from mkdocs.config import config_options as c
-from mkdocs.config import defaults
-from mkdocs.config.base import Config
-from mkdocs.plugins import BasePlugin, PluginCollection
-from mkdocs.tests.base import tempdir
-from mkdocs.theme import Theme
-from mkdocs.utils import write_file, yaml_load
+import properdocs
+from properdocs.config import config_options as c
+from properdocs.config import defaults
+from properdocs.config.base import Config
+from properdocs.plugins import BasePlugin, PluginCollection
+from properdocs.tests.base import tempdir
+from properdocs.theme import Theme
+from properdocs.utils import write_file, yaml_load
SomeConfig = TypeVar('SomeConfig', bound=Config)
@@ -217,7 +217,7 @@ class Schema(Config):
d = c.Deprecated(removed=True, moved_to='foo')
with self.expect_error(
- d="The configuration option 'd' was removed from MkDocs. Use 'foo' instead.",
+ d="The configuration option 'd' was removed from ProperDocs. Use 'foo' instead.",
):
self.get_config(Schema, {'d': 'value'})
@@ -397,9 +397,9 @@ def test_valid_url(self) -> None:
class Schema(Config):
option = c.URL()
- conf = self.get_config(Schema, {'option': "https://mkdocs.org"})
+ conf = self.get_config(Schema, {'option': "https://properdocs.org"})
assert_type(conf.option, str)
- self.assertEqual(conf.option, "https://mkdocs.org")
+ self.assertEqual(conf.option, "https://properdocs.org")
conf = self.get_config(Schema, {'option': ""})
self.assertEqual(conf.option, "")
@@ -408,11 +408,11 @@ def test_valid_url_is_dir(self) -> None:
class Schema(Config):
option = c.URL(is_dir=True)
- conf = self.get_config(Schema, {'option': "http://mkdocs.org/"})
- self.assertEqual(conf.option, "http://mkdocs.org/")
+ conf = self.get_config(Schema, {'option': "http://properdocs.org/"})
+ self.assertEqual(conf.option, "http://properdocs.org/")
- conf = self.get_config(Schema, {'option': "https://mkdocs.org"})
- self.assertEqual(conf.option, "https://mkdocs.org/")
+ conf = self.get_config(Schema, {'option': "https://properdocs.org"})
+ self.assertEqual(conf.option, "https://properdocs.org/")
def test_optional(self):
class Schema(Config):
@@ -431,7 +431,7 @@ class Schema(Config):
with self.expect_error(option="Required configuration not provided."):
self.get_config(Schema, {'option': None})
- for url in "www.mkdocs.org", "//mkdocs.org/test", "http:/mkdocs.org/", "/hello/":
+ for url in "properdocs.org", "//properdocs.org/test", "http:/properdocs.org/", "/hello/":
with self.subTest(url=url):
with self.expect_error(
option="The URL isn't valid, it should include the http:// (scheme)"
@@ -456,7 +456,7 @@ class Schema(Config):
def test_repo_name_github(self) -> None:
conf = self.get_config(
self.Schema,
- {'repo_url': "https://github.com/mkdocs/mkdocs"},
+ {'repo_url': "https://github.com/properdocs/properdocs"},
)
assert_type(conf.repo_name, Optional[str])
self.assertEqual(conf.repo_name, "GitHub")
@@ -485,12 +485,12 @@ def test_repo_name_custom(self) -> None:
def test_edit_uri_github(self) -> None:
conf = self.get_config(
self.Schema,
- {'repo_url': "https://github.com/mkdocs/mkdocs"},
+ {'repo_url': "https://github.com/properdocs/properdocs"},
)
assert_type(conf.edit_uri, Optional[str])
assert_type(conf.repo_url, Optional[str])
self.assertEqual(conf.edit_uri, 'edit/master/docs/')
- self.assertEqual(conf.repo_url, "https://github.com/mkdocs/mkdocs")
+ self.assertEqual(conf.repo_url, "https://github.com/properdocs/properdocs")
def test_edit_uri_bitbucket(self) -> None:
conf = self.get_config(
@@ -518,7 +518,7 @@ def test_edit_uri_custom(self) -> None:
def test_repo_name_custom_and_empty_edit_uri(self) -> None:
conf = self.get_config(
self.Schema,
- {'repo_url': "https://github.com/mkdocs/mkdocs", 'repo_name': 'mkdocs'},
+ {'repo_url': "https://github.com/properdocs/properdocs", 'repo_name': 'properdocs'},
)
self.assertEqual(conf.edit_uri, 'edit/master/docs/')
@@ -526,7 +526,7 @@ def test_edit_uri_template_ok(self) -> None:
conf = self.get_config(
self.Schema,
{
- 'repo_url': "https://github.com/mkdocs/mkdocs",
+ 'repo_url': "https://github.com/properdocs/properdocs",
'edit_uri_template': 'edit/foo/docs/{path}',
},
)
@@ -540,7 +540,7 @@ def test_edit_uri_template_errors(self) -> None:
self.get_config(
self.Schema,
{
- 'repo_url': "https://github.com/mkdocs/mkdocs",
+ 'repo_url': "https://github.com/properdocs/properdocs",
'edit_uri_template': 'edit/master/{path',
},
)
@@ -549,7 +549,7 @@ def test_edit_uri_template_errors(self) -> None:
self.get_config(
self.Schema,
{
- 'repo_url': "https://github.com/mkdocs/mkdocs",
+ 'repo_url': "https://github.com/properdocs/properdocs",
'edit_uri_template': 'edit/master/{path!z}',
},
)
@@ -558,7 +558,7 @@ def test_edit_uri_template_errors(self) -> None:
self.get_config(
self.Schema,
{
- 'repo_url': "https://github.com/mkdocs/mkdocs",
+ 'repo_url': "https://github.com/properdocs/properdocs",
'edit_uri_template': 'edit/master/{foo}',
},
)
@@ -567,7 +567,7 @@ def test_edit_uri_template_warning(self) -> None:
conf = self.get_config(
self.Schema,
{
- 'repo_url': "https://github.com/mkdocs/mkdocs",
+ 'repo_url': "https://github.com/properdocs/properdocs",
'edit_uri': 'edit',
'edit_uri_template': 'edit/master/{path}',
},
@@ -1067,7 +1067,7 @@ class Schema(Config):
def test_doc_dir_in_site_dir(self) -> None:
j = os.path.join
# The parent dir is not the same on every system, so use the actual dir name
- parent_dir = mkdocs.__file__.split(os.sep)[-3]
+ parent_dir = properdocs.__file__.split(os.sep)[-3]
test_configs = (
{'docs_dir': j('site', 'docs'), 'site_dir': 'site'},
@@ -1215,7 +1215,7 @@ class Schema(Config):
self.get_config(Schema, {'option': config})
def test_theme_invalid_type(self) -> None:
- config = ['mkdocs2']
+ config = ['mkdocs']
class Schema(Config):
option = c.Theme()
@@ -1582,7 +1582,7 @@ def defaults(self):
}
class Schema(Config):
- validation = c.PropagatingSubConfig[defaults.MkDocsConfig.Validation]()
+ validation = c.PropagatingSubConfig[defaults.ProperDocsConfig.Validation]()
def test_unspecified(self) -> None:
cfgs: list[dict] = [{}, {'validation': {}}]
@@ -1946,7 +1946,7 @@ def load(self):
@mock.patch(
- 'mkdocs.plugins.entry_points',
+ 'properdocs.plugins.entry_points',
mock.Mock(
return_value=[
FakeEntryPoint('sample', FakePlugin),
diff --git a/mkdocs/tests/config/config_tests.py b/properdocs/tests/config/config_tests.py
similarity index 89%
rename from mkdocs/tests/config/config_tests.py
rename to properdocs/tests/config/config_tests.py
index 6299d37f..ddb63558 100644
--- a/mkdocs/tests/config/config_tests.py
+++ b/properdocs/tests/config/config_tests.py
@@ -3,14 +3,14 @@
import os
import unittest
-import mkdocs
-from mkdocs import config
-from mkdocs.config import config_options as c
-from mkdocs.config import defaults
-from mkdocs.config.base import ValidationError
-from mkdocs.exceptions import ConfigurationError
-from mkdocs.localization import parse_locale
-from mkdocs.tests.base import dedent, tempdir
+import properdocs
+from properdocs import config
+from properdocs.config import config_options as c
+from properdocs.config import defaults
+from properdocs.config.base import ValidationError
+from properdocs.exceptions import ConfigurationError
+from properdocs.localization import parse_locale
+from properdocs.tests.base import dedent, tempdir
class ConfigTests(unittest.TestCase):
@@ -19,7 +19,7 @@ def test_missing_config_file(self):
config.load_config(config_file='bad_filename.yaml')
def test_missing_site_name(self):
- conf = defaults.MkDocsConfig()
+ conf = defaults.ProperDocsConfig()
conf.load_dict({})
errors, warnings = conf.validate()
self.assertEqual(
@@ -95,13 +95,13 @@ def test_theme(self, mytheme, custom):
},
]
- mkdocs_dir = os.path.abspath(os.path.dirname(mkdocs.__file__))
- mkdocs_templates_dir = os.path.join(mkdocs_dir, 'templates')
- theme_dir = os.path.abspath(os.path.join(mkdocs_dir, 'themes'))
+ properdocs_dir = os.path.abspath(os.path.dirname(properdocs.__file__))
+ properdocs_templates_dir = os.path.join(properdocs_dir, 'templates')
+ theme_dir = os.path.abspath(os.path.join(properdocs_dir, 'themes'))
results = (
{
- 'dirs': [os.path.join(theme_dir, 'mkdocs'), mkdocs_templates_dir],
+ 'dirs': [os.path.join(theme_dir, 'mkdocs'), properdocs_templates_dir],
'static_templates': ['404.html', 'sitemap.xml'],
'vars': {
'name': 'mkdocs',
@@ -121,7 +121,7 @@ def test_theme(self, mytheme, custom):
},
},
{
- 'dirs': [os.path.join(theme_dir, 'readthedocs'), mkdocs_templates_dir],
+ 'dirs': [os.path.join(theme_dir, 'readthedocs'), properdocs_templates_dir],
'static_templates': ['404.html', 'sitemap.xml'],
'vars': {
'name': 'readthedocs',
@@ -142,7 +142,7 @@ def test_theme(self, mytheme, custom):
},
},
{
- 'dirs': [os.path.join(theme_dir, 'readthedocs'), mkdocs_templates_dir],
+ 'dirs': [os.path.join(theme_dir, 'readthedocs'), properdocs_templates_dir],
'static_templates': ['404.html', 'sitemap.xml'],
'vars': {
'name': 'readthedocs',
@@ -163,12 +163,12 @@ def test_theme(self, mytheme, custom):
},
},
{
- 'dirs': [mytheme, mkdocs_templates_dir],
+ 'dirs': [mytheme, properdocs_templates_dir],
'static_templates': ['sitemap.xml'],
'vars': {'name': None, 'locale': parse_locale('en')},
},
{
- 'dirs': [custom, os.path.join(theme_dir, 'readthedocs'), mkdocs_templates_dir],
+ 'dirs': [custom, os.path.join(theme_dir, 'readthedocs'), properdocs_templates_dir],
'static_templates': ['404.html', 'sitemap.xml'],
'vars': {
'name': 'readthedocs',
@@ -189,7 +189,7 @@ def test_theme(self, mytheme, custom):
},
},
{
- 'dirs': [os.path.join(theme_dir, 'mkdocs'), mkdocs_templates_dir],
+ 'dirs': [os.path.join(theme_dir, 'mkdocs'), properdocs_templates_dir],
'static_templates': ['404.html', 'sitemap.xml', 'foo.html'],
'vars': {
'name': 'mkdocs',
@@ -224,7 +224,7 @@ def test_theme(self, mytheme, custom):
self.assertEqual(dict(conf['theme']), result['vars'])
def test_empty_nav(self):
- conf = defaults.MkDocsConfig(
+ conf = defaults.ProperDocsConfig(
config_file_path=os.path.join(os.path.abspath('.'), 'mkdocs.yml')
)
conf.load_dict({'site_name': 'Example'})
@@ -232,7 +232,7 @@ def test_empty_nav(self):
self.assertEqual(conf['nav'], None)
def test_error_on_pages(self):
- conf = defaults.MkDocsConfig()
+ conf = defaults.ProperDocsConfig()
conf.load_dict(
{
'site_name': 'Example',
@@ -240,7 +240,9 @@ def test_error_on_pages(self):
}
)
errors, warnings = conf.validate()
- exp_error = "The configuration option 'pages' was removed from MkDocs. Use 'nav' instead."
+ exp_error = (
+ "The configuration option 'pages' was removed from ProperDocs. Use 'nav' instead."
+ )
self.assertEqual(errors, [('pages', ValidationError(exp_error))])
self.assertEqual(warnings, [])
diff --git a/mkdocs/tests/gh_deploy_tests.py b/properdocs/tests/gh_deploy_tests.py
similarity index 52%
rename from mkdocs/tests/gh_deploy_tests.py
rename to properdocs/tests/gh_deploy_tests.py
index 67b41aa6..b2e9d9b6 100644
--- a/mkdocs/tests/gh_deploy_tests.py
+++ b/properdocs/tests/gh_deploy_tests.py
@@ -3,10 +3,10 @@
from ghp_import import GhpError # type: ignore
-from mkdocs import __version__
-from mkdocs.commands import gh_deploy
-from mkdocs.exceptions import Abort
-from mkdocs.tests.base import load_config
+from properdocs import __version__
+from properdocs.commands import gh_deploy
+from properdocs.exceptions import Abort
+from properdocs.tests.base import load_config
class TestGitHubDeploy(unittest.TestCase):
@@ -31,37 +31,39 @@ def test_get_current_sha(self, mock_popeno):
@mock.patch('subprocess.Popen')
def test_get_remote_url_ssh(self, mock_popeno):
mock_popeno().communicate.return_value = (
- b'git@github.com:mkdocs/mkdocs.git\n',
+ b'git@github.com:properdocs/properdocs.git\n',
b'',
)
- expected = ('git@', 'mkdocs/mkdocs.git')
+ expected = ('git@', 'properdocs/properdocs.git')
self.assertEqual(expected, gh_deploy._get_remote_url('origin'))
@mock.patch('subprocess.Popen')
def test_get_remote_url_http(self, mock_popeno):
mock_popeno().communicate.return_value = (
- b'https://github.com/mkdocs/mkdocs.git\n',
+ b'https://github.com/properdocs/properdocs.git\n',
b'',
)
- expected = ('https://', 'mkdocs/mkdocs.git')
+ expected = ('https://', 'properdocs/properdocs.git')
self.assertEqual(expected, gh_deploy._get_remote_url('origin'))
@mock.patch('subprocess.Popen')
def test_get_remote_url_enterprise(self, mock_popeno):
mock_popeno().communicate.return_value = (
- b'https://notgh.com/mkdocs/mkdocs.git\n',
+ b'https://notgh.com/properdocs/properdocs.git\n',
b'',
)
expected = (None, None)
self.assertEqual(expected, gh_deploy._get_remote_url('origin'))
- @mock.patch('mkdocs.commands.gh_deploy._is_cwd_git_repo', mock.Mock(return_value=True))
- @mock.patch('mkdocs.commands.gh_deploy._get_current_sha', mock.Mock(return_value='shashas'))
- @mock.patch('mkdocs.commands.gh_deploy._get_remote_url', mock.Mock(return_value=(None, None)))
- @mock.patch('mkdocs.commands.gh_deploy._check_version', mock.Mock())
+ @mock.patch('properdocs.commands.gh_deploy._is_cwd_git_repo', mock.Mock(return_value=True))
+ @mock.patch('properdocs.commands.gh_deploy._get_current_sha', mock.Mock(return_value='shashas'))
+ @mock.patch(
+ 'properdocs.commands.gh_deploy._get_remote_url', mock.Mock(return_value=(None, None))
+ )
+ @mock.patch('properdocs.commands.gh_deploy._check_version', mock.Mock())
@mock.patch('ghp_import.ghp_import', mock.Mock())
def test_deploy(self):
config = load_config(
@@ -69,10 +71,12 @@ def test_deploy(self):
)
gh_deploy.gh_deploy(config)
- @mock.patch('mkdocs.commands.gh_deploy._is_cwd_git_repo', mock.Mock(return_value=True))
- @mock.patch('mkdocs.commands.gh_deploy._get_current_sha', mock.Mock(return_value='shashas'))
- @mock.patch('mkdocs.commands.gh_deploy._get_remote_url', mock.Mock(return_value=(None, None)))
- @mock.patch('mkdocs.commands.gh_deploy._check_version', mock.Mock())
+ @mock.patch('properdocs.commands.gh_deploy._is_cwd_git_repo', mock.Mock(return_value=True))
+ @mock.patch('properdocs.commands.gh_deploy._get_current_sha', mock.Mock(return_value='shashas'))
+ @mock.patch(
+ 'properdocs.commands.gh_deploy._get_remote_url', mock.Mock(return_value=(None, None))
+ )
+ @mock.patch('properdocs.commands.gh_deploy._check_version', mock.Mock())
@mock.patch('ghp_import.ghp_import', mock.Mock())
@mock.patch('os.path.isfile', mock.Mock(return_value=False))
def test_deploy_no_cname(self):
@@ -81,13 +85,13 @@ def test_deploy_no_cname(self):
)
gh_deploy.gh_deploy(config)
- @mock.patch('mkdocs.commands.gh_deploy._is_cwd_git_repo', mock.Mock(return_value=True))
- @mock.patch('mkdocs.commands.gh_deploy._get_current_sha', mock.Mock(return_value='shashas'))
+ @mock.patch('properdocs.commands.gh_deploy._is_cwd_git_repo', mock.Mock(return_value=True))
+ @mock.patch('properdocs.commands.gh_deploy._get_current_sha', mock.Mock(return_value='shashas'))
@mock.patch(
- 'mkdocs.commands.gh_deploy._get_remote_url',
- mock.Mock(return_value=('git@', 'mkdocs/mkdocs.git')),
+ 'properdocs.commands.gh_deploy._get_remote_url',
+ mock.Mock(return_value=('git@', 'properdocs/properdocs.git')),
)
- @mock.patch('mkdocs.commands.gh_deploy._check_version', mock.Mock())
+ @mock.patch('properdocs.commands.gh_deploy._check_version', mock.Mock())
@mock.patch('ghp_import.ghp_import', mock.Mock())
def test_deploy_hostname(self):
config = load_config(
@@ -95,10 +99,12 @@ def test_deploy_hostname(self):
)
gh_deploy.gh_deploy(config)
- @mock.patch('mkdocs.commands.gh_deploy._is_cwd_git_repo', mock.Mock(return_value=True))
- @mock.patch('mkdocs.commands.gh_deploy._get_current_sha', mock.Mock(return_value='shashas'))
- @mock.patch('mkdocs.commands.gh_deploy._get_remote_url', mock.Mock(return_value=(None, None)))
- @mock.patch('mkdocs.commands.gh_deploy._check_version')
+ @mock.patch('properdocs.commands.gh_deploy._is_cwd_git_repo', mock.Mock(return_value=True))
+ @mock.patch('properdocs.commands.gh_deploy._get_current_sha', mock.Mock(return_value='shashas'))
+ @mock.patch(
+ 'properdocs.commands.gh_deploy._get_remote_url', mock.Mock(return_value=(None, None))
+ )
+ @mock.patch('properdocs.commands.gh_deploy._check_version')
@mock.patch('ghp_import.ghp_import', mock.Mock())
def test_deploy_ignore_version_default(self, check_version):
config = load_config(
@@ -107,10 +113,12 @@ def test_deploy_ignore_version_default(self, check_version):
gh_deploy.gh_deploy(config)
check_version.assert_called_once()
- @mock.patch('mkdocs.commands.gh_deploy._is_cwd_git_repo', mock.Mock(return_value=True))
- @mock.patch('mkdocs.commands.gh_deploy._get_current_sha', mock.Mock(return_value='shashas'))
- @mock.patch('mkdocs.commands.gh_deploy._get_remote_url', mock.Mock(return_value=(None, None)))
- @mock.patch('mkdocs.commands.gh_deploy._check_version')
+ @mock.patch('properdocs.commands.gh_deploy._is_cwd_git_repo', mock.Mock(return_value=True))
+ @mock.patch('properdocs.commands.gh_deploy._get_current_sha', mock.Mock(return_value='shashas'))
+ @mock.patch(
+ 'properdocs.commands.gh_deploy._get_remote_url', mock.Mock(return_value=(None, None))
+ )
+ @mock.patch('properdocs.commands.gh_deploy._check_version')
@mock.patch('ghp_import.ghp_import', mock.Mock())
def test_deploy_ignore_version(self, check_version):
config = load_config(
@@ -119,22 +127,22 @@ def test_deploy_ignore_version(self, check_version):
gh_deploy.gh_deploy(config, ignore_version=True)
check_version.assert_not_called()
- @mock.patch('mkdocs.commands.gh_deploy._is_cwd_git_repo', mock.Mock(return_value=True))
- @mock.patch('mkdocs.commands.gh_deploy._get_current_sha', mock.Mock(return_value='shashas'))
- @mock.patch('mkdocs.commands.gh_deploy._check_version', mock.Mock())
+ @mock.patch('properdocs.commands.gh_deploy._is_cwd_git_repo', mock.Mock(return_value=True))
+ @mock.patch('properdocs.commands.gh_deploy._get_current_sha', mock.Mock(return_value='shashas'))
+ @mock.patch('properdocs.commands.gh_deploy._check_version', mock.Mock())
@mock.patch('ghp_import.ghp_import', mock.Mock(side_effect=GhpError('TestError123')))
def test_deploy_error(self):
config = load_config(
remote_branch='test',
)
- with self.assertLogs('mkdocs', level='ERROR') as cm:
+ with self.assertLogs('properdocs', level='ERROR') as cm:
with self.assertRaises(Abort):
gh_deploy.gh_deploy(config)
self.assertEqual(
cm.output,
[
- 'ERROR:mkdocs.commands.gh_deploy:Failed to deploy to GitHub with error: \n'
+ 'ERROR:properdocs.commands.gh_deploy:Failed to deploy to GitHub with error: \n'
'TestError123'
],
)
@@ -142,34 +150,34 @@ def test_deploy_error(self):
class TestGitHubDeployLogs(unittest.TestCase):
@mock.patch('subprocess.Popen')
- def test_mkdocs_newer(self, mock_popeno):
+ def test_properdocs_newer(self, mock_popeno):
mock_popeno().communicate.return_value = (
- b'Deployed 12345678 with MkDocs version: 0.1.2\n',
+ b'Deployed 12345678 with ProperDocs version: 0.1.2\n',
b'',
)
- with self.assertLogs('mkdocs') as cm:
+ with self.assertLogs('properdocs') as cm:
gh_deploy._check_version('gh-pages')
self.assertEqual(
'\n'.join(cm.output),
- f'INFO:mkdocs.commands.gh_deploy:Previous deployment was done with MkDocs '
+ f'INFO:properdocs.commands.gh_deploy:Previous deployment was done with ProperDocs '
f'version 0.1.2; you are deploying with a newer version ({__version__})',
)
@mock.patch('subprocess.Popen')
- def test_mkdocs_older(self, mock_popeno):
+ def test_properdocs_older(self, mock_popeno):
mock_popeno().communicate.return_value = (
- b'Deployed 12345678 with MkDocs version: 10.1.2\n',
+ b'Deployed 12345678 with ProperDocs version: 10.1.2\n',
b'',
)
- with self.assertLogs('mkdocs', level='ERROR') as cm:
+ with self.assertLogs('properdocs', level='ERROR') as cm:
with self.assertRaises(Abort):
gh_deploy._check_version('gh-pages')
self.assertEqual(
'\n'.join(cm.output),
- f'ERROR:mkdocs.commands.gh_deploy:Deployment terminated: Previous deployment was made with '
- f'MkDocs version 10.1.2; you are attempting to deploy with an older version ({__version__}).'
+ f'ERROR:properdocs.commands.gh_deploy:Deployment terminated: Previous deployment was made with '
+ f'ProperDocs version 10.1.2; you are attempting to deploy with an older version ({__version__}).'
f' Use --ignore-version to deploy anyway.',
)
@@ -177,9 +185,9 @@ def test_mkdocs_older(self, mock_popeno):
def test_version_unknown(self, mock_popeno):
mock_popeno().communicate.return_value = (b'No version specified\n', b'')
- with self.assertLogs('mkdocs') as cm:
+ with self.assertLogs('properdocs') as cm:
gh_deploy._check_version('gh-pages')
self.assertEqual(
'\n'.join(cm.output),
- 'WARNING:mkdocs.commands.gh_deploy:Version check skipped: No version specified in previous deployment.',
+ 'WARNING:properdocs.commands.gh_deploy:Version check skipped: No version specified in previous deployment.',
)
diff --git a/mkdocs/tests/integration.py b/properdocs/tests/integration.py
similarity index 79%
rename from mkdocs/tests/integration.py
rename to properdocs/tests/integration.py
index a992cac6..372625b8 100644
--- a/mkdocs/tests/integration.py
+++ b/properdocs/tests/integration.py
@@ -1,17 +1,17 @@
"""
-# MkDocs Integration tests.
+# ProperDocs Integration tests.
-This is a simple integration test that builds the MkDocs
+This is a simple integration test that builds the ProperDocs
documentation against all of the builtin themes.
-From the root of the MkDocs git repo, use:
+From the root of the ProperDocs git repo, use:
- python -m mkdocs.tests.integration --help
+ python -m properdocs.tests.integration --help
TODOs
- Build with different configuration options.
- - Build documentation other than just MkDocs as it is relatively simple.
+ - Build documentation other than just ProperDocs as it is relatively simple.
"""
@@ -22,7 +22,7 @@
import click
-log = logging.getLogger('mkdocs')
+log = logging.getLogger('properdocs')
DIR = os.path.dirname(__file__)
MKDOCS_CONFIG = os.path.abspath(os.path.join(DIR, '../../mkdocs.yml'))
@@ -38,7 +38,7 @@
)
def main(output=None):
if output is None:
- directory = tempfile.TemporaryDirectory(prefix='mkdocs_integration-')
+ directory = tempfile.TemporaryDirectory(prefix='properdocs_integration-')
output = directory.name
log.propagate = False
@@ -48,7 +48,7 @@ def main(output=None):
log.addHandler(stream)
log.setLevel(logging.DEBUG)
- base_cmd = ['mkdocs', 'build', '-q', '-s', '--site-dir']
+ base_cmd = ['properdocs', 'build', '-q', '-s', '--site-dir']
log.debug("Building installed themes.")
for theme in sorted(MKDOCS_THEMES):
diff --git a/mkdocs/tests/integration/complicated_config/documentation/custom.html b/properdocs/tests/integration/complicated_config/documentation/custom.html
similarity index 100%
rename from mkdocs/tests/integration/complicated_config/documentation/custom.html
rename to properdocs/tests/integration/complicated_config/documentation/custom.html
diff --git a/mkdocs/tests/integration/complicated_config/documentation/index.md b/properdocs/tests/integration/complicated_config/documentation/index.md
similarity index 63%
rename from mkdocs/tests/integration/complicated_config/documentation/index.md
rename to properdocs/tests/integration/complicated_config/documentation/index.md
index d82cb48e..30ed7a21 100644
--- a/mkdocs/tests/integration/complicated_config/documentation/index.md
+++ b/properdocs/tests/integration/complicated_config/documentation/index.md
@@ -1,4 +1,4 @@
# Complicated Config!
There is only one page, but the config is complicated and re-uses it many
-times. It also aims to use every config in MkDocs.
+times. It also aims to use every config in ProperDocs.
diff --git a/mkdocs/tests/integration/complicated_config/documentation/tweak.css b/properdocs/tests/integration/complicated_config/documentation/tweak.css
similarity index 100%
rename from mkdocs/tests/integration/complicated_config/documentation/tweak.css
rename to properdocs/tests/integration/complicated_config/documentation/tweak.css
diff --git a/mkdocs/tests/integration/complicated_config/documentation/tweak.js b/properdocs/tests/integration/complicated_config/documentation/tweak.js
similarity index 100%
rename from mkdocs/tests/integration/complicated_config/documentation/tweak.js
rename to properdocs/tests/integration/complicated_config/documentation/tweak.js
diff --git a/mkdocs/tests/integration/complicated_config/mkdocs.yml b/properdocs/tests/integration/complicated_config/mkdocs.yml
similarity index 84%
rename from mkdocs/tests/integration/complicated_config/mkdocs.yml
rename to properdocs/tests/integration/complicated_config/mkdocs.yml
index d654cc7f..e781af8f 100644
--- a/mkdocs/tests/integration/complicated_config/mkdocs.yml
+++ b/properdocs/tests/integration/complicated_config/mkdocs.yml
@@ -11,7 +11,7 @@ nav:
- Version 2: index.md
- Version 3: index.md
-site_url: http://www.mkdocs.org/
+site_url: http://properdocs.org/
docs_dir: documentation
site_dir: output
@@ -24,7 +24,7 @@ copyright: "Dougal Matthews"
dev_addr: ::1:8000
use_directory_urls: false
-repo_url: https://github.com/mkdocs/mkdocs/tree/master/mkdocs/tests/integration
+repo_url: https://github.com/properdocs/properdocs/tree/master/properdocs/tests/integration
repo_name: "GitHub"
extra_css: ["tweak.css"]
diff --git a/mkdocs/tests/integration/complicated_config/theme_tweaks/404.html b/properdocs/tests/integration/complicated_config/theme_tweaks/404.html
similarity index 100%
rename from mkdocs/tests/integration/complicated_config/theme_tweaks/404.html
rename to properdocs/tests/integration/complicated_config/theme_tweaks/404.html
diff --git a/properdocs/tests/integration/minimal/docs/testing.md b/properdocs/tests/integration/minimal/docs/testing.md
new file mode 100644
index 00000000..40fc3399
--- /dev/null
+++ b/properdocs/tests/integration/minimal/docs/testing.md
@@ -0,0 +1,17 @@
+# Welcome to ProperDocs
+
+For full documentation visit [properdocs.org](https://properdocs.org).
+
+## Commands
+
+* `properdocs new [dir-name]` - Create a new project.
+* `properdocs serve` - Start the live-reloading docs server.
+* `properdocs build` - Build the documentation site.
+* `properdocs help` - Print this help message.
+
+## Project layout
+
+ mkdocs.yml # The configuration file.
+ docs/
+ index.md # The documentation homepage.
+ ... # Other markdown pages, images and other files.
diff --git a/mkdocs/tests/integration/minimal/mkdocs.yml b/properdocs/tests/integration/minimal/mkdocs.yml
similarity index 100%
rename from mkdocs/tests/integration/minimal/mkdocs.yml
rename to properdocs/tests/integration/minimal/mkdocs.yml
diff --git a/mkdocs/tests/integration/projects.yaml b/properdocs/tests/integration/projects.yaml
similarity index 97%
rename from mkdocs/tests/integration/projects.yaml
rename to properdocs/tests/integration/projects.yaml
index 4cca01e3..0bef905f 100644
--- a/mkdocs/tests/integration/projects.yaml
+++ b/properdocs/tests/integration/projects.yaml
@@ -1,5 +1,5 @@
# DO NOT UPDATE THIS FILE, only for tests.
-# This is an intentionally small subset of https://github.com/mkdocs/catalog
+# This is an intentionally small subset of https://github.com/properdocs/catalog
projects:
- name: Material for MkDocs
mkdocs_theme: material
diff --git a/mkdocs/tests/integration/subpages/docs/image.png b/properdocs/tests/integration/subpages/docs/image.png
similarity index 100%
rename from mkdocs/tests/integration/subpages/docs/image.png
rename to properdocs/tests/integration/subpages/docs/image.png
diff --git a/mkdocs/tests/integration/subpages/docs/index.md b/properdocs/tests/integration/subpages/docs/index.md
similarity index 100%
rename from mkdocs/tests/integration/subpages/docs/index.md
rename to properdocs/tests/integration/subpages/docs/index.md
diff --git a/mkdocs/tests/integration/subpages/docs/metadata.md b/properdocs/tests/integration/subpages/docs/metadata.md
similarity index 68%
rename from mkdocs/tests/integration/subpages/docs/metadata.md
rename to properdocs/tests/integration/subpages/docs/metadata.md
index d871ea26..28e2f966 100644
--- a/mkdocs/tests/integration/subpages/docs/metadata.md
+++ b/properdocs/tests/integration/subpages/docs/metadata.md
@@ -1,5 +1,5 @@
title: A Page Title
-# Welcome to MkDocs
+# Welcome to ProperDocs
Some page content goes here.
diff --git a/mkdocs/tests/integration/subpages/docs/non-index.md b/properdocs/tests/integration/subpages/docs/non-index.md
similarity index 100%
rename from mkdocs/tests/integration/subpages/docs/non-index.md
rename to properdocs/tests/integration/subpages/docs/non-index.md
diff --git a/mkdocs/tests/integration/subpages/docs/page-title.md b/properdocs/tests/integration/subpages/docs/page-title.md
similarity index 100%
rename from mkdocs/tests/integration/subpages/docs/page-title.md
rename to properdocs/tests/integration/subpages/docs/page-title.md
diff --git a/mkdocs/tests/integration/subpages/docs/pageTitle.md b/properdocs/tests/integration/subpages/docs/pageTitle.md
similarity index 100%
rename from mkdocs/tests/integration/subpages/docs/pageTitle.md
rename to properdocs/tests/integration/subpages/docs/pageTitle.md
diff --git a/mkdocs/tests/integration/subpages/docs/sub1/image.png b/properdocs/tests/integration/subpages/docs/sub1/image.png
similarity index 100%
rename from mkdocs/tests/integration/subpages/docs/sub1/image.png
rename to properdocs/tests/integration/subpages/docs/sub1/image.png
diff --git a/mkdocs/tests/integration/subpages/docs/sub1/index.md b/properdocs/tests/integration/subpages/docs/sub1/index.md
similarity index 100%
rename from mkdocs/tests/integration/subpages/docs/sub1/index.md
rename to properdocs/tests/integration/subpages/docs/sub1/index.md
diff --git a/mkdocs/tests/integration/subpages/docs/sub1/non-index.md b/properdocs/tests/integration/subpages/docs/sub1/non-index.md
similarity index 100%
rename from mkdocs/tests/integration/subpages/docs/sub1/non-index.md
rename to properdocs/tests/integration/subpages/docs/sub1/non-index.md
diff --git a/mkdocs/tests/integration/subpages/docs/sub1/sub1a/index.md b/properdocs/tests/integration/subpages/docs/sub1/sub1a/index.md
similarity index 100%
rename from mkdocs/tests/integration/subpages/docs/sub1/sub1a/index.md
rename to properdocs/tests/integration/subpages/docs/sub1/sub1a/index.md
diff --git a/mkdocs/tests/integration/subpages/docs/sub1/sub1a/non-index.md b/properdocs/tests/integration/subpages/docs/sub1/sub1a/non-index.md
similarity index 100%
rename from mkdocs/tests/integration/subpages/docs/sub1/sub1a/non-index.md
rename to properdocs/tests/integration/subpages/docs/sub1/sub1a/non-index.md
diff --git a/mkdocs/tests/integration/subpages/docs/sub2/index.md b/properdocs/tests/integration/subpages/docs/sub2/index.md
similarity index 100%
rename from mkdocs/tests/integration/subpages/docs/sub2/index.md
rename to properdocs/tests/integration/subpages/docs/sub2/index.md
diff --git a/mkdocs/tests/integration/subpages/docs/sub2/non-index.md b/properdocs/tests/integration/subpages/docs/sub2/non-index.md
similarity index 100%
rename from mkdocs/tests/integration/subpages/docs/sub2/non-index.md
rename to properdocs/tests/integration/subpages/docs/sub2/non-index.md
diff --git a/mkdocs/tests/integration/subpages/mkdocs.yml b/properdocs/tests/integration/subpages/mkdocs.yml
similarity index 100%
rename from mkdocs/tests/integration/subpages/mkdocs.yml
rename to properdocs/tests/integration/subpages/mkdocs.yml
diff --git a/mkdocs/tests/integration/unicode/docs/index.md b/properdocs/tests/integration/unicode/docs/index.md
similarity index 100%
rename from mkdocs/tests/integration/unicode/docs/index.md
rename to properdocs/tests/integration/unicode/docs/index.md
diff --git "a/properdocs/tests/integration/unicode/docs/\303\234bersicht.md" "b/properdocs/tests/integration/unicode/docs/\303\234bersicht.md"
new file mode 100644
index 00000000..9f9b518f
--- /dev/null
+++ "b/properdocs/tests/integration/unicode/docs/\303\234bersicht.md"
@@ -0,0 +1,17 @@
+Welcome to ProperDocs
+
+For full documentation visit [properdocs.org](https://properdocs.org).
+
+## Commands
+
+* `properdocs new [dir-name]` - Create a new project.
+* `properdocs serve` - Start the live-reloading docs server.
+* `properdocs build` - Build the documentation site.
+* `properdocs -h` - Print this help message.
+
+## Project layout
+
+ mkdocs.yml # The configuration file.
+ docs/
+ index.md # The documentation homepage.
+ ... # Other markdown pages, images and other files.
diff --git "a/properdocs/tests/integration/unicode/docs/\342\231\252.md" "b/properdocs/tests/integration/unicode/docs/\342\231\252.md"
new file mode 100644
index 00000000..a8847763
--- /dev/null
+++ "b/properdocs/tests/integration/unicode/docs/\342\231\252.md"
@@ -0,0 +1,17 @@
+Welcome to ProperDocs
+
+For full documentation visit [properdocs.org](https://properdocs.org).
+
+## Commands
+
+* `properdocs new [dir-name]` - Create a new project.
+* `properdocs serve` - Start the live-reloading docs server.
+* `properdocs build` - Build the documentation site.
+* `properdocs help` - Print this help message.
+
+## Project layout
+
+ mkdocs.yml # The configuration file.
+ docs/
+ index.md # The documentation homepage.
+ ... # Other markdown pages, images and other files.
diff --git a/mkdocs/tests/integration/unicode/mkdocs.yml b/properdocs/tests/integration/unicode/mkdocs.yml
similarity index 100%
rename from mkdocs/tests/integration/unicode/mkdocs.yml
rename to properdocs/tests/integration/unicode/mkdocs.yml
diff --git a/mkdocs/tests/livereload_tests.py b/properdocs/tests/livereload_tests.py
similarity index 95%
rename from mkdocs/tests/livereload_tests.py
rename to properdocs/tests/livereload_tests.py
index b19009a3..cbeb494e 100644
--- a/mkdocs/tests/livereload_tests.py
+++ b/properdocs/tests/livereload_tests.py
@@ -10,8 +10,8 @@
from pathlib import Path
from unittest import mock
-from mkdocs.livereload import LiveReloadServer
-from mkdocs.tests.base import change_dir, tempdir
+from properdocs.livereload import LiveReloadServer
+from properdocs.tests.base import change_dir, tempdir
class FakeRequest:
@@ -127,7 +127,7 @@ def rebuild():
Path(docs_dir, "foo.docs").write_text("b")
self.assertTrue(started_building.wait(timeout=10))
- with self.assertLogs("mkdocs.livereload"):
+ with self.assertLogs("properdocs.livereload"):
_, output = do_request(server, "GET /foo.site")
self.assertIn("404", output)
@@ -288,7 +288,7 @@ def rebuild():
time.sleep(0.01)
err = io.StringIO()
- with contextlib.redirect_stderr(err), self.assertLogs("mkdocs.livereload") as cm:
+ with contextlib.redirect_stderr(err), self.assertLogs("properdocs.livereload") as cm:
Path(docs_dir, "foo.docs").write_text("b")
started_building.wait(timeout=10)
@@ -345,7 +345,7 @@ def test_serves_directory_index(self, site_dir):
_, output = do_request(server, f"GET {path}")
self.assertRegex(output, r"^bbb$")
- with self.assertLogs("mkdocs.livereload"):
+ with self.assertLogs("properdocs.livereload"):
headers, _ = do_request(server, "GET /foo/index.html/")
self.assertEqual(headers["_status"], "404 Not Found")
@@ -357,17 +357,17 @@ def test_serves_directory_index(self, site_dir):
)
def test_redirects_to_directory(self, site_dir):
with testing_server(site_dir, mount_path="/sub") as server:
- with self.assertLogs("mkdocs.livereload"):
+ with self.assertLogs("properdocs.livereload"):
headers, _ = do_request(server, "GET /sub/foo/bar")
self.assertEqual(headers["_status"], "302 Found")
self.assertEqual(headers.get("location"), "/sub/foo/bar/")
- with self.assertLogs("mkdocs.livereload"):
+ with self.assertLogs("properdocs.livereload"):
headers, _ = do_request(server, "GET /sub/foo/測試")
self.assertEqual(headers["_status"], "302 Found")
self.assertEqual(headers.get("location"), "/sub/foo/%E6%B8%AC%E8%A9%A6/")
- with self.assertLogs("mkdocs.livereload"):
+ with self.assertLogs("properdocs.livereload"):
headers, _ = do_request(server, "GET /sub/foo/%E6%B8%AC%E8%A9%A6")
self.assertEqual(headers["_status"], "302 Found")
self.assertEqual(headers.get("location"), "/sub/foo/%E6%B8%AC%E8%A9%A6/")
@@ -380,7 +380,7 @@ def test_serves_with_unicode_characters(self, site_dir):
_, output = do_request(server, "GET /%D1%8F.html")
self.assertRegex(output, r"^aaa$")
- with self.assertLogs("mkdocs.livereload"):
+ with self.assertLogs("properdocs.livereload"):
headers, _ = do_request(server, "GET /%D1.html")
self.assertEqual(headers["_status"], "404 Not Found")
@@ -432,21 +432,21 @@ def test_serves_polling_with_timeout(self, site_dir):
def test_error_handler(self, site_dir):
with testing_server(site_dir) as server:
server.error_handler = lambda code: b"[%d]" % code
- with self.assertLogs("mkdocs.livereload") as cm:
+ with self.assertLogs("properdocs.livereload") as cm:
headers, output = do_request(server, "GET /missing")
self.assertEqual(headers["_status"], "404 Not Found")
self.assertEqual(output, "[404]")
self.assertRegex(
"\n".join(cm.output),
- r'^WARNING:mkdocs.livereload:.*"GET /missing HTTP/1.1" code 404',
+ r'^WARNING:properdocs.livereload:.*"GET /missing HTTP/1.1" code 404',
)
@tempdir()
def test_bad_error_handler(self, site_dir):
with testing_server(site_dir) as server:
server.error_handler = lambda code: 0 / 0
- with self.assertLogs("mkdocs.livereload") as cm:
+ with self.assertLogs("properdocs.livereload") as cm:
headers, output = do_request(server, "GET /missing")
self.assertEqual(headers["_status"], "404 Not Found")
@@ -491,14 +491,14 @@ def test_serves_from_mount_path(self, site_dir):
_, output = do_request(server, "GET /sub/sub/sub.html")
self.assertRegex(output, r"^bbb$")
- with self.assertLogs("mkdocs.livereload"):
+ with self.assertLogs("properdocs.livereload"):
headers, _ = do_request(server, "GET /sub/sub.html")
self.assertEqual(headers["_status"], "404 Not Found")
@tempdir()
def test_redirects_to_mount_path(self, site_dir):
with testing_server(site_dir, mount_path="/mount/path") as server:
- with self.assertLogs("mkdocs.livereload"):
+ with self.assertLogs("properdocs.livereload"):
headers, _ = do_request(server, "GET /")
self.assertEqual(headers["_status"], "302 Found")
self.assertEqual(headers.get("location"), "/mount/path/")
@@ -506,7 +506,7 @@ def test_redirects_to_mount_path(self, site_dir):
@tempdir()
def test_redirects_to_unicode_mount_path(self, site_dir):
with testing_server(site_dir, mount_path="/mount/測試") as server:
- with self.assertLogs("mkdocs.livereload"):
+ with self.assertLogs("properdocs.livereload"):
headers, _ = do_request(server, "GET /")
self.assertEqual(headers["_status"], "302 Found")
self.assertEqual(headers.get("location"), "/mount/%E6%B8%AC%E8%A9%A6/")
@@ -526,7 +526,7 @@ def test_watches_direct_symlinks(self, dest_docs_dir, origin_dir, tmp_dir):
def wait_for_build():
result = started_building.wait(timeout=10)
started_building.clear()
- with self.assertLogs("mkdocs.livereload"):
+ with self.assertLogs("properdocs.livereload"):
do_request(server, "GET /")
return result
@@ -561,7 +561,7 @@ def test_watches_through_symlinks(self, docs_dir, dir_to_link_to, tmp_dir):
def wait_for_build():
result = started_building.wait(timeout=10)
started_building.clear()
- with self.assertLogs("mkdocs.livereload"):
+ with self.assertLogs("properdocs.livereload"):
do_request(server, "GET /")
return result
diff --git a/mkdocs/tests/localization_tests.py b/properdocs/tests/localization_tests.py
similarity index 81%
rename from mkdocs/tests/localization_tests.py
rename to properdocs/tests/localization_tests.py
index 0dfbe275..8a744966 100644
--- a/mkdocs/tests/localization_tests.py
+++ b/properdocs/tests/localization_tests.py
@@ -4,9 +4,9 @@
import unittest
from unittest import mock
-from mkdocs.config.base import ValidationError
-from mkdocs.localization import install_translations, parse_locale
-from mkdocs.tests.base import tempdir
+from properdocs.config.base import ValidationError
+from properdocs.localization import install_translations, parse_locale
+from properdocs.tests.base import tempdir
class LocalizationTests(unittest.TestCase):
@@ -35,11 +35,11 @@ def test_invalid_locale(self):
@tempdir()
def test_no_translations_found(self, dir_without_translations):
- with self.assertLogs('mkdocs') as cm:
+ with self.assertLogs('properdocs') as cm:
install_translations(self.env, parse_locale('fr_CA'), [dir_without_translations])
self.assertEqual(
'\n'.join(cm.output),
- "WARNING:mkdocs.localization:No translations could be found for the locale 'fr_CA'. "
+ "WARNING:properdocs.localization:No translations could be found for the locale 'fr_CA'. "
"Defaulting to English.",
)
self.env.install_null_translations.assert_called_once()
@@ -48,7 +48,7 @@ def test_no_translations_found(self, dir_without_translations):
def test_translations_found(self, tdir):
translations = mock.Mock()
- with mock.patch('mkdocs.localization.Translations.load', return_value=translations):
+ with mock.patch('properdocs.localization.Translations.load', return_value=translations):
install_translations(self.env, parse_locale('en'), [tdir])
self.env.install_gettext_translations.assert_called_once_with(translations)
@@ -68,7 +68,7 @@ def side_effet(*args, **kwargs):
else:
self.fail()
- with mock.patch('mkdocs.localization.Translations.load', side_effect=side_effet):
+ with mock.patch('properdocs.localization.Translations.load', side_effect=side_effet):
install_translations(self.env, parse_locale('en'), [custom_dir, theme_dir])
theme_dir_translations.merge.assert_called_once_with(custom_dir_translations)
diff --git a/mkdocs/tests/new_tests.py b/properdocs/tests/new_tests.py
similarity index 87%
rename from mkdocs/tests/new_tests.py
rename to properdocs/tests/new_tests.py
index 120cfa5e..82897e4c 100644
--- a/mkdocs/tests/new_tests.py
+++ b/properdocs/tests/new_tests.py
@@ -3,8 +3,8 @@
import os
import unittest
-from mkdocs.commands import new
-from mkdocs.tests.base import change_dir, tempdir
+from properdocs.commands import new
+from properdocs.tests.base import change_dir, tempdir
class NewTests(unittest.TestCase):
diff --git a/mkdocs/tests/plugin_tests.py b/properdocs/tests/plugin_tests.py
similarity index 89%
rename from mkdocs/tests/plugin_tests.py
rename to properdocs/tests/plugin_tests.py
index 7f32146f..31125ccb 100644
--- a/mkdocs/tests/plugin_tests.py
+++ b/properdocs/tests/plugin_tests.py
@@ -8,20 +8,20 @@
if TYPE_CHECKING:
from typing_extensions import assert_type
- from mkdocs.structure.nav import Navigation
+ from properdocs.structure.nav import Navigation
else:
def assert_type(val, typ):
return None
-from mkdocs import plugins
-from mkdocs.commands import build
-from mkdocs.config import base
-from mkdocs.config import config_options as c
-from mkdocs.config.base import ValidationError
-from mkdocs.exceptions import Abort, BuildError, PluginError
-from mkdocs.tests.base import load_config, tempdir
+from properdocs import plugins
+from properdocs.commands import build
+from properdocs.config import base
+from properdocs.config import config_options as c
+from properdocs.config.base import ValidationError
+from properdocs.exceptions import Abort, BuildError, PluginError
+from properdocs.tests.base import load_config, tempdir
class _DummyPluginConfig(base.Config):
@@ -159,11 +159,11 @@ def on_post_build(self, **kwargs) -> None:
collection = plugins.PluginCollection()
collection['dummy'] = dummy = DummyPlugin()
- with self.assertLogs('mkdocs', level='WARNING') as cm:
+ with self.assertLogs('properdocs', level='WARNING') as cm:
collection['prio'] = prio = PrioPlugin()
self.assertEqual(
'\n'.join(cm.output),
- "WARNING:mkdocs.plugins:Multiple 'on_page_read_source' handlers can't work (both plugins 'dummy' and 'prio' registered one).",
+ "WARNING:properdocs.plugins:Multiple 'on_page_read_source' handlers can't work (both plugins 'dummy' and 'prio' registered one).",
)
self.assertEqual(
@@ -194,11 +194,11 @@ def test_set_multiple_plugins_on_collection(self):
plugin1 = DummyPlugin()
collection['foo'] = plugin1
plugin2 = DummyPlugin()
- with self.assertLogs('mkdocs', level='WARNING') as cm:
+ with self.assertLogs('properdocs', level='WARNING') as cm:
collection['bar'] = plugin2
self.assertEqual(
'\n'.join(cm.output),
- "WARNING:mkdocs.plugins:Multiple 'on_page_read_source' handlers can't work (both plugins 'foo' and 'bar' registered one).",
+ "WARNING:properdocs.plugins:Multiple 'on_page_read_source' handlers can't work (both plugins 'foo' and 'bar' registered one).",
)
self.assertEqual(list(collection.items()), [('foo', plugin1), ('bar', plugin2)])
@@ -219,11 +219,11 @@ def test_run_event_twice_on_collection(self):
collection['foo'] = plugin1
plugin2 = DummyPlugin()
plugin2.load_config({'foo': 'second'})
- with self.assertLogs('mkdocs', level='WARNING') as cm:
+ with self.assertLogs('properdocs', level='WARNING') as cm:
collection['bar'] = plugin2
self.assertEqual(
'\n'.join(cm.output),
- "WARNING:mkdocs.plugins:Multiple 'on_page_read_source' handlers can't work (both plugins 'foo' and 'bar' registered one).",
+ "WARNING:properdocs.plugins:Multiple 'on_page_read_source' handlers can't work (both plugins 'foo' and 'bar' registered one).",
)
self.assertEqual(
collection.on_page_content('page content', page=None, config={}, files=[]),
@@ -295,22 +295,22 @@ def on_build_error(self, error, **kwargs):
cfg = load_config(site_dir=site_dir)
cfg.plugins['errorplugin'] = PluginRaisingError(error_on='pre_page')
- with self.assertLogs('mkdocs', level='ERROR'):
+ with self.assertLogs('properdocs', level='ERROR'):
self.assertRaises(Abort, build.build, cfg)
cfg = load_config(site_dir=site_dir)
cfg.plugins['errorplugin'] = PluginRaisingError(error_on='page_markdown')
- with self.assertLogs('mkdocs', level='ERROR'):
+ with self.assertLogs('properdocs', level='ERROR'):
self.assertRaises(Abort, build.build, cfg)
cfg = load_config(site_dir=site_dir)
cfg.plugins['errorplugin'] = PluginRaisingError(error_on='page_content')
- with self.assertLogs('mkdocs', level='ERROR'):
+ with self.assertLogs('properdocs', level='ERROR'):
self.assertRaises(Abort, build.build, cfg)
cfg = load_config(site_dir=site_dir)
cfg.plugins['errorplugin'] = PluginRaisingError(error_on='post_page')
- with self.assertLogs('mkdocs', level='ERROR'):
+ with self.assertLogs('properdocs', level='ERROR'):
self.assertRaises(ValueError, build.build, cfg)
cfg = load_config(site_dir=site_dir)
diff --git a/mkdocs/tests/search_tests.py b/properdocs/tests/search_tests.py
similarity index 94%
rename from mkdocs/tests/search_tests.py
rename to properdocs/tests/search_tests.py
index 1b934a51..9dc6cb08 100644
--- a/mkdocs/tests/search_tests.py
+++ b/properdocs/tests/search_tests.py
@@ -4,13 +4,13 @@
import unittest
from unittest import mock
-from mkdocs.config.config_options import ValidationError
-from mkdocs.contrib import search
-from mkdocs.contrib.search import search_index
-from mkdocs.structure.files import File
-from mkdocs.structure.pages import Page
-from mkdocs.structure.toc import get_toc
-from mkdocs.tests.base import dedent, get_markdown_toc, load_config
+from properdocs.config.config_options import ValidationError
+from properdocs.contrib import search
+from properdocs.contrib.search import search_index
+from properdocs.structure.files import File
+from properdocs.structure.pages import Page
+from properdocs.structure.toc import get_toc
+from properdocs.tests.base import dedent, get_markdown_toc, load_config
def strip_whitespace(string):
@@ -222,8 +222,8 @@ def test_event_on_config_search_index_only(self):
self.assertEqual(len(result['theme'].dirs), 2)
self.assertEqual(len(result['extra_javascript']), 0)
- @mock.patch('mkdocs.utils.write_file', autospec=True)
- @mock.patch('mkdocs.utils.copy_file', autospec=True)
+ @mock.patch('properdocs.utils.write_file', autospec=True)
+ @mock.patch('properdocs.utils.copy_file', autospec=True)
def test_event_on_post_build_defaults(self, mock_copy_file, mock_write_file):
plugin = search.SearchPlugin()
plugin.load_config({})
@@ -234,8 +234,8 @@ def test_event_on_post_build_defaults(self, mock_copy_file, mock_write_file):
self.assertEqual(mock_copy_file.call_count, 0)
self.assertEqual(mock_write_file.call_count, 1)
- @mock.patch('mkdocs.utils.write_file', autospec=True)
- @mock.patch('mkdocs.utils.copy_file', autospec=True)
+ @mock.patch('properdocs.utils.write_file', autospec=True)
+ @mock.patch('properdocs.utils.copy_file', autospec=True)
def test_event_on_post_build_single_lang(self, mock_copy_file, mock_write_file):
plugin = search.SearchPlugin()
plugin.load_config({'lang': ['es']})
@@ -245,8 +245,8 @@ def test_event_on_post_build_single_lang(self, mock_copy_file, mock_write_file):
self.assertEqual(mock_copy_file.call_count, 2)
self.assertEqual(mock_write_file.call_count, 1)
- @mock.patch('mkdocs.utils.write_file', autospec=True)
- @mock.patch('mkdocs.utils.copy_file', autospec=True)
+ @mock.patch('properdocs.utils.write_file', autospec=True)
+ @mock.patch('properdocs.utils.copy_file', autospec=True)
def test_event_on_post_build_multi_lang(self, mock_copy_file, mock_write_file):
plugin = search.SearchPlugin()
plugin.load_config({'lang': ['es', 'fr']})
@@ -256,8 +256,8 @@ def test_event_on_post_build_multi_lang(self, mock_copy_file, mock_write_file):
self.assertEqual(mock_copy_file.call_count, 4)
self.assertEqual(mock_write_file.call_count, 1)
- @mock.patch('mkdocs.utils.write_file', autospec=True)
- @mock.patch('mkdocs.utils.copy_file', autospec=True)
+ @mock.patch('properdocs.utils.write_file', autospec=True)
+ @mock.patch('properdocs.utils.copy_file', autospec=True)
def test_event_on_post_build_search_index_only(self, mock_copy_file, mock_write_file):
plugin = search.SearchPlugin()
plugin.load_config({'lang': ['es']})
@@ -510,11 +510,11 @@ def test_prebuild_index_returns_error(self, mock_popen):
'docs': [],
'config': {'prebuild_index': True},
}
- with self.assertLogs('mkdocs') as cm:
+ with self.assertLogs('properdocs') as cm:
result = json.loads(index.generate_search_index())
self.assertEqual(
'\n'.join(cm.output),
- 'WARNING:mkdocs.contrib.search.search_index:Failed to pre-build search index. Error: Some Error',
+ 'WARNING:properdocs.contrib.search.search_index:Failed to pre-build search index. Error: Some Error',
)
self.assertEqual(mock_popen.call_count, 1)
@@ -534,11 +534,11 @@ def test_prebuild_index_raises_ioerror(self, mock_popen):
'docs': [],
'config': {'prebuild_index': True},
}
- with self.assertLogs('mkdocs') as cm:
+ with self.assertLogs('properdocs') as cm:
result = json.loads(index.generate_search_index())
self.assertEqual(
'\n'.join(cm.output),
- 'WARNING:mkdocs.contrib.search.search_index:Failed to pre-build search index. Error: ',
+ 'WARNING:properdocs.contrib.search.search_index:Failed to pre-build search index. Error: ',
)
self.assertEqual(mock_popen.call_count, 1)
@@ -558,11 +558,11 @@ def test_prebuild_index_raises_oserror(self, mock_popen):
'docs': [],
'config': {'prebuild_index': True},
}
- with self.assertLogs('mkdocs') as cm:
+ with self.assertLogs('properdocs') as cm:
result = json.loads(index.generate_search_index())
self.assertEqual(
'\n'.join(cm.output),
- 'WARNING:mkdocs.contrib.search.search_index:Failed to pre-build search index. Error: ',
+ 'WARNING:properdocs.contrib.search.search_index:Failed to pre-build search index. Error: ',
)
self.assertEqual(mock_popen.call_count, 1)
@@ -588,7 +588,7 @@ def test_prebuild_index_false(self, mock_popen):
self.assertEqual(result, expected)
@unittest.skipUnless(search_index.haslunrpy, 'lunr.py is not installed')
- @mock.patch('mkdocs.contrib.search.search_index.lunr', autospec=True)
+ @mock.patch('properdocs.contrib.search.search_index.lunr', autospec=True)
def test_prebuild_index_python(self, mock_lunr):
mock_lunr.return_value.serialize.return_value = {'mock': 'index'}
index = search_index.SearchIndex(prebuild_index='python', lang='en')
@@ -609,7 +609,7 @@ def test_prebuild_index_python_missing_lunr(self):
'docs': [],
'config': {'prebuild_index': 'python', 'lang': 'en'},
}
- with self.assertLogs('mkdocs', level='WARNING'):
+ with self.assertLogs('properdocs', level='WARNING'):
result = json.loads(index.generate_search_index())
self.assertEqual(result, expected)
diff --git a/mkdocs/tests/structure/__init__.py b/properdocs/tests/structure/__init__.py
similarity index 100%
rename from mkdocs/tests/structure/__init__.py
rename to properdocs/tests/structure/__init__.py
diff --git a/mkdocs/tests/structure/file_tests.py b/properdocs/tests/structure/file_tests.py
similarity index 99%
rename from mkdocs/tests/structure/file_tests.py
rename to properdocs/tests/structure/file_tests.py
index fe3c4143..3efc7b3a 100644
--- a/mkdocs/tests/structure/file_tests.py
+++ b/properdocs/tests/structure/file_tests.py
@@ -3,8 +3,8 @@
import unittest
from unittest import mock
-from mkdocs.structure.files import File, Files, _sort_files, file_sort_key, get_files
-from mkdocs.tests.base import PathAssertionMixin, load_config, tempdir
+from properdocs.structure.files import File, Files, _sort_files, file_sort_key, get_files
+from properdocs.tests.base import PathAssertionMixin, load_config, tempdir
class TestFiles(PathAssertionMixin, unittest.TestCase):
@@ -623,11 +623,11 @@ def test_get_files_include_readme_without_index(self, tdir):
)
def test_get_files_exclude_readme_with_index(self, tdir):
config = load_config(docs_dir=tdir)
- with self.assertLogs('mkdocs') as cm:
+ with self.assertLogs('properdocs') as cm:
files = get_files(config)
self.assertRegex(
'\n'.join(cm.output),
- r"^WARNING:mkdocs.structure.files:"
+ r"^WARNING:properdocs.structure.files:"
r"Excluding 'README.md' from the site because it conflicts with 'index.md'.$",
)
self.assertIsInstance(files, Files)
diff --git a/mkdocs/tests/structure/nav_tests.py b/properdocs/tests/structure/nav_tests.py
similarity index 93%
rename from mkdocs/tests/structure/nav_tests.py
rename to properdocs/tests/structure/nav_tests.py
index 11b7464f..7081535a 100644
--- a/mkdocs/tests/structure/nav_tests.py
+++ b/properdocs/tests/structure/nav_tests.py
@@ -3,10 +3,10 @@
import sys
import unittest
-from mkdocs.structure.files import File, Files, set_exclusions
-from mkdocs.structure.nav import Section, _get_by_type, get_navigation
-from mkdocs.structure.pages import Page
-from mkdocs.tests.base import dedent, load_config
+from properdocs.structure.files import File, Files, set_exclusions
+from properdocs.structure.nav import Section, _get_by_type, get_navigation
+from properdocs.structure.pages import Page
+from properdocs.tests.base import dedent, load_config
class SiteNavigationTests(unittest.TestCase):
@@ -118,13 +118,13 @@ def test_nav_external_links(self):
cfg = load_config(nav=nav_cfg, site_url='http://example.com/')
fs = [File('index.md', cfg.docs_dir, cfg.site_dir, cfg.use_directory_urls)]
files = Files(fs)
- with self.assertLogs('mkdocs', level='DEBUG') as cm:
+ with self.assertLogs('properdocs', level='DEBUG') as cm:
site_navigation = get_navigation(files, cfg)
self.assertEqual(
cm.output,
[
- "INFO:mkdocs.structure.nav:An absolute path to '/local.html' is included in the 'nav' configuration, which presumably points to an external resource.",
- "DEBUG:mkdocs.structure.nav:An external link to 'http://example.com/external.html' is included in the 'nav' configuration.",
+ "INFO:properdocs.structure.nav:An absolute path to '/local.html' is included in the 'nav' configuration, which presumably points to an external resource.",
+ "DEBUG:properdocs.structure.nav:An external link to 'http://example.com/external.html' is included in the 'nav' configuration.",
],
)
self.assertEqual(str(site_navigation).strip(), expected)
@@ -156,13 +156,13 @@ def test_nav_absolute_links_with_validation(self):
File('foo/bar.md', cfg.docs_dir, cfg.site_dir, cfg.use_directory_urls),
]
files = Files(fs)
- with self.assertLogs('mkdocs', level='DEBUG') as cm:
+ with self.assertLogs('properdocs', level='DEBUG') as cm:
site_navigation = get_navigation(files, cfg)
self.assertEqual(
cm.output,
[
- "WARNING:mkdocs.structure.nav:A reference to '/local.md' is included in the 'nav' configuration, which is not found in the documentation files.",
- "DEBUG:mkdocs.structure.nav:An external link to 'http://example.com/external.html' is included in the 'nav' configuration.",
+ "WARNING:properdocs.structure.nav:A reference to '/local.md' is included in the 'nav' configuration, which is not found in the documentation files.",
+ "DEBUG:properdocs.structure.nav:An external link to 'http://example.com/external.html' is included in the 'nav' configuration.",
],
)
self.assertEqual(str(site_navigation).strip(), expected)
@@ -185,13 +185,13 @@ def test_nav_bad_links(self):
cfg = load_config(nav=nav_cfg, site_url='http://example.com/')
fs = [File('index.md', cfg.docs_dir, cfg.site_dir, cfg.use_directory_urls)]
files = Files(fs)
- with self.assertLogs('mkdocs') as cm:
+ with self.assertLogs('properdocs') as cm:
site_navigation = get_navigation(files, cfg)
self.assertEqual(
cm.output,
[
- "WARNING:mkdocs.structure.nav:A reference to 'missing.html' is included in the 'nav' configuration, which is not found in the documentation files.",
- "WARNING:mkdocs.structure.nav:A reference to 'example.com' is included in the 'nav' configuration, which is not found in the documentation files.",
+ "WARNING:properdocs.structure.nav:A reference to 'missing.html' is included in the 'nav' configuration, which is not found in the documentation files.",
+ "WARNING:properdocs.structure.nav:A reference to 'example.com' is included in the 'nav' configuration, which is not found in the documentation files.",
],
)
self.assertEqual(str(site_navigation).strip(), expected)
diff --git a/mkdocs/tests/structure/page_tests.py b/properdocs/tests/structure/page_tests.py
similarity index 95%
rename from mkdocs/tests/structure/page_tests.py
rename to properdocs/tests/structure/page_tests.py
index 14bb85da..6c58385f 100644
--- a/mkdocs/tests/structure/page_tests.py
+++ b/properdocs/tests/structure/page_tests.py
@@ -8,17 +8,17 @@
import markdown
-from mkdocs.config.defaults import MkDocsConfig
-from mkdocs.structure.files import File, Files
-from mkdocs.structure.pages import Page, _ExtractTitleTreeprocessor, _RelativePathTreeprocessor
-from mkdocs.tests.base import dedent, tempdir
+from properdocs.config.defaults import ProperDocsConfig
+from properdocs.structure.files import File, Files
+from properdocs.structure.pages import Page, _ExtractTitleTreeprocessor, _RelativePathTreeprocessor
+from properdocs.tests.base import dedent, tempdir
DOCS_DIR = os.path.join(
os.path.abspath(os.path.dirname(__file__)), '..', 'integration', 'subpages', 'docs'
)
-def load_config(**cfg) -> MkDocsConfig:
+def load_config(**cfg) -> ProperDocsConfig:
cfg.setdefault('site_name', 'Example')
cfg.setdefault(
'docs_dir',
@@ -26,7 +26,7 @@ def load_config(**cfg) -> MkDocsConfig:
os.path.abspath(os.path.dirname(__file__)), '..', 'integration', 'minimal', 'docs'
),
)
- conf = MkDocsConfig()
+ conf = ProperDocsConfig()
conf.load_dict(cfg)
errors_warnings = conf.validate()
assert errors_warnings == ([], []), errors_warnings
@@ -287,7 +287,7 @@ def test_predefined_page_title(self):
self.assertTrue(pg.is_page)
self.assertFalse(pg.is_section)
self.assertTrue(pg.is_top_level)
- self.assertTrue(pg.markdown.startswith('# Welcome to MkDocs\n'))
+ self.assertTrue(pg.markdown.startswith('# Welcome to ProperDocs\n'))
self.assertEqual(pg.meta, {})
self.assertEqual(pg.next_page, None)
self.assertEqual(pg.parent, None)
@@ -311,14 +311,14 @@ def test_page_title_from_markdown(self):
self.assertTrue(pg.is_page)
self.assertFalse(pg.is_section)
self.assertTrue(pg.is_top_level)
- self.assertTrue(pg.markdown.startswith('# Welcome to MkDocs\n'))
+ self.assertTrue(pg.markdown.startswith('# Welcome to ProperDocs\n'))
self.assertEqual(pg.meta, {})
self.assertEqual(pg.next_page, None)
self.assertEqual(pg.parent, None)
self.assertEqual(pg.previous_page, None)
- self.assertEqual(pg.title, 'Welcome to MkDocs')
+ self.assertEqual(pg.title, 'Welcome to ProperDocs')
pg.render(cfg, Files([fl]))
- self.assertEqual(pg.title, 'Welcome to MkDocs')
+ self.assertEqual(pg.title, 'Welcome to ProperDocs')
def _test_extract_title(self, content, expected, extensions={}):
md = markdown.Markdown(extensions=list(extensions.keys()), extension_configs=extensions)
@@ -329,7 +329,7 @@ def _test_extract_title(self, content, expected, extensions={}):
_SETEXT_CONTENT = dedent(
'''
- Welcome to MkDocs Setext
+ Welcome to ProperDocs Setext
========================
This tests extracting a setext style title.
@@ -339,7 +339,7 @@ def _test_extract_title(self, content, expected, extensions={}):
def test_page_title_from_setext_markdown(self):
self._test_extract_title(
self._SETEXT_CONTENT,
- expected='Welcome to MkDocs Setext',
+ expected='Welcome to ProperDocs Setext',
)
def test_page_title_from_markdown_with_email(self):
@@ -352,7 +352,7 @@ def test_page_title_from_markdown_stripped_anchorlinks(self):
self._test_extract_title(
self._SETEXT_CONTENT,
extensions={'toc': {'permalink': '&'}},
- expected='Welcome to MkDocs Setext',
+ expected='Welcome to ProperDocs Setext',
)
def test_page_title_from_markdown_strip_footnoteref(self):
@@ -396,7 +396,7 @@ def test_page_title_from_markdown_strip_image(self):
_ATTRLIST_CONTENT = dedent(
'''
- # Welcome to MkDocs Attr { #welcome }
+ # Welcome to ProperDocs Attr { #welcome }
This tests extracting the title, with enabled attr_list markdown_extension.
'''
@@ -406,13 +406,13 @@ def test_page_title_from_markdown_stripped_attr_list(self):
self._test_extract_title(
self._ATTRLIST_CONTENT,
extensions={'attr_list': {}},
- expected='Welcome to MkDocs Attr',
+ expected='Welcome to ProperDocs Attr',
)
def test_page_title_from_markdown_preserved_attr_list(self):
self._test_extract_title(
self._ATTRLIST_CONTENT,
- expected='Welcome to MkDocs Attr { #welcome }',
+ expected='Welcome to ProperDocs Attr { #welcome }',
)
def test_page_title_from_meta(self):
@@ -431,7 +431,7 @@ def test_page_title_from_meta(self):
self.assertTrue(pg.is_page)
self.assertFalse(pg.is_section)
self.assertTrue(pg.is_top_level)
- self.assertTrue(pg.markdown.startswith('# Welcome to MkDocs\n'))
+ self.assertTrue(pg.markdown.startswith('# Welcome to ProperDocs\n'))
self.assertEqual(pg.meta, {'title': 'A Page Title'})
self.assertEqual(pg.next_page, None)
self.assertEqual(pg.parent, None)
@@ -550,14 +550,14 @@ def test_page_edit_url(
):
for case in [
dict(
- config={'repo_url': 'http://github.com/mkdocs/mkdocs'},
- edit_url='http://github.com/mkdocs/mkdocs/edit/master/docs/testing.md',
- edit_url2='http://github.com/mkdocs/mkdocs/edit/master/docs/sub1/non-index.md',
+ config={'repo_url': 'http://github.com/properdocs/properdocs'},
+ edit_url='http://github.com/properdocs/properdocs/edit/master/docs/testing.md',
+ edit_url2='http://github.com/properdocs/properdocs/edit/master/docs/sub1/non-index.md',
),
dict(
- config={'repo_url': 'https://github.com/mkdocs/mkdocs/'},
- edit_url='https://github.com/mkdocs/mkdocs/edit/master/docs/testing.md',
- edit_url2='https://github.com/mkdocs/mkdocs/edit/master/docs/sub1/non-index.md',
+ config={'repo_url': 'https://github.com/properdocs/properdocs/'},
+ edit_url='https://github.com/properdocs/properdocs/edit/master/docs/testing.md',
+ edit_url2='https://github.com/properdocs/properdocs/edit/master/docs/sub1/non-index.md',
),
dict(
config={'repo_url': 'http://example.com'},
@@ -684,12 +684,12 @@ def test_page_edit_url_warning(self):
dict(
config={'edit_uri': 'edit/master'},
edit_url='edit/master/testing.md',
- warning="WARNING:mkdocs.structure.pages:edit_uri: "
+ warning="WARNING:properdocs.structure.pages:edit_uri: "
"'edit/master/testing.md' is not a valid URL, it should include the http:// (scheme)",
),
]:
with self.subTest(case['config']):
- with self.assertLogs('mkdocs') as cm:
+ with self.assertLogs('properdocs') as cm:
cfg = load_config(**case['config'])
fl = File('testing.md', cfg.docs_dir, cfg.site_dir, cfg.use_directory_urls)
pg = Page('Foo', fl, cfg)
@@ -701,16 +701,16 @@ def test_page_edit_url_custom_from_file(self):
for case in [
dict(
edit_uri='hooks.py',
- expected_edit_url='https://github.com/mkdocs/mkdocs/edit/master/docs/hooks.py',
+ expected_edit_url='https://github.com/properdocs/properdocs/edit/master/docs/hooks.py',
),
dict(
edit_uri='../scripts/hooks.py',
- expected_edit_url='https://github.com/mkdocs/mkdocs/edit/master/scripts/hooks.py',
+ expected_edit_url='https://github.com/properdocs/properdocs/edit/master/scripts/hooks.py',
),
dict(edit_uri=None, expected_edit_url=None),
]:
with self.subTest(case['edit_uri']):
- cfg = load_config(repo_url='https://github.com/mkdocs/mkdocs')
+ cfg = load_config(repo_url='https://github.com/properdocs/properdocs')
fl = File('testing.md', cfg.docs_dir, cfg.site_dir, cfg.use_directory_urls)
fl.edit_uri = case['edit_uri']
pg = Page('Foo', fl, cfg)
@@ -726,13 +726,13 @@ def test_page_render(self):
self.assertEqual(pg.toc, [])
pg.render(cfg, Files([fl]))
self.assertTrue(
- pg.content.startswith('
Welcome to MkDocs \n')
+ pg.content.startswith('
Welcome to ProperDocs \n')
)
self.assertEqual(
str(pg.toc).strip(),
dedent(
"""
- Welcome to MkDocs - #welcome-to-mkdocs
+ Welcome to ProperDocs - #welcome-to-properdocs
Commands - #commands
Project layout - #project-layout
"""
@@ -743,11 +743,11 @@ def test_missing_page(self):
cfg = load_config()
fl = File('missing.md', cfg.docs_dir, cfg.site_dir, cfg.use_directory_urls)
pg = Page('Foo', fl, cfg)
- with self.assertLogs('mkdocs') as cm:
+ with self.assertLogs('properdocs') as cm:
with self.assertRaises(OSError):
pg.read_source(cfg)
self.assertEqual(
- '\n'.join(cm.output), 'ERROR:mkdocs.structure.pages:File not found: missing.md'
+ '\n'.join(cm.output), 'ERROR:properdocs.structure.pages:File not found: missing.md'
)
@@ -777,15 +777,15 @@ def get_rendered_result(
fs = [File(f, cfg.docs_dir, cfg.site_dir, cfg.use_directory_urls) for f in files]
pg = Page('Foo', fs[0], cfg)
- with mock.patch('mkdocs.structure.files.open', mock.mock_open(read_data=content)):
+ with mock.patch('properdocs.structure.files.open', mock.mock_open(read_data=content)):
pg.read_source(cfg)
if logs:
- with self.assertLogs('mkdocs.structure.pages') as cm:
+ with self.assertLogs('properdocs.structure.pages') as cm:
pg.render(cfg, Files(fs))
msgs = [f'{r.levelname}:{r.message}' for r in cm.records]
self.assertEqual('\n'.join(msgs), textwrap.dedent(logs).strip('\n'))
elif sys.version_info >= (3, 10):
- with self.assertNoLogs('mkdocs.structure.pages'):
+ with self.assertNoLogs('properdocs.structure.pages'):
pg.render(cfg, Files(fs))
else:
pg.render(cfg, Files(fs))
diff --git a/mkdocs/tests/structure/toc_tests.py b/properdocs/tests/structure/toc_tests.py
similarity index 98%
rename from mkdocs/tests/structure/toc_tests.py
rename to properdocs/tests/structure/toc_tests.py
index 2f83e1c6..ab56c4e4 100644
--- a/mkdocs/tests/structure/toc_tests.py
+++ b/properdocs/tests/structure/toc_tests.py
@@ -2,8 +2,8 @@
import unittest
-from mkdocs.structure.toc import get_toc
-from mkdocs.tests.base import dedent, get_markdown_toc
+from properdocs.structure.toc import get_toc
+from properdocs.tests.base import dedent, get_markdown_toc
class TableOfContentsTests(unittest.TestCase):
diff --git a/mkdocs/tests/theme_tests.py b/properdocs/tests/theme_tests.py
similarity index 86%
rename from mkdocs/tests/theme_tests.py
rename to properdocs/tests/theme_tests.py
index ddc526bf..930dc1f0 100644
--- a/mkdocs/tests/theme_tests.py
+++ b/properdocs/tests/theme_tests.py
@@ -2,15 +2,15 @@
import unittest
from unittest import mock
-import mkdocs
-from mkdocs.localization import parse_locale
-from mkdocs.tests.base import tempdir
-from mkdocs.theme import Theme
+import properdocs
+from properdocs.localization import parse_locale
+from properdocs.tests.base import tempdir
+from properdocs.theme import Theme
abs_path = os.path.abspath(os.path.dirname(__file__))
-mkdocs_dir = os.path.abspath(os.path.dirname(mkdocs.__file__))
-mkdocs_templates_dir = os.path.join(mkdocs_dir, 'templates')
-theme_dir = os.path.abspath(os.path.join(mkdocs_dir, 'themes'))
+properdocs_dir = os.path.abspath(os.path.dirname(properdocs.__file__))
+properdocs_templates_dir = os.path.join(properdocs_dir, 'templates')
+theme_dir = os.path.abspath(os.path.join(properdocs_dir, 'themes'))
class ThemeTests(unittest.TestCase):
@@ -18,7 +18,7 @@ def test_simple_theme(self):
theme = Theme(name='mkdocs')
self.assertEqual(
theme.dirs,
- [os.path.join(theme_dir, 'mkdocs'), mkdocs_templates_dir],
+ [os.path.join(theme_dir, 'mkdocs'), properdocs_templates_dir],
)
self.assertEqual(theme.static_templates, {'404.html', 'sitemap.xml'})
self.assertEqual(
@@ -49,7 +49,7 @@ def test_custom_dir(self, custom):
[
custom,
os.path.join(theme_dir, 'mkdocs'),
- mkdocs_templates_dir,
+ properdocs_templates_dir,
],
)
@@ -58,7 +58,7 @@ def test_custom_dir_only(self, custom):
theme = Theme(name=None, custom_dir=custom)
self.assertEqual(
theme.dirs,
- [custom, mkdocs_templates_dir],
+ [custom, properdocs_templates_dir],
)
def static_templates(self):
@@ -100,7 +100,7 @@ def test_inherited_theme(self):
[
os.path.join(theme_dir, 'mkdocs'),
os.path.join(theme_dir, 'readthedocs'),
- mkdocs_templates_dir,
+ properdocs_templates_dir,
],
)
self.assertEqual(theme.static_templates, {'sitemap.xml', 'child.html', 'parent.html'})
diff --git a/mkdocs/tests/utils/__init__.py b/properdocs/tests/utils/__init__.py
similarity index 100%
rename from mkdocs/tests/utils/__init__.py
rename to properdocs/tests/utils/__init__.py
diff --git a/mkdocs/tests/utils/babel_stub_tests.py b/properdocs/tests/utils/babel_stub_tests.py
similarity index 96%
rename from mkdocs/tests/utils/babel_stub_tests.py
rename to properdocs/tests/utils/babel_stub_tests.py
index ec810471..7b155414 100644
--- a/mkdocs/tests/utils/babel_stub_tests.py
+++ b/properdocs/tests/utils/babel_stub_tests.py
@@ -1,6 +1,6 @@
import unittest
-from mkdocs.utils.babel_stub import Locale, UnknownLocaleError
+from properdocs.utils.babel_stub import Locale, UnknownLocaleError
class BabelStubTests(unittest.TestCase):
diff --git a/mkdocs/tests/utils/templates_tests.py b/properdocs/tests/utils/templates_tests.py
similarity index 95%
rename from mkdocs/tests/utils/templates_tests.py
rename to properdocs/tests/utils/templates_tests.py
index c6a8daaa..f1d97448 100644
--- a/mkdocs/tests/utils/templates_tests.py
+++ b/properdocs/tests/utils/templates_tests.py
@@ -3,8 +3,8 @@
import yaml
-from mkdocs.tests.base import load_config
-from mkdocs.utils import templates
+from properdocs.tests.base import load_config
+from properdocs.utils import templates
class UtilsTemplatesTests(unittest.TestCase):
diff --git a/mkdocs/tests/utils/utils_tests.py b/properdocs/tests/utils/utils_tests.py
similarity index 95%
rename from mkdocs/tests/utils/utils_tests.py
rename to properdocs/tests/utils/utils_tests.py
index 2a39fddd..12367695 100644
--- a/mkdocs/tests/utils/utils_tests.py
+++ b/properdocs/tests/utils/utils_tests.py
@@ -9,9 +9,9 @@
import unittest
from unittest import mock
-from mkdocs import exceptions, utils
-from mkdocs.tests.base import dedent, tempdir
-from mkdocs.utils import meta
+from properdocs import exceptions, utils
+from properdocs.tests.base import dedent, tempdir
+from properdocs.utils import meta
BASEYML = """
INHERIT: parent.yml
@@ -175,7 +175,7 @@ def test_normalize_url_windows(self):
def test(path, base, expected):
self.assertEqual(utils.normalize_url(path, _Page(base)), expected)
- with self.assertLogs('mkdocs', level='WARNING'):
+ with self.assertLogs('properdocs', level='WARNING'):
path = 'local\\windows\\file\\jquery.js'
test(path, '', 'local/windows/file/jquery.js')
test(path, 'about/', '../local/windows/file/jquery.js')
@@ -459,13 +459,13 @@ def test_get_themes(self):
self.assertIn('mkdocs', themes)
self.assertIn('readthedocs', themes)
- @mock.patch('mkdocs.utils.entry_points', autospec=True)
+ @mock.patch('properdocs.utils.entry_points', autospec=True)
def test_get_theme_dir(self, mock_iter):
path = 'some/path'
theme = mock.Mock()
theme.name = 'mkdocs2'
- theme.dist.name = 'mkdocs2'
+ theme.dist.name = 'properdocs2'
theme.load().__file__ = os.path.join(path, '__init__.py')
mock_iter.return_value = [theme]
@@ -476,11 +476,11 @@ def test_get_theme_dir_error(self):
with self.assertRaises(KeyError):
utils.get_theme_dir('nonexistanttheme')
- @mock.patch('mkdocs.utils.entry_points', autospec=True)
+ @mock.patch('properdocs.utils.entry_points', autospec=True)
def test_get_theme_dir_importerror(self, mock_iter):
theme = mock.Mock()
theme.name = 'mkdocs2'
- theme.dist.name = 'mkdocs2'
+ theme.dist.name = 'properdocs2'
theme.load.side_effect = ImportError()
mock_iter.return_value = [theme]
@@ -488,46 +488,46 @@ def test_get_theme_dir_importerror(self, mock_iter):
with self.assertRaises(ImportError):
utils.get_theme_dir(theme.name)
- @mock.patch('mkdocs.utils.entry_points', autospec=True)
+ @mock.patch('properdocs.utils.entry_points', autospec=True)
def test_get_themes_warning(self, mock_iter):
theme1 = mock.Mock()
theme1.name = 'mkdocs2'
- theme1.dist.name = 'mkdocs2'
+ theme1.dist.name = 'properdocs2'
theme1.load().__file__ = "some/path1"
theme2 = mock.Mock()
theme2.name = 'mkdocs2'
- theme2.dist.name = 'mkdocs3'
+ theme2.dist.name = 'properdocs3'
theme2.load().__file__ = "some/path2"
mock_iter.return_value = [theme1, theme2]
- with self.assertLogs('mkdocs') as cm:
+ with self.assertLogs('properdocs') as cm:
theme_names = utils.get_theme_names()
self.assertEqual(
'\n'.join(cm.output),
- "WARNING:mkdocs.utils:A theme named 'mkdocs2' is provided by the Python "
- "packages 'mkdocs3' and 'mkdocs2'. The one in 'mkdocs3' will be used.",
+ "WARNING:properdocs.utils:A theme named 'mkdocs2' is provided by the Python "
+ "packages 'properdocs3' and 'properdocs2'. The one in 'properdocs3' will be used.",
)
self.assertCountEqual(theme_names, ['mkdocs2'])
- @mock.patch('mkdocs.utils.entry_points', autospec=True)
+ @mock.patch('properdocs.utils.entry_points', autospec=True)
def test_get_themes_error(self, mock_iter):
theme1 = mock.Mock()
theme1.name = 'mkdocs'
- theme1.dist.name = 'mkdocs'
+ theme1.dist.name = 'properdocs'
theme1.load().__file__ = "some/path1"
theme2 = mock.Mock()
theme2.name = 'mkdocs'
- theme2.dist.name = 'mkdocs2'
+ theme2.dist.name = 'properdocs2'
theme2.load().__file__ = "some/path2"
mock_iter.return_value = [theme1, theme2]
with self.assertRaisesRegex(
exceptions.ConfigurationError,
- "The theme 'mkdocs' is a builtin theme but the package 'mkdocs2' "
+ "The theme 'mkdocs' is a builtin theme but the package 'properdocs2' "
"attempts to provide a theme with the same name.",
):
utils.get_theme_names()
diff --git a/mkdocs/theme.py b/properdocs/theme.py
similarity index 91%
rename from mkdocs/theme.py
rename to properdocs/theme.py
index b45f1079..7d90a308 100644
--- a/mkdocs/theme.py
+++ b/properdocs/theme.py
@@ -13,9 +13,9 @@
except ImportError: # pragma: no cover
from yaml import SafeLoader # type: ignore
-from mkdocs import localization, utils
-from mkdocs.config.base import ValidationError
-from mkdocs.utils import templates
+from properdocs import localization, utils
+from properdocs.config.base import ValidationError
+from properdocs.utils import templates
log = logging.getLogger(__name__)
@@ -46,10 +46,10 @@ def __init__(
_vars: dict[str, Any] = {'name': name, 'locale': 'en'}
self.__vars = _vars
- # MkDocs provided static templates are always included
+ # ProperDocs provided static templates are always included
package_dir = os.path.abspath(os.path.dirname(__file__))
- mkdocs_templates = os.path.join(package_dir, 'templates')
- self.static_templates = set(os.listdir(mkdocs_templates))
+ properdocs_templates = os.path.join(package_dir, 'templates')
+ self.static_templates = set(os.listdir(properdocs_templates))
# Build self.dirs from various sources in order of precedence
self.dirs = []
@@ -60,8 +60,8 @@ def __init__(
if name:
self._load_theme_config(name)
- # Include templates provided directly by MkDocs (outside any theme)
- self.dirs.append(mkdocs_templates)
+ # Include templates provided directly by ProperDocs (outside any theme)
+ self.dirs.append(properdocs_templates)
# Handle remaining user configs. Override theme configs (if set)
self.static_templates.update(static_templates)
diff --git a/mkdocs/themes/__init__.py b/properdocs/themes/__init__.py
similarity index 100%
rename from mkdocs/themes/__init__.py
rename to properdocs/themes/__init__.py
diff --git a/mkdocs/themes/babel.cfg b/properdocs/themes/babel.cfg
similarity index 100%
rename from mkdocs/themes/babel.cfg
rename to properdocs/themes/babel.cfg
diff --git a/mkdocs/themes/mkdocs/404.html b/properdocs/themes/mkdocs/404.html
similarity index 100%
rename from mkdocs/themes/mkdocs/404.html
rename to properdocs/themes/mkdocs/404.html
diff --git a/mkdocs/themes/mkdocs/__init__.py b/properdocs/themes/mkdocs/__init__.py
similarity index 100%
rename from mkdocs/themes/mkdocs/__init__.py
rename to properdocs/themes/mkdocs/__init__.py
diff --git a/mkdocs/themes/mkdocs/base.html b/properdocs/themes/mkdocs/base.html
similarity index 98%
rename from mkdocs/themes/mkdocs/base.html
rename to properdocs/themes/mkdocs/base.html
index e8c8c450..c6004727 100644
--- a/mkdocs/themes/mkdocs/base.html
+++ b/properdocs/themes/mkdocs/base.html
@@ -113,7 +113,7 @@
{%- block search_button %}
{%- if 'search' in config.plugins %}
-
+
{% trans %}Search{% endtrans %}
@@ -222,7 +222,7 @@
{%- if config.copyright %}
{{ config.copyright }}
{%- endif %}
-
{% trans mkdocs_link='MkDocs ' %}Documentation built with {{ mkdocs_link }}.{% endtrans %}
+
{% trans properdocs_link='ProperDocs ' %}Documentation built with {{ properdocs_link }}.{% endtrans %}
{%- endblock %}
@@ -245,7 +245,7 @@
{% if page and page.is_homepage %}
{% endif %}
diff --git a/mkdocs/themes/mkdocs/content.html b/properdocs/themes/mkdocs/content.html
similarity index 100%
rename from mkdocs/themes/mkdocs/content.html
rename to properdocs/themes/mkdocs/content.html
diff --git a/mkdocs/themes/mkdocs/css/base.css b/properdocs/themes/mkdocs/css/base.css
similarity index 100%
rename from mkdocs/themes/mkdocs/css/base.css
rename to properdocs/themes/mkdocs/css/base.css
diff --git a/mkdocs/themes/mkdocs/css/bootstrap.min.css b/properdocs/themes/mkdocs/css/bootstrap.min.css
similarity index 100%
rename from mkdocs/themes/mkdocs/css/bootstrap.min.css
rename to properdocs/themes/mkdocs/css/bootstrap.min.css
diff --git a/mkdocs/themes/mkdocs/css/bootstrap.min.css.map b/properdocs/themes/mkdocs/css/bootstrap.min.css.map
similarity index 100%
rename from mkdocs/themes/mkdocs/css/bootstrap.min.css.map
rename to properdocs/themes/mkdocs/css/bootstrap.min.css.map
diff --git a/mkdocs/themes/mkdocs/css/brands.min.css b/properdocs/themes/mkdocs/css/brands.min.css
similarity index 100%
rename from mkdocs/themes/mkdocs/css/brands.min.css
rename to properdocs/themes/mkdocs/css/brands.min.css
diff --git a/mkdocs/themes/mkdocs/css/fontawesome.min.css b/properdocs/themes/mkdocs/css/fontawesome.min.css
similarity index 100%
rename from mkdocs/themes/mkdocs/css/fontawesome.min.css
rename to properdocs/themes/mkdocs/css/fontawesome.min.css
diff --git a/mkdocs/themes/mkdocs/css/solid.min.css b/properdocs/themes/mkdocs/css/solid.min.css
similarity index 100%
rename from mkdocs/themes/mkdocs/css/solid.min.css
rename to properdocs/themes/mkdocs/css/solid.min.css
diff --git a/mkdocs/themes/mkdocs/css/v4-font-face.min.css b/properdocs/themes/mkdocs/css/v4-font-face.min.css
similarity index 100%
rename from mkdocs/themes/mkdocs/css/v4-font-face.min.css
rename to properdocs/themes/mkdocs/css/v4-font-face.min.css
diff --git a/mkdocs/themes/mkdocs/img/favicon.ico b/properdocs/themes/mkdocs/img/favicon.ico
similarity index 100%
rename from mkdocs/themes/mkdocs/img/favicon.ico
rename to properdocs/themes/mkdocs/img/favicon.ico
diff --git a/mkdocs/themes/mkdocs/img/grid.png b/properdocs/themes/mkdocs/img/grid.png
similarity index 100%
rename from mkdocs/themes/mkdocs/img/grid.png
rename to properdocs/themes/mkdocs/img/grid.png
diff --git a/mkdocs/themes/mkdocs/js/base.js b/properdocs/themes/mkdocs/js/base.js
similarity index 95%
rename from mkdocs/themes/mkdocs/js/base.js
rename to properdocs/themes/mkdocs/js/base.js
index 957ccad1..a0ac745b 100644
--- a/mkdocs/themes/mkdocs/js/base.js
+++ b/properdocs/themes/mkdocs/js/base.js
@@ -24,21 +24,21 @@ function applyTopPadding() {
document.addEventListener("DOMContentLoaded", function () {
var search_term = getSearchTerm();
- var search_modal = new bootstrap.Modal(document.getElementById('mkdocs_search_modal'));
- var keyboard_modal = new bootstrap.Modal(document.getElementById('mkdocs_keyboard_modal'));
+ var search_modal = new bootstrap.Modal(document.getElementById('properdocs_search_modal'));
+ var keyboard_modal = new bootstrap.Modal(document.getElementById('properdocs_keyboard_modal'));
if (search_term) {
search_modal.show();
}
// make sure search input gets autofocus every time modal opens.
- document.getElementById('mkdocs_search_modal').addEventListener('shown.bs.modal', function() {
- document.getElementById('mkdocs-search-query').focus();
+ document.getElementById('properdocs_search_modal').addEventListener('shown.bs.modal', function() {
+ document.getElementById('properdocs-search-query').focus();
});
// Close search modal when result is selected
// The links get added later so listen to parent
- document.getElementById('mkdocs-search-results').addEventListener('click', function(e) {
+ document.getElementById('properdocs-search-results').addEventListener('click', function(e) {
if (e.target.tagName === 'A') {
search_modal.hide();
}
@@ -66,7 +66,7 @@ document.addEventListener("DOMContentLoaded", function () {
e.preventDefault();
keyboard_modal.hide();
search_modal.show();
- document.getElementById('mkdocs-search-query').focus();
+ document.getElementById('properdocs-search-query').focus();
break;
case shortcuts.help:
search_modal.hide();
diff --git a/mkdocs/themes/mkdocs/js/bootstrap.bundle.min.js b/properdocs/themes/mkdocs/js/bootstrap.bundle.min.js
similarity index 100%
rename from mkdocs/themes/mkdocs/js/bootstrap.bundle.min.js
rename to properdocs/themes/mkdocs/js/bootstrap.bundle.min.js
diff --git a/mkdocs/themes/mkdocs/js/bootstrap.bundle.min.js.map b/properdocs/themes/mkdocs/js/bootstrap.bundle.min.js.map
similarity index 100%
rename from mkdocs/themes/mkdocs/js/bootstrap.bundle.min.js.map
rename to properdocs/themes/mkdocs/js/bootstrap.bundle.min.js.map
diff --git a/mkdocs/themes/mkdocs/js/darkmode.js b/properdocs/themes/mkdocs/js/darkmode.js
similarity index 100%
rename from mkdocs/themes/mkdocs/js/darkmode.js
rename to properdocs/themes/mkdocs/js/darkmode.js
diff --git a/mkdocs/themes/mkdocs/keyboard-modal.html b/properdocs/themes/mkdocs/keyboard-modal.html
similarity index 92%
rename from mkdocs/themes/mkdocs/keyboard-modal.html
rename to properdocs/themes/mkdocs/keyboard-modal.html
index 5224a736..76c025f5 100644
--- a/mkdocs/themes/mkdocs/keyboard-modal.html
+++ b/properdocs/themes/mkdocs/keyboard-modal.html
@@ -1,4 +1,4 @@
-