Skip to content

Commit 13595c8

Browse files
committed
fix: handle locale or without territory #176
1 parent 20dac02 commit 13595c8

3 files changed

Lines changed: 43 additions & 1 deletion

File tree

mkdocs_rss_plugin/util.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -629,7 +629,11 @@ def guess_locale(mkdocs_config: Config) -> str or None:
629629
"[rss plugin] Locale detected in theme "
630630
f"('{mkdocs_config.theme.name}') settings: {locale=}"
631631
)
632-
return f"{locale}"
632+
return (
633+
f"{locale.language}-{locale.territory}"
634+
if locale.territory
635+
else f"{locale.language}"
636+
)
633637
elif "language" in mkdocs_config.theme:
634638
logger.debug(
635639
"[rss plugin] Language detected in theme "
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
site_name: Test RSS Plugin
2+
site_description: Test a language code with territory
3+
site_url: https://guts.github.io/mkdocs-rss-plugin
4+
5+
use_directory_urls: true
6+
7+
plugins:
8+
- rss
9+
10+
theme:
11+
name: mkdocs
12+
locale: fr

tests/test_build.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,32 @@ def test_simple_build_lang_with_territory(self):
356356
feed_parsed = feedparser.parse(Path(tmpdirname) / "feed_rss_updated.xml")
357357
self.assertEqual(feed_parsed.feed.get("language"), "en-US")
358358

359+
def test_simple_build_lang_without_territory(self):
360+
with tempfile.TemporaryDirectory() as tmpdirname:
361+
cli_result = self.build_docs_setup(
362+
testproject_path="docs",
363+
mkdocs_yml_filepath=Path(
364+
"tests/fixtures/mkdocs_lang_without_territory.yml"
365+
),
366+
output_path=tmpdirname,
367+
strict=True,
368+
)
369+
370+
if cli_result.exception is not None:
371+
e = cli_result.exception
372+
logger.debug(format_exception(type(e), e, e.__traceback__))
373+
374+
self.assertEqual(cli_result.exit_code, 0)
375+
self.assertIsNone(cli_result.exception)
376+
377+
# created items
378+
feed_parsed = feedparser.parse(Path(tmpdirname) / "feed_rss_created.xml")
379+
self.assertEqual(feed_parsed.feed.get("language"), "fr")
380+
381+
# updated items
382+
feed_parsed = feedparser.parse(Path(tmpdirname) / "feed_rss_updated.xml")
383+
self.assertEqual(feed_parsed.feed.get("language"), "fr")
384+
359385
def test_simple_build_pretty_print_enabled(self):
360386
with tempfile.TemporaryDirectory() as tmpdirname:
361387
cli_result = self.build_docs_setup(

0 commit comments

Comments
 (0)