Changed how data is stored quite a bit with nice query capabilities

This commit is contained in:
Zef Hemel
2022-05-17 15:54:55 +02:00
parent 9a6a86f8b5
commit dfd820cc25
21 changed files with 256 additions and 132 deletions
+2 -2
View File
@@ -4,7 +4,7 @@
import type { IndexTreeEvent } from "@silverbulletmd/web/app_event";
import {
batchSet,
scanPrefixGlobal,
queryPrefix,
} from "@silverbulletmd/plugos-silverbullet-syscall";
import {
collectNodesOfType,
@@ -102,7 +102,7 @@ export async function queryProvider({
query,
}: QueryProviderEvent): Promise<any[]> {
let allData: any[] = [];
for (let { key, page, value } of await scanPrefixGlobal("data:")) {
for (let { key, page, value } of await queryPrefix("data:")) {
let [, pos] = key.split("@");
allData.push({
...value,
-1
View File
@@ -221,7 +221,6 @@ export async function renderQuery(
data: any[]
): Promise<string> {
if (parsedQuery.render) {
console.log("Handlebars", Handlebars);
Handlebars.registerHelper("json", (v) => JSON.stringify(v));
Handlebars.registerHelper("niceDate", (ts) => niceDate(new Date(ts)));
Handlebars.registerHelper("yaml", (v, prefix) => {
+18 -16
View File
@@ -22,25 +22,24 @@ export async function updateMaterializedQueriesCommand() {
const currentPage = await getCurrentPage();
await save();
await flashNotification("Updating materialized queries...");
await invokeFunction(
"server",
"updateMaterializedQueriesOnPage",
currentPage
);
await reloadPage();
}
export async function whiteOutQueriesCommand() {
const text = await getText();
const parsed = await parseMarkdown(text);
console.log(removeQueries(parsed));
if (
await invokeFunction(
"server",
"updateMaterializedQueriesOnPage",
currentPage
)
) {
await reloadPage();
}
}
// Called from client, running on server
export async function updateMaterializedQueriesOnPage(pageName: string) {
export async function updateMaterializedQueriesOnPage(
pageName: string
): Promise<boolean> {
let { text } = await readPage(pageName);
text = await replaceAsync(
let newText = await replaceAsync(
text,
queryRegex,
async (fullMatch, startQuery, query, body, endQuery) => {
@@ -68,6 +67,9 @@ export async function updateMaterializedQueriesOnPage(pageName: string) {
}
}
);
// console.log("New text", text);
await writePage(pageName, text);
if (text !== newText) {
await writePage(pageName, newText);
return true;
}
return false;
}
+2 -4
View File
@@ -12,10 +12,8 @@ functions:
key: "Alt-q"
button:
label: "🔄"
whiteOutQueriesCommand:
path: ./materialized_queries.ts:whiteOutQueriesCommand
command:
name: "Debug: Whiteout Queries"
events:
- editor:pageLoaded
indexData:
path: ./data.ts:indexData
events: