Large "query" plug refactor into "directive"
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
import { editor, space } from "$sb/silverbullet-syscall/mod.ts";
|
||||
import { invokeFunction } from "$sb/silverbullet-syscall/system.ts";
|
||||
|
||||
import { renderDirectives } from "./directives.ts";
|
||||
|
||||
export async function updateDirectivesOnPageCommand() {
|
||||
const currentPage = await editor.getCurrentPage();
|
||||
await editor.save();
|
||||
if (
|
||||
await invokeFunction(
|
||||
"server",
|
||||
"updateDirectivesOnPage",
|
||||
currentPage,
|
||||
)
|
||||
) {
|
||||
await editor.reloadPage();
|
||||
}
|
||||
}
|
||||
|
||||
// Called from client, running on server
|
||||
export async function updateDirectivesOnPage(
|
||||
pageName: string,
|
||||
): Promise<boolean> {
|
||||
let text = "";
|
||||
try {
|
||||
text = await space.readPage(pageName);
|
||||
} catch {
|
||||
console.warn(
|
||||
"Could not read page",
|
||||
pageName,
|
||||
"perhaps it doesn't yet exist",
|
||||
);
|
||||
return false;
|
||||
}
|
||||
const newText = await renderDirectives(pageName, text);
|
||||
if (text !== newText) {
|
||||
await space.writePage(pageName, newText);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
Reference in New Issue
Block a user