Compare commits

..

5 Commits

Author SHA1 Message Date
0505ca30bc Use phantomSet #11 2017-01-22 11:23:14 +11:00
c49ae26720 tiny update 2017-01-20 18:52:01 +11:00
c2618ead1d Merge pull request #9 from jimperio/master
Fix a typo and some minor copy errors
2017-01-14 09:23:17 +11:00
6e113fef6e fix trailing commas in Main.sublime-menu 2017-01-14 09:21:59 +11:00
e5378e2300 Fix a typo and some minor copy errors 2017-01-13 23:15:48 +08:00
8 changed files with 39 additions and 71 deletions

View File

@ -23,11 +23,11 @@
"file": "$packages/User/MarkdownLivePreview.css", "file": "$packages/User/MarkdownLivePreview.css",
"contents": "/* See http://www.sublimetext.com/docs/3/minihtml.html#css to know which property you're able to use */\n\n$0" "contents": "/* See http://www.sublimetext.com/docs/3/minihtml.html#css to know which property you're able to use */\n\n$0"
} }
}, }
] ]
}, }
], ]
}, }
] ]
} }
] ]

View File

@ -11,17 +11,19 @@ from .escape_amp import *
from .functions import * from .functions import *
from .setting_names import * from .setting_names import *
from .image_manager import CACHE_FILE from .image_manager import CACHE_FILE
from random import randint as rnd
__folder__ = os.path.dirname(__file__) __folder__ = os.path.dirname(__file__)
STYLE_FILE = os.path.join(os.path.dirname(__folder__), 'User', STYLE_FILE = os.path.join(os.path.dirname(__folder__), 'User',
'MarkdownLivePreview.css') 'MarkdownLivePreview.css')
# used to store the phantom's set
views = {}
def plugin_loaded(): def plugin_loaded():
global DEFAULT_STYLE_FILE global DEFAULT_STYLE_FILE
DEFAULT_STYLE_FILE = sublime.load_resource('Packages/MarkdownLivePreview/' DEFAULT_STYLE_FILE = sublime.load_resource('Packages/MarkdownLivePreview/default.css')
'default.css')
def get_preview_name(md_view): def get_preview_name(md_view):
file_name = md_view.file_name() file_name = md_view.file_name()
@ -35,7 +37,7 @@ def create_preview(window, file_name):
preview.set_name(get_preview_name(file_name)) preview.set_name(get_preview_name(file_name))
preview.set_scratch(True) preview.set_scratch(True)
preview.set_syntax_file('Packages/MarkdownLivePreview/.sublime/' preview.set_syntax_file('Packages/MarkdownLivePreview/.sublime/' + \
'MarkdownLivePreviewSyntax.hidden-tmLanguage') 'MarkdownLivePreviewSyntax.hidden-tmLanguage')
return preview return preview
@ -45,6 +47,7 @@ def get_style():
return content + "pre code .space {color: var(--light-bg)}" return content + "pre code .space {color: var(--light-bg)}"
def show_html(md_view, preview): def show_html(md_view, preview):
global views
html = [] html = []
html.append('<style>\n{}\n</style>'.format(get_style())) html.append('<style>\n{}\n</style>'.format(get_style()))
html.append(pre_with_br(md2.markdown(get_view_content(md_view), html.append(pre_with_br(md2.markdown(get_view_content(md_view),
@ -65,14 +68,14 @@ def show_html(md_view, preview):
html = html.replace('&nbspespace;', '<i class="space">.</i>') html = html.replace('&nbspespace;', '<i class="space">.</i>')
html = replace_img_src_base64(html, basepath=os.path.dirname( html = replace_img_src_base64(html, basepath=os.path.dirname(
md_view.file_name())) md_view.file_name()))
preview.erase_phantoms('markdown_preview')
preview.add_phantom('markdown_preview',
sublime.Region(-1),
html,
sublime.LAYOUT_BLOCK,
lambda href: sublime.run_command('open_url',
{'url': href}))
phantom_set = views.setdefault(preview.id(),
sublime.PhantomSet(preview, 'markdown_live_preview'))
phantom_set.update([sublime.Phantom(sublime.Region(0), html, sublime.LAYOUT_BLOCK,
lambda href: sublime.run_command('open_url',
{'url': href}))])
# lambda href: sublime.run_command('open_url', {'url': href})
# get the "ratio" of the markdown view's position. # get the "ratio" of the markdown view's position.
# 0 < y < 1 # 0 < y < 1
y = md_view.text_to_layout(md_view.sel()[0].begin())[1] / md_view.layout_extent()[1] y = md_view.text_to_layout(md_view.sel()[0].begin())[1] / md_view.layout_extent()[1]
@ -89,3 +92,6 @@ def show_html(md_view, preview):
def clear_cache(): def clear_cache():
"""Removes the cache file""" """Removes the cache file"""
os.remove(CACHE_FILE) os.remove(CACHE_FILE)
def release_phantoms_set():
global views

View File

@ -72,8 +72,8 @@ class MarkdownLivePreviewListener(sublime_plugin.EventListener):
if (is_markdown_view(view) if (is_markdown_view(view)
and get_settings().get('markdown_live_preview_on_open') and get_settings().get('markdown_live_preview_on_open')
and not vsettings.get(PREVIEW_ENABLED) and not vsettings.get(PREVIEW_ENABLED)
and vsettings.get('syntax') != 'Packages/MarkdownLivePreview/' and vsettings.get('syntax') != 'Packages/MarkdownLivePreview/' + \
'.sublime/MarkdownLivePreviewSyntax' '.sublime/MarkdownLivePreviewSyntax' + \
'.hidden-tmLanguage'): '.hidden-tmLanguage'):
sublime.run_command('new_markdown_live_preview') sublime.run_command('new_markdown_live_preview')
@ -110,3 +110,8 @@ class MarkdownLivePreviewClearCacheCommand(sublime_plugin.ApplicationCommand):
def run(self): def run(self):
clear_cache() clear_cache()
class MarkdownLivePreviewReleasePhantomSetCommand(sublime_plugin.ApplicationCommand):
def run(self):
release_phantoms_set()

View File

@ -5,6 +5,7 @@ Fast:
Medium: Medium:
☐ auto refresh preview if loading images ☐ auto refresh preview if loading images
☐ use alt attribute for 404 error ☐ use alt attribute for 404 error
☐ fix custom css @bug
Long: Long:
☐ support hanchor (TOC) @big ☐ support hanchor (TOC) @big

View File

@ -23,8 +23,8 @@ def replace_img_src_base64(html, basepath):
path, end = get_content_till(html, '"', start=index + len(tag_start)) path, end = get_content_till(html, '"', start=index + len(tag_start))
if ''.join(path).startswith('data:image/'): if ''.join(path).startswith('data:image/'):
continue continue
if ''.join(path).startswith(tuple(get_settings().get('load_from_internet' if ''.join(path).startswith(tuple(get_settings().get('load_from_internet' + \
'_when_starts'))): '_when_starts', []))):
image = ImageManager.get(''.join(path)) image = ImageManager.get(''.join(path))
image = image or loading image = image or loading
@ -38,7 +38,7 @@ def replace_img_src_base64(html, basepath):
return ''.join(html) return ''.join(html)
def is_markdown_view(view): def is_markdown_view(view):
return 'markdown' in view.scope_name(0) return 'markdown' in view.scope_name(0)
def to_base64(path=None, content=None): def to_base64(path=None, content=None):
if path is None and content is None: if path is None and content is None:

View File

@ -10,10 +10,10 @@ Thanks for installing MarkdownLivePreview! I hope you'll enjoy using it!
Quick Start: Quick Start:
~~~~~~~~~~~~ ~~~~~~~~~~~~
To enable MarkdownLivePreview, you need to me on a markdown view (works with To enable MarkdownLivePreview, you need to be on a markdown view (works with
Markdown Extended). Then just press `alt+m`, or search up in the command Markdown Extended). Then just press `alt+m`, or search up in the command
palette: 'MarkdownLivePreview: Toggle'. Hit enter and you're done. As soon as palette: 'MarkdownLivePreview: Toggle'. Hit enter and you're done. As soon as
you'll type anything in, it'll show up the preview in a new group. you type anything in, it'll show up with the preview in a new group.
Say thanks: Say thanks:
~~~~~~~~~~~ ~~~~~~~~~~~

View File

@ -1,52 +1,8 @@
# DuckDuckGo - The Search engine you'll fall in love # sample
Hope you'll enjoy using MarkdownLivePreview! sdfdsf
![std](https://www.grafikart.fr/uploads/users/46570/2015/01/offtime-screens-11_1_.jpg)
```python sdfd
print('Hello world') sdf
if DEBUG:
print('DEBUG_MODE on')
```
> Only a fool knows everything. A wise man knows how little he knows
The only think I know right now is that Boxy Theme's just awesome.
t
h
i
s
-
i
s
![Sublime Text Forum](https://forum.sublimetext.com/uploads/st-forum-wide.png)
-
a
-
![Sublime Text Forum](https://forum.sublimetext.com/uploads/st-forum-wide.png)
![Sublime Text Forum](https://forum.sublimetext.com/uploads/st-forum-wide.png)
t
![Sublime Text Forum](https://forum.sublimetext.com/uploads/st-forum-wide.png)
e
![Sublime Text Forum](https://forum.sublimetext.com/uploads/st-forum-wide.png)
s
t