Work to reduce bundles size (prebundle modules)
This commit is contained in:
@@ -71,10 +71,6 @@ functions:
|
||||
path: "./dates.ts:insertTomorrow"
|
||||
slashCommand:
|
||||
name: tomorrow
|
||||
indexDates:
|
||||
path: "./dates.ts:indexDates"
|
||||
events:
|
||||
- page:index
|
||||
parseServerCommand:
|
||||
path: ./page.ts:parseServerPageCommand
|
||||
command:
|
||||
@@ -85,3 +81,8 @@ functions:
|
||||
path: ./page.ts:parsePageCommand
|
||||
command:
|
||||
name: "Debug: Parse Document"
|
||||
|
||||
instantiateTemplateCommand:
|
||||
path: ./template.ts:instantiateTemplateCommand
|
||||
command:
|
||||
name: "Template: Instantiate for Page"
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
import { insertAtCursor } from "plugos-silverbullet-syscall/editor";
|
||||
import { IndexEvent } from "../../webapp/app_event";
|
||||
import { batchSet } from "plugos-silverbullet-syscall";
|
||||
import { whiteOutQueries } from "../query/materialized_queries";
|
||||
import { whiteOutQueries } from "../query/util";
|
||||
|
||||
const dateMatchRegex = /(\d{4}\-\d{2}\-\d{2})/g;
|
||||
|
||||
|
||||
+1
-1
@@ -1,9 +1,9 @@
|
||||
import { IndexEvent } from "../../webapp/app_event";
|
||||
import { whiteOutQueries } from "../query/materialized_queries";
|
||||
|
||||
import { batchSet } from "plugos-silverbullet-syscall/index";
|
||||
import { parseMarkdown } from "plugos-silverbullet-syscall/markdown";
|
||||
import { collectNodesOfType, ParseTree, renderToText } from "../../common/tree";
|
||||
import { whiteOutQueries } from "../query/util";
|
||||
|
||||
export type Item = {
|
||||
name: string;
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
import { listPages, readPage, writePage } from "plugos-silverbullet-syscall/space";
|
||||
import { filterBox, navigate, prompt } from "plugos-silverbullet-syscall/editor";
|
||||
import { parseMarkdown } from "plugos-silverbullet-syscall/markdown";
|
||||
import { extractMeta } from "../query/data";
|
||||
import { renderToText } from "../../common/tree";
|
||||
import { niceDate } from "./dates";
|
||||
|
||||
const pageTemplatePrefix = `template/page/`;
|
||||
|
||||
export async function instantiateTemplateCommand() {
|
||||
let allPages = await listPages();
|
||||
let allPageTemplates = allPages.filter((pageMeta) =>
|
||||
pageMeta.name.startsWith(pageTemplatePrefix)
|
||||
);
|
||||
|
||||
let selectedTemplate = await filterBox(
|
||||
"Template",
|
||||
allPageTemplates,
|
||||
"Select the template to create a new page from"
|
||||
);
|
||||
|
||||
if (!selectedTemplate) {
|
||||
return;
|
||||
}
|
||||
console.log("Selected template", selectedTemplate);
|
||||
|
||||
let { text } = await readPage(selectedTemplate.name);
|
||||
|
||||
let parseTree = await parseMarkdown(text);
|
||||
let additionalPageMeta = extractMeta(parseTree, true);
|
||||
console.log("Page meta", additionalPageMeta);
|
||||
|
||||
let pageName = await prompt("Name of new page", additionalPageMeta.name);
|
||||
if (!pageName) {
|
||||
return;
|
||||
}
|
||||
let pageText = replaceTemplateVars(renderToText(parseTree));
|
||||
await writePage(pageName, pageText);
|
||||
await navigate(pageName);
|
||||
}
|
||||
|
||||
export function replaceTemplateVars(s: string): string {
|
||||
return s.replaceAll(/\{\{(\w+)\}\}/g, (match, v) => {
|
||||
switch (v) {
|
||||
case "today":
|
||||
return niceDate(new Date());
|
||||
break;
|
||||
}
|
||||
return match;
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user