diff --git a/MarkdownLivePreview.tasks b/MarkdownLivePreview.tasks index ad3187e..4405a1a 100644 --- a/MarkdownLivePreview.tasks +++ b/MarkdownLivePreview.tasks @@ -1,13 +1,20 @@ todo: ☐ sync scroll @needsUpdate(because of images) - ✔ load images from internet (`https:`) @done (17-01-02 15:51) ☐ regive focus to the right markdown view ☐ set the title of the preview ☐ preview.set_scratch(True) - ☐ add 404 image ☐ fix #4 ☐ bug when empty `src` ☐ auto refresh preview if loading images ☐ call settings listener on_new too ☐ preview.wordWrap => True + ☐ try/except for 404 + ☐ support hanchor (TOC) @big + + +___________________ +Archive: + ✔ clean the code (syntax) @done (17-01-02 16:27) @project(todo) + ✔ add 404 image @done (17-01-02 16:27) @project(todo) + ✔ load images from internet (`https:`) @done (17-01-02 15:51) @project(todo) diff --git a/image_manager.py b/image_manager.py index e205a9c..3fa8325 100644 --- a/image_manager.py +++ b/image_manager.py @@ -3,7 +3,6 @@ import os.path from threading import Thread import urllib.request -import base64 import sublime from .functions import * @@ -12,18 +11,6 @@ TIMEOUT = 20 # seconds SEPARATOR = '---%cache%--' -class InternalError(Exception): pass - -def load_and_save_image(url, user_callback): - def callback(content): - content = to_base64(content=content) - with open(CACHE_FILE, 'a') as fp: - fp.write(url + SEPARATOR + content) - user_callback(content) - thread = ImageLoader(url, callback) - thread.start() - sublime.set_timeout_async(lambda: thread.join(), TIMEOUT * 1000) - def get_base64_saver(loading, url): def callback(content): loading[url] = to_base64(content=content) diff --git a/md_in_popup.py b/md_in_popup.py index 4836850..4372328 100644 --- a/md_in_popup.py +++ b/md_in_popup.py @@ -134,10 +134,10 @@ def create_preview(window, md_view): return preview def show_html(md_view, preview): - html = (''.format(get_style()) + + html = '{}'.format(get_style(), pre_with_br(markdown2.markdown(get_view_content(md_view), - extras=['fenced-code-blocks', 'no-code-highlighting']))) - # html = """Mulwarre High School's Logo""" + extras=['fenced-code-blocks', + 'no-code-highlighting']))) # the option no-code-highlighting does not exists # in the official version of markdown2 for now @@ -157,7 +157,10 @@ def show_html(md_view, preview): sublime.Region(-1), html, sublime.LAYOUT_BLOCK, - lambda href: sublime.run_command('open_url', {'url': href})) + lambda href: sublime.run_command('open_url', + {'url': href})) + + # set viewport position # 0 < y < 1 y = md_view.text_to_layout(md_view.sel()[0].begin())[1] / md_view.layout_extent()[1] @@ -175,8 +178,8 @@ class MLPDevListener(sublime_plugin.EventListener): view.file_name().endswith('.py')): return sublime.run_command('reload_plugin', { - 'main': os.path.join(sublime.packages_path(), 'MarkdownLivePreview', - 'md_in_popup.py'), + 'main': os.path.join(sublime.packages_path(), + 'MarkdownLivePreview', 'md_in_popup.py'), 'scripts': ['image_manager', 'functions'], 'quiet': True }) @@ -187,7 +190,8 @@ class MarkdownLivePReviewListener(sublime_plugin.EventListener): settings = view.settings() if not 'markdown' in settings.get('syntax').lower(): return - settings.add_on_change('markdown_preview_enabled', lambda: self.on_modified(view)) + settings.add_on_change('markdown_preview_enabled', + lambda: self.on_modified(view)) def on_modified(self, md_view): window = md_view.window() @@ -196,7 +200,8 @@ class MarkdownLivePReviewListener(sublime_plugin.EventListener): if not 'markdown' in md_view_settings.get('syntax').lower(): return - markdown_preview_enabled = md_view_settings.get('markdown_preview_enabled') is True + markdown_preview_enabled = md_view_settings.get('markdown_preview_' + 'enabled') is True preview_id = md_view_settings.get('markdown_preview_id', None) if not markdown_preview_enabled: @@ -220,11 +225,13 @@ class MarkdownLivePReviewListener(sublime_plugin.EventListener): def on_pre_close(self, view): settings = view.settings() if settings.get('markdown_preview_enabled') is True: - preview = get_view_from_id(view.window(), settings.get('markdown_preview_id')) + preview = get_view_from_id(view.window(), + settings.get('markdown_preview_id')) if preview: sublime.set_timeout_async(lambda: preview.close(), 250) elif settings.get('is_markdown_preview') is True: - md_view = get_view_from_id(view.window(), settings.get('markdown_view_id')) + md_view = get_view_from_id(view.window(), + settings.get('markdown_view_id')) if md_view: def callback(): md_view_settings = md_view.settings() diff --git a/sample.md b/sample.md index 7358f17..c41a0d5 100644 --- a/sample.md +++ b/sample.md @@ -1,3 +1,3 @@ -![first](http://afterishtar.pl/images/100x100.gif) +# DuckDuckGo - The Search engine you'll fall in love with -![second](http://www.hondahookup.com/images/100x100.jpg) +![DuckDUckGo](http://www.articpost.com/wp-content/uploads/2014/08/DuckDuckGo-Search-Engine.jpg)