Skip to content

Commit 7dc6646

Browse files
committed
fix(integrations): blog post detection was broken
Closes #404
1 parent 5a0cb1b commit 7dc6646

File tree

1 file changed

+18
-5
lines changed

1 file changed

+18
-5
lines changed

mkdocs_rss_plugin/integrations/theme_material_blog_plugin.py

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,19 @@
1111
# 3rd party
1212
from mkdocs.config.defaults import MkDocsConfig
1313
from mkdocs.plugins import get_plugin_logger
14-
from mkdocs.structure.pages import Page
1514

1615
# package
1716
from mkdocs_rss_plugin.constants import MKDOCS_LOGGER_NAME
1817
from mkdocs_rss_plugin.integrations.theme_material_base import (
1918
IntegrationMaterialThemeBase,
2019
)
20+
from mkdocs_rss_plugin.models import MkdocsPageSubset
2121

2222
# conditional
2323
try:
2424
from material import __version__ as material_version
2525
from material.plugins.blog.plugin import BlogPlugin
26+
from material.plugins.blog.structure import Post
2627

2728
except ImportError:
2829
material_version = None
@@ -131,7 +132,7 @@ def author_name_from_id(self, author_id: str) -> str:
131132
)
132133
return author_id
133134

134-
def is_page_a_blog_post(self, mkdocs_page: Page) -> bool:
135+
def is_page_a_blog_post(self, mkdocs_page: Post | MkdocsPageSubset) -> bool:
135136
"""Identifies if the given page is part of Material Blog.
136137
137138
Args:
@@ -140,6 +141,18 @@ def is_page_a_blog_post(self, mkdocs_page: Page) -> bool:
140141
Returns:
141142
bool: True if the given page is a Material Blog post.
142143
"""
143-
return Path(mkdocs_page.file.src_uri).is_relative_to(
144-
self.blog_plugin_cfg.config.blog_dir
145-
)
144+
if self.IS_ENABLED and isinstance(mkdocs_page, Post):
145+
logger.info(
146+
f"page '{mkdocs_page.file.src_uri}' identified as Material Blog post."
147+
)
148+
return True
149+
elif isinstance(mkdocs_page, MkdocsPageSubset) and Path(
150+
mkdocs_page.src_uri
151+
).is_relative_to(self.blog_plugin_cfg.config.blog_dir):
152+
logger.info(
153+
f"page '{mkdocs_page.src_uri}' identified as Material Blog post "
154+
f"by src_uri matching."
155+
)
156+
return True
157+
else:
158+
return False

0 commit comments

Comments
 (0)