diff --git a/frappe/core/doctype/file/utils.py b/frappe/core/doctype/file/utils.py index d16f76b090..0d11011ea6 100644 --- a/frappe/core/doctype/file/utils.py +++ b/frappe/core/doctype/file/utils.py @@ -216,9 +216,11 @@ def get_file_name(fname: str, optional_suffix: str | None = None) -> str: return f"{partial}{suffix}{extn}" -def extract_images_from_doc(doc: "Document", fieldname: str): +def extract_images_from_doc(doc: "Document", fieldname: str, is_private=True): content = doc.get(fieldname) - content = extract_images_from_html(doc, content, is_private=(not doc.meta.make_attachments_public)) + if doc.meta.make_attachments_public: + is_private = False + content = extract_images_from_html(doc, content, is_private=is_private) if frappe.flags.has_dataurl: doc.set(fieldname, content) diff --git a/frappe/website/doctype/blog_post/blog_post.py b/frappe/website/doctype/blog_post/blog_post.py index f2e39d0a19..f31984e7e8 100644 --- a/frappe/website/doctype/blog_post/blog_post.py +++ b/frappe/website/doctype/blog_post/blog_post.py @@ -95,6 +95,12 @@ class BlogPost(WebsiteGenerator): self.set_read_time() + if self.is_website_published(): + from frappe.core.doctype.file.utils import extract_images_from_doc + + # Extract images first before the standard image extraction to ensure they are public. + extract_images_from_doc(self, "content", is_private=False) + def reset_featured_for_other_blogs(self): all_posts = frappe.get_all("Blog Post", {"featured": 1}) for post in all_posts: