From 55296382130d38e02ceadd86061c23d21dd7dcec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Mond=C3=A9jar?= Date: Sat, 21 Feb 2026 12:41:33 +0100 Subject: [PATCH 1/3] Fix natural sort by extension not being applied --- pyproject.toml | 2 +- src/mkdocs_include_markdown_plugin/process.py | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index c52c512..19cf415 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "mkdocs-include-markdown-plugin" -version = "7.2.1" +version = "7.2.2" description = "Mkdocs Markdown includer plugin." readme = "README.md" license = "Apache-2.0" diff --git a/src/mkdocs_include_markdown_plugin/process.py b/src/mkdocs_include_markdown_plugin/process.py index e9f2c77..c9ae613 100644 --- a/src/mkdocs_include_markdown_plugin/process.py +++ b/src/mkdocs_include_markdown_plugin/process.py @@ -550,8 +550,13 @@ def key(p: str) -> str: def key(p: str) -> str: return natural_sort_key(os.path.splitext(p)[1]) # type: ignore elif order_by == 'name': - def key(p: str) -> str: - return natural_sort_key(os.path.basename(p)) # type: ignore + def key(p: str): + ext = os.path.splitext(p)[1].lower() + name = os.path.basename(p) + return ( + ext, + natural_sort_key(name), + ) else: key = natural_sort_key # type: ignore elif order_type == 'size': From 23931a1b014d373b6e80b8110f404374e7c7bade Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Mond=C3=A9jar?= Date: Sat, 21 Feb 2026 13:44:53 +0100 Subject: [PATCH 2/3] fix types --- src/mkdocs_include_markdown_plugin/process.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mkdocs_include_markdown_plugin/process.py b/src/mkdocs_include_markdown_plugin/process.py index c9ae613..de10696 100644 --- a/src/mkdocs_include_markdown_plugin/process.py +++ b/src/mkdocs_include_markdown_plugin/process.py @@ -550,10 +550,10 @@ def key(p: str) -> str: def key(p: str) -> str: return natural_sort_key(os.path.splitext(p)[1]) # type: ignore elif order_by == 'name': - def key(p: str): + def key(p: str) -> tuple[str, str]: # type: ignore ext = os.path.splitext(p)[1].lower() name = os.path.basename(p) - return ( + return ( # type: ignore ext, natural_sort_key(name), ) From a63e7222205c9a89d6400019f63c6b003b1bfa3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Mond=C3=A9jar?= Date: Sat, 21 Feb 2026 13:47:04 +0100 Subject: [PATCH 3/3] fix error --- src/mkdocs_include_markdown_plugin/process.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mkdocs_include_markdown_plugin/process.py b/src/mkdocs_include_markdown_plugin/process.py index de10696..f62a3b9 100644 --- a/src/mkdocs_include_markdown_plugin/process.py +++ b/src/mkdocs_include_markdown_plugin/process.py @@ -547,9 +547,6 @@ def key(p: str) -> str: return os.path.splitext(p)[1] elif order_type == 'natural': if order_by == 'extension': - def key(p: str) -> str: - return natural_sort_key(os.path.splitext(p)[1]) # type: ignore - elif order_by == 'name': def key(p: str) -> tuple[str, str]: # type: ignore ext = os.path.splitext(p)[1].lower() name = os.path.basename(p) @@ -557,6 +554,9 @@ def key(p: str) -> tuple[str, str]: # type: ignore ext, natural_sort_key(name), ) + elif order_by == 'name': + def key(p: str) -> str: + return natural_sort_key(os.path.basename(p)) # type: ignore else: key = natural_sort_key # type: ignore elif order_type == 'size':