From 4b8ea9497bc0e2c23b0c40b9a1b8dca105215adc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Bompard?= Date: Wed, 22 Apr 2026 11:19:10 +0200 Subject: [PATCH] Don't ignore article categories when CATEGORY_SAVE_AS is false MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: #3596 Signed-off-by: Aurélien Bompard --- pelican/readers.py | 2 +- pelican/tests/test_readers.py | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/pelican/readers.py b/pelican/readers.py index 508d655f..e10ab655 100644 --- a/pelican/readers.py +++ b/pelican/readers.py @@ -811,7 +811,7 @@ def parse_path_metadata(source_path, settings=None, process=None): checks = [] for key, data in [("FILENAME_METADATA", base), ("PATH_METADATA", source_path)]: checks.append((settings.get(key, None), data)) - if settings.get("USE_FOLDER_AS_CATEGORY") and settings.get("CATEGORY_SAVE_AS"): + if settings.get("USE_FOLDER_AS_CATEGORY"): checks.append(("(?P.*)", subdir)) for regexp, data in checks: if regexp and data: diff --git a/pelican/tests/test_readers.py b/pelican/tests/test_readers.py index 751088f7..3f5a3462 100644 --- a/pelican/tests/test_readers.py +++ b/pelican/tests/test_readers.py @@ -139,6 +139,18 @@ class DefaultReaderTest(ReaderTest): extra={"limit_msg": "Other images have empty alt attributes"}, ) + def test_path_metadata_categories(self): + nested_content_path = os.path.join(CUR_DIR, "nested_content") + r = readers.Readers( + settings=get_settings(USE_FOLDER_AS_CATEGORY=True, CATEGORY_SAVE_AS=None) + ) + mainpage = r.read_file(base_path=nested_content_path, path="maindir/maindir.md") + self.assertDictHasSubset(mainpage.metadata, {"category": "maindir"}) + subpage = r.read_file( + base_path=nested_content_path, path="maindir/subdir/subdir.md" + ) + self.assertDictHasSubset(subpage.metadata, {"category": "subdir"}) + class RstReaderTest(ReaderTest): def test_article_with_metadata(self):