diff --git a/plugins/code/markdown_preview/markdown_preview.py b/plugins/code/markdown_preview/markdown_preview.py index b9a0400..709d9ac 100644 --- a/plugins/code/markdown_preview/markdown_preview.py +++ b/plugins/code/markdown_preview/markdown_preview.py @@ -20,6 +20,7 @@ class MarkdownPreview(Gtk.Popover, MarkdownPreviewMixin): super(MarkdownPreview, self).__init__() self.can_hide: bool = True + self.fpath: str = "" self.is_preview_paused: bool = True # True by default b/c started hidden self._setup_styling() @@ -52,10 +53,10 @@ class MarkdownPreview(Gtk.Popover, MarkdownPreviewMixin): bttn_box = Gtk.ButtonBox() scrolled_win = Gtk.ScrolledWindow() viewport = Gtk.Viewport() - self._markdown_view = WebkitUI() + self._markdown_view = WebkitUI() 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_use_stock(True) diff --git a/plugins/code/markdown_preview/mixins/markdown_preview_mixin.py b/plugins/code/markdown_preview/mixins/markdown_preview_mixin.py index 5a3a944..7761e60 100644 --- a/plugins/code/markdown_preview/mixins/markdown_preview_mixin.py +++ b/plugins/code/markdown_preview/mixins/markdown_preview_mixin.py @@ -1,4 +1,5 @@ # Python imports +from pathlib import Path # Lib imports @@ -19,11 +20,11 @@ class MarkdownPreviewMixin(MarkdownTemplateMixin): return 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( - content = data, base_uri = None + content = data, base_uri = base_path ) def get_rendered_markdown(self, buffer) -> str: diff --git a/plugins/code/markdown_preview/plugin.py b/plugins/code/markdown_preview/plugin.py index e2aea21..be3297a 100644 --- a/plugins/code/markdown_preview/plugin.py +++ b/plugins/code/markdown_preview/plugin.py @@ -20,10 +20,21 @@ class Plugin(PluginCode): 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): if isinstance(event, Code_Event_Types.FocusedViewEvent): + self._set_file(event.view.get_buffer()) markdown_preview._do_markdown_translate(event.view.get_buffer()) elif isinstance(event, Code_Event_Types.TextChangedEvent): + self._set_file(event.buffer) markdown_preview._do_markdown_translate(event.buffer) def load(self):