+1








766fb96ff2
* Adding support for hosting with URL prefix to make reverse-proxy setup on sub-path possible
* Adjusting recent changes to auth.html (changing to relative URLs) after rebasing from upstream
* Adjusting service_worker and application manifest to support URL-prefix
* Add notes on Space Lua Pattern Matching (#1366)
* Remove common/space_lua/stdlib/math.md (#1371)
* Escape pipe symbol in string.gsub (#1370)
* feat: configure vim in CONFIG (#1369)
* Fix week calculation (#1368)
* Add more tests for week calculation
* Fix week calculation
* Add more tests
* Implement Lua built-in function os.difftime (#1367)
* Implement Lua built-in function os.difftime
* Test os.difftime
---------
Co-authored-by: Zef Hemel <zef@zef.me>
* Fix index page naming during server initialization (#1365)
* Allow non-zero shell exit codes (#1377)
* Generate version from git describe at build time (#1374)
* Generate version from git describe at build time
* Add 2.0-beta prefix
* Use Deno.Command instead of Deno.run
* Add missing case to math.random and check arguments (#1372)
* Fix paragraphs for the tag page (#1376)
* Render a predefined string for empty markdown table instead of pipe characters (#1387)
* Fix string.find (#1390)
* Fetch tags and history for proper version string generation (#1388)
* Fix support for disabling shortcuts (#1393)
* Add GitHub Actions Cache to reduce build times (#1394)
* Order strings in queries using collation algorithm (#1391)
Configurable with queryCollation, default value maintains old behaviour.
Added tests, schema, example settings, and documentation to query page.
Close: #614
Close: #1316
* Utility function to handle empty query results and templates (#1386)
* Add global Lua function 'some'
Moved documentation for 'each' function to non-standard section.
* Revert "Add optional argument to template.each for empty collection output (#1359)"
This reverts commit b73dadec67.
* Reimplement #1359 using 'some' function
* Update Lua to event.listEvents to match plugos syscall (#1397)
The documentation, example, and other function names use
`event.listEvents`, but `event.list` is being registered with the
client.
* Update widget header to not overflow container (#1410)
Also add a 10px margin below the header to maintain consistent spacing
around the widget contents.
* fix: case insensitive admonitions by default (#1409)
* fix: closing bracket is missing (#1408)
* Add optional priority attribute to PageCreatingContent (#1392)
* Add optional priority attribute to PageCreatingContent
* Minor simplification
* Fix comments
* Revert changes
* Add pageEventHandlers
* Use UTC year, month, and date for strings lacking time components (#1403)
* feat: allow CONFIG.md in any directory (#1398)
* fix: bundle external dependencies (#1379)
* Deno bump
* Copy-edit splash screen text (#1413)
* Fixes #1401 by implementing Lua's select
* Fixes offline capability of PWA (I hope).
Now storing config in localStorage.
* fix lint
* Reduce blast radius of Lua errors
* Fixes #1411: adds 'priority' setting for space style
* Refactor: Merging common/ into web/
* Fixes #1400
* Improves #1312 by rendering Lua expressions (but not widgets)
* Fix minor typos, add configuration to the docs
---------
Co-authored-by: wbhouston <wmbhouston@gmail.com>
Co-authored-by: Lennart Ochel <lennart.ochel@outlook.com>
Co-authored-by: Matthias Benaets <89214559+MatthiasBenaets@users.noreply.github.com>
Co-authored-by: Zef Hemel <zef@zef.me>
Co-authored-by: Marek S. Łukasiewicz <marek@lukasiewicz.tech>
Co-authored-by: Ivan Alejandro <ivanalejandro0@gmail.com>
Co-authored-by: Albert-Jan de Vries <aj+github@albert-jandevries.nl>
Co-authored-by: Cole Stowell <121599022+costowell@users.noreply.github.com>
Co-authored-by: Jim Tittsler <jimt@onjapan.net>
76 lines
2.2 KiB
TypeScript
76 lines
2.2 KiB
TypeScript
import {
|
|
asset,
|
|
clientStore,
|
|
editor,
|
|
markdown,
|
|
} from "@silverbulletmd/silverbullet/syscalls";
|
|
import { renderMarkdownToHtml } from "./markdown_render.ts";
|
|
import {
|
|
isLocalPath,
|
|
resolvePath,
|
|
} from "@silverbulletmd/silverbullet/lib/resolve";
|
|
|
|
export async function updateMarkdownPreview() {
|
|
if (!(await clientStore.get("enableMarkdownPreview"))) {
|
|
return;
|
|
}
|
|
const currentPage = await editor.getCurrentPage();
|
|
const text = await editor.getText();
|
|
let mdTree = await markdown.parseMarkdown(text);
|
|
const css = await asset.readAsset("markdown", "assets/preview.css");
|
|
const js = await asset.readAsset("markdown", "assets/preview.js");
|
|
|
|
mdTree = await markdown.expandMarkdown(mdTree);
|
|
const html = renderMarkdownToHtml(mdTree, {
|
|
smartHardBreak: true,
|
|
annotationPositions: true,
|
|
translateUrls: (url) => {
|
|
if (isLocalPath(url)) {
|
|
url = resolvePath(currentPage, decodeURI(url));
|
|
}
|
|
return url;
|
|
},
|
|
});
|
|
const customStyles = await editor.getUiOption("customStyles");
|
|
const toolbar = renderToolbar();
|
|
await editor.showPanel(
|
|
"rhs",
|
|
2,
|
|
`
|
|
<link rel="stylesheet" href=".client/main.css" />
|
|
<style>
|
|
${css}
|
|
${customStyles ?? ""}
|
|
</style>
|
|
|
|
<div id="root" class="sb-preview">${toolbar}${html}</div>
|
|
`,
|
|
js,
|
|
);
|
|
}
|
|
|
|
function renderToolbar(): string {
|
|
return `<div class="sb-markdown-toolbar">
|
|
<button onClick="window.print()">
|
|
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"
|
|
viewBox="0 0 24 24" fill="none" stroke="currentColor"
|
|
stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
|
|
class="feather feather-printer">
|
|
<polyline points="6 9 6 2 18 2 18 9"/>
|
|
<path d="M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2"/>
|
|
<rect x="6" y="14" width="12" height="8"/>
|
|
</svg>
|
|
</button>
|
|
</div>`;
|
|
}
|
|
|
|
export async function previewClickHandler(e: any) {
|
|
const [eventName, arg] = JSON.parse(e);
|
|
switch (eventName) {
|
|
case "pos":
|
|
// console.log("Moving cursor to", +arg);
|
|
await editor.moveCursor(+arg, true);
|
|
break;
|
|
}
|
|
}
|