Compare commits
5 Commits
v6.0.2
...
afa554b52b
| Author | SHA1 | Date | |
|---|---|---|---|
| afa554b52b | |||
| e0daa147f1 | |||
| f3cd6d3fcf | |||
| 0034602fff | |||
| b29d054de2 |
@ -1,8 +1,21 @@
|
|||||||
import os, sys, sublime
|
import os
|
||||||
pkg = os.path.basename(os.path.dirname(__file__))
|
import sys
|
||||||
lib = os.path.join(sublime.packages_path(), pkg, "lib")
|
import sublime
|
||||||
if lib not in sys.path:
|
|
||||||
sys.path.insert(0, lib)
|
# Add the package archive path itself to sys.path
|
||||||
|
package_path = os.path.dirname(__file__)
|
||||||
|
if package_path not in sys.path:
|
||||||
|
sys.path.insert(0, package_path)
|
||||||
|
|
||||||
|
# --- Add lib to sys.path ---
|
||||||
|
# Get the directory containing this file (MarkdownLivePreview.py)
|
||||||
|
plugin_dir = os.path.dirname(__file__)
|
||||||
|
# Construct the absolute path to the 'lib' directory
|
||||||
|
lib_path = os.path.join(plugin_dir, 'lib')
|
||||||
|
# Add it to the beginning of sys.path if it's not already there
|
||||||
|
if lib_path not in sys.path:
|
||||||
|
sys.path.insert(0, lib_path)
|
||||||
|
# --- End sys.path modification ---
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Terminology
|
Terminology
|
||||||
|
|||||||
Binary file not shown.
@ -11,14 +11,18 @@ import os.path
|
|||||||
import concurrent.futures
|
import concurrent.futures
|
||||||
import urllib.request
|
import urllib.request
|
||||||
import base64
|
import base64
|
||||||
import bs4
|
|
||||||
|
# --- Bundled library imports ---
|
||||||
|
# Explicitly import from the 'lib' directory, now that the package root is in sys.path
|
||||||
|
from lib import bs4
|
||||||
|
from lib.markdown2 import Markdown
|
||||||
|
# --- End bundled library imports ---
|
||||||
|
|
||||||
from functools import partial
|
from functools import partial
|
||||||
|
|
||||||
from markdown2 import Markdown
|
|
||||||
|
|
||||||
__all__ = ("markdown2html",)
|
__all__ = ("markdown2html",)
|
||||||
|
|
||||||
|
# Use the imported module name
|
||||||
markdowner = Markdown(extras=["fenced-code-blocks", "cuddled-lists"])
|
markdowner = Markdown(extras=["fenced-code-blocks", "cuddled-lists"])
|
||||||
|
|
||||||
# FIXME: how do I choose how many workers I want? Does thread pool reuse threads or
|
# FIXME: how do I choose how many workers I want? Does thread pool reuse threads or
|
||||||
@ -33,6 +37,7 @@ def markdown2html(markdown, basepath, re_render, resources, viewport_width, font
|
|||||||
"""
|
"""
|
||||||
html = markdowner.convert(markdown)
|
html = markdowner.convert(markdown)
|
||||||
|
|
||||||
|
# Use the imported module name
|
||||||
soup = bs4.BeautifulSoup(html, "html.parser")
|
soup = bs4.BeautifulSoup(html, "html.parser")
|
||||||
for img_element in soup.find_all("img"):
|
for img_element in soup.find_all("img"):
|
||||||
src = img_element["src"]
|
src = img_element["src"]
|
||||||
@ -52,14 +57,15 @@ def markdown2html(markdown, basepath, re_render, resources, viewport_width, font
|
|||||||
# realpath: simplify that paths so that we don't have duplicated caches
|
# realpath: simplify that paths so that we don't have duplicated caches
|
||||||
path = os.path.realpath(os.path.expanduser(os.path.join(basepath, src)))
|
path = os.path.realpath(os.path.expanduser(os.path.join(basepath, src)))
|
||||||
|
|
||||||
base64, (width, height) = get_base64_image(path, re_render, resources)
|
base64_img, (width, height) = get_base64_image(path, re_render, resources) # Renamed local var to avoid conflict
|
||||||
|
|
||||||
img_element["src"] = base64
|
img_element["src"] = base64_img
|
||||||
if width > viewport_width:
|
if width > viewport_width:
|
||||||
img_element["width"] = viewport_width
|
img_element["width"] = viewport_width
|
||||||
img_element["height"] = viewport_width * (height / width)
|
img_element["height"] = viewport_width * (height / width)
|
||||||
|
|
||||||
# remove comments, because they pollute the console with error messages
|
# remove comments, because they pollute the console with error messages
|
||||||
|
# Use the imported module name
|
||||||
for comment_element in soup.find_all(
|
for comment_element in soup.find_all(
|
||||||
text=lambda text: isinstance(text, bs4.Comment)
|
text=lambda text: isinstance(text, bs4.Comment)
|
||||||
):
|
):
|
||||||
@ -78,7 +84,7 @@ def markdown2html(markdown, basepath, re_render, resources, viewport_width, font
|
|||||||
.replace(" ", '<i class="space">.</i>')
|
.replace(" ", '<i class="space">.</i>')
|
||||||
.replace("\n", "<br />")
|
.replace("\n", "<br />")
|
||||||
)
|
)
|
||||||
|
# Use the imported module name
|
||||||
code_element.replace_with(bs4.BeautifulSoup(fixed_pre, "html.parser"))
|
code_element.replace_with(bs4.BeautifulSoup(fixed_pre, "html.parser"))
|
||||||
|
|
||||||
# FIXME: highlight the code using Sublime's syntax
|
# FIXME: highlight the code using Sublime's syntax
|
||||||
|
|||||||
@ -8,8 +8,8 @@
|
|||||||
"homepage": "https://git.0x42.cloud/christian.morpurgo/MarkdownLivePreview",
|
"homepage": "https://git.0x42.cloud/christian.morpurgo/MarkdownLivePreview",
|
||||||
"releases": [
|
"releases": [
|
||||||
{
|
{
|
||||||
"version": "6.0.1",
|
"version": "6.0.2",
|
||||||
"url": "https://git.0x42.cloud/christian.morpurgo/MarkdownLivePreview/releases/download/v6.0.1/MarkdownLivePreview.sublime-package",
|
"url": "https://git.0x42.cloud/christian.morpurgo/MarkdownLivePreview/releases/download/v6.0.2/MarkdownLivePreview.sublime-package",
|
||||||
"date": "2025-04-24 00:00:00",
|
"date": "2025-04-24 00:00:00",
|
||||||
"sublime_text": "*"
|
"sublime_text": "*"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user