diff --git a/src/ablog/blog.py b/src/ablog/blog.py index 477abc32..d18c1f57 100644 --- a/src/ablog/blog.py +++ b/src/ablog/blog.py @@ -293,15 +293,25 @@ def page_url(self, pagename): return url -def html_builder_write_doc(self, docname, doctree): +def html_builder_write_doc(self, docname, doctree, img_url=False): """ Part of :meth:`sphinx.builders.html.StandaloneHTMLBuilder.write_doc` method used to convert *doctree* to HTML. + + Extra argument `img_url` enables conversion of `` source paths to + fully qualified URLs based on `blog_baseurl`. """ + # Source of images + img_folder = "_images" + if img_url and self.config["blog_baseurl"]: + img_src_path = urljoin(self.config["blog_baseurl"], img_folder) + else: + img_src_path = relative_uri(self.get_target_uri(docname), img_folder) + destination = StringOutput(encoding="utf-8") doctree.settings = self.docsettings self.secnumbers = {} - self.imgpath = relative_uri(self.get_target_uri(docname), "_images") + self.imgpath = img_src_path self.dlpath = relative_uri(self.get_target_uri(docname), "_downloads") self.current_docname = docname self.docwriter.write(doctree, destination) @@ -377,7 +387,7 @@ def __init__(self, blog, docname, info): def __lt__(self, other): return (self._computed_date, self.title) < (other._computed_date, other.title) - def to_html(self, pagename, fulltext=False, drop_h1=True): + def to_html(self, pagename, fulltext=False, drop_h1=True, img_url=False): """ Return excerpt or *fulltext* as HTML after resolving references with respect to *pagename*. @@ -385,6 +395,9 @@ def to_html(self, pagename, fulltext=False, drop_h1=True): By default, first `