Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0ac9fd9aaa | |||
| 5bbfb4606d | |||
| 37703e9bab | |||
| 3b920f4336 | |||
| abe151fdb7 | |||
| acc8beb3be | |||
| 9206b6de62 | |||
| cda4532833 | |||
| ff8c94bda5 | |||
| ded9c28096 | |||
| 0e6660a331 | |||
| 0143428114 |
@ -7,14 +7,27 @@
|
|||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"caption": "MarkdownLivePreview",
|
"caption": "MarkdownLivePreview",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"caption": "Settings",
|
||||||
|
"command": "edit_settings",
|
||||||
|
"args": {
|
||||||
|
"base_file": "$packages/MarkdownLivePreview/.sublime/MarkdownLivePreview.sublime-settings",
|
||||||
|
"default": "// Your settings for MarkdownLivePreview. See the default file to see the different options. \n{\n\t\n}\n"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"caption": "Style - CSS",
|
||||||
"command": "open_file",
|
"command": "open_file",
|
||||||
"args": {
|
"args": {
|
||||||
"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"
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@ -2,5 +2,17 @@
|
|||||||
{
|
{
|
||||||
"caption": "MarkdownLivePreview: Edit Current File",
|
"caption": "MarkdownLivePreview: Edit Current File",
|
||||||
"command": "new_markdown_live_preview"
|
"command": "new_markdown_live_preview"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"caption": "MarkdownLivePreview: Clear Cache",
|
||||||
|
"command": "markdown_live_preview_clear_cache"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"caption": "Preferences: MarkdownLivePreview Settings",
|
||||||
|
"command": "edit_settings",
|
||||||
|
"args": {
|
||||||
|
"base_file": "${packages}/MarkdownLivePreview/.sublime/MarkdownLivePreview.sublime-settings",
|
||||||
|
"default": "// Your settings for MarkdownLivePreview. See the default file to see the different options. \n{\n\t$0\n}\n"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
{
|
{
|
||||||
|
"markdown_live_preview_on_open": false,
|
||||||
"load_from_internet_when_starts": ["http://", "https://"]
|
"load_from_internet_when_starts": ["http://", "https://"]
|
||||||
}
|
}
|
||||||
|
|||||||
14
.sublime/MarkdownLivePreviewSyntax.hidden-tmLanguage
Normal file
14
.sublime/MarkdownLivePreviewSyntax.hidden-tmLanguage
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>name</key>
|
||||||
|
<string>MarkdownLivePreviewSyntax</string>
|
||||||
|
|
||||||
|
<key>patterns</key>
|
||||||
|
<array>
|
||||||
|
</array>
|
||||||
|
<key>scopeName</key>
|
||||||
|
<string>text.markdown-live-preview</string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
22
MLPApi.py
22
MLPApi.py
@ -10,6 +10,7 @@ from .lib import markdown2 as md2
|
|||||||
from .escape_amp import *
|
from .escape_amp import *
|
||||||
from .functions import *
|
from .functions import *
|
||||||
from .setting_names import *
|
from .setting_names import *
|
||||||
|
from .image_manager import CACHE_FILE
|
||||||
|
|
||||||
__folder__ = os.path.dirname(__file__)
|
__folder__ = os.path.dirname(__file__)
|
||||||
|
|
||||||
@ -34,6 +35,8 @@ 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/'
|
||||||
|
'MarkdownLivePreviewSyntax.hidden-tmLanguage')
|
||||||
|
|
||||||
return preview
|
return preview
|
||||||
|
|
||||||
@ -47,12 +50,10 @@ def show_html(md_view, preview):
|
|||||||
html.append(pre_with_br(md2.markdown(get_view_content(md_view),
|
html.append(pre_with_br(md2.markdown(get_view_content(md_view),
|
||||||
extras=['fenced-code-blocks',
|
extras=['fenced-code-blocks',
|
||||||
'no-code-highlighting'])))
|
'no-code-highlighting'])))
|
||||||
|
|
||||||
html = '\n'.join(html)
|
|
||||||
|
|
||||||
# the option no-code-highlighting does not exists
|
# the option no-code-highlighting does not exists
|
||||||
# in the official version of markdown2 for now
|
# in the official version of markdown2 for now
|
||||||
# I personaly edited the file (markdown2.py:1743)
|
# I personaly edited the file (markdown2.py:1743)
|
||||||
|
html = '\n'.join(html)
|
||||||
|
|
||||||
html = html.replace(' ', ' espace;') # save where are the spaces
|
html = html.replace(' ', ' espace;') # save where are the spaces
|
||||||
|
|
||||||
@ -62,7 +63,8 @@ def show_html(md_view, preview):
|
|||||||
|
|
||||||
# exception, again, because <pre> aren't supported by the phantoms
|
# exception, again, because <pre> aren't supported by the phantoms
|
||||||
html = html.replace(' espace;', '<i class="space">.</i>')
|
html = html.replace(' espace;', '<i class="space">.</i>')
|
||||||
html = replace_img_src_base64(html)
|
html = replace_img_src_base64(html, basepath=os.path.dirname(
|
||||||
|
md_view.file_name()))
|
||||||
preview.erase_phantoms('markdown_preview')
|
preview.erase_phantoms('markdown_preview')
|
||||||
preview.add_phantom('markdown_preview',
|
preview.add_phantom('markdown_preview',
|
||||||
sublime.Region(-1),
|
sublime.Region(-1),
|
||||||
@ -71,13 +73,19 @@ def show_html(md_view, preview):
|
|||||||
lambda href: sublime.run_command('open_url',
|
lambda href: sublime.run_command('open_url',
|
||||||
{'url': href}))
|
{'url': href}))
|
||||||
|
|
||||||
return
|
# get the "ratio" of the markdown view's position.
|
||||||
# set viewport 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]
|
||||||
|
# set the vector (position) for the preview
|
||||||
vector = [0, y * preview.layout_extent()[1]]
|
vector = [0, y * preview.layout_extent()[1]]
|
||||||
# remove half of the viewport_extent.y to center it on the screen (verticaly)
|
# remove half of the viewport_extent.y to center it on the screen (verticaly)
|
||||||
vector[1] -= preview.viewport_extent()[1] / 2
|
vector[1] -= preview.viewport_extent()[1] / 2
|
||||||
vector[1] = mini(vector[1], 0)
|
# make sure the minimum is 0
|
||||||
|
vector[1] = 0 if vector < 0 else vector[1]
|
||||||
|
# the hide the first line
|
||||||
vector[1] += preview.line_height()
|
vector[1] += preview.line_height()
|
||||||
preview.set_viewport_position(vector, animate=False)
|
preview.set_viewport_position(vector, animate=False)
|
||||||
|
|
||||||
|
def clear_cache():
|
||||||
|
"""Removes the cache file"""
|
||||||
|
os.remove(CACHE_FILE)
|
||||||
|
|||||||
@ -17,7 +17,8 @@ class NewMarkdownLivePreviewCommand(sublime_plugin.ApplicationCommand):
|
|||||||
file_name = current_view.file_name()
|
file_name = current_view.file_name()
|
||||||
current_view.close()
|
current_view.close()
|
||||||
if file_name is None:
|
if file_name is None:
|
||||||
return sublime.error_message('Not supporting unsaved file for now')
|
return sublime.error_message('MarkdownLivePreview: Not supporting '
|
||||||
|
'unsaved file for now')
|
||||||
|
|
||||||
sublime.run_command('new_window')
|
sublime.run_command('new_window')
|
||||||
self.window = sublime.active_window()
|
self.window = sublime.active_window()
|
||||||
@ -42,9 +43,7 @@ class NewMarkdownLivePreviewCommand(sublime_plugin.ApplicationCommand):
|
|||||||
|
|
||||||
class MarkdownLivePreviewListener(sublime_plugin.EventListener):
|
class MarkdownLivePreviewListener(sublime_plugin.EventListener):
|
||||||
|
|
||||||
def on_modified(self, view):
|
def update(self, view):
|
||||||
if not is_markdown_view(view): # faster than getting the settings
|
|
||||||
return
|
|
||||||
vsettings = view.settings()
|
vsettings = view.settings()
|
||||||
if not vsettings.get(PREVIEW_ENABLED):
|
if not vsettings.get(PREVIEW_ENABLED):
|
||||||
return
|
return
|
||||||
@ -56,10 +55,58 @@ class MarkdownLivePreviewListener(sublime_plugin.EventListener):
|
|||||||
raise ValueError('The preview is None (id: {})'.format(id))
|
raise ValueError('The preview is None (id: {})'.format(id))
|
||||||
|
|
||||||
show_html(view, preview)
|
show_html(view, preview)
|
||||||
|
return view, preview
|
||||||
|
|
||||||
|
def on_modified(self, view):
|
||||||
|
if not is_markdown_view(view): # faster than getting the settings
|
||||||
|
return
|
||||||
|
self.update(view)
|
||||||
|
|
||||||
def on_window_command(self, window, command, args):
|
def on_window_command(self, window, command, args):
|
||||||
if command == 'close' and window.settings().get(PREVIEW_WINDOW):
|
if command == 'close' and window.settings().get(PREVIEW_WINDOW):
|
||||||
return 'close_window', {}
|
return 'close_window', {}
|
||||||
|
|
||||||
|
def on_activated_async(self, view):
|
||||||
|
vsettings = view.settings()
|
||||||
|
|
||||||
|
if (is_markdown_view(view)
|
||||||
|
and get_settings().get('markdown_live_preview_on_open')
|
||||||
|
and not vsettings.get(PREVIEW_ENABLED)
|
||||||
|
and vsettings.get('syntax') != 'Packages/MarkdownLivePreview/'
|
||||||
|
'.sublime/MarkdownLivePreviewSyntax'
|
||||||
|
'.hidden-tmLanguage'):
|
||||||
|
sublime.run_command('new_markdown_live_preview')
|
||||||
|
|
||||||
|
|
||||||
def on_load_async(self, view):
|
def on_load_async(self, view):
|
||||||
self.on_modified(view)
|
"""Check the settings to hide menu, minimap, etc"""
|
||||||
|
try:
|
||||||
|
md_view, preview = self.update(view)
|
||||||
|
except TypeError:
|
||||||
|
# the function update has returned None
|
||||||
|
return
|
||||||
|
window = preview.window()
|
||||||
|
psettings = preview.settings()
|
||||||
|
|
||||||
|
show_tabs = psettings.get('show_tabs')
|
||||||
|
show_minimap = psettings.get('show_minimap')
|
||||||
|
show_status_bar = psettings.get('show_status_bar')
|
||||||
|
show_sidebar = psettings.get('show_sidebar')
|
||||||
|
show_menus = psettings.get('show_menus')
|
||||||
|
|
||||||
|
if show_tabs is not None:
|
||||||
|
window.set_tabs_visible(show_tabs)
|
||||||
|
if show_minimap is not None:
|
||||||
|
window.set_minimap_visible(show_minimap)
|
||||||
|
if show_status_bar is not None:
|
||||||
|
window.set_status_bar_visible(show_status_bar)
|
||||||
|
if show_sidebar is not None:
|
||||||
|
window.set_sidebar_visible(show_sidebar)
|
||||||
|
if show_menus is not None:
|
||||||
|
window.set_menu_visible(show_menus)
|
||||||
|
|
||||||
|
|
||||||
|
class MarkdownLivePreviewClearCacheCommand(sublime_plugin.ApplicationCommand):
|
||||||
|
|
||||||
|
def run(self):
|
||||||
|
clear_cache()
|
||||||
|
|||||||
@ -1,20 +1,12 @@
|
|||||||
Fast:
|
Fast:
|
||||||
|
|
||||||
☐ sync scroll @needsUpdate(because of images)
|
☐ sync scroll @needsUpdate(because of images)
|
||||||
☐ cache image in object when used, so that it's faster @needsTest
|
☐ cache image in object when used, so that it's faster @needsTest
|
||||||
☐ call settings listener on_new too - might be too heavy
|
|
||||||
☐ add clear cache command
|
|
||||||
☐ add settings for the preview
|
|
||||||
|
|
||||||
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
|
||||||
☐ use MarkdownLivePreview syntax, so we can use syntax's settings
|
|
||||||
☐ listen for settings to change
|
|
||||||
☐ fix relative source
|
|
||||||
|
|
||||||
Long:
|
Long:
|
||||||
☐ fix #4 @high
|
|
||||||
☐ support hanchor (TOC) @big
|
☐ support hanchor (TOC) @big
|
||||||
|
|
||||||
Unknown:
|
Unknown:
|
||||||
@ -23,6 +15,15 @@ Unknown:
|
|||||||
|
|
||||||
___________________
|
___________________
|
||||||
Archive:
|
Archive:
|
||||||
|
✔ fix #4 @high @done Mon 09 Jan 2017 at 18:42 @project(Long)
|
||||||
|
✔ use MarkdownLivePreview syntax, so we can use syntax's settings @done Mon 09 Jan 2017 at 18:41 @project(Medium)
|
||||||
|
✔ add clear cache command @done Mon 09 Jan 2017 at 18:41 @project(Fast)
|
||||||
|
✔ update README for settings in view @done Mon 09 Jan 2017 at 18:41 @project(Fast)
|
||||||
|
✔ add edit settings @done Mon 09 Jan 2017 at 18:41 @project(Fast)
|
||||||
|
✘ listen for settings to change @cancelled Mon 09 Jan 2017 at 18:41 @project(Medium)
|
||||||
|
✘ call settings listener on_new too - might be too heavy @cancelled Sun 08 Jan 2017 at 19:33 @project(Fast)
|
||||||
|
✔ fix relative source @done Sun 08 Jan 2017 at 19:22 @project(Medium)
|
||||||
|
✔ add settings for the preview @done Sun 08 Jan 2017 at 17:36 @project(Fast)
|
||||||
✔ regive focus to the right markdown view @done Mon 02 Jan 2017 at 18:34 @project(Fast)
|
✔ regive focus to the right markdown view @done Mon 02 Jan 2017 at 18:34 @project(Fast)
|
||||||
✔ try/except for 404 @done Mon 02 Jan 2017 at 18:03 @project(Fast)
|
✔ try/except for 404 @done Mon 02 Jan 2017 at 18:03 @project(Fast)
|
||||||
✔ fix bug when empty `src` @done Mon 02 Jan 2017 at 17:15 @project(Fast)
|
✔ fix bug when empty `src` @done Mon 02 Jan 2017 at 17:15 @project(Fast)
|
||||||
|
|||||||
75
README.md
75
README.md
@ -8,35 +8,71 @@ This is a sublime text **3** plugin that allows you to preview your markdown ins
|
|||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
Although MarkdownLivePreview is not available on the default channel of [PackageControl](http://packagecontrol.io), you can still use it to download this little package.
|
MarkdownLivePreview is available on the default channel of [PackageControl](http://packagecontrol.io), which means you just have to
|
||||||
|
|
||||||
1. Open the command palette (`ctrl+shift+p`)
|
|
||||||
2. Search for: `Package Control: Add Repository`
|
|
||||||
3. Enter in the input at the bottom of ST the path to this repo: <https://github.com/math2001/MarkdownLivePreview> (tip: just drag the link in)
|
|
||||||
4. Hit <kbd>enter</kbd>
|
|
||||||
|
|
||||||
What this does is simply adding this repo to the list of packages you get when you install a package using PC.
|
|
||||||
|
|
||||||
So, as you probably understood, now you just need to install MarkdownLivePreview as if it was available on the default channel:
|
|
||||||
|
|
||||||
1. Open the command palette (`ctrl+shift+p`)
|
1. Open the command palette (`ctrl+shift+p`)
|
||||||
2. Search for: `Package Control: Install Package`
|
2. Search for: `Package Control: Install Package`
|
||||||
3. Search for: `MarkdownLivePreview`
|
3. Search for: `MarkdownLivePreview`
|
||||||
4. hit <kbd>enter</kbd>
|
4. hit <kbd>enter</kbd>
|
||||||
|
|
||||||
Done!
|
to have MarkdownLivePreview working on your computer. Cool right? You can [thank package control](https://packagecontrol.io/say_thanks) for this.
|
||||||
|
|
||||||
### Usage
|
### Usage
|
||||||
|
|
||||||
You can choose to enable MarkdownLivePreview by pressing <kbd>alt+m</kbd> or selecting in the command palette `MarkdownLivePreview: Edit Current File`. Note that you need to be editing (simply having the focus on) a markdown file. Because [Markdown Extended][markdown-extended] did a good job, it's compatible with this plugin.
|
You can choose to enable MarkdownLivePreview by pressing <kbd>alt+m</kbd> or selecting in the command palette `MarkdownLivePreview: Edit Current File`. Note that you need to be editing (simply having the focus on) a markdown file. Because [Markdown Extended][markdown-extended] did a good job, it's compatible with this plugin.
|
||||||
|
|
||||||
It will open a new window, with only your markdown file, with the preview. Once your done, close whichever file and it'll close the entire window.
|
So, once you've run it, it will open a new window, with only your markdown file, with the preview. Once you're done, close whichever file and it'll close the entire window.
|
||||||
|
|
||||||
*Notice that it will close the entire window if you close **whichever** file. It means that if you open a random file in this window, and then close it, it'll close the entire window still*
|
*Notice that it will close the entire window if you close __whichever__ file. It means that if you open a random file in this window, and then close it, it'll close the entire window still*
|
||||||
|
|
||||||
### In dev
|
### Settings
|
||||||
|
|
||||||
This plugin is not finished, there's still some things to fix (custom css, focus, etc). So, don't run away if you have any trouble, just submit an issue [here](http://github.com/math2001/MarkdownLivePreview/issues).
|
- `markdown_live_preview_on_open`: if set to `true`, as soon as you open a markdown file, the preview window will popup (thanks to [@ooing](https://github.com/ooing) for its [suggestion](https://github.com/math2001/MarkdownLivePreview/issues/7#issue-199464852)). Default to `false`
|
||||||
|
- `load_from_internet_when_starts`: every images that starts with any of the string specified in this list will be loaded from internet. Default to `["http://", "https://"]`
|
||||||
|
|
||||||
|
Note: To edit your settings, search up in the command palette `Preferences: MarkdownLivePreview Settings`, or by using the menu: `Preferences → Packages Settings → MarkdownLivePreview → Settings` ;. It's not your global settings, but only the `MarkdownLivePreview`'s one
|
||||||
|
|
||||||
|
### Syntax Specific Settings
|
||||||
|
|
||||||
|
This in an other "type" of setting. :laughing: If you have a look at the syntax of the preview file (not the markdown one, really the preview), you'll see that the syntax is `MarkdownLivePreviewSyntax`. This mean that you can specify specific settings for this specific syntax (such as `word_wrap: true`, `rulers: []`, etc).
|
||||||
|
|
||||||
|
To do so, you can
|
||||||
|
|
||||||
|
1. focus the *preview* (<kbd>ctrl+2</kbd> to focus the second group, so, by default, the preview's group)
|
||||||
|
2. search up in the command palette `Preferences: Settings Syntax Specific`. It's in the *right* file that you can add the settings you want (not the left one).
|
||||||
|
|
||||||
|
Note: MarkdownLivePreview will actualy look in this file for settings that aren't supported by default. Here they are:
|
||||||
|
|
||||||
|
- `show_tabs`
|
||||||
|
- `show_minimap`
|
||||||
|
- `show_status_bar`
|
||||||
|
- `show_sidebar`
|
||||||
|
- `show_menus`
|
||||||
|
|
||||||
|
They talk for themself, don't they? All of them takes a boolean (`true` or `false`). Note that those settings are *window* specific, not just view specific (that's why they aren't supported). It means that they'll affect the entire window, and every view in it.
|
||||||
|
|
||||||
|
Here is an example of syntax specific settings for MarkdownLivePreviewSyntax:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"show_menus": false,
|
||||||
|
"show_tabs": false,
|
||||||
|
"show_minimap": false,
|
||||||
|
"gutter": false,
|
||||||
|
"rulers": [],
|
||||||
|
"word_wrap": true
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
And here's what you'll get:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
*Note: to close a file, you can do <kbd>ctrl+w</kbd> (on Mac OS, it's <kbd>cmd+w</kbd>)*
|
||||||
|
|
||||||
|
### Clear the cache
|
||||||
|
|
||||||
|
MarkdownLivePreview caches every images it loads from internet (otherwise, you'd never see your images, or you'd need to have a *really* fast internet connection :smile:). So, if for some reason you want to clear the cache (a simple file), you can do so from the command palette by running `
|
||||||
|
|
||||||
### Demo
|
### Demo
|
||||||
|
|
||||||
@ -44,7 +80,11 @@ This plugin is not finished, there's still some things to fix (custom css, focus
|
|||||||
|
|
||||||
### Custom css
|
### Custom css
|
||||||
|
|
||||||
It is possible to set your own css. But, be carefull, you have to respect [those rules](http://www.sublimetext.com/docs/3/minihtml.html#css). Just go to `Preferences -> Package Settings -> MarkdownLivePreview`. It will open a css file, here: `$packages/User/MarkdownLivePreview.css`. Just save it and it will automatically use it instead of the default one.
|
It is possible to set your own css. But, be carefull, you have to respect [those rules](http://www.sublimetext.com/docs/3/minihtml.html#css). Just go to `Preferences → Package Settings → MarkdownLivePreview → Style - CSS`. It will open a css file, here: `$packages/User/MarkdownLivePreview.css`. Just save it and it will automatically use it instead of the default one.
|
||||||
|
|
||||||
|
### Somethings wrong!!
|
||||||
|
|
||||||
|
If you find that something's wrong with this package, you can let me know by raising an issue on the [GitHub issue tracker][github-issue-tracker]
|
||||||
|
|
||||||
### How to open the [README](http://github.com/math2001/MarkdownLivePreview/README.md)
|
### How to open the [README](http://github.com/math2001/MarkdownLivePreview/README.md)
|
||||||
|
|
||||||
@ -52,4 +92,5 @@ Some of the package add a command in the menus, others in the command palette, o
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
[markdown-extended]: https://packagecontrol.io/packages/Markdown
|
[markdown-extended]: https://packagecontrol.io/packages/Markdown%20Extended
|
||||||
|
[github-issue-tracker]: https://github.com/math2001/MarkdownLivePreview/issues
|
||||||
|
|||||||
@ -11,7 +11,7 @@ def plugin_loaded():
|
|||||||
error404 = sublime.load_resource('Packages/MarkdownLivePreview/404.txt')
|
error404 = sublime.load_resource('Packages/MarkdownLivePreview/404.txt')
|
||||||
|
|
||||||
|
|
||||||
def replace_img_src_base64(html):
|
def replace_img_src_base64(html, basepath):
|
||||||
"""Really messy, but it works (should be updated)"""
|
"""Really messy, but it works (should be updated)"""
|
||||||
index = -1
|
index = -1
|
||||||
tag_start = '<img src="'
|
tag_start = '<img src="'
|
||||||
@ -30,7 +30,9 @@ def replace_img_src_base64(html):
|
|||||||
|
|
||||||
else:
|
else:
|
||||||
# local image
|
# local image
|
||||||
image = to_base64(''.join(path))
|
path = ''.join(path)
|
||||||
|
path = os.path.join(basepath, path)
|
||||||
|
image = to_base64(path)
|
||||||
html[index+len(tag_start):end] = image
|
html[index+len(tag_start):end] = image
|
||||||
shtml = ''.join(html)
|
shtml = ''.join(html)
|
||||||
return ''.join(html)
|
return ''.join(html)
|
||||||
|
|||||||
@ -1,4 +1,6 @@
|
|||||||
{
|
{
|
||||||
"install": "messages/install.txt",
|
"install": "messages/install.txt",
|
||||||
"1.1.2": "messages/1.1.2.txt"
|
"1.1.2": "messages/1.1.2.txt",
|
||||||
|
"2.0.1": "messages/2.0.1.txt",
|
||||||
|
"2.2.0": "messages/2.2.0.txt"
|
||||||
}
|
}
|
||||||
@ -1,4 +1,4 @@
|
|||||||
Sorry to interupt you... :(
|
Sorry to interrupt you... :(
|
||||||
|
|
||||||
Small changes occured on MarkdownLivePreview.
|
Small changes occured on MarkdownLivePreview.
|
||||||
|
|
||||||
|
|||||||
22
messages/2.0.1.txt
Normal file
22
messages/2.0.1.txt
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
Sorry to interrupt you... :(
|
||||||
|
|
||||||
|
Some quite important changes have occured on MarkdownLivePreview.
|
||||||
|
|
||||||
|
The first version was quite buggy: it made Sublime Text 3 crash. So I released
|
||||||
|
a whole new version, which is working differently.
|
||||||
|
|
||||||
|
When you active MarkdownLivePreview, it'll open a new window with the markdown
|
||||||
|
view on the left, and the preview on the right.
|
||||||
|
|
||||||
|
When you'll close any file in this window, it'll close the *entire* window.
|
||||||
|
|
||||||
|
I hope you'll still enjoy using MarkdownLivePreview. If you have any request,
|
||||||
|
just let me know by raising an issue here:
|
||||||
|
|
||||||
|
github.com/math2001/MarkdownLivePreview/issues
|
||||||
|
|
||||||
|
Tip of the day: you can duplicate a line by pressing 'ctrl+d'
|
||||||
|
remove a line by pressing 'ctrl+shift+k'
|
||||||
|
join lines by pressing 'ctrl+j'
|
||||||
|
get use to use these few shortcuts, and you'll speed up
|
||||||
|
significantly.
|
||||||
8
messages/2.1.0.txt
Normal file
8
messages/2.1.0.txt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
Sorry to interrupt you... :(
|
||||||
|
|
||||||
|
A settings is now available: `markdown_live_preview_on_open`. If set to true,
|
||||||
|
it opens the window preview as soon as you open a markdown file. See the
|
||||||
|
README for more infos.
|
||||||
|
|
||||||
|
Tip of the day: `ctrl+w`: closes the current file
|
||||||
|
`ctrl+shift+w`: closes the current window
|
||||||
8
messages/2.2.0.txt
Normal file
8
messages/2.2.0.txt
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
Sorry to interrupt you... :(
|
||||||
|
|
||||||
|
Something changed on MarkdownLivePreview: the preview is now scrolled to where
|
||||||
|
you are editing your markdown file! It doesn't scroll back up all the time any
|
||||||
|
more!
|
||||||
|
|
||||||
|
Tip of the day: You can center the screen on your cursor by pressing:
|
||||||
|
`ctrl+k, ctrl+v` (on OSX `cmd+k, cmd+v`)
|
||||||
47
sample.md
47
sample.md
@ -1,15 +1,10 @@
|
|||||||
# DuckDuckGo - The Search engine you'll fall in love
|
# DuckDuckGo - The Search engine you'll fall in love
|
||||||
|
|
||||||
This is cool. The stylesheet's back!
|
|
||||||
|
|
||||||
This is a test, and this is pretty cool!
|
|
||||||
|
|
||||||
Hope you'll enjoy using MarkdownLivePreview!
|
Hope you'll enjoy using MarkdownLivePreview!
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
```python
|
```python
|
||||||
print(hello world)
|
print('Hello world')
|
||||||
if DEBUG:
|
if DEBUG:
|
||||||
print('DEBUG_MODE on')
|
print('DEBUG_MODE on')
|
||||||
```
|
```
|
||||||
@ -17,3 +12,43 @@ if DEBUG:
|
|||||||
> Only a fool knows everything. A wise man knows how little he knows
|
> 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.
|
The only think I know right now is that Boxy Theme's just awesome.
|
||||||
|
|
||||||
|
t
|
||||||
|
|
||||||
|
h
|
||||||
|
|
||||||
|
i
|
||||||
|
|
||||||
|
s
|
||||||
|
|
||||||
|
-
|
||||||
|
|
||||||
|
i
|
||||||
|
|
||||||
|
s
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
-
|
||||||
|
|
||||||
|
a
|
||||||
|
|
||||||
|
-
|
||||||
|

|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
t
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
|
e
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
s
|
||||||
|
|
||||||
|
t
|
||||||
|
|
||||||
|
sdfsdfsdf
|
||||||
|
|||||||
BIN
screenshoots/syntax-specific-settings.png
Normal file
BIN
screenshoots/syntax-specific-settings.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 70 KiB |
Reference in New Issue
Block a user