From c0c9867cc89efb2d39cc1d843c98b6e03d375174 Mon Sep 17 00:00:00 2001 From: Mathieu PATUREL Date: Fri, 15 Nov 2019 13:33:58 +1100 Subject: [PATCH] move resources.py to MarkdownLivePreview.py Having an extra file is just a pain because you have to save it manually for ST to reload, and it was small and created way more trouble than it needed to... It fits really nicely in there anyway And add some nice CSS --- MarkdownLivePreview.py | 27 ++++++++++++++++++++++---- live-testing/test.md | 9 ++++++--- resources.py | 17 ----------------- resources/stylesheet.css | 41 ++++++++++++++++++++++++++++++++++++++-- 4 files changed, 68 insertions(+), 26 deletions(-) delete mode 100644 resources.py diff --git a/MarkdownLivePreview.py b/MarkdownLivePreview.py index 5f99e63..f1f3064 100644 --- a/MarkdownLivePreview.py +++ b/MarkdownLivePreview.py @@ -6,16 +6,33 @@ from functools import partial from .markdown2html import markdown2html from .utils import * -from .resources import resources - -def plugin_loaded(): - pass MARKDOWN_VIEW_INFOS = "markdown_view_infos" PREVIEW_VIEW_INFOS = "preview_view_infos" # FIXME: put this as a setting for the user to choose? DELAY = 500 # ms +def get_resource(resource): + path = 'Packages/MarkdownLivePreview/resources/' + resource + abs_path = os.path.join(sublime.packages_path(), '..', path) + if os.path.isfile(abs_path): + with open(abs_path, 'r') as fp: + return fp.read() + return sublime.load_resource(path) + +resources = {} + +def plugin_loaded(): + resources["base64_loading_image"] = get_resource('loading.base64') + resources["base64_404_image"] = get_resource('404.base64') + resources["stylesheet"] = get_resource('stylesheet.css') + +# try to reload the resources if we save this file +try: + plugin_loaded() +except OSError: + pass + # Terminology # original_view: the view in the regular editor, without it's own window # markdown_view: the markdown view, in the special window @@ -190,6 +207,8 @@ class MarkdownLivePreviewListener(sublime_plugin.EventListener): resources ) + print(html) + self.phantom_sets[markdown_view.id()].update([ sublime.Phantom(sublime.Region(0), html, sublime.LAYOUT_BLOCK, lambda href: sublime.run_command('open_url', {'url': href})) diff --git a/live-testing/test.md b/live-testing/test.md index 24d3981..cc7fdde 100644 --- a/live-testing/test.md +++ b/live-testing/test.md @@ -1,12 +1,15 @@ # hello world -This is a *test*. asdfas +This is a *test*. Some inline `[2]code()`. -``` +```python import this # you should try this ``` -this flickering is really annoying... \ No newline at end of file +this flickering is really annoying... + + +It looks like it's gone... Oh wait nah, it's still here... \ No newline at end of file diff --git a/resources.py b/resources.py deleted file mode 100644 index cecc707..0000000 --- a/resources.py +++ /dev/null @@ -1,17 +0,0 @@ -import os.path -import sublime - -def get_resource(resource): - path = 'Packages/MarkdownLivePreview/resources/' + resource - abs_path = os.path.join(sublime.packages_path(), '..', path) - if os.path.isfile(abs_path): - with open(abs_path, 'r') as fp: - return fp.read() - return sublime.load_resource(path) - -resources = {} - -def plugin_loaded(): - resources["base64_loading_image"] = get_resource('loading.base64') - resources["base64_404_image"] = get_resource('404.base64') - resources["stylesheet"] = get_resource('stylesheet.css') diff --git a/resources/stylesheet.css b/resources/stylesheet.css index 12780e3..ac04e54 100644 --- a/resources/stylesheet.css +++ b/resources/stylesheet.css @@ -1,3 +1,40 @@ +html { + --light-bg: color(var(--background) blend(#fff 90%)); + --very-light-bg: color(var(--background) blend(#fff 85%)); +} + body { - font-family: "Open Sans", sans-serif, serif; -} \ No newline at end of file + font-family: "Ubuntu", "DejaVu Sans", "Open Sans", sans-serif; +} + +blockquote { + font-style: italic; + display: block; + margin-left: 30px; +} + +pre { + display: block; + background-color: var(--very-light-bg); +} + +code { + padding-left: 0.2rem; + padding-right: 0.2rem; + margin: 0; + border-radius: 3px; + background-color: red; +} + +code { + padding-left: 0.2rem; + padding-right: 0.2rem; + background-color: var(--very-light-bg); + margin: 0; + border-radius: 3px; +} + +pre code { + padding: 0; +} +