diff --git a/CHANGELOG b/CHANGELOG index 49debb518..e8a774966 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,14 @@ +mkdocs-material-9.4.12+insiders-4.45.0 (2023-11-24) + + * Added support for sorting blog categories by post count or custom function + * Improved tags plugin to generate Unicode-aware slugs by default + * Fixed non-deterministic order of multiple authors in blog plugin + +mkdocs-material-9.4.12 (2023-11-24) + + * Improved blog plugin to generate Unicode-aware slugs by default + * Fixed non-deterministic order of categories in blog plugin + mkdocs-material-9.4.11+insiders-4.44.0 (2023-11-23) * Added pagination settings for archive pages in blog plugin diff --git a/docs/changelog/index.md b/docs/changelog/index.md index 372768ee1..bcd362f3a 100644 --- a/docs/changelog/index.md +++ b/docs/changelog/index.md @@ -2,6 +2,11 @@ ## Material for MkDocs +### 9.4.12 November 24, 2023 { id="9.4.12" } + +- Improved blog plugin to generate Unicode-aware slugs by default +- Fixed non-deterministic order of categories in blog plugin + ### 9.4.11 November 23, 2023 { id="9.4.11" } - Fixed #6364: Search plugin crashing when enabling theme while serving diff --git a/docs/insiders/changelog/index.md b/docs/insiders/changelog/index.md index 049faf689..32a525bf3 100644 --- a/docs/insiders/changelog/index.md +++ b/docs/insiders/changelog/index.md @@ -2,6 +2,12 @@ ## Material for MkDocs Insiders +### 4.45.0 November 24, 2023 { id="4.45.0" } + +- Added support for sorting blog categories by post count or custom function +- Improved tags plugin to generate Unicode-aware slugs by default +- Fixed non-deterministic order of multiple authors in blog plugin + ### 4.44.0 November 23, 2023 { id="4.44.0" } - Added pagination settings for archive pages in blog plugin diff --git a/docs/plugins/blog.md b/docs/plugins/blog.md index 172e85d45..488770799 100644 --- a/docs/plugins/blog.md +++ b/docs/plugins/blog.md @@ -882,6 +882,46 @@ plugins: --- +#### + + + + + +Use this setting to specify a custom function for sorting categories. For +example, if you want to sort categories by the number of posts they contain, +use the following configuration: + +``` yaml +plugins: + - blog: + categories_sort_by: !!python/name:material.plugins.blog.view_post_count +``` + +Don't forget to enable [`categories_sort_reverse`][config.categories_sort_reverse]. +You can define your own comparison function, which must return something +that can be compared while sorting, i.e., a string or number. + +--- + +#### + + + + + +Use this setting to reverse the order in which categories are sorted. By +default, categories are sorted in ascending order, but you can reverse ordering +as follows: + +``` yaml +plugins: + - blog: + categories_sort_reverse: true +``` + +--- + #### diff --git a/docs/schema/plugins/blog.json b/docs/schema/plugins/blog.json index 5413cbba7..aaf4ba305 100644 --- a/docs/schema/plugins/blog.json +++ b/docs/schema/plugins/blog.json @@ -265,6 +265,27 @@ "type": "string", "default": "\"-\"" }, + "categories_sort_by": { + "title": "Sort categories by this function", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/plugins/blog/#config.categories_sort_by", + "default": "!!python/name:material.plugins.blog.view_name", + "oneOf": [ + { + "type": "string" + }, + { + "enum": [ + "!!python/name:material.plugins.blog.view_name", + "!!python/name:material.plugins.blog.view_post_count" + ] + } + ] + }, + "categories_sort_reverse": { + "title": "Soft categories in reverse", + "markdownDescription": "https://squidfunk.github.io/mkdocs-material/plugins/blog/#config.categories_sort_reverse", + "default": false + }, "categories_allowed": { "title": "Categories allowed", "markdownDescription": "https://squidfunk.github.io/mkdocs-material/plugins/blog/#config.categories_allowed", diff --git a/docs/setup/setting-up-a-blog.md b/docs/setup/setting-up-a-blog.md index d76326d5c..d6ef7fc93 100644 --- a/docs/setup/setting-up-a-blog.md +++ b/docs/setup/setting-up-a-blog.md @@ -45,6 +45,8 @@ the blog, but can be helpful for customizations: - [`archive_pagination`][config.archive_pagination] - [`archive_pagination_per_page`][config.archive_pagination_per_page] +- [`categories_sort_by`][config.categories_sort_by] +- [`categories_sort_reverse`][config.categories_sort_reverse] - [`categories_pagination`][config.categories_pagination] - [`categories_pagination_per_page`][config.categories_pagination_per_page] @@ -60,6 +62,8 @@ We'll add more settings here, as we discover new use cases. [config.archive_pagination]: ../plugins/blog.md#config.archive_pagination [config.archive_pagination_per_page]: ../plugins/blog.md#config.archive_pagination_per_page + [config.categories_sort_by]: ../plugins/blog.md#config.categories_sort_by + [config.categories_sort_reverse]: ../plugins/blog.md#config.categories_sort_reverse [config.categories_pagination]: ../plugins/blog.md#config.categories_pagination [config.categories_pagination_per_page]: ../plugins/blog.md#config.categories_pagination_per_page diff --git a/material/__init__.py b/material/__init__.py index e62bccf84..42e06b9d0 100644 --- a/material/__init__.py +++ b/material/__init__.py @@ -18,4 +18,4 @@ # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS # IN THE SOFTWARE. -__version__ = "9.4.11" +__version__ = "9.4.12" diff --git a/material/templates/base.html b/material/templates/base.html index af27a9ef3..795022d2d 100644 --- a/material/templates/base.html +++ b/material/templates/base.html @@ -32,7 +32,7 @@ {% endif %} - + {% endblock %} {% block htmltitle %} {% if page.meta and page.meta.title %} diff --git a/package-lock.json b/package-lock.json index 1af96115b..b15b3bb78 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "mkdocs-material", - "version": "9.4.11", + "version": "9.4.12", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "mkdocs-material", - "version": "9.4.11", + "version": "9.4.12", "license": "MIT", "dependencies": { "clipboard": "^2.0.11", diff --git a/package.json b/package.json index 356b5565c..21b05fa26 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mkdocs-material", - "version": "9.4.11", + "version": "9.4.12", "description": "Documentation that simply works", "keywords": [ "mkdocs",