Compare commits
94 Commits
feat/ui-im
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
23f2e1eb45 | ||
|
|
9bbd6d146b | ||
|
|
37aa8ec176 | ||
|
|
05f3f9627d | ||
|
|
a9fa99cadf | ||
|
|
d5c1604a58 | ||
|
|
e99f821e88 | ||
|
|
6571ff9d84 | ||
|
|
9d63ef20fb | ||
|
|
71a3cf0cfe | ||
|
|
e5e55e1cf1 | ||
|
|
83b13cae92 | ||
|
|
6663c3abc1 | ||
|
|
738b28c2b3 | ||
|
|
4eec6021c3 | ||
|
|
39bda30853 | ||
|
|
6adcaca5e0 | ||
|
|
5a5f71fc71 | ||
|
|
f3765f95b5 | ||
|
|
6ebb0eb03e | ||
|
|
b42aa32b72 | ||
|
|
11e1ea7ea5 | ||
|
|
5f6fac994f | ||
|
|
d7460e9fe5 | ||
|
|
89585e38ce | ||
|
|
938c6e356b | ||
|
|
b7dd806d07 | ||
|
|
a1d86cef58 | ||
|
|
1fec5bb564 | ||
|
|
35e98addc8 | ||
|
|
79290633b1 | ||
|
|
ffc9e715ef | ||
|
|
8f8302c4a3 | ||
|
|
136b449f60 | ||
|
|
61319c3a14 | ||
|
|
104a1f0c3a | ||
|
|
16200312ce | ||
|
|
664de68d53 | ||
|
|
6190949dcc | ||
|
|
27d9ae885f | ||
|
|
35efd2a680 | ||
|
|
19c6ae6fe5 | ||
|
|
bf0761a303 | ||
|
|
8391fd7534 | ||
|
|
6d4b87888a | ||
|
|
3f0b0f9b62 | ||
|
|
859d9dcd04 | ||
|
|
76dd9baea8 | ||
|
|
82ff5f6660 | ||
|
|
b52d30c55a | ||
|
|
99fd088ff5 | ||
|
|
945f29c759 | ||
|
|
98f42887d8 | ||
|
|
a1b589148b | ||
|
|
66bb639a15 | ||
|
|
1784b50990 | ||
|
|
5e9c271bfd | ||
|
|
70837fdc69 | ||
|
|
67d80512f6 | ||
|
|
dd8a1e8aca | ||
|
|
99f43e2280 | ||
|
|
bcffa77c90 | ||
|
|
8ab2069411 | ||
|
|
21fc61d132 | ||
|
|
552df50fe4 | ||
|
|
c058b663ee | ||
|
|
6c19370235 | ||
|
|
d332bb57ba | ||
|
|
3ef38e7f4e | ||
|
|
1abc3b5534 | ||
|
|
ddcd27ddf6 | ||
|
|
ff385c8c88 | ||
|
|
a641e452ce | ||
|
|
5f4fa25da5 | ||
|
|
ea177e972e | ||
|
|
7e3013bfdc | ||
|
|
5115baeb21 | ||
|
|
35a924a05a | ||
|
|
78f067965f | ||
|
|
413b16b51c | ||
|
|
59586c53b2 | ||
|
|
70ed1d7abb | ||
|
|
67de6c614c | ||
|
|
faf030ab3a | ||
|
|
6e20d4b5dd | ||
|
|
10e809af75 | ||
|
|
f1478f8149 | ||
|
|
9087adf254 | ||
|
|
f944c6d8e2 | ||
|
|
9c791df0ed | ||
|
|
e683dc1d66 | ||
|
|
14a3438a20 | ||
|
|
dd483fccbc | ||
|
|
5620e7f4a7 |
@@ -38,16 +38,16 @@
|
||||
"@playwright/test": "1.56.1",
|
||||
"@stylistic/eslint-plugin": "5.5.0",
|
||||
"@types/express": "5.0.5",
|
||||
"@types/node": "24.9.1",
|
||||
"@types/node": "24.9.2",
|
||||
"@types/yargs": "17.0.34",
|
||||
"@vitest/coverage-v8": "3.2.4",
|
||||
"eslint": "9.38.0",
|
||||
"eslint": "9.39.0",
|
||||
"eslint-plugin-simple-import-sort": "12.1.1",
|
||||
"esm": "3.2.25",
|
||||
"jsdoc": "4.0.5",
|
||||
"lorem-ipsum": "2.0.8",
|
||||
"rcedit": "4.0.1",
|
||||
"rimraf": "6.0.1",
|
||||
"rimraf": "6.1.0",
|
||||
"tslib": "2.8.1",
|
||||
"typedoc": "0.28.14",
|
||||
"typedoc-plugin-missing-exports": "4.1.2"
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
"circular-deps": "dpdm -T src/**/*.ts --tree=false --warning=false --skip-dynamic-imports=circular"
|
||||
},
|
||||
"dependencies": {
|
||||
"@eslint/js": "9.38.0",
|
||||
"@eslint/js": "9.39.0",
|
||||
"@excalidraw/excalidraw": "0.18.0",
|
||||
"@fullcalendar/core": "6.1.19",
|
||||
"@fullcalendar/daygrid": "6.1.19",
|
||||
@@ -37,12 +37,12 @@
|
||||
"bootstrap": "5.3.8",
|
||||
"boxicons": "2.1.4",
|
||||
"color": "5.0.2",
|
||||
"dayjs": "1.11.18",
|
||||
"dayjs": "1.11.19",
|
||||
"dayjs-plugin-utc": "0.1.2",
|
||||
"debounce": "2.2.0",
|
||||
"draggabilly": "3.0.0",
|
||||
"force-graph": "1.51.0",
|
||||
"globals": "16.4.0",
|
||||
"globals": "16.5.0",
|
||||
"i18next": "25.6.0",
|
||||
"i18next-http-backend": "3.0.2",
|
||||
"jquery": "3.7.1",
|
||||
@@ -59,7 +59,7 @@
|
||||
"normalize.css": "8.0.1",
|
||||
"panzoom": "9.4.3",
|
||||
"preact": "10.27.2",
|
||||
"react-i18next": "16.2.1",
|
||||
"react-i18next": "16.2.3",
|
||||
"reveal.js": "5.2.1",
|
||||
"svg-pan-zoom": "3.6.2",
|
||||
"tabulator-tables": "6.3.1",
|
||||
@@ -76,7 +76,7 @@
|
||||
"@types/reveal.js": "5.2.1",
|
||||
"@types/tabulator-tables": "6.3.0",
|
||||
"copy-webpack-plugin": "13.0.1",
|
||||
"happy-dom": "20.0.8",
|
||||
"happy-dom": "20.0.10",
|
||||
"script-loader": "0.7.2",
|
||||
"vite-plugin-static-copy": "3.1.4"
|
||||
}
|
||||
|
||||
@@ -270,6 +270,7 @@ export type CommandMappings = {
|
||||
closeThisNoteSplit: CommandData;
|
||||
moveThisNoteSplit: CommandData & { isMovingLeft: boolean };
|
||||
jumpToNote: CommandData;
|
||||
openTodayNote: CommandData;
|
||||
commandPalette: CommandData;
|
||||
|
||||
// Keyboard shortcuts
|
||||
|
||||
@@ -159,6 +159,16 @@ export default class Entrypoints extends Component {
|
||||
this.openInWindowCommand({ notePath: "", hoistedNoteId: "root" });
|
||||
}
|
||||
|
||||
async openTodayNoteCommand() {
|
||||
const todayNote = await dateNoteService.getTodayNote();
|
||||
if (!todayNote) {
|
||||
console.warn("Missing today note.");
|
||||
return;
|
||||
}
|
||||
|
||||
await appContext.tabManager.openInSameTab(todayNote.noteId);
|
||||
}
|
||||
|
||||
async runActiveNoteCommand() {
|
||||
const noteContext = appContext.tabManager.getActiveContext();
|
||||
if (!noteContext) {
|
||||
|
||||
@@ -417,7 +417,7 @@ export default class FNote {
|
||||
return notePaths;
|
||||
}
|
||||
|
||||
getSortedNotePathRecords(hoistedNoteId = "root"): NotePathRecord[] {
|
||||
getSortedNotePathRecords(hoistedNoteId = "root", activeNotePath: string | null = null): NotePathRecord[] {
|
||||
const isHoistedRoot = hoistedNoteId === "root";
|
||||
|
||||
const notePaths: NotePathRecord[] = this.getAllNotePaths().map((path) => ({
|
||||
@@ -428,7 +428,23 @@ export default class FNote {
|
||||
isHidden: path.includes("_hidden")
|
||||
}));
|
||||
|
||||
// Calculate the length of the prefix match between two arrays
|
||||
const prefixMatchLength = (path: string[], target: string[]) => {
|
||||
const diffIndex = path.findIndex((seg, i) => seg !== target[i]);
|
||||
return diffIndex === -1 ? Math.min(path.length, target.length) : diffIndex;
|
||||
};
|
||||
|
||||
notePaths.sort((a, b) => {
|
||||
if (activeNotePath) {
|
||||
const activeSegments = activeNotePath.split('/');
|
||||
const aOverlap = prefixMatchLength(a.notePath, activeSegments);
|
||||
const bOverlap = prefixMatchLength(b.notePath, activeSegments);
|
||||
// Paths with more matching prefix segments are prioritized
|
||||
// when the match count is equal, other criteria are used for sorting
|
||||
if (bOverlap !== aOverlap) {
|
||||
return bOverlap - aOverlap;
|
||||
}
|
||||
}
|
||||
if (a.isInHoistedSubTree !== b.isInHoistedSubTree) {
|
||||
return a.isInHoistedSubTree ? -1 : 1;
|
||||
} else if (a.isArchived !== b.isArchived) {
|
||||
@@ -449,10 +465,11 @@ export default class FNote {
|
||||
* Returns the note path considered to be the "best"
|
||||
*
|
||||
* @param {string} [hoistedNoteId='root']
|
||||
* @param {string|null} [activeNotePath=null]
|
||||
* @return {string[]} array of noteIds constituting the particular note path
|
||||
*/
|
||||
getBestNotePath(hoistedNoteId = "root") {
|
||||
return this.getSortedNotePathRecords(hoistedNoteId)[0]?.notePath;
|
||||
getBestNotePath(hoistedNoteId = "root", activeNotePath: string | null = null) {
|
||||
return this.getSortedNotePathRecords(hoistedNoteId, activeNotePath)[0]?.notePath;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -26,21 +26,12 @@ async function resolveNotePathToSegments(notePath: string, hoistedNoteId = "root
|
||||
}
|
||||
|
||||
const path = notePath.split("/").reverse();
|
||||
|
||||
if (!path.includes("root")) {
|
||||
path.push("root");
|
||||
}
|
||||
|
||||
const effectivePathSegments: string[] = [];
|
||||
let childNoteId: string | null = null;
|
||||
let i = 0;
|
||||
|
||||
while (true) {
|
||||
if (i >= path.length) {
|
||||
break;
|
||||
}
|
||||
|
||||
const parentNoteId = path[i++];
|
||||
for (let i = 0; i < path.length; i++) {
|
||||
const parentNoteId = path[i];
|
||||
|
||||
if (childNoteId !== null) {
|
||||
const child = await froca.getNote(childNoteId, !logErrors);
|
||||
@@ -65,7 +56,7 @@ async function resolveNotePathToSegments(notePath: string, hoistedNoteId = "root
|
||||
return null;
|
||||
}
|
||||
|
||||
if (!parents.some((p) => p.noteId === parentNoteId)) {
|
||||
if (!parents.some(p => p.noteId === parentNoteId) || (i === path.length - 1 && parentNoteId !== 'root')) {
|
||||
if (logErrors) {
|
||||
const parent = froca.getNoteFromCache(parentNoteId);
|
||||
|
||||
@@ -77,7 +68,8 @@ async function resolveNotePathToSegments(notePath: string, hoistedNoteId = "root
|
||||
);
|
||||
}
|
||||
|
||||
const bestNotePath = child.getBestNotePath(hoistedNoteId);
|
||||
const activeNotePath = appContext.tabManager.getActiveContextNotePath();
|
||||
const bestNotePath = child.getBestNotePath(hoistedNoteId, activeNotePath);
|
||||
|
||||
if (bestNotePath) {
|
||||
const pathToRoot = bestNotePath.reverse().slice(1);
|
||||
@@ -108,7 +100,9 @@ async function resolveNotePathToSegments(notePath: string, hoistedNoteId = "root
|
||||
if (!note) {
|
||||
throw new Error(`Unable to find note: ${notePath}.`);
|
||||
}
|
||||
const bestNotePath = note.getBestNotePath(hoistedNoteId);
|
||||
|
||||
const activeNotePath = appContext.tabManager.getActiveContextNotePath();
|
||||
const bestNotePath = note.getBestNotePath(hoistedNoteId, activeNotePath);
|
||||
|
||||
if (!bestNotePath) {
|
||||
throw new Error(`Did not find any path segments for '${note.toString()}', hoisted note '${hoistedNoteId}'`);
|
||||
|
||||
@@ -11,7 +11,11 @@ export function reloadFrontendApp(reason?: string) {
|
||||
logInfo(`Frontend app reload: ${reason}`);
|
||||
}
|
||||
|
||||
window.location.reload();
|
||||
if (isElectron()) {
|
||||
dynamicRequire("@electron/remote").BrowserWindow.getFocusedWindow()?.reload();
|
||||
} else {
|
||||
window.location.reload();
|
||||
}
|
||||
}
|
||||
|
||||
export function restartDesktopApp() {
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
"bulk_actions_executed": "批量操作已成功执行。",
|
||||
"none_yet": "暂无操作 ... 通过点击上方的可用操作添加一个操作。",
|
||||
"labels": "标签",
|
||||
"relations": "关联关系",
|
||||
"relations": "关系",
|
||||
"notes": "笔记",
|
||||
"other": "其它"
|
||||
},
|
||||
@@ -104,7 +104,8 @@
|
||||
"export_status": "导出状态",
|
||||
"export_in_progress": "导出进行中:{{progressCount}}",
|
||||
"export_finished_successfully": "导出成功完成。",
|
||||
"format_pdf": "PDF - 用于打印或共享目的。"
|
||||
"format_pdf": "PDF - 用于打印或共享目的。",
|
||||
"share-format": "HTML 网页发布——采用与共享笔记相同的主题,但可发布为静态网站。"
|
||||
},
|
||||
"help": {
|
||||
"noteNavigation": "笔记导航",
|
||||
@@ -184,7 +185,8 @@
|
||||
},
|
||||
"import-status": "导入状态",
|
||||
"in-progress": "导入进行中:{{progress}}",
|
||||
"successful": "导入成功完成。"
|
||||
"successful": "导入成功完成。",
|
||||
"importZipRecommendation": "导入 ZIP 文件时,笔记层级将反映压缩文件内的子目录结构。"
|
||||
},
|
||||
"include_note": {
|
||||
"dialog_title": "包含笔记",
|
||||
@@ -1557,7 +1559,9 @@
|
||||
"window-on-top": "保持此窗口置顶"
|
||||
},
|
||||
"note_detail": {
|
||||
"could_not_find_typewidget": "找不到类型为 '{{type}}' 的 typeWidget"
|
||||
"could_not_find_typewidget": "找不到类型为 '{{type}}' 的 typeWidget",
|
||||
"printing": "正在打印…",
|
||||
"printing_pdf": "正在导出为PDF…"
|
||||
},
|
||||
"note_title": {
|
||||
"placeholder": "请输入笔记标题..."
|
||||
|
||||
@@ -104,7 +104,8 @@
|
||||
"export_status": "Exportstatus",
|
||||
"export_in_progress": "Export läuft: {{progressCount}}",
|
||||
"export_finished_successfully": "Der Export wurde erfolgreich abgeschlossen.",
|
||||
"format_pdf": "PDF - für Ausdrucke oder Teilen."
|
||||
"format_pdf": "PDF - für Ausdrucke oder Teilen.",
|
||||
"share-format": "HTML für die Web-Veröffentlichung – verwendet dasselbe Theme wie bei freigegebenen Notizen, kann jedoch als statische Website veröffentlicht werden."
|
||||
},
|
||||
"help": {
|
||||
"noteNavigation": "Notiz Navigation",
|
||||
|
||||
@@ -104,7 +104,8 @@
|
||||
"export_status": "Estado de exportación",
|
||||
"export_in_progress": "Exportación en curso: {{progressCount}}",
|
||||
"export_finished_successfully": "La exportación finalizó exitosamente.",
|
||||
"format_pdf": "PDF - para propósitos de impresión o compartición."
|
||||
"format_pdf": "PDF - para propósitos de impresión o compartición.",
|
||||
"share-format": "HTML para publicación web: utiliza el mismo tema que se utiliza en las notas compartidas, pero se puede publicar como un sitio web estático."
|
||||
},
|
||||
"help": {
|
||||
"noteNavigation": "Navegación de notas",
|
||||
@@ -184,7 +185,8 @@
|
||||
},
|
||||
"import-status": "Estado de importación",
|
||||
"in-progress": "Importación en progreso: {{progress}}",
|
||||
"successful": "Importación finalizada exitosamente."
|
||||
"successful": "Importación finalizada exitosamente.",
|
||||
"importZipRecommendation": "Al importar un archivo ZIP, la jerarquía de notas reflejará la estructura de subdirectorios dentro del archivo comprimido."
|
||||
},
|
||||
"include_note": {
|
||||
"dialog_title": "Incluir nota",
|
||||
@@ -1714,7 +1716,9 @@
|
||||
"window-on-top": "Mantener esta ventana en la parte superior"
|
||||
},
|
||||
"note_detail": {
|
||||
"could_not_find_typewidget": "No se pudo encontrar typeWidget para el tipo '{{type}}'"
|
||||
"could_not_find_typewidget": "No se pudo encontrar typeWidget para el tipo '{{type}}'",
|
||||
"printing": "Impresión en curso...",
|
||||
"printing_pdf": "Exportando a PDF en curso.."
|
||||
},
|
||||
"note_title": {
|
||||
"placeholder": "escriba el título de la nota aquí..."
|
||||
|
||||
@@ -254,7 +254,8 @@
|
||||
"export_status": "エクスポート状況",
|
||||
"export_in_progress": "エクスポート処理中: {{progressCount}}",
|
||||
"export_finished_successfully": "エクスポートが正常に完了しました。",
|
||||
"format_pdf": "PDF - 印刷または共有目的に。"
|
||||
"format_pdf": "PDF - 印刷または共有目的に。",
|
||||
"share-format": "Web 公開用の HTML - 共有ノートで使用されるのと同じテーマを使用しますが、静的 Web サイトとして公開できます。"
|
||||
},
|
||||
"help": {
|
||||
"title": "チートシート",
|
||||
|
||||
@@ -104,7 +104,8 @@
|
||||
"export_in_progress": "正在匯出:{{progressCount}}",
|
||||
"export_finished_successfully": "成功匯出。",
|
||||
"format_html": "HTML - 推薦,因為它保留了所有格式",
|
||||
"format_pdf": "PDF - 用於列印或與他人分享。"
|
||||
"format_pdf": "PDF - 用於列印或與他人分享。",
|
||||
"share-format": "HTML 網頁發佈——使用與共享筆記相同的佈景主題,但可發佈為靜態網站。"
|
||||
},
|
||||
"help": {
|
||||
"noteNavigation": "筆記導航",
|
||||
|
||||
@@ -79,8 +79,8 @@ export default function ExportDialog() {
|
||||
values={[
|
||||
{ value: "html", label: t("export.format_html_zip") },
|
||||
{ value: "markdown", label: t("export.format_markdown") },
|
||||
{ value: "opml", label: t("export.format_opml") },
|
||||
{ value: "share", label: t("export.share-format") }
|
||||
{ value: "share", label: t("export.share-format") },
|
||||
{ value: "opml", label: t("export.format_opml") }
|
||||
]}
|
||||
/>
|
||||
|
||||
|
||||
@@ -35,7 +35,7 @@
|
||||
"@triliumnext/commons": "workspace:*",
|
||||
"@triliumnext/server": "workspace:*",
|
||||
"copy-webpack-plugin": "13.0.1",
|
||||
"electron": "38.4.0",
|
||||
"electron": "38.5.0",
|
||||
"@electron-forge/cli": "7.10.2",
|
||||
"@electron-forge/maker-deb": "7.10.2",
|
||||
"@electron-forge/maker-dmg": "7.10.2",
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"@triliumnext/desktop": "workspace:*",
|
||||
"@types/fs-extra": "11.0.4",
|
||||
"copy-webpack-plugin": "13.0.1",
|
||||
"electron": "38.4.0",
|
||||
"electron": "38.5.0",
|
||||
"fs-extra": "11.3.2"
|
||||
},
|
||||
"scripts": {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM node:24.10.0-bullseye-slim AS builder
|
||||
FROM node:24.11.0-bullseye-slim AS builder
|
||||
RUN corepack enable
|
||||
|
||||
# Install native dependencies since we might be building cross-platform.
|
||||
@@ -7,7 +7,7 @@ COPY ./docker/package.json ./docker/pnpm-workspace.yaml /usr/src/app/
|
||||
# We have to use --no-frozen-lockfile due to CKEditor patches
|
||||
RUN pnpm install --no-frozen-lockfile --prod && pnpm rebuild
|
||||
|
||||
FROM node:24.10.0-bullseye-slim
|
||||
FROM node:24.11.0-bullseye-slim
|
||||
# Install only runtime dependencies
|
||||
RUN apt-get update && \
|
||||
apt-get install -y --no-install-recommends \
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM node:24.10.0-alpine AS builder
|
||||
FROM node:24.11.0-alpine AS builder
|
||||
RUN corepack enable
|
||||
|
||||
# Install native dependencies since we might be building cross-platform.
|
||||
@@ -7,7 +7,7 @@ COPY ./docker/package.json ./docker/pnpm-workspace.yaml /usr/src/app/
|
||||
# We have to use --no-frozen-lockfile due to CKEditor patches
|
||||
RUN pnpm install --no-frozen-lockfile --prod && pnpm rebuild
|
||||
|
||||
FROM node:24.10.0-alpine
|
||||
FROM node:24.11.0-alpine
|
||||
# Install runtime dependencies
|
||||
RUN apk add --no-cache su-exec shadow
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM node:24.10.0-alpine AS builder
|
||||
FROM node:24.11.0-alpine AS builder
|
||||
RUN corepack enable
|
||||
|
||||
# Install native dependencies since we might be building cross-platform.
|
||||
@@ -7,7 +7,7 @@ COPY ./docker/package.json ./docker/pnpm-workspace.yaml /usr/src/app/
|
||||
# We have to use --no-frozen-lockfile due to CKEditor patches
|
||||
RUN pnpm install --no-frozen-lockfile --prod && pnpm rebuild
|
||||
|
||||
FROM node:24.10.0-alpine
|
||||
FROM node:24.11.0-alpine
|
||||
# Create a non-root user with configurable UID/GID
|
||||
ARG USER=trilium
|
||||
ARG UID=1001
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM node:24.10.0-bullseye-slim AS builder
|
||||
FROM node:24.11.0-bullseye-slim AS builder
|
||||
RUN corepack enable
|
||||
|
||||
# Install native dependencies since we might be building cross-platform.
|
||||
@@ -7,7 +7,7 @@ COPY ./docker/package.json ./docker/pnpm-workspace.yaml /usr/src/app/
|
||||
# We have to use --no-frozen-lockfile due to CKEditor patches
|
||||
RUN pnpm install --no-frozen-lockfile --prod && pnpm rebuild
|
||||
|
||||
FROM node:24.10.0-bullseye-slim
|
||||
FROM node:24.11.0-bullseye-slim
|
||||
# Create a non-root user with configurable UID/GID
|
||||
ARG USER=trilium
|
||||
ARG UID=1001
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
"node-html-parser": "7.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@anthropic-ai/sdk": "0.67.0",
|
||||
"@anthropic-ai/sdk": "0.68.0",
|
||||
"@braintree/sanitize-url": "7.1.1",
|
||||
"@electron/remote": "2.1.3",
|
||||
"@preact/preset-vite": "2.10.2",
|
||||
@@ -68,28 +68,28 @@
|
||||
"@types/xml2js": "0.4.14",
|
||||
"archiver": "7.0.1",
|
||||
"async-mutex": "0.5.0",
|
||||
"axios": "1.13.0",
|
||||
"axios": "1.13.1",
|
||||
"bindings": "1.5.0",
|
||||
"bootstrap": "5.3.8",
|
||||
"chardet": "2.1.0",
|
||||
"chardet": "2.1.1",
|
||||
"cheerio": "1.1.2",
|
||||
"chokidar": "4.0.3",
|
||||
"cls-hooked": "4.2.2",
|
||||
"compression": "1.8.1",
|
||||
"cookie-parser": "1.4.7",
|
||||
"csrf-csrf": "3.2.2",
|
||||
"dayjs": "1.11.18",
|
||||
"dayjs": "1.11.19",
|
||||
"debounce": "2.2.0",
|
||||
"debug": "4.4.3",
|
||||
"ejs": "3.1.10",
|
||||
"electron": "38.4.0",
|
||||
"electron": "38.5.0",
|
||||
"electron-debug": "4.1.0",
|
||||
"electron-window-state": "5.0.3",
|
||||
"escape-html": "1.0.3",
|
||||
"express": "5.1.0",
|
||||
"express-http-proxy": "2.1.2",
|
||||
"express-openid-connect": "2.19.2",
|
||||
"express-rate-limit": "8.1.0",
|
||||
"express-rate-limit": "8.2.1",
|
||||
"express-session": "1.18.2",
|
||||
"file-uri-to-path": "2.0.0",
|
||||
"fs-extra": "11.3.2",
|
||||
@@ -110,7 +110,7 @@
|
||||
"mime-types": "3.0.1",
|
||||
"multer": "2.0.2",
|
||||
"normalize-strings": "1.1.1",
|
||||
"ollama": "0.6.0",
|
||||
"ollama": "0.6.2",
|
||||
"openai": "6.7.0",
|
||||
"rand-token": "1.0.1",
|
||||
"safe-compare": "1.1.4",
|
||||
|
||||
2
apps/server/src/assets/doc_notes/en/User Guide/!!!meta.json
generated
vendored
|
Before Width: | Height: | Size: 168 KiB After Width: | Height: | Size: 168 KiB |
|
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 172 KiB After Width: | Height: | Size: 172 KiB |
|
Before Width: | Height: | Size: 167 KiB After Width: | Height: | Size: 167 KiB |
|
Before Width: | Height: | Size: 237 KiB After Width: | Height: | Size: 237 KiB |
|
Before Width: | Height: | Size: 202 KiB After Width: | Height: | Size: 202 KiB |
|
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
|
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB |
|
Before Width: | Height: | Size: 191 KiB After Width: | Height: | Size: 191 KiB |
@@ -1,5 +1,5 @@
|
||||
<figure class="image image_resized" style="width:63.68%;">
|
||||
<img style="aspect-ratio:1363/1364;" src="Introduction_image.png"
|
||||
<img style="aspect-ratio:1363/1364;" src="AI_image.png"
|
||||
width="1363" height="1364">
|
||||
<figcaption>An example chat with an LLM</figcaption>
|
||||
</figure>
|
||||
@@ -11,12 +11,12 @@
|
||||
<p>The quickest way to get started is to navigate to the “AI/LLM” settings:</p>
|
||||
<figure
|
||||
class="image image_resized" style="width:74.04%;">
|
||||
<img style="aspect-ratio:1916/1906;" src="5_Introduction_image.png"
|
||||
<img style="aspect-ratio:1916/1906;" src="5_AI_image.png"
|
||||
width="1916" height="1906">
|
||||
</figure>
|
||||
<p>Enable the feature:</p>
|
||||
<figure class="image image_resized" style="width:82.82%;">
|
||||
<img style="aspect-ratio:1911/997;" src="1_Introduction_image.png"
|
||||
<img style="aspect-ratio:1911/997;" src="1_AI_image.png"
|
||||
width="1911" height="997">
|
||||
</figure>
|
||||
|
||||
@@ -43,7 +43,7 @@ class="image image_resized" style="width:74.04%;">
|
||||
We will then hit the “refresh” button to have it fetch our models:</p>
|
||||
<figure
|
||||
class="image image_resized" style="width:82.28%;">
|
||||
<img style="aspect-ratio:1912/1075;" src="4_Introduction_image.png"
|
||||
<img style="aspect-ratio:1912/1075;" src="4_AI_image.png"
|
||||
width="1912" height="1075">
|
||||
</figure>
|
||||
<p>When selecting the dropdown for the “Embedding Model”, embedding models
|
||||
@@ -51,21 +51,21 @@ class="image image_resized" style="width:74.04%;">
|
||||
a horizontal line, as seen below:</p>
|
||||
<figure class="image image_resized"
|
||||
style="width:61.73%;">
|
||||
<img style="aspect-ratio:1232/959;" src="8_Introduction_image.png"
|
||||
<img style="aspect-ratio:1232/959;" src="8_AI_image.png"
|
||||
width="1232" height="959">
|
||||
</figure>
|
||||
<p>After selecting an embedding model, embeddings should automatically begin
|
||||
to be generated by checking the embedding statistics at the top of the
|
||||
“AI/LLM” settings panel:</p>
|
||||
<figure class="image image_resized" style="width:67.06%;">
|
||||
<img style="aspect-ratio:1333/499;" src="7_Introduction_image.png"
|
||||
<img style="aspect-ratio:1333/499;" src="7_AI_image.png"
|
||||
width="1333" height="499">
|
||||
</figure>
|
||||
<p>If you don't see any embeddings being created, you will want to scroll
|
||||
to the bottom of the settings, and hit “Recreate All Embeddings”:</p>
|
||||
<figure
|
||||
class="image image_resized" style="width:65.69%;">
|
||||
<img style="aspect-ratio:1337/1490;" src="3_Introduction_image.png"
|
||||
<img style="aspect-ratio:1337/1490;" src="3_AI_image.png"
|
||||
width="1337" height="1490">
|
||||
</figure>
|
||||
<p>Creating the embeddings will take some time, and will be regenerated when
|
||||
@@ -139,7 +139,7 @@ class="image image_resized" style="width:74.04%;">
|
||||
<p>When Tools are executed within your Chat, you'll see output like the following:</p>
|
||||
<figure
|
||||
class="image image_resized" style="width:66.88%;">
|
||||
<img style="aspect-ratio:1372/1591;" src="6_Introduction_image.png"
|
||||
<img style="aspect-ratio:1372/1591;" src="6_AI_image.png"
|
||||
width="1372" height="1591">
|
||||
</figure>
|
||||
<p>You don't need to tell the LLM to execute a certain tool, it should “smartly”
|
||||
@@ -149,13 +149,13 @@ class="image image_resized" style="width:74.04%;">
|
||||
use the “Chat with Notes” button, where you can go ahead and start chatting!:</p>
|
||||
<figure
|
||||
class="image image_resized" style="width:60.77%;">
|
||||
<img style="aspect-ratio:1378/539;" src="2_Introduction_image.png"
|
||||
<img style="aspect-ratio:1378/539;" src="2_AI_image.png"
|
||||
width="1378" height="539">
|
||||
</figure>
|
||||
<p>If you don't see the “Chat with Notes” button on your side launchbar,
|
||||
you might need to move it from the “Available Launchers” section to the
|
||||
“Visible Launchers” section:</p>
|
||||
<figure class="image image_resized" style="width:69.81%;">
|
||||
<img style="aspect-ratio:1765/1287;" src="9_Introduction_image.png"
|
||||
<img style="aspect-ratio:1765/1287;" src="9_AI_image.png"
|
||||
width="1765" height="1287">
|
||||
</figure>
|
||||
|
Before Width: | Height: | Size: 186 KiB After Width: | Height: | Size: 186 KiB |
@@ -11,12 +11,12 @@
|
||||
<p>To set your preferred chat model, you'll want to enter the provider's
|
||||
name here:</p>
|
||||
<figure class="image image_resized" style="width:88.38%;">
|
||||
<img style="aspect-ratio:1884/1267;" src="AI Provider Information_im.png"
|
||||
<img style="aspect-ratio:1884/1267;" src="Providers_image.png"
|
||||
width="1884" height="1267">
|
||||
</figure>
|
||||
<p>And to set your preferred embedding provider:</p>
|
||||
<figure class="image image_resized"
|
||||
style="width:93.47%;">
|
||||
<img style="aspect-ratio:1907/1002;" src="1_AI Provider Information_im.png"
|
||||
<img style="aspect-ratio:1907/1002;" src="1_Providers_image.png"
|
||||
width="1907" height="1002">
|
||||
</figure>
|
||||
|
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 270 KiB After Width: | Height: | Size: 270 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 89 KiB After Width: | Height: | Size: 89 KiB |
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
|
Before Width: | Height: | Size: 198 KiB After Width: | Height: | Size: 198 KiB |
|
Before Width: | Height: | Size: 175 KiB After Width: | Height: | Size: 175 KiB |
@@ -6,7 +6,16 @@
|
||||
<li>Note Map, which shows the hierarchical tree structure.</li>
|
||||
</ul>
|
||||
<h2>Link Map</h2>
|
||||
<p>Shows <a href="#root/_help_zEY4DaJG4YT5">relations</a> between notes:</p>
|
||||
<p>The Link map is a visualization of links and <a class="reference-link"
|
||||
href="#root/_help_Cq5X6iKQop6R">Relations</a> incoming to and outgoing from
|
||||
a particular note.</p>
|
||||
<p>The map indicates the following types of relations:</p>
|
||||
<ul>
|
||||
<li><a class="reference-link" href="#root/_help_hrZ1D00cLbal">Internal (reference) links</a> between
|
||||
notes.</li>
|
||||
<li><a class="reference-link" href="#root/_help_Cq5X6iKQop6R">Relations</a>
|
||||
</li>
|
||||
</ul>
|
||||
<p>
|
||||
<img src="1_Note Map (Link map, Tree m.png">
|
||||
</p>
|
||||
|
||||
125
apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing.html
generated
vendored
@@ -149,7 +149,7 @@ class="image">
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th><a class="reference-link" href="#root/_help_81SGnPGMk7Xc">Geo Map View</a>
|
||||
<th><a class="reference-link" href="#root/_help_81SGnPGMk7Xc">Geo Map</a>
|
||||
</th>
|
||||
<td>Not supported.</td>
|
||||
<td> </td>
|
||||
@@ -208,9 +208,19 @@ class="image">
|
||||
This allows you to manage and navigate through all the notes you have made
|
||||
public.</p>
|
||||
<h2>Security considerations</h2>
|
||||
<p>Shared notes are published on the open internet and can be accessed by
|
||||
anyone with the URL. The URL's randomness does not provide security, so
|
||||
it is crucial not to share sensitive information through this feature.</p>
|
||||
<ul>
|
||||
<li>Shared notes are published on the open internet and can be accessed by
|
||||
anyone with the URL unless the notes are password-protected.</li>
|
||||
<li>The URL's randomness does not provide security, so it is crucial not to
|
||||
share sensitive information through this feature.</li>
|
||||
<li>Trilium takes precautions to protect your publicly shared instance from
|
||||
leaking information for non-shared notes, including opening a separate
|
||||
read-only connection to the <a class="reference-link" href="#root/_help_wX4HbRucYSDD">Database</a>.
|
||||
Depending on your threat model, it might make more sense to use
|
||||
<a
|
||||
class="reference-link" href="#root/_help_ycBFjKrrwE9p">Exporting HTML for web publishing</a> and use battle-tested web servers
|
||||
such as Nginx or Apache to serve static content.</li>
|
||||
</ul>
|
||||
<h3>Password protection</h3>
|
||||
<p>To protect shared notes with a username and password, you can use the <code>#shareCredentials</code> attribute.
|
||||
Add this label to the note with the format <code>#shareCredentials="username:password"</code>.
|
||||
@@ -280,6 +290,15 @@ for (const attr of parentNote.attributes) {
|
||||
<li>Using slashes (<code>/</code>) within aliases to create subpaths is not
|
||||
supported.</li>
|
||||
</ol>
|
||||
<aside class="admonition tip">
|
||||
<ul>
|
||||
<li>To easily identify pages that don't have a share alias, run a
|
||||
<a
|
||||
class="reference-link" href="#root/_help_eIg8jdvaoNNd">Search</a> with <code>#!shareAlias</code>.</li>
|
||||
<li>To be able to enter the share alias faster, consider using <a class="reference-link"
|
||||
href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a> (for example <code>#label:shareAlias(inheritable)="promoted,alias=Slug,single,text"</code>).</li>
|
||||
</ul>
|
||||
</aside>
|
||||
<h3>Setting a custom favicon</h3>
|
||||
<p>To customize the favicon for your shared pages, create a relation <code>~shareFavicon</code> pointing
|
||||
to a file note containing the favicon (e.g., in <code>.ico</code> format).</p>
|
||||
@@ -300,7 +319,11 @@ for (const attr of parentNote.attributes) {
|
||||
When viewed, the list of shared roots will be displayed at the bottom of
|
||||
the note.</p>
|
||||
<h2>Attribute reference</h2>
|
||||
<table>
|
||||
<table class="ck-table-resized">
|
||||
<colgroup>
|
||||
<col style="width:18.38%;">
|
||||
<col style="width:81.62%;">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Attribute</th>
|
||||
@@ -309,40 +332,40 @@ for (const attr of parentNote.attributes) {
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>shareHiddenFromTree</code>
|
||||
<td><code>#shareHiddenFromTree</code>
|
||||
</td>
|
||||
<td>this note is hidden from left navigation tree, but still accessible with
|
||||
its URL</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>shareExternalLink</code>
|
||||
<td><code>#shareExternalLink</code>
|
||||
</td>
|
||||
<td>note will act as a link to an external website in the share tree</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>shareAlias</code>
|
||||
<td><code>#shareAlias</code>
|
||||
</td>
|
||||
<td>define an alias using which the note will be available under <code>https://your_trilium_host/share/[your_alias]</code>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>shareOmitDefaultCss</code>
|
||||
<td><code>#shareOmitDefaultCss</code>
|
||||
</td>
|
||||
<td>default share page CSS will be omitted. Use when you make extensive styling
|
||||
changes.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>shareRoot</code>
|
||||
<td><code>#shareRoot</code>
|
||||
</td>
|
||||
<td>marks note which is served on /share root.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>shareDescription</code>
|
||||
<td><code>#shareDescription</code>
|
||||
</td>
|
||||
<td>define text to be added to the HTML meta tag for description</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>shareRaw</code>
|
||||
<td><code>#shareRaw</code>
|
||||
</td>
|
||||
<td>Note will be served in its raw format, without HTML wrapper. See also
|
||||
<a
|
||||
@@ -350,7 +373,7 @@ for (const attr of parentNote.attributes) {
|
||||
without setting an attribute.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>shareDisallowRobotIndexing</code>
|
||||
<td><code>#shareDisallowRobotIndexing</code>
|
||||
</td>
|
||||
<td>
|
||||
<p>Indicates to web crawlers that the page should not be indexed of this
|
||||
@@ -362,19 +385,19 @@ for (const attr of parentNote.attributes) {
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>shareCredentials</code>
|
||||
<td><code>#shareCredentials</code>
|
||||
</td>
|
||||
<td>require credentials to access this shared note. Value is expected to be
|
||||
in format <code>username:password</code>. Don't forget to make this inheritable
|
||||
to apply to child-notes/images.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>shareIndex</code>
|
||||
<td><code>#shareIndex</code>
|
||||
</td>
|
||||
<td>Note with this label will list all roots of shared notes.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>shareHtmlLocation</code>
|
||||
<td><code>#shareHtmlLocation</code>
|
||||
</td>
|
||||
<td>defines where custom HTML injected via <code>~shareHtml</code> relation
|
||||
should be placed. Applied to the HTML snippet note itself. Format: <code>location:position</code> where
|
||||
@@ -384,6 +407,76 @@ for (const attr of parentNote.attributes) {
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3>Customizing logo</h3>
|
||||
<p>It's possible to adjust the logo which is displayed on the top-left of
|
||||
the left pane.</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Attribute</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>~shareLogo</code>
|
||||
</td>
|
||||
<td>Relation set to an image to use as logo. The image must be part of the
|
||||
share tree (it can be hidden if needed).</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>#shareLogoWidth</code>
|
||||
</td>
|
||||
<td>The width (in pixels, without unit) to set for the logo. Default is <code>53</code>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>#shareLogoHeight</code>
|
||||
</td>
|
||||
<td>The height (in pixels, without unit) to set for the logo. Default is <code>40</code>.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>#shareRootLink</code>
|
||||
</td>
|
||||
<td>URL to navigate to when the logo is pressed.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h3>Customizing OpenGraph</h3>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Attribute</th>
|
||||
<th>Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>#shareOpenGraphColor</code>
|
||||
</td>
|
||||
<td>This adjusts the <code>theme-color</code> meta-property.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>#shareOpenGraphURL</code>
|
||||
</td>
|
||||
<td>This adjusts the <code>og:url</code> and <code>twitter:url</code> meta-properties.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>#shareOpenGraphDomain</code>
|
||||
</td>
|
||||
<td>Adjusts the <code>twitter:domain</code> meta-property.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>#shareOpenGraphImage</code>
|
||||
<br><code>~shareOpenGraphImage</code>
|
||||
</td>
|
||||
<td>Can be either a label, case in which the value is passed on as-is, or
|
||||
it can be a relation to an image <a class="reference-link" href="#root/_help_W8vYD3Q1zjCR">File</a>.
|
||||
This controls the <code>og:image</code> meta-property.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h2>Credits</h2>
|
||||
<p>Since v0.95.0, a new theme was introduced (and enabled by default) which
|
||||
greatly improves the visual aspect of the Share feature, as well as its
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<p>As described in <a class="reference-link" href="#root/pOsGYCXsbNQG/tC7s2alapj8V/_help_R9pX4DGra2Vt">Sharing</a>,
|
||||
<p>As described in <a class="reference-link" href="#root/_help_R9pX4DGra2Vt">Sharing</a>,
|
||||
Trilium can act as a public server in which the shared notes are displayed
|
||||
in read-only mode. While this can work in most cases, it's generally not
|
||||
meant for high-traffic websites and since it's running on a Node.js server
|
||||
@@ -7,7 +7,7 @@
|
||||
static site generators such as <a href="https://www.mkdocs.org/">MkDocs</a>).
|
||||
Since the normal HTML ZIP export does not contain any styling or additional
|
||||
functionality, Trilium provides a way to export the same layout and style
|
||||
as the <a class="reference-link" href="#root/pOsGYCXsbNQG/tC7s2alapj8V/_help_R9pX4DGra2Vt">Sharing</a> function
|
||||
as the <a class="reference-link" href="#root/_help_R9pX4DGra2Vt">Sharing</a> function
|
||||
into static HTML files.</p>
|
||||
<p>Apart from the enhanced security, these HTML files are also easy to deploy
|
||||
on “serverless” deployments such as GitHub Pages or CloudFlare Pages and
|
||||
@@ -20,26 +20,25 @@
|
||||
importing the Markdown documentation and exporting it via a script to the
|
||||
static web format.</p>
|
||||
</aside>
|
||||
<h2>Differences from normal sharing and export</h2>
|
||||
<p>Apart from normal <a class="reference-link" href="#root/pOsGYCXsbNQG/tC7s2alapj8V/_help_R9pX4DGra2Vt">Sharing</a>,
|
||||
<h2>Differences from normal sharing</h2>
|
||||
<p>Apart from normal <a class="reference-link" href="#root/_help_R9pX4DGra2Vt">Sharing</a>,
|
||||
exporting to static HTML files comes with a few subtle differences:</p>
|
||||
<ul>
|
||||
<li data-list-item-id="e9e5a7d50e33698fb322f4dc65108f3a9">The URL structure is different. Where in normal sharing it's something
|
||||
<li>The URL structure is different. Where in normal sharing it's something
|
||||
along the way of <code>example.com/share/noteid</code>, the notes follow
|
||||
an hierarchical structure, such as <code>docs.triliumnotes.org/user-guide/concepts/navigation/tree-concepts</code>.</li>
|
||||
<li
|
||||
data-list-item-id="e3995e60b9751ea177ac920a901635d4b">The <code>favicon.ico</code> is not handled automatically, it needs to be
|
||||
<li>The <code>favicon.ico</code> is not handled automatically, it needs to be
|
||||
manually added on the server after the export is generated.</li>
|
||||
<li data-list-item-id="e72c2a986808ce27eb3bb5001fe4710cb">The “Last updated” for notes is not available.</li>
|
||||
<li data-list-item-id="e53e8959701206c7a064ba811c0123bef">The search functionality works slightly different since the normal one
|
||||
requires an active API to work. In the static export, search still works
|
||||
but uses a different mechanism so results might be different.</li>
|
||||
<li>The “Last updated” for notes is not available.</li>
|
||||
<li>The search functionality works slightly different since the normal one
|
||||
requires an active API to work. In the static export, search still works
|
||||
but uses a different mechanism so results might be different.</li>
|
||||
</ul>
|
||||
<h2>Differences from normal .zip export</h2>
|
||||
<ul>
|
||||
<li data-list-item-id="e8a16c7135d6f6c4de3bc448bd8795289">The name of the files/URLs will prefer <code>shareAlias</code> to allow
|
||||
<li>The name of the files/URLs will prefer <code>shareAlias</code> to allow
|
||||
for clean URLs.</li>
|
||||
<li data-list-item-id="ef8bfdfc599c07ba70fbb4be97a3e26ab">The export requires a functional web server as the pages will not render
|
||||
<li>The export requires a functional web server as the pages will not render
|
||||
properly if accessed locally via a web browser due to the use of module
|
||||
scripts.</li>
|
||||
</ul>
|
||||
@@ -50,7 +49,10 @@
|
||||
can be installed via:</p><pre><code class="language-text-x-trilium-auto">npm i -g http-server</code></pre>
|
||||
<p>Once installed simply:</p>
|
||||
<ol>
|
||||
<li data-list-item-id="ebc8d02c8cdcdb030c746f1fd5eccb5bd">Extract the exported .zip file.</li>
|
||||
<li data-list-item-id="e1d20f408fb89d0af0c1003984373f808">Inside the extracted directory, run <code>http-server</code>.</li>
|
||||
<li data-list-item-id="ecf0c59f3a26c8e766bb1d739f8355e33">Access the indicated address (e.g. http://localhost:8080).</li>
|
||||
</ol>
|
||||
<li>Extract the exported .zip file.</li>
|
||||
<li>Inside the extracted directory, run <code>http-server</code>.</li>
|
||||
<li>Access the indicated address (e.g. <a href="http://localhost:8080">http://localhost:8080</a>).</li>
|
||||
</ol>
|
||||
<h2>Automation</h2>
|
||||
<p><a class="reference-link" href="#root/_help_pgxEVkzLl1OP">ETAPI (REST API)</a> could
|
||||
potentially be used to automate an export on a scheduled task.</p>
|
||||
18
apps/server/src/assets/doc_notes/en/User Guide/User Guide/Advanced Usage/Sharing/Reverse proxy configuration.html
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
<p>It might be desirable to only expose the share functionality of Trilium
|
||||
to the Internet, and keep the application accessible only within a local
|
||||
network or via VPN.</p>
|
||||
<p>To do so, a reverse proxy is required.</p>
|
||||
<h2>Caddy</h2><pre><code class="language-text-x-trilium-auto">http://domain.com {
|
||||
reverse_proxy /share http://localhost:8080/share
|
||||
}</code></pre>
|
||||
<p>This is for newer versions where the share functionality is isolated,
|
||||
for older versions it's required to also include <code>/assets</code>.<sup><a href="#fn2b8mg20aol8">[1]</a></sup>
|
||||
</p>
|
||||
<ol>
|
||||
<li>
|
||||
<p><sup><strong><a href="#fnref2b8mg20aol8">^</a></strong></sup>
|
||||
</p>
|
||||
<p><a href="https://github.com/orgs/TriliumNext/discussions/7341#discussioncomment-14679897">https://github.com/orgs/TriliumNext/discussions/7341#discussioncomment-14679897</a>
|
||||
</p>
|
||||
</li>
|
||||
</ol>
|
||||
30
apps/server/src/assets/doc_notes/en/User Guide/User Guide/Basic Concepts and Features/Import & Export.html
generated
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
<p>Trilium natively supports the following formats for both import and export.</p>
|
||||
<ul>
|
||||
<li>HTML:
|
||||
<ul>
|
||||
<li>This is the main format used by Trilium, where standard tags are used
|
||||
to represent basic formatting and layout (e.g. <code><strong></code>, <code><table></code>, <code><pre></code>).</li>
|
||||
<li>Note that HTML is not a standardized format so some more specific features
|
||||
such as admonitions or <a class="reference-link" href="#root/_help_hrZ1D00cLbal">Internal (reference) links</a> might
|
||||
not be supported by other applications.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a class="reference-link" href="#root/_help_Oau6X9rCuegd">Markdown</a>
|
||||
<ul>
|
||||
<li>Most of the formatting is preserved, see <a class="reference-link"
|
||||
href="#root/_help_rJ9grSgoExl9">Supported syntax</a>.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>OPML (Outliner Interchange Format)
|
||||
<ul>
|
||||
<li>Supports both OPML v1.0 for plain text and v2.0 with HTML support.</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<p>To import from other applications, see the dedicated pages:</p>
|
||||
<ul>
|
||||
<li><a class="reference-link" href="#root/_help_syuSEKf2rUGr">Evernote</a>
|
||||
</li>
|
||||
<li><a class="reference-link" href="#root/_help_GnhlmrATVqcH">OneNote</a>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -1,5 +1,76 @@
|
||||
<p>Collections are a unique type of notes that don't have a content, but
|
||||
instead display its child notes in various presentation methods.</p>
|
||||
<h2>Main collections</h2>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<figure class="image">
|
||||
<img style="aspect-ratio:1651/810;" src="Collections_collection_ca.webp"
|
||||
width="1651" height="810">
|
||||
</figure>
|
||||
</td>
|
||||
<td><a class="reference-link" href="#root/_help_xWbu3jpNWapp">Calendar</a>
|
||||
<br>which displays a week, month or year calendar with the notes being shown
|
||||
as events. New events can be added easily by dragging across the calendar.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<figure class="image">
|
||||
<img style="aspect-ratio:1643/647;" src="Collections_collection_ta.webp"
|
||||
width="1643" height="647">
|
||||
</figure>
|
||||
</td>
|
||||
<td><a class="reference-link" href="#root/_help_2FvYrpmOXm29">Table</a>
|
||||
<br>displays each note as a row in a table, with <a class="reference-link"
|
||||
href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a> being shown as well.
|
||||
This makes it easy to visualize attributes of notes, as well as making
|
||||
them easily editable.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<figure class="image">
|
||||
<img style="aspect-ratio:1174/850;" src="Collections_collection_bo.webp"
|
||||
width="1174" height="850">
|
||||
</figure>
|
||||
</td>
|
||||
<td><a class="reference-link" href="#root/_help_CtBQqbwXDx1w">Kanban Board</a>
|
||||
<br>displays notes in columns, grouped by the value of a label. Items and
|
||||
columns can easily be created or dragged around to change their status.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<figure class="image">
|
||||
<img style="aspect-ratio:844/639;" src="Collections_collection_ge.webp"
|
||||
width="844" height="639">
|
||||
</figure>
|
||||
</td>
|
||||
<td><a class="reference-link" href="#root/_help_81SGnPGMk7Xc">Geo Map</a>
|
||||
<br>which displays a geographical map in which the notes are represented as
|
||||
markers/pins on the map. New events can be easily added by pointing on
|
||||
the map.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<figure class="image">
|
||||
<img style="aspect-ratio:1120/763;" src="Collections_collection_pr.webp"
|
||||
width="1120" height="763">
|
||||
</figure>
|
||||
</td>
|
||||
<td><a class="reference-link" href="#root/_help_zP3PMqaG71Ct">Presentation</a>
|
||||
<br>which shows each note as a slide and can be presented full-screen with
|
||||
smooth transitions or exported to PDF for sharing.</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<h2>Classic collections</h2>
|
||||
<p>Classic collections are read-only mode and compiles the contents of all
|
||||
child notes into one continuous view. This makes it ideal for reading extensive
|
||||
information broken into smaller, manageable segments.</p>
|
||||
@@ -13,32 +84,22 @@
|
||||
but it displays the notes one under the other with the content being expandable/collapsible,
|
||||
but also works recursively.</li>
|
||||
</ul>
|
||||
<p>More specialized collections were introduced, such as the:</p>
|
||||
<ul>
|
||||
<li><a class="reference-link" href="#root/_help_xWbu3jpNWapp">Calendar View</a> which
|
||||
displays a week, month or year calendar with the notes being shown as events.
|
||||
New events can be added easily by dragging across the calendar.</li>
|
||||
<li><a class="reference-link" href="#root/_help_81SGnPGMk7Xc">Geo Map View</a> which
|
||||
displays a geographical map in which the notes are represented as markers/pins
|
||||
on the map. New events can be easily added by pointing on the map.</li>
|
||||
<li><a class="reference-link" href="#root/_help_2FvYrpmOXm29">Table View</a> displays
|
||||
each note as a row in a table, with <a class="reference-link" href="#root/_help_OFXdgB2nNk1F">Promoted Attributes</a> being
|
||||
shown as well. This makes it easy to visualize attributes of notes, as
|
||||
well as making them easily editable.</li>
|
||||
<li><a class="reference-link" href="#root/_help_CtBQqbwXDx1w">Board View</a> (Kanban)
|
||||
displays notes in columns, grouped by the value of a label.</li>
|
||||
</ul>
|
||||
<p>For a quick presentation of all the supported view types, see the child
|
||||
notes of this help page, including screenshots.</p>
|
||||
<h2>Configuration</h2>
|
||||
<p>To adjust the view type, see the dedicated <em>Collections</em> tab in the
|
||||
<a
|
||||
class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>.</p>
|
||||
<h2>Use cases</h2>
|
||||
<h3>Creating a new collection</h3>
|
||||
<h2>Creating a new collection</h2>
|
||||
<p>To create a new collections, right click in the <a class="reference-link"
|
||||
href="#root/_help_oPVyFC7WL2Lp">Note Tree</a> and look for the <em>Collections</em> entry
|
||||
and select the desired type.</p>
|
||||
<h2>Configuration</h2>
|
||||
<p>To change the configuration of a collection or even switch to a different
|
||||
collection (e.g. from Kanban Board to a Calendar), see the dedicated <em>Collections</em> tab
|
||||
in the <a class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a>.</p>
|
||||
<h2>Archived notes</h2>
|
||||
<p>By default, <a href="#root/_help_MKmLg5x6xkor">archived notes</a> will not be
|
||||
shown in collections. This behaviour can be changed by going to <em>Collection Properties</em> in
|
||||
the <a class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a> and
|
||||
checking <em>Show archived notes</em>.</p>
|
||||
<p>Archived notes will be generally indicated by being greyed out as opposed
|
||||
to the normal ones.</p>
|
||||
<h2>Advanced use cases</h2>
|
||||
<h3>Adding a description to a collection</h3>
|
||||
<p>To add a text before the collection, for example to describe it:</p>
|
||||
<ol>
|
||||
@@ -75,13 +136,6 @@
|
||||
<li>Consult the help page of the corresponding view type in order to understand
|
||||
how to configure them.</li>
|
||||
</ol>
|
||||
<h2>Archived notes</h2>
|
||||
<p>By default, archived notes will not be shown in collections. This behaviour
|
||||
can be changed by going to <em>Collection Properties</em> in the
|
||||
<a
|
||||
class="reference-link" href="#root/_help_BlN9DFI679QC">Ribbon</a> and checking <em>Show archived notes</em>.</p>
|
||||
<p>Archived notes will be generally indicated by being greyed out as opposed
|
||||
to the normal ones.</p>
|
||||
<h2>Under the hood</h2>
|
||||
<p>Collections by themselves are simply notes with no content that rely on
|
||||
the <a class="reference-link" href="#root/_help_0ESUbbAxVnoK">Note List</a> mechanism
|
||||
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 605 B After Width: | Height: | Size: 605 B |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 68 KiB |
|
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 249 KiB After Width: | Height: | Size: 249 KiB |
|
Before Width: | Height: | Size: 179 B After Width: | Height: | Size: 179 B |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 909 B After Width: | Height: | Size: 909 B |
|
Before Width: | Height: | Size: 141 KiB After Width: | Height: | Size: 141 KiB |
|
Before Width: | Height: | Size: 264 KiB After Width: | Height: | Size: 264 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 210 KiB After Width: | Height: | Size: 210 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 1014 B After Width: | Height: | Size: 1014 B |
|
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 9.6 KiB |
|
Before Width: | Height: | Size: 966 B After Width: | Height: | Size: 966 B |
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 8.5 KiB After Width: | Height: | Size: 8.5 KiB |
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 338 KiB After Width: | Height: | Size: 338 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 108 KiB After Width: | Height: | Size: 108 KiB |
@@ -1,5 +1,5 @@
|
||||
<figure class="image image-style-align-center">
|
||||
<img style="aspect-ratio:767/606;" src="4_Calendar View_image.png"
|
||||
<img style="aspect-ratio:767/606;" src="4_Calendar_image.png"
|
||||
width="767" height="606">
|
||||
</figure>
|
||||
<p>The Calendar view will display each child note in a calendar that has
|
||||
@@ -30,7 +30,7 @@
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>
|
||||
<img src="2_Calendar View_image.png">
|
||||
<img src="2_Calendar_image.png">
|
||||
</td>
|
||||
<td>The Calendar View works only for Collection note types. To create a new
|
||||
note, right click on the note tree on the left and select Insert note after,
|
||||
@@ -39,7 +39,7 @@
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>
|
||||
<img src="3_Calendar View_image.png">
|
||||
<img src="3_Calendar_image.png">
|
||||
</td>
|
||||
<td>Once created, the “View type” of the Collection needs changed to “Calendar”,
|
||||
by selecting the “Collection Properties” tab in the ribbon.</td>
|
||||
@@ -59,7 +59,7 @@
|
||||
<li>It's possible to drag across multiple days to set both the start and end
|
||||
date of a particular note.
|
||||
<br>
|
||||
<img src="Calendar View_image.png">
|
||||
<img src="Calendar_image.png">
|
||||
</li>
|
||||
<li>Creating new notes from the calendar will respect the <code>~child:template</code> relation
|
||||
if set on the Collection note.</li>
|
||||
@@ -68,7 +68,7 @@
|
||||
<ul>
|
||||
<li>Hovering the mouse over an event will display information about the note.
|
||||
<br>
|
||||
<img src="7_Calendar View_image.png">
|
||||
<img src="7_Calendar_image.png">
|
||||
</li>
|
||||
<li>Left clicking the event will open a <a class="reference-link" href="#root/_help_ZjLYv08Rp3qC">Quick edit</a> to
|
||||
edit the note in a popup while allowing easy return to the calendar by
|
||||
@@ -209,7 +209,7 @@
|
||||
like this:
|
||||
<br>
|
||||
<br>
|
||||
<img src="9_Calendar View_image.png">
|
||||
<img src="9_Calendar_image.png">
|
||||
<br>
|
||||
<br><code>#weight="70" #Mood="Good" #calendar:displayedAttributes="weight,Mood"</code>
|
||||
<br>
|
||||
@@ -249,7 +249,7 @@
|
||||
|
||||
<h2>How the calendar works</h2>
|
||||
<p>
|
||||
<img src="11_Calendar View_image.png">
|
||||
<img src="11_Calendar_image.png">
|
||||
</p>
|
||||
<p>The calendar displays all the child notes of the Collection that have
|
||||
a <code>#startDate</code>. An <code>#endDate</code> can optionally be added.</p>
|
||||
@@ -259,7 +259,7 @@
|
||||
#hidePromotedAttributes </code></pre>
|
||||
<p>This will result in:</p>
|
||||
<p>
|
||||
<img src="10_Calendar View_image.png">
|
||||
<img src="10_Calendar_image.png">
|
||||
</p>
|
||||
<p>When not used in a Journal, the calendar is recursive. That is, it will
|
||||
look for events not just in its child notes but also in the children of
|
||||
@@ -283,8 +283,8 @@
|
||||
not having a <code>dateNote</code> attribute. Children of the child notes
|
||||
will not be displayed.</li>
|
||||
</ul>
|
||||
<img src="8_Calendar View_image.png"
|
||||
width="1217" height="724">
|
||||
<img src="8_Calendar_image.png" width="1217"
|
||||
height="724">
|
||||
|
||||
<h3>Using a different attribute as event title</h3>
|
||||
<p>By default, events are displayed on the calendar by their note title.
|
||||
@@ -309,7 +309,7 @@ width="1217" height="724">
|
||||
<td>
|
||||
<p> </p>
|
||||
<figure class="image image-style-align-center">
|
||||
<img style="aspect-ratio:445/124;" src="5_Calendar View_image.png"
|
||||
<img style="aspect-ratio:445/124;" src="5_Calendar_image.png"
|
||||
width="445" height="124">
|
||||
</figure>
|
||||
</td>
|
||||
@@ -335,8 +335,8 @@ width="1217" height="724">
|
||||
<td><pre><code class="language-text-x-trilium-auto">#startDate=2025-02-14 #endDate=2025-02-15 ~for=@John Smith ~for=@Jane Doe #calendar:title="for"</code></pre>
|
||||
</td>
|
||||
<td>
|
||||
<img src="6_Calendar View_image.png"
|
||||
width="294" height="151">
|
||||
<img src="6_Calendar_image.png" width="294"
|
||||
height="151">
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
@@ -359,7 +359,7 @@ width="1217" height="724">
|
||||
</td>
|
||||
<td>
|
||||
<figure class="image image-style-align-center">
|
||||
<img style="aspect-ratio:296/150;" src="1_Calendar View_image.png"
|
||||
<img style="aspect-ratio:296/150;" src="1_Calendar_image.png"
|
||||
width="296" height="150">
|
||||
</figure>
|
||||
</td>
|
||||
|
Before Width: | Height: | Size: 968 B After Width: | Height: | Size: 968 B |
@@ -5,7 +5,7 @@
|
||||
href="#root/_help_0ESUbbAxVnoK">Note List</a>. </p>
|
||||
</aside>
|
||||
<figure class="image image-style-align-center">
|
||||
<img style="aspect-ratio:892/675;" src="9_Geo Map View_image.png"
|
||||
<img style="aspect-ratio:892/675;" src="9_Geo Map_image.png"
|
||||
width="892" height="675">
|
||||
</figure>
|
||||
<p>This note type displays the children notes on a geographical map, based
|
||||
@@ -25,7 +25,7 @@
|
||||
<td>1</td>
|
||||
<td>
|
||||
<figure class="image">
|
||||
<img style="aspect-ratio:483/413;" src="15_Geo Map View_image.png"
|
||||
<img style="aspect-ratio:483/413;" src="15_Geo Map_image.png"
|
||||
width="483" height="413">
|
||||
</figure>
|
||||
</td>
|
||||
@@ -35,7 +35,7 @@
|
||||
<td>2</td>
|
||||
<td>
|
||||
<figure class="image image-style-align-center image_resized" style="width:53.44%;">
|
||||
<img style="aspect-ratio:1720/1396;" src="8_Geo Map View_image.png"
|
||||
<img style="aspect-ratio:1720/1396;" src="8_Geo Map_image.png"
|
||||
width="1720" height="1396">
|
||||
</figure>
|
||||
</td>
|
||||
@@ -67,18 +67,18 @@
|
||||
<td>1</td>
|
||||
<td>To create a marker, first navigate to the desired point on the map. Then
|
||||
press the
|
||||
<img src="10_Geo Map View_image.png">button in the <a href="#root/_help_XpOYSgsLkTJy">Floating buttons</a> (top-right)
|
||||
<img src="10_Geo Map_image.png">button in the <a href="#root/_help_XpOYSgsLkTJy">Floating buttons</a> (top-right)
|
||||
area.
|
||||
<br>
|
||||
<br>If the button is not visible, make sure the button section is visible
|
||||
by pressing the chevron button (
|
||||
<img src="17_Geo Map View_image.png">) in the top-right of the map.</td>
|
||||
<img src="17_Geo Map_image.png">) in the top-right of the map.</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>
|
||||
<img class="image_resized" style="aspect-ratio:1730/416;width:100%;" src="2_Geo Map View_image.png"
|
||||
<img class="image_resized" style="aspect-ratio:1730/416;width:100%;" src="2_Geo Map_image.png"
|
||||
width="1730" height="416">
|
||||
</td>
|
||||
<td>Once pressed, the map will enter in the insert mode, as illustrated by
|
||||
@@ -90,7 +90,7 @@
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>
|
||||
<img class="image_resized" style="aspect-ratio:1586/404;width:100%;" src="7_Geo Map View_image.png"
|
||||
<img class="image_resized" style="aspect-ratio:1586/404;width:100%;" src="7_Geo Map_image.png"
|
||||
width="1586" height="404">
|
||||
</td>
|
||||
<td>Enter the name of the marker/note to be created.</td>
|
||||
@@ -98,7 +98,7 @@
|
||||
<tr>
|
||||
<td>4</td>
|
||||
<td>
|
||||
<img class="image_resized" style="aspect-ratio:1696/608;width:100%;" src="16_Geo Map View_image.png"
|
||||
<img class="image_resized" style="aspect-ratio:1696/608;width:100%;" src="16_Geo Map_image.png"
|
||||
width="1696" height="608">
|
||||
</td>
|
||||
<td>Once confirmed, the marker will show up on the map and it will also be
|
||||
@@ -136,7 +136,7 @@
|
||||
<h2>How the location of the markers is stored</h2>
|
||||
<p>The location of a marker is stored in the <code>#geolocation</code> attribute
|
||||
of the child notes:</p>
|
||||
<img src="18_Geo Map View_image.png"
|
||||
<img src="18_Geo Map_image.png"
|
||||
width="1288" height="278">
|
||||
<p>This value can be added manually if needed. The value of the attribute
|
||||
is made up of the latitude and longitude separated by a comma.</p>
|
||||
@@ -191,7 +191,7 @@ width="1288" height="278">
|
||||
</ol>
|
||||
<h2>Icon and color of the markers</h2>
|
||||
<figure class="image image-style-align-center">
|
||||
<img style="aspect-ratio:523/295;" src="Geo Map View_image.jpg"
|
||||
<img style="aspect-ratio:523/295;" src="Geo Map_image.jpg"
|
||||
alt="image" width="523" height="295">
|
||||
</figure>
|
||||
<p>The markers will have the same icon as the note.</p>
|
||||
@@ -216,7 +216,7 @@ width="1288" height="278">
|
||||
<td>1</td>
|
||||
<td>
|
||||
<figure class="image image-style-align-center image_resized" style="width:56.84%;">
|
||||
<img style="aspect-ratio:732/918;" src="12_Geo Map View_image.png"
|
||||
<img style="aspect-ratio:732/918;" src="12_Geo Map_image.png"
|
||||
width="732" height="918">
|
||||
</figure>
|
||||
</td>
|
||||
@@ -233,7 +233,7 @@ width="1288" height="278">
|
||||
<td>2</td>
|
||||
<td>
|
||||
<figure class="image image-style-align-center image_resized" style="width:100%;">
|
||||
<img style="aspect-ratio:518/84;" src="4_Geo Map View_image.png"
|
||||
<img style="aspect-ratio:518/84;" src="4_Geo Map_image.png"
|
||||
width="518" height="84">
|
||||
</figure>
|
||||
</td>
|
||||
@@ -243,7 +243,7 @@ width="1288" height="278">
|
||||
<td>3</td>
|
||||
<td>
|
||||
<figure class="image image-style-align-center image_resized" style="width:100%;">
|
||||
<img style="aspect-ratio:1074/276;" src="11_Geo Map View_image.png"
|
||||
<img style="aspect-ratio:1074/276;" src="11_Geo Map_image.png"
|
||||
width="1074" height="276">
|
||||
</figure>
|
||||
</td>
|
||||
@@ -269,7 +269,7 @@ width="1288" height="278">
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>
|
||||
<img class="image_resized" style="aspect-ratio:562/454;width:100%;" src="1_Geo Map View_image.png"
|
||||
<img class="image_resized" style="aspect-ratio:562/454;width:100%;" src="1_Geo Map_image.png"
|
||||
width="562" height="454">
|
||||
</td>
|
||||
<td>Go to any location on openstreetmap.org and right click to bring up the
|
||||
@@ -278,7 +278,7 @@ width="1288" height="278">
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>
|
||||
<img class="image_resized" style="aspect-ratio:696/480;width:100%;" src="Geo Map View_image.png"
|
||||
<img class="image_resized" style="aspect-ratio:696/480;width:100%;" src="Geo Map_image.png"
|
||||
width="696" height="480">
|
||||
</td>
|
||||
<td>The address will be visible in the top-left of the screen, in the place
|
||||
@@ -289,7 +289,7 @@ width="1288" height="278">
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>
|
||||
<img class="image_resized" style="aspect-ratio:640/276;width:100%;" src="5_Geo Map View_image.png"
|
||||
<img class="image_resized" style="aspect-ratio:640/276;width:100%;" src="5_Geo Map_image.png"
|
||||
width="640" height="276">
|
||||
</td>
|
||||
<td>Simply paste the value inside the text box into the <code>#geolocation</code> attribute
|
||||
@@ -313,7 +313,7 @@ width="1288" height="278">
|
||||
<td>1</td>
|
||||
<td>
|
||||
<figure class="image image-style-align-center">
|
||||
<img style="aspect-ratio:226/74;" src="3_Geo Map View_image.png"
|
||||
<img style="aspect-ratio:226/74;" src="3_Geo Map_image.png"
|
||||
width="226" height="74">
|
||||
</figure>
|
||||
</td>
|
||||
@@ -324,7 +324,7 @@ width="1288" height="278">
|
||||
<td>2</td>
|
||||
<td>
|
||||
<figure class="image image-style-align-center">
|
||||
<img style="aspect-ratio:322/222;" src="14_Geo Map View_image.png"
|
||||
<img style="aspect-ratio:322/222;" src="14_Geo Map_image.png"
|
||||
width="322" height="222">
|
||||
</figure>
|
||||
</td>
|
||||
@@ -335,7 +335,7 @@ width="1288" height="278">
|
||||
<td>3</td>
|
||||
<td>
|
||||
<figure class="image image-style-align-center">
|
||||
<img style="aspect-ratio:620/530;" src="6_Geo Map View_image.png"
|
||||
<img style="aspect-ratio:620/530;" src="6_Geo Map_image.png"
|
||||
width="620" height="530">
|
||||
</figure>
|
||||
</td>
|
||||
@@ -400,7 +400,7 @@ width="1288" height="278">
|
||||
of the scale of the map.</p>
|
||||
<h2>Troubleshooting</h2>
|
||||
<figure class="image image-style-align-right image_resized" style="width:34.06%;">
|
||||
<img style="aspect-ratio:678/499;" src="13_Geo Map View_image.png"
|
||||
<img style="aspect-ratio:678/499;" src="13_Geo Map_image.png"
|
||||
width="678" height="499">
|
||||
</figure>
|
||||
|
||||
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 78 KiB After Width: | Height: | Size: 78 KiB |
@@ -1,5 +1,5 @@
|
||||
<figure class="image">
|
||||
<img style="aspect-ratio:918/248;" src="Board View_image.png"
|
||||
<img style="aspect-ratio:918/248;" src="Kanban Board_image.png"
|
||||
width="918" height="248">
|
||||
</figure>
|
||||
<p>The Board view presents sub-notes in columns for a Kanban-like experience.
|
||||
@@ -11,9 +11,9 @@
|
||||
then groups each note by the value of the status attribute.</p>
|
||||
<p>Notes are displayed recursively, so even the child notes of the child
|
||||
notes will be displayed. However, unlike the <a class="reference-link"
|
||||
href="#root/_help_2FvYrpmOXm29">Table View</a>, the notes are not displayed in
|
||||
a hierarchy.</p>
|
||||
<h2>Interaction with columns</h2>
|
||||
href="#root/_help_2FvYrpmOXm29">Table</a>, the notes are not displayed in a hierarchy.</p>
|
||||
<h2>Interaction</h2>
|
||||
<h3>Working with columns</h3>
|
||||
<ul>
|
||||
<li>Create a new column by pressing <em>Add Column</em> near the last column.
|
||||
<ul>
|
||||
@@ -33,7 +33,7 @@
|
||||
</li>
|
||||
<li>If there are many columns, use the mouse wheel to scroll.</li>
|
||||
</ul>
|
||||
<h2>Interaction with notes</h2>
|
||||
<h3>Working with notes</h3>
|
||||
<ul>
|
||||
<li>Create a new note in any column by pressing <em>New item</em>
|
||||
<ul>
|
||||
@@ -91,7 +91,6 @@ class="admonition note">
|
||||
<p>It's currently not possible to set a relation as the grouping criteria.
|
||||
There are plans to add support for it.</p>
|
||||
</aside>
|
||||
<h2>Interaction</h2>
|
||||
<h2>Limitations</h2>
|
||||
<ul>
|
||||
<li>It is not possible yet to use group by a relation, only by label.</li>
|
||||
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 119 KiB After Width: | Height: | Size: 119 KiB |
@@ -1,5 +1,5 @@
|
||||
<figure class="image">
|
||||
<img style="aspect-ratio:1120/763;" src="Presentation View_image.png"
|
||||
<img style="aspect-ratio:1120/763;" src="Presentation_image.png"
|
||||
width="1120" height="763">
|
||||
</figure>
|
||||
<p>The Presentation view allows the creation of slideshows directly from
|
||||
@@ -52,7 +52,7 @@
|
||||
scheme.</li>
|
||||
</ul>
|
||||
<figure class="image image-style-align-right image_resized" style="width:55.57%;">
|
||||
<img style="aspect-ratio:890/569;" src="1_Presentation View_image.png"
|
||||
<img style="aspect-ratio:890/569;" src="1_Presentation_image.png"
|
||||
width="890" height="569">
|
||||
</figure>
|
||||
<p>All direct children of the collection will be laid out horizontally. If
|
||||
|
Before Width: | Height: | Size: 422 KiB After Width: | Height: | Size: 422 KiB |
@@ -1,5 +1,5 @@
|
||||
<figure class="image">
|
||||
<img style="aspect-ratio:1050/259;" src="Table View_image.png"
|
||||
<img style="aspect-ratio:1050/259;" src="Table_image.png"
|
||||
width="1050" height="259">
|
||||
</figure>
|
||||
<p>The table view displays information in a grid, where the rows are individual
|
||||
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
BIN
apps/server/src/assets/doc_notes/en/User Guide/User Guide/Collections_collection_bo.webp
generated
vendored
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
apps/server/src/assets/doc_notes/en/User Guide/User Guide/Collections_collection_ca.webp
generated
vendored
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
apps/server/src/assets/doc_notes/en/User Guide/User Guide/Collections_collection_ge.webp
generated
vendored
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
apps/server/src/assets/doc_notes/en/User Guide/User Guide/Collections_collection_pr.webp
generated
vendored
Normal file
|
After Width: | Height: | Size: 27 KiB |