Work on $share

This commit is contained in:
Zef Hemel
2022-11-24 12:04:00 +01:00
parent c5c6cd3af0
commit 5b1ec14891
20 changed files with 528 additions and 163 deletions
+9 -1
View File
@@ -3,6 +3,8 @@ imports:
- https://get.silverbullet.md/global.plug.json
assets:
- "assets/*"
requiredPermissions:
- fs
functions:
toggle:
path: "./markdown.ts:togglePreview"
@@ -22,4 +24,10 @@ functions:
path: "./preview.ts:previewClickHandler"
env: client
events:
- preview:click
- preview:click
# $share: file:* publisher for markdown files
sharePublisher:
path: ./share.ts:sharePublisher
events:
- share:file
+21
View File
@@ -0,0 +1,21 @@
import { markdown, space } from "$sb/silverbullet-syscall/mod.ts";
import { fs } from "$sb/plugos-syscall/mod.ts";
import { asset } from "$sb/plugos-syscall/mod.ts";
import type { PublishEvent } from "../share/publish.ts";
import { renderMarkdownToHtml } from "./markdown_render.ts";
export async function sharePublisher(event: PublishEvent) {
const path = event.uri.split(":")[1];
const pageName = event.name;
const text = await space.readPage(pageName);
const tree = await markdown.parseMarkdown(text);
const css = await asset.readAsset("assets/styles.css");
const markdownHtml = renderMarkdownToHtml(tree, {
smartHardBreak: true,
});
const html =
`<html><head><style>${css}</style></head><body><div id="root">${markdownHtml}</div></body></html>`;
await fs.writeFile(path, html, "utf8");
return true;
}