Fixed Markdown Preview not showing images

This commit is contained in:
2026-02-23 01:36:41 -06:00
parent bd91eea411
commit c233fdbac3
3 changed files with 18 additions and 5 deletions

View File

@@ -20,6 +20,7 @@ class MarkdownPreview(Gtk.Popover, MarkdownPreviewMixin):
super(MarkdownPreview, self).__init__() super(MarkdownPreview, self).__init__()
self.can_hide: bool = True self.can_hide: bool = True
self.fpath: str = ""
self.is_preview_paused: bool = True # True by default b/c started hidden self.is_preview_paused: bool = True # True by default b/c started hidden
self._setup_styling() self._setup_styling()
@@ -52,10 +53,10 @@ class MarkdownPreview(Gtk.Popover, MarkdownPreviewMixin):
bttn_box = Gtk.ButtonBox() bttn_box = Gtk.ButtonBox()
scrolled_win = Gtk.ScrolledWindow() scrolled_win = Gtk.ScrolledWindow()
viewport = Gtk.Viewport() viewport = Gtk.Viewport()
self._markdown_view = WebkitUI()
self._markdown_view = WebkitUI()
self.start_stop_bttn = Gtk.ToggleButton() self.start_stop_bttn = Gtk.ToggleButton()
settings_bttn = Gtk.Button() settings_bttn = Gtk.Button()
self.start_stop_bttn.set_label("gtk-media-pause") self.start_stop_bttn.set_label("gtk-media-pause")
self.start_stop_bttn.set_use_stock(True) self.start_stop_bttn.set_use_stock(True)

View File

@@ -1,4 +1,5 @@
# Python imports # Python imports
from pathlib import Path
# Lib imports # Lib imports
@@ -19,11 +20,11 @@ class MarkdownPreviewMixin(MarkdownTemplateMixin):
return return
data = self.get_rendered_markdown(buffer) data = self.get_rendered_markdown(buffer)
self._load_html(data) self._load_html(data, f"file://{self.fpath}")
def _load_html(self, data: str): def _load_html(self, data: str, base_path: str = ""):
self._markdown_view.load_html( self._markdown_view.load_html(
content = data, base_uri = None content = data, base_uri = base_path
) )
def get_rendered_markdown(self, buffer) -> str: def get_rendered_markdown(self, buffer) -> str:

View File

@@ -20,10 +20,21 @@ class Plugin(PluginCode):
super(Plugin, self).__init__() super(Plugin, self).__init__()
def _set_file(self, buffer):
event = Event_Factory.create_event(
"get_file", buffer = buffer
)
self.message_to("files", event)
if not event.response.get_location(): return
markdown_preview.fpath = event.response.get_location().get_path()
def _controller_message(self, event: Code_Event_Types.CodeEvent): def _controller_message(self, event: Code_Event_Types.CodeEvent):
if isinstance(event, Code_Event_Types.FocusedViewEvent): if isinstance(event, Code_Event_Types.FocusedViewEvent):
self._set_file(event.view.get_buffer())
markdown_preview._do_markdown_translate(event.view.get_buffer()) markdown_preview._do_markdown_translate(event.view.get_buffer())
elif isinstance(event, Code_Event_Types.TextChangedEvent): elif isinstance(event, Code_Event_Types.TextChangedEvent):
self._set_file(event.buffer)
markdown_preview._do_markdown_translate(event.buffer) markdown_preview._do_markdown_translate(event.buffer)
def load(self): def load(self):