mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-07-27 10:02:59 +08:00
feat(templates): add support for built-in templates
This commit is contained in:
parent
7e399cc10c
commit
fa11295693
@ -4,6 +4,8 @@ import { t } from "./i18n.js";
|
|||||||
import type { MenuItem } from "../menus/context_menu.js";
|
import type { MenuItem } from "../menus/context_menu.js";
|
||||||
import type { TreeCommandNames } from "../menus/tree_context_menu.js";
|
import type { TreeCommandNames } from "../menus/tree_context_menu.js";
|
||||||
|
|
||||||
|
const SEPARATOR = { title: "----" };
|
||||||
|
|
||||||
async function getNoteTypeItems(command?: TreeCommandNames) {
|
async function getNoteTypeItems(command?: TreeCommandNames) {
|
||||||
const items: MenuItem<TreeCommandNames>[] = [
|
const items: MenuItem<TreeCommandNames>[] = [
|
||||||
{ title: t("note_types.text"), command, type: "text", uiIcon: "bx bx-note" },
|
{ title: t("note_types.text"), command, type: "text", uiIcon: "bx bx-note" },
|
||||||
@ -18,6 +20,7 @@ async function getNoteTypeItems(command?: TreeCommandNames) {
|
|||||||
{ title: t("note_types.web-view"), command, type: "webView", uiIcon: "bx bx-globe-alt" },
|
{ title: t("note_types.web-view"), command, type: "webView", uiIcon: "bx bx-globe-alt" },
|
||||||
{ title: t("note_types.mind-map"), command, type: "mindMap", uiIcon: "bx bx-sitemap" },
|
{ title: t("note_types.mind-map"), command, type: "mindMap", uiIcon: "bx bx-sitemap" },
|
||||||
{ title: t("note_types.geo-map"), command, type: "geoMap", uiIcon: "bx bx-map-alt" },
|
{ title: t("note_types.geo-map"), command, type: "geoMap", uiIcon: "bx bx-map-alt" },
|
||||||
|
...await getBuiltInTemplates(command)
|
||||||
];
|
];
|
||||||
|
|
||||||
const templateNoteIds = await server.get<string[]>("search-templates");
|
const templateNoteIds = await server.get<string[]>("search-templates");
|
||||||
@ -40,6 +43,33 @@ async function getNoteTypeItems(command?: TreeCommandNames) {
|
|||||||
return items;
|
return items;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function getBuiltInTemplates(command?: TreeCommandNames) {
|
||||||
|
const templatesRoot = await froca.getNote("_templates");
|
||||||
|
if (!templatesRoot) {
|
||||||
|
console.warn("Unable to find template root.");
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
const childNotes = await templatesRoot.getChildNotes();
|
||||||
|
if (childNotes.length === 0) {
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
|
||||||
|
const items: MenuItem<TreeCommandNames>[] = [
|
||||||
|
SEPARATOR
|
||||||
|
];
|
||||||
|
for (const templateNote of childNotes) {
|
||||||
|
items.push({
|
||||||
|
title: templateNote.title,
|
||||||
|
uiIcon: templateNote.getIcon(),
|
||||||
|
command: command,
|
||||||
|
type: templateNote.type,
|
||||||
|
templateNoteId: templateNote.noteId
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return items;
|
||||||
|
}
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
getNoteTypeItems
|
getNoteTypeItems
|
||||||
};
|
};
|
||||||
|
@ -8,6 +8,7 @@ import migrationService from "./migration.js";
|
|||||||
import { t } from "i18next";
|
import { t } from "i18next";
|
||||||
import { cleanUpHelp, getHelpHiddenSubtreeData } from "./in_app_help.js";
|
import { cleanUpHelp, getHelpHiddenSubtreeData } from "./in_app_help.js";
|
||||||
import buildLaunchBarConfig from "./hidden_subtree_launcherbar.js";
|
import buildLaunchBarConfig from "./hidden_subtree_launcherbar.js";
|
||||||
|
import buildHiddenSubtreeTemplates from "./hidden_subtree_templates.js";
|
||||||
|
|
||||||
const LBTPL_ROOT = "_lbTplRoot";
|
const LBTPL_ROOT = "_lbTplRoot";
|
||||||
const LBTPL_BASE = "_lbTplBase";
|
const LBTPL_BASE = "_lbTplBase";
|
||||||
@ -257,7 +258,8 @@ function buildHiddenSubtreeDefinition(helpSubtree: HiddenSubtreeItem[]): HiddenS
|
|||||||
icon: "bx-help-circle",
|
icon: "bx-help-circle",
|
||||||
children: helpSubtree,
|
children: helpSubtree,
|
||||||
isExpanded: true
|
isExpanded: true
|
||||||
}
|
},
|
||||||
|
buildHiddenSubtreeTemplates()
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
28
apps/server/src/services/hidden_subtree_templates.ts
Normal file
28
apps/server/src/services/hidden_subtree_templates.ts
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
import { HiddenSubtreeItem } from "@triliumnext/commons";
|
||||||
|
|
||||||
|
export default function buildHiddenSubtreeTemplates() {
|
||||||
|
const templates: HiddenSubtreeItem = {
|
||||||
|
id: "_templates",
|
||||||
|
title: "Built-in templates",
|
||||||
|
type: "book",
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
id: "_template_text_snippet",
|
||||||
|
type: "text",
|
||||||
|
title: "Text Snippet",
|
||||||
|
attributes: [
|
||||||
|
{
|
||||||
|
name: "template",
|
||||||
|
type: "label"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "textSnippet",
|
||||||
|
type: "label"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
};
|
||||||
|
|
||||||
|
return templates;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user