Compare commits
No commits in common. "9616a1b5148145bf389d69ee8c7862e722667e6e" and "ec92cdcece2ce11f2cec9bac1b4e746b75f29435" have entirely different histories.
9616a1b514
...
ec92cdcece
|
|
@ -1,8 +0,0 @@
|
||||||
from .server import main
|
|
||||||
import asyncio
|
|
||||||
import argparse
|
|
||||||
import sys
|
|
||||||
|
|
||||||
def launcher():
|
|
||||||
print(sys.argv)
|
|
||||||
asyncio.run(main())
|
|
||||||
|
|
@ -1,94 +0,0 @@
|
||||||
# Render pipeline for markdown documents.
|
|
||||||
# Allows filtering and mapping based on blocks and meta keys.
|
|
||||||
#
|
|
||||||
|
|
||||||
import pandoc
|
|
||||||
|
|
||||||
class MetaCallback:
|
|
||||||
def __init__(self, key, callback, replace=False):
|
|
||||||
self.key = key
|
|
||||||
self.callback = callback
|
|
||||||
self.replace = replace
|
|
||||||
|
|
||||||
def __call__(self, data):
|
|
||||||
return self.callback(data)
|
|
||||||
|
|
||||||
class MultiCallback:
|
|
||||||
def __init__(self, filter):
|
|
||||||
self.filter = filter
|
|
||||||
self.callbacks = dict()
|
|
||||||
|
|
||||||
def AddCallback(self, key, callback):
|
|
||||||
self.callbacks[key] = callback
|
|
||||||
|
|
||||||
def __call__(self, block):
|
|
||||||
filter_key = self.filter(block)
|
|
||||||
|
|
||||||
if filter_key is None:
|
|
||||||
return block
|
|
||||||
|
|
||||||
if filter_key in self.callbacks.keys():
|
|
||||||
return self.callbacks[filter_key](block)
|
|
||||||
else:
|
|
||||||
return block
|
|
||||||
|
|
||||||
|
|
||||||
class RenderPipeline:
|
|
||||||
def __init__(self):
|
|
||||||
self.pandoc = pandoc.Pandoc()
|
|
||||||
self.metacallbacks = dict()
|
|
||||||
self.callbacks = dict()
|
|
||||||
|
|
||||||
def AddMetaCallback(self, key, callback, replace=False):
|
|
||||||
self.metacallbacks[key] = MetaCallback(key, callback, replace)
|
|
||||||
|
|
||||||
def AddCallback(self, key, callback, replace=False):
|
|
||||||
self.callbacks[key] = {'cb' : callback, 'replace' : replace}
|
|
||||||
|
|
||||||
def ParseBlock(self, block):
|
|
||||||
|
|
||||||
if 'c' not in block:
|
|
||||||
return block
|
|
||||||
|
|
||||||
if isinstance(block['c'], dict):
|
|
||||||
content = self.ParseBlock(block['c'])
|
|
||||||
elif isinstance(block['c'], list):
|
|
||||||
content = self.ParseList(block['c'])
|
|
||||||
else:
|
|
||||||
return block
|
|
||||||
|
|
||||||
if block['t'] in self.callbacks.keys():
|
|
||||||
if self.callbacks[block['t']]['replace'] == True:
|
|
||||||
return self.callbacks[block['t']]['cb'](block)
|
|
||||||
else:
|
|
||||||
self.callbacks[block['t']]['cb'](block)
|
|
||||||
|
|
||||||
return block
|
|
||||||
|
|
||||||
def ParseList(self, pandoc_list):
|
|
||||||
output_list = list()
|
|
||||||
for item in pandoc_list:
|
|
||||||
if isinstance(item, dict):
|
|
||||||
output_list.append(self.ParseBlock(item))
|
|
||||||
else:
|
|
||||||
output_list.append(item)
|
|
||||||
|
|
||||||
return output_list
|
|
||||||
|
|
||||||
def __call__(self, data):
|
|
||||||
json_data = self.pandoc.ConvertToJson(data)
|
|
||||||
|
|
||||||
for meta_key, meta_value in json_data['meta'].items():
|
|
||||||
if meta_key in self.metacallbacks.keys():
|
|
||||||
if self.metacallbacks[meta_key].replace == True:
|
|
||||||
json_data['meta'][meta_key] = \
|
|
||||||
self.metacallbacks[meta_key](meta_value)
|
|
||||||
else:
|
|
||||||
self.metacallbacks[meta_key](meta_value)
|
|
||||||
|
|
||||||
json_data['blocks'] = self.ParseList(json_data['blocks'])
|
|
||||||
|
|
||||||
return_data = self.pandoc.ConvertFromJson(json_data)
|
|
||||||
|
|
||||||
return return_data
|
|
||||||
|
|
||||||
|
|
@ -1,66 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<link rel="stylesheet" href="highlight/styles/tokyo-night-dark.min.css">
|
|
||||||
<script src="highlight/highlight.min.js"></script>
|
|
||||||
<link href="katex/katex.min.css" rel="stylesheet" type="text/css">
|
|
||||||
<script src="katex/katex.min.js"></script>
|
|
||||||
<script src="katex/contrib/auto-render.min.js"></script>
|
|
||||||
<link rel="stylesheet" href="style.css">
|
|
||||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="page-container">
|
|
||||||
<header class="page-header">
|
|
||||||
<h1 class="page-title">Your Note Title</h1>
|
|
||||||
<div class="page-subtitle">
|
|
||||||
<div class="page-author">Author: Your Name</div>
|
|
||||||
<div class="page-date">Date: August 1, 2025</div>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
|
|
||||||
<div id="page-content" class="page-content">
|
|
||||||
{% raw body_content %}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
hljs.highlightAll();
|
|
||||||
renderMathInElement(
|
|
||||||
document.body,
|
|
||||||
{
|
|
||||||
delimiters : [
|
|
||||||
{left: "$$", right: "$$", display: true},
|
|
||||||
{left: "\\[", right: "\\]", display: true},
|
|
||||||
{left: "$", right: "$", display: false},
|
|
||||||
{left: "\\(", right: "\\)", display: false}
|
|
||||||
]
|
|
||||||
});
|
|
||||||
|
|
||||||
const socket = new WebSocket("ws://localhost:8888/ws");
|
|
||||||
|
|
||||||
socket.addEventListener("open", (event) => {
|
|
||||||
socket.send("ping");
|
|
||||||
});
|
|
||||||
|
|
||||||
socket.addEventListener("message", (event) => {
|
|
||||||
var data = JSON.parse(event.data);
|
|
||||||
var node = document.getElementById("page-content");
|
|
||||||
var wrapper = document.createElement('div');
|
|
||||||
wrapper.innerHTML = data['show'];
|
|
||||||
node.replaceChildren(wrapper);
|
|
||||||
|
|
||||||
hljs.highlightAll();
|
|
||||||
renderMathInElement(
|
|
||||||
node,
|
|
||||||
{
|
|
||||||
delimiters : [
|
|
||||||
{left: "$$", right: "$$", display: true},
|
|
||||||
{left: "\\[", right: "\\]", display: true},
|
|
||||||
{left: "$", right: "$", display: false},
|
|
||||||
{left: "\\(", right: "\\)", display: false}
|
|
||||||
]
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
tornado
|
|
||||||
msgpack
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
from setuptools import setup, find_packages
|
|
||||||
|
|
||||||
with open('requirements.txt') as f:
|
|
||||||
requirements = f.read().splitlines()
|
|
||||||
|
|
||||||
setup(
|
|
||||||
name="MarkdownPreviewer",
|
|
||||||
version="0.0.1",
|
|
||||||
include_pacakge_data=True,
|
|
||||||
python_requires=">=3.8",
|
|
||||||
setup_requires=['setuptools-git-versioning'],
|
|
||||||
install_requires=requirements,
|
|
||||||
author="Folkert Kevelam",
|
|
||||||
author_email="folkert@pyllr.nl",
|
|
||||||
description="A markdown previewer",
|
|
||||||
long_description="",
|
|
||||||
long_description_content_type="text/markdown",
|
|
||||||
classifiers=[],
|
|
||||||
version_config={}
|
|
||||||
)
|
|
||||||
Loading…
Reference in New Issue
Block a user