From 4ca296894d35bc827d6f20652c38c1678b7b558e Mon Sep 17 00:00:00 2001 From: kliu Date: Mon, 31 Mar 2025 18:01:52 +0800 Subject: [PATCH 01/24] Use --link-color as the color of links --- src/public/stylesheets/theme-next/forms.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/public/stylesheets/theme-next/forms.css b/src/public/stylesheets/theme-next/forms.css index 30e8eec22..f7aa04831 100644 --- a/src/public/stylesheets/theme-next/forms.css +++ b/src/public/stylesheets/theme-next/forms.css @@ -595,7 +595,7 @@ body a.tn-link:visited, box-shadow: 0 0 0 0 var(--background); border-radius: 4px; background: var(--background); - color: currentColor; + color: var(--link-color); font-weight: normal; text-decoration: underline; From 3cdbc76fff140cc60cfa6796c3a2c24f9a5fbc05 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 31 Mar 2025 18:36:57 +0300 Subject: [PATCH 02/24] feat(mermaid): display an error when PNG export could not occur --- src/public/app/services/utils.ts | 75 +++++++++++-------- .../abstract_svg_split_type_widget.ts | 11 ++- src/public/translations/en/translation.json | 3 + 3 files changed, 56 insertions(+), 33 deletions(-) diff --git a/src/public/app/services/utils.ts b/src/public/app/services/utils.ts index a4b0aa750..9d39bb279 100644 --- a/src/public/app/services/utils.ts +++ b/src/public/app/services/utils.ts @@ -650,47 +650,58 @@ function triggerDownload(fileName: string, dataUrl: string) { * * @param nameWithoutExtension the name of the file. The .png suffix is automatically added to it. * @param svgContent the content of the SVG file download. - * @returns `true` if the operation succeeded (width/height present), or `false` if the download was not triggered. + * @returns a promise which resolves if the operation was successful, or rejects if it failed (permissions issue or some other issue). */ function downloadSvgAsPng(nameWithoutExtension: string, svgContent: string) { - const mime = "image/svg+xml"; + return new Promise((resolve, reject) => { + const mime = "image/svg+xml"; - // First, we need to determine the width and the height from the input SVG. - const svgDocument = (new DOMParser()).parseFromString(svgContent, mime); - const width = svgDocument.documentElement?.getAttribute("width"); - const height = svgDocument.documentElement?.getAttribute("height"); + // First, we need to determine the width and the height from the input SVG. + const svgDocument = (new DOMParser()).parseFromString(svgContent, mime); + const width = svgDocument.documentElement?.getAttribute("width"); + const height = svgDocument.documentElement?.getAttribute("height"); - if (!width || !height) { - return false; - } + if (!width || !height) { + reject(); + return; + } - // Convert the image to a blob. - const svgBlob = new Blob([ svgContent ], { - type: mime - }) + // Convert the image to a blob. + const svgBlob = new Blob([ svgContent ], { + type: mime + }) - // Create an image element and load the SVG. - const imageEl = new Image(); - imageEl.width = parseFloat(width); - imageEl.height = parseFloat(height); - imageEl.src = URL.createObjectURL(svgBlob); - imageEl.onload = () => { - // Draw the image with a canvas. - const canvasEl = document.createElement("canvas"); - canvasEl.width = imageEl.width; - canvasEl.height = imageEl.height; - document.body.appendChild(canvasEl); + // Create an image element and load the SVG. + const imageEl = new Image(); + imageEl.width = parseFloat(width); + imageEl.height = parseFloat(height); + imageEl.onload = () => { + try { + // Draw the image with a canvas. + const canvasEl = document.createElement("canvas"); + canvasEl.width = imageEl.width; + canvasEl.height = imageEl.height; + document.body.appendChild(canvasEl); - const ctx = canvasEl.getContext("2d"); - ctx?.drawImage(imageEl, 0, 0); - URL.revokeObjectURL(imageEl.src); + const ctx = canvasEl.getContext("2d"); + if (!ctx) { + reject(); + } - const imgUri = canvasEl.toDataURL("image/png") - triggerDownload(`${nameWithoutExtension}.png`, imgUri); - document.body.removeChild(canvasEl); - }; + ctx?.drawImage(imageEl, 0, 0); + URL.revokeObjectURL(imageEl.src); - return true; + const imgUri = canvasEl.toDataURL("image/png") + triggerDownload(`${nameWithoutExtension}.png`, imgUri); + document.body.removeChild(canvasEl); + resolve(); + } catch (e) { + console.warn(e); + reject(); + } + }; + imageEl.src = URL.createObjectURL(svgBlob); + }); } /** diff --git a/src/public/app/widgets/type_widgets/abstract_svg_split_type_widget.ts b/src/public/app/widgets/type_widgets/abstract_svg_split_type_widget.ts index aeea96089..061694349 100644 --- a/src/public/app/widgets/type_widgets/abstract_svg_split_type_widget.ts +++ b/src/public/app/widgets/type_widgets/abstract_svg_split_type_widget.ts @@ -2,7 +2,9 @@ import type { EventData } from "../../components/app_context.js"; import type FNote from "../../entities/fnote.js"; import { t } from "../../services/i18n.js"; import server from "../../services/server.js"; +import toast from "../../services/toast.js"; import utils from "../../services/utils.js"; +import ws from "../../services/ws.js"; import OnClickButtonWidget from "../buttons/onclick_button.js"; import AbstractSplitTypeWidget from "./abstract_split_type_widget.js"; @@ -218,11 +220,18 @@ export default abstract class AbstractSvgSplitTypeWidget extends AbstractSplitTy } async exportPngEvent({ ntxId }: EventData<"exportPng">) { + console.log("Export to PNG", this.noteContext?.noteId, ntxId, this.svg); if (!this.isNoteContext(ntxId) || this.note?.type !== "mermaid" || !this.svg) { + console.log("Return"); return; } - utils.downloadSvgAsPng(this.note.title, this.svg); + try { + await utils.downloadSvgAsPng(this.note.title, this.svg); + } catch (e) { + console.warn(e); + toast.showError(t("svg.export_to_png")); + } } } diff --git a/src/public/translations/en/translation.json b/src/public/translations/en/translation.json index 13bb74dfd..e985ffc4d 100644 --- a/src/public/translations/en/translation.json +++ b/src/public/translations/en/translation.json @@ -1746,5 +1746,8 @@ }, "png_export_button": { "button_title": "Export diagram as PNG" + }, + "svg": { + "export_to_png": "The diagram could not be exported to PNG." } } From 3d0ec27038c104ce1738e2d02f5e4e874ea6b09d Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 31 Mar 2025 18:54:57 +0300 Subject: [PATCH 03/24] fix(mermaid): fix export to PNG for some diagram types --- src/public/app/services/utils.spec.ts | 22 +++++++++++++ src/public/app/services/utils.ts | 46 +++++++++++++++++++++------ 2 files changed, 58 insertions(+), 10 deletions(-) create mode 100644 src/public/app/services/utils.spec.ts diff --git a/src/public/app/services/utils.spec.ts b/src/public/app/services/utils.spec.ts new file mode 100644 index 000000000..2885fa270 --- /dev/null +++ b/src/public/app/services/utils.spec.ts @@ -0,0 +1,22 @@ +import { describe, expect, it } from "vitest"; +import { getSizeFromSvg } from "./utils.js"; + +describe("getSizeFromSvg", () => { + it("parses width & height attribute", () => { + const svg = ``; + const result = getSizeFromSvg(svg); + expect(result).toMatchObject({ + width: 714, + height: 574, + }); + }); + + it("parses viewbox", () => { + const svg = ``; + const result = getSizeFromSvg(svg); + expect(result).toMatchObject({ + width: 872.2750244140625, + height: 655 + }); + }); +}); diff --git a/src/public/app/services/utils.ts b/src/public/app/services/utils.ts index 9d39bb279..bb85729ba 100644 --- a/src/public/app/services/utils.ts +++ b/src/public/app/services/utils.ts @@ -2,6 +2,8 @@ import dayjs from "dayjs"; import { Modal } from "bootstrap"; import type { ViewScope } from "./link.js"; +const SVG_MIME = "image/svg+xml"; + function reloadFrontendApp(reason?: string) { if (reason) { logInfo(`Frontend app reload: ${reason}`); @@ -654,27 +656,23 @@ function triggerDownload(fileName: string, dataUrl: string) { */ function downloadSvgAsPng(nameWithoutExtension: string, svgContent: string) { return new Promise((resolve, reject) => { - const mime = "image/svg+xml"; - // First, we need to determine the width and the height from the input SVG. - const svgDocument = (new DOMParser()).parseFromString(svgContent, mime); - const width = svgDocument.documentElement?.getAttribute("width"); - const height = svgDocument.documentElement?.getAttribute("height"); - - if (!width || !height) { + const result = getSizeFromSvg(svgContent); + if (!result) { reject(); return; } // Convert the image to a blob. + const { width, height } = result; const svgBlob = new Blob([ svgContent ], { - type: mime + type: SVG_MIME }) // Create an image element and load the SVG. const imageEl = new Image(); - imageEl.width = parseFloat(width); - imageEl.height = parseFloat(height); + imageEl.width = width; + imageEl.height = height; imageEl.onload = () => { try { // Draw the image with a canvas. @@ -704,6 +702,34 @@ function downloadSvgAsPng(nameWithoutExtension: string, svgContent: string) { }); } +export function getSizeFromSvg(svgContent: string) { + const svgDocument = (new DOMParser()).parseFromString(svgContent, SVG_MIME); + + // Try to use width & height attributes if available. + let width = svgDocument.documentElement?.getAttribute("width"); + let height = svgDocument.documentElement?.getAttribute("height"); + + // If not, use the viewbox. + if (!width || !height) { + const viewBox = svgDocument.documentElement?.getAttribute("viewBox"); + if (viewBox) { + const viewBoxParts = viewBox.split(" "); + width = viewBoxParts[2]; + height = viewBoxParts[3]; + } + } + + if (width && height) { + return { + width: parseFloat(width), + height: parseFloat(height) + } + } else { + console.warn("SVG export error", svgDocument.documentElement); + return null; + } +} + /** * Compares two semantic version strings. * Returns: From 6976c9555ee2b0061edaeab0968e4a1c1aa1c6e0 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 31 Mar 2025 21:18:40 +0300 Subject: [PATCH 04/24] fix(mermaid): bypass security issue when generating PNG --- src/public/app/services/utils.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/public/app/services/utils.ts b/src/public/app/services/utils.ts index bb85729ba..004b38762 100644 --- a/src/public/app/services/utils.ts +++ b/src/public/app/services/utils.ts @@ -665,14 +665,12 @@ function downloadSvgAsPng(nameWithoutExtension: string, svgContent: string) { // Convert the image to a blob. const { width, height } = result; - const svgBlob = new Blob([ svgContent ], { - type: SVG_MIME - }) // Create an image element and load the SVG. const imageEl = new Image(); imageEl.width = width; imageEl.height = height; + imageEl.crossOrigin = "anonymous"; imageEl.onload = () => { try { // Draw the image with a canvas. @@ -687,7 +685,6 @@ function downloadSvgAsPng(nameWithoutExtension: string, svgContent: string) { } ctx?.drawImage(imageEl, 0, 0); - URL.revokeObjectURL(imageEl.src); const imgUri = canvasEl.toDataURL("image/png") triggerDownload(`${nameWithoutExtension}.png`, imgUri); @@ -698,7 +695,8 @@ function downloadSvgAsPng(nameWithoutExtension: string, svgContent: string) { reject(); } }; - imageEl.src = URL.createObjectURL(svgBlob); + imageEl.onerror = (e) => reject(e); + imageEl.src = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(svgContent)}`; }); } From ff4353794263e024e7753e37a5d649e1a035010e Mon Sep 17 00:00:00 2001 From: Jin <22962980+JYC333@users.noreply.github.com> Date: Mon, 31 Mar 2025 21:08:22 +0200 Subject: [PATCH 05/24] =?UTF-8?q?fix:=20=F0=9F=90=9B=20fix=20redirect=20ur?= =?UTF-8?q?l=20with=20reverse=20proxy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/services/auth.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/services/auth.ts b/src/services/auth.ts index 69bffa73b..7d55c3d32 100644 --- a/src/services/auth.ts +++ b/src/services/auth.ts @@ -28,7 +28,7 @@ function checkAuth(req: Request, res: Response, next: NextFunction) { } else if (currentTotpStatus !== lastAuthState.totpEnabled || currentSsoStatus !== lastAuthState.ssoEnabled) { req.session.destroy((err) => { if (err) console.error('Error destroying session:', err); - res.redirect('/login'); + res.redirect('login'); }); return; } else if (currentSsoStatus) { @@ -36,7 +36,7 @@ function checkAuth(req: Request, res: Response, next: NextFunction) { next(); return; } - res.redirect('/login'); + res.redirect('login'); return; } else if (!req.session.loggedIn && !noAuthentication) { const redirectToShare = options.getOptionBool("redirectBareDomain"); From 96eb7487e7555900e6f2a85a6a1a1f925c769b10 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 31 Mar 2025 22:51:27 +0300 Subject: [PATCH 06/24] chore(gitattributes): set up CRLF handling --- .gitattributes | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.gitattributes b/.gitattributes index b0cbaf83d..c2de311c3 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2,4 +2,12 @@ package-lock.json linguist-generated=true **/package-lock.json linguist-generated=true src/public/app/doc_notes/en/User[[:space:]]Guide/** linguist-generated=true src/public/app/doc_notes/en/User[[:space:]]Guide/**/*.md eol=lf + +demo/**/*.html eol=lf +demo/**/*.json eol=lf +demo/**/*.svg eol=lf +demo/**/*.txt eol=lf +demo/**/*.js eol=lf +demo/**/*.css eol=lf + libraries/** linguist-vendored \ No newline at end of file From b6137c07478fa5e5e144a351fbc487a6c08377e1 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 31 Mar 2025 22:55:55 +0300 Subject: [PATCH 07/24] chore(docs): normalize whitespace --- db/demo.zip | Bin 911124 -> 911149 bytes demo/!!!meta.json | 2114 ++++++++--------- demo/root/Trilium Demo.html | 13 +- .../Trilium Demo/Books/Book template.html | 13 +- demo/root/Trilium Demo/Books/To read.html | 3 + .../Formatting examples/Checkbox lists.html | 4 + .../Formatting examples/Code blocks.html | 1 + .../Formatting examples/Math.html | 2 + .../Trilium Demo/Inbox/The Last Question.html | 3 +- demo/root/Trilium Demo/Journal.html | 1 + .../2021/11 - November/28 - Tuesday.html | 1 + .../28 - Tuesday/Christmas gift ideas.html | 1 + .../28 - Tuesday/Trusted timestamping.html | 2 + .../2021/12 - December/18 - Monday.html | 1 + .../2021/12 - December/19 - Tuesday.html | 1 + .../2021/12 - December/20 - Wednesday.html | 1 + .../2021/12 - December/21 - Thursday.html | 1 + .../2021/12 - December/22 - Friday.html | 1 + .../2021/12 - December/23 - Saturday.html | 1 + .../24 - Sunday - Christmas Eve!.html | 1 + .../DONE - Buy a board game for Al.html | 1 + .../2021/12 - December/30 - Thursday.html | 1 + .../Trilium Demo/Journal/Day template.html | 1 + .../Scripting examples/Task manager.html | 1 + .../Done/Buy a board game for Alice.html | 1 + .../Maybe Black Swan.html | 1 + .../Tech/Linux/Bash scripting.html | 1 + .../Bash scripting/Bash startup modes.html | 13 +- .../Tech/Linux/Bash scripting/While loop.html | 1 + .../Overview/Platform architecture.html | 1 + 30 files changed, 1120 insertions(+), 1067 deletions(-) diff --git a/db/demo.zip b/db/demo.zip index e098ac986b654fcbca9ca5fe9988886a5c320f88..d13245f7711c9316fa9dc79d3e4ed5986a629bb7 100644 GIT binary patch delta 36464 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

Welcome to TriliumNext Notes! +

This is initial "demo" document provided by TriliumNext by default to showcase some of its features and also give you some ideas how you might structure your notes. You can play with it, modify note content and tree structure as you wish.

If you need any help, visit TriliumNext website: https://github.com/TriliumNext +

-

Cleanup

+

Cleanup

+

Once you're finished with experimenting and want to cleanup these pages, you can simply delete them all.

-
 
-

Formatting

+

Formatting

+

TriliumNext supports classic formatting like italic, bold, bold and italic. Of course you can add links like this one pointing to google.com +

Lists

Ordered: +

  1. First Item
  2. @@ -50,6 +56,7 @@

Unordered: +

  • Item
  • diff --git a/demo/root/Trilium Demo/Books/Book template.html b/demo/root/Trilium Demo/Books/Book template.html index 79aba14ae..b6ece231e 100644 --- a/demo/root/Trilium Demo/Books/Book template.html +++ b/demo/root/Trilium Demo/Books/Book template.html @@ -14,17 +14,22 @@

    Main characters

    +

    … here put main characters …

     

    -

    Plot

    +

    Plot

    +

    … describe main plot lines …

     

    -

    Tone

    +

    Tone

    +

     

    -

    Genre

    +

    Genre

    +

    scifi / drama / romance

     

    -

    Similar books

    +

    Similar books

    +
    diff --git a/demo/root/Trilium Demo/Books/To read.html b/demo/root/Trilium Demo/Books/To read.html index 17b164b6c..30cf1d0d1 100644 --- a/demo/root/Trilium Demo/Books/To read.html +++ b/demo/root/Trilium Demo/Books/To read.html @@ -14,11 +14,14 @@

    Checkout Kindle daily deals: https://www.amazon.com/gp/feature.html?docId=1000677541 +

    diff --git a/demo/root/Trilium Demo/Formatting examples/Checkbox lists.html b/demo/root/Trilium Demo/Formatting examples/Checkbox lists.html index d4fc44b13..edde9eae0 100644 --- a/demo/root/Trilium Demo/Formatting examples/Checkbox lists.html +++ b/demo/root/Trilium Demo/Formatting examples/Checkbox lists.html @@ -18,21 +18,25 @@
diff --git a/demo/root/Trilium Demo/Formatting examples/Code blocks.html b/demo/root/Trilium Demo/Formatting examples/Code blocks.html index a1cc12a9f..5bb2da12c 100644 --- a/demo/root/Trilium Demo/Formatting examples/Code blocks.html +++ b/demo/root/Trilium Demo/Formatting examples/Code blocks.html @@ -22,6 +22,7 @@ scheme for the syntax highlighting is adjustable in settings. 

function helloWorld() {
 	alert("Hello world");
 }
+

For larger pieces of code it is better to use a code note, which uses a fully-fledged code editor (CodeMirror). For an example of a code note, see Custom request handler.

diff --git a/demo/root/Trilium Demo/Formatting examples/Math.html b/demo/root/Trilium Demo/Formatting examples/Math.html index 14c06cfed..d9413cb9e 100644 --- a/demo/root/Trilium Demo/Formatting examples/Math.html +++ b/demo/root/Trilium Demo/Formatting examples/Math.html @@ -15,7 +15,9 @@

\(% \f is defined as #1f(#2) using the macro \f\relax{x} = \int_{-\infty}^\infty     \f\hat\xi\,e^{2 \pi i \xi x}     \,d\xi\)Some math examples:

\[\displaystyle \frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} = 1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}} {1+\frac{e^{-8\pi}} {1+\cdots} } } }\] +

Another:

\[\displaystyle \left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)\] +

Inline math is also possible: \(c^2 = a^2 + b^2\) Neat!

 

diff --git a/demo/root/Trilium Demo/Inbox/The Last Question.html b/demo/root/Trilium Demo/Inbox/The Last Question.html index 69429c858..4e7605891 100644 --- a/demo/root/Trilium Demo/Inbox/The Last Question.html +++ b/demo/root/Trilium Demo/Inbox/The Last Question.html @@ -18,10 +18,11 @@ href="https://en.wikipedia.org/wiki/Short_story">short storyby American writer Isaac Asimov. It first appeared in the November 1956 issue of Science Fiction Quarterly.

 
+ class="include-note" data-note-id="ZWCYra81yOFO" data-box-size="medium"> 

This page demonstrates two things:

diff --git a/demo/root/Trilium Demo/Journal.html b/demo/root/Trilium Demo/Journal.html index a7df54648..b80ca54e2 100644 --- a/demo/root/Trilium Demo/Journal.html +++ b/demo/root/Trilium Demo/Journal.html @@ -68,6 +68,7 @@

You can read some explanation on how this journal works here: https://github.com/zadam/trilium/wiki/Day-notes +

diff --git a/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday.html b/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday.html index 5171b6ee2..e4a99c109 100644 --- a/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday.html +++ b/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday.html @@ -18,6 +18,7 @@
  • diff --git a/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Christmas gift ideas.html b/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Christmas gift ideas.html index 2a2d08336..01ad36c16 100644 --- a/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Christmas gift ideas.html +++ b/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Christmas gift ideas.html @@ -17,6 +17,7 @@
  • XBox
  • Candles
  • Portable speakers +
  • ...?
  • diff --git a/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Trusted timestamping.html b/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Trusted timestamping.html index 0a85f8618..bae5a1ed0 100644 --- a/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Trusted timestamping.html +++ b/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Trusted timestamping.html @@ -14,8 +14,10 @@

    Wiki: https://en.wikipedia.org/wiki/Trusted_timestamping +

    Bozho: https://techblog.bozho.net/using-trusted-timestamping-java/ +

    Trusted timestamping is the process of securely keeping track of the creation and modification time of a document. Security here diff --git a/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday.html b/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday.html index ae490681e..3722a62c0 100644 --- a/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday.html +++ b/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday.html @@ -16,6 +16,7 @@

    Miscellaneous notes done on monday ...

     

    Interesting video: https://www.youtube.com/watch?v=_eSAF_qT_FY&feature=youtu.be +

     

     

    diff --git a/demo/root/Trilium Demo/Journal/2021/12 - December/19 - Tuesday.html b/demo/root/Trilium Demo/Journal/2021/12 - December/19 - Tuesday.html index f0309b26d..487b71530 100644 --- a/demo/root/Trilium Demo/Journal/2021/12 - December/19 - Tuesday.html +++ b/demo/root/Trilium Demo/Journal/2021/12 - December/19 - Tuesday.html @@ -18,6 +18,7 @@
  • diff --git a/demo/root/Trilium Demo/Journal/2021/12 - December/20 - Wednesday.html b/demo/root/Trilium Demo/Journal/2021/12 - December/20 - Wednesday.html index 28245eb1a..ae559b3c1 100644 --- a/demo/root/Trilium Demo/Journal/2021/12 - December/20 - Wednesday.html +++ b/demo/root/Trilium Demo/Journal/2021/12 - December/20 - Wednesday.html @@ -18,6 +18,7 @@
  • diff --git a/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday.html b/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday.html index 2ff2ac742..28b77ec56 100644 --- a/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday.html +++ b/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday.html @@ -18,6 +18,7 @@
  • diff --git a/demo/root/Trilium Demo/Journal/2021/12 - December/22 - Friday.html b/demo/root/Trilium Demo/Journal/2021/12 - December/22 - Friday.html index f8ec2e8e5..3545fd3d7 100644 --- a/demo/root/Trilium Demo/Journal/2021/12 - December/22 - Friday.html +++ b/demo/root/Trilium Demo/Journal/2021/12 - December/22 - Friday.html @@ -18,6 +18,7 @@
  • diff --git a/demo/root/Trilium Demo/Journal/2021/12 - December/23 - Saturday.html b/demo/root/Trilium Demo/Journal/2021/12 - December/23 - Saturday.html index 6973b8531..912b715c0 100644 --- a/demo/root/Trilium Demo/Journal/2021/12 - December/23 - Saturday.html +++ b/demo/root/Trilium Demo/Journal/2021/12 - December/23 - Saturday.html @@ -18,6 +18,7 @@
  • diff --git a/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!.html b/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!.html index 29a1e0cd2..c243a035c 100644 --- a/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!.html +++ b/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!.html @@ -18,6 +18,7 @@
  • diff --git a/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!/DONE - Buy a board game for Al.html b/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!/DONE - Buy a board game for Al.html index 55d9b2909..e7367a06c 100644 --- a/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!/DONE - Buy a board game for Al.html +++ b/demo/root/Trilium Demo/Journal/2021/12 - December/24 - Sunday - Christmas Eve!/DONE - Buy a board game for Al.html @@ -18,6 +18,7 @@ width="209" height="300">

    Maybe CodeNames? https://boardgamegeek.com/boardgame/178900/codenames +

    diff --git a/demo/root/Trilium Demo/Journal/2021/12 - December/30 - Thursday.html b/demo/root/Trilium Demo/Journal/2021/12 - December/30 - Thursday.html index 36cbd2ed6..133fae97b 100644 --- a/demo/root/Trilium Demo/Journal/2021/12 - December/30 - Thursday.html +++ b/demo/root/Trilium Demo/Journal/2021/12 - December/30 - Thursday.html @@ -18,6 +18,7 @@
  • diff --git a/demo/root/Trilium Demo/Journal/Day template.html b/demo/root/Trilium Demo/Journal/Day template.html index 623273a9e..44bd101ae 100644 --- a/demo/root/Trilium Demo/Journal/Day template.html +++ b/demo/root/Trilium Demo/Journal/Day template.html @@ -18,6 +18,7 @@
  • diff --git a/demo/root/Trilium Demo/Scripting examples/Task manager.html b/demo/root/Trilium Demo/Scripting examples/Task manager.html index 1b4822074..0194f9364 100644 --- a/demo/root/Trilium Demo/Scripting examples/Task manager.html +++ b/demo/root/Trilium Demo/Scripting examples/Task manager.html @@ -15,6 +15,7 @@

    This is a simple TODO/Task manager. You can see some description and explanation here: https://github.com/zadam/trilium/wiki/Task-manager +

    Please note that this is meant as scripting example only and feature/bug support is very limited.

    diff --git a/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Buy a board game for Alice.html b/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Buy a board game for Alice.html index afa05f7a8..c62a21b6c 100644 --- a/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Buy a board game for Alice.html +++ b/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Buy a board game for Alice.html @@ -71,6 +71,7 @@

    Maybe CodeNames? https://boardgamegeek.com/boardgame/178900/codenames +

    diff --git a/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/mall/Buy some book for Bob/Maybe Black Swan.html b/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/mall/Buy some book for Bob/Maybe Black Swan.html index ba291c1ae..51831b17f 100644 --- a/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/mall/Buy some book for Bob/Maybe Black Swan.html +++ b/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/mall/Buy some book for Bob/Maybe Black Swan.html @@ -14,6 +14,7 @@

    https://en.wikipedia.org/wiki/The_Black_Swan:_The_Impact_of_the_Highly_Improbable +

    The Black Swan: The Impact of the Highly Improbable is a 2007 book by author and former options trader diff --git a/demo/root/Trilium Demo/Tech/Linux/Bash scripting.html b/demo/root/Trilium Demo/Tech/Linux/Bash scripting.html index aaa6cd1ad..55c1364be 100644 --- a/demo/root/Trilium Demo/Tech/Linux/Bash scripting.html +++ b/demo/root/Trilium Demo/Tech/Linux/Bash scripting.html @@ -25,6 +25,7 @@ and Apple's macOS (formerly OS X). A version is also available for Windows 10.

    Bash on Wikipedia +

    diff --git a/demo/root/Trilium Demo/Tech/Linux/Bash scripting/Bash startup modes.html b/demo/root/Trilium Demo/Tech/Linux/Bash scripting/Bash startup modes.html index 53524fd41..2f686d2de 100644 --- a/demo/root/Trilium Demo/Tech/Linux/Bash scripting/Bash startup modes.html +++ b/demo/root/Trilium Demo/Tech/Linux/Bash scripting/Bash startup modes.html @@ -14,6 +14,7 @@

    Login shell

    +

    As a "login shell", Bash reads and sets (executes) the user's profile from /etc/profile and one of ~/.bash_profile, ~/.bash_login, or ~/.profile (in that order, using the first one that's readable!).

    @@ -23,6 +24,7 @@ that only make sense for the initial user login. That's why all UNIX® shells have (should have) a "login" mode.

    Methods to start Bash as a login shell: +

    • the first character of argv[0] is - (a hyphen): traditional UNIX® shells @@ -31,17 +33,20 @@
    • Bash is started with the --login option

    Methods to test for login shell mode: +

    Related switches: +

    • --noprofile disables reading of all profile files
    -

    Interactive shell

    +

    Interactive shell

    +

    When Bash starts as an interactive non-login shell, it reads and executes commands from ~/.bashrc. This file should contain, for example, aliases, since they need to be defined in every shell as they're not inherited from @@ -51,11 +56,13 @@ The classic way to have a system-wide rc file is to source /etc/bashrc from every user's ~/.bashrc.

    Methods to test for interactive-shell mode: +

    • the special parameter $- contains the letter i (lowercase I)

    Related switches: +

    • -i forces the interactive mode
    • @@ -64,7 +71,8 @@
    • --rcfile defines another startup file (instead of /etc/bash.bashrc and ~/.bashrc)
    -

    SH mode

    +

    SH mode

    +

    When Bash starts in SH compatiblity mode, it tries to mimic the startup behaviour of historical versions of sh as closely as possible, while conforming to the POSIX® standard as well. The profile files read are /etc/profile @@ -74,6 +82,7 @@ file.

    After the startup files are read, Bash enters the POSIX(r) compatiblity mode (for running, not for starting!).

    Bash starts in sh compatiblity mode when: +

    • diff --git a/demo/root/Trilium Demo/Tech/Linux/Bash scripting/While loop.html b/demo/root/Trilium Demo/Tech/Linux/Bash scripting/While loop.html index c0ca3c2f0..edf0b35c5 100644 --- a/demo/root/Trilium Demo/Tech/Linux/Bash scripting/While loop.html +++ b/demo/root/Trilium Demo/Tech/Linux/Bash scripting/While loop.html @@ -14,6 +14,7 @@

      Documentation: http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_09_02.html +

      #!/bin/bash
       # This script opens 4 terminal windows.
       
      diff --git a/demo/root/Trilium Demo/Tech/node.js/Overview/Platform architecture.html b/demo/root/Trilium Demo/Tech/node.js/Overview/Platform architecture.html
      index 0fbed08bf..0e6215a28 100644
      --- a/demo/root/Trilium Demo/Tech/node.js/Overview/Platform architecture.html	
      +++ b/demo/root/Trilium Demo/Tech/node.js/Overview/Platform architecture.html	
      @@ -74,6 +74,7 @@
                                                                                                                               href="https://en.wikipedia.org/wiki/Node.js#cite_note-b1-31">[31]Developers can create scalable servers without using threading,
                                                                                                                                 by using a simplified model of event-driven programming that
                                                                                                                                 uses callbacks to signal the completion of a task.[31]
      +
                                                                                                                           

    From 8c6dbb4446a7cb07e8dd8c5ed4df14b4f694dd2e Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Mon, 31 Mar 2025 23:20:14 +0300 Subject: [PATCH 08/24] feat(docs): preserve note IDs --- electron-utils.ts | 2 +- src/services/sql_init.ts | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/electron-utils.ts b/electron-utils.ts index d492d606a..ebaefa13d 100644 --- a/electron-utils.ts +++ b/electron-utils.ts @@ -8,7 +8,7 @@ export async function initializeDatabase() { cls.init(() => { if (!sqlInit.isDbInitialized()) { - sqlInit.createInitialDatabase(); + sqlInit.createInitialDatabase(true); } }); } diff --git a/src/services/sql_init.ts b/src/services/sql_init.ts index afe8324e1..b03c12f51 100644 --- a/src/services/sql_init.ts +++ b/src/services/sql_init.ts @@ -64,7 +64,7 @@ async function initDbConnection() { dbReady.resolve(); } -async function createInitialDatabase() { +async function createInitialDatabase(preserveIds?: boolean) { if (isDbInitialized()) { throw new Error("DB is already initialized"); } @@ -112,7 +112,9 @@ async function createInitialDatabase() { const dummyTaskContext = new TaskContext("no-progress-reporting", "import", false); - await zipImportService.importZip(dummyTaskContext, demoFile, rootNote); + await zipImportService.importZip(dummyTaskContext, demoFile, rootNote, { + preserveIds + }); sql.transactional(() => { // this needs to happen after ZIP import, From f80c5ba29e286a35b110fb22fbd1dadcab782e76 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 1 Apr 2025 01:38:04 +0000 Subject: [PATCH 09/24] chore(deps): update dependency sass to v1.86.1 --- package-lock.json | 12 ++++++------ package.json | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index da65a3d3f..a0d45df1c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "trilium", - "version": "0.92.5", + "version": "0.92.5-beta", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "trilium", - "version": "0.92.5", + "version": "0.92.5-beta", "license": "AGPL-3.0-only", "dependencies": { "@braintree/sanitize-url": "7.1.1", @@ -181,7 +181,7 @@ "react": "18.3.1", "react-dom": "18.3.1", "rimraf": "6.0.1", - "sass": "1.86.0", + "sass": "1.86.1", "sass-loader": "16.0.5", "script-loader": "0.7.2", "split.js": "1.6.5", @@ -18275,9 +18275,9 @@ } }, "node_modules/sass": { - "version": "1.86.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.86.0.tgz", - "integrity": "sha512-zV8vGUld/+mP4KbMLJMX7TyGCuUp7hnkOScgCMsWuHtns8CWBoz+vmEhoGMXsaJrbUP8gj+F1dLvVe79sK8UdA==", + "version": "1.86.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.86.1.tgz", + "integrity": "sha512-Yaok4XELL1L9Im/ZUClKu//D2OP1rOljKj0Gf34a+GzLbMveOzL7CfqYo+JUa5Xt1nhTCW+OcKp/FtR7/iqj1w==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 9035538b5..1f2e968b8 100644 --- a/package.json +++ b/package.json @@ -238,7 +238,7 @@ "react": "18.3.1", "react-dom": "18.3.1", "rimraf": "6.0.1", - "sass": "1.86.0", + "sass": "1.86.1", "sass-loader": "16.0.5", "script-loader": "0.7.2", "split.js": "1.6.5", From 5db393bfda42165052b72403e1b8e4f855ef893c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 1 Apr 2025 01:38:19 +0000 Subject: [PATCH 10/24] chore(deps): update dependency typescript-eslint to v8.29.0 --- package-lock.json | 102 +++++++++++++++++++++++----------------------- package.json | 2 +- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/package-lock.json b/package-lock.json index da65a3d3f..0a32a4295 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "trilium", - "version": "0.92.5", + "version": "0.92.5-beta", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "trilium", - "version": "0.92.5", + "version": "0.92.5-beta", "license": "AGPL-3.0-only", "dependencies": { "@braintree/sanitize-url": "7.1.1", @@ -193,7 +193,7 @@ "tsx": "4.19.3", "typedoc": "0.28.1", "typescript": "5.8.2", - "typescript-eslint": "8.28.0", + "typescript-eslint": "8.29.0", "vanilla-js-wheel-zoom": "9.0.4", "vitest": "3.0.9", "webpack": "5.98.0", @@ -5588,17 +5588,17 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.28.0.tgz", - "integrity": "sha512-lvFK3TCGAHsItNdWZ/1FkvpzCxTHUVuFrdnOGLMa0GGCFIbCgQWVk3CzCGdA7kM3qGVc+dfW9tr0Z/sHnGDFyg==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.29.0.tgz", + "integrity": "sha512-PAIpk/U7NIS6H7TEtN45SPGLQaHNgB7wSjsQV/8+KYokAb2T/gloOA/Bee2yd4/yKVhPKe5LlaUGhAZk5zmSaQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.28.0", - "@typescript-eslint/type-utils": "8.28.0", - "@typescript-eslint/utils": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0", + "@typescript-eslint/scope-manager": "8.29.0", + "@typescript-eslint/type-utils": "8.29.0", + "@typescript-eslint/utils": "8.29.0", + "@typescript-eslint/visitor-keys": "8.29.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -5618,16 +5618,16 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.28.0.tgz", - "integrity": "sha512-LPcw1yHD3ToaDEoljFEfQ9j2xShY367h7FZ1sq5NJT9I3yj4LHer1Xd1yRSOdYy9BpsrxU7R+eoDokChYM53lQ==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.29.0.tgz", + "integrity": "sha512-8C0+jlNJOwQso2GapCVWWfW/rzaq7Lbme+vGUFKE31djwNncIpgXD7Cd4weEsDdkoZDjH0lwwr3QDQFuyrMg9g==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.28.0", - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/typescript-estree": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0", + "@typescript-eslint/scope-manager": "8.29.0", + "@typescript-eslint/types": "8.29.0", + "@typescript-eslint/typescript-estree": "8.29.0", + "@typescript-eslint/visitor-keys": "8.29.0", "debug": "^4.3.4" }, "engines": { @@ -5643,14 +5643,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.28.0.tgz", - "integrity": "sha512-u2oITX3BJwzWCapoZ/pXw6BCOl8rJP4Ij/3wPoGvY8XwvXflOzd1kLrDUUUAIEdJSFh+ASwdTHqtan9xSg8buw==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.29.0.tgz", + "integrity": "sha512-aO1PVsq7Gm+tcghabUpzEnVSFMCU4/nYIgC2GOatJcllvWfnhrgW0ZEbnTxm36QsikmCN1K/6ZgM7fok2I7xNw==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0" + "@typescript-eslint/types": "8.29.0", + "@typescript-eslint/visitor-keys": "8.29.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5661,14 +5661,14 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.28.0.tgz", - "integrity": "sha512-oRoXu2v0Rsy/VoOGhtWrOKDiIehvI+YNrDk5Oqj40Mwm0Yt01FC/Q7nFqg088d3yAsR1ZcZFVfPCTTFCe/KPwg==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.29.0.tgz", + "integrity": "sha512-ahaWQ42JAOx+NKEf5++WC/ua17q5l+j1GFrbbpVKzFL/tKVc0aYY8rVSYUpUvt2hUP1YBr7mwXzx+E/DfUWI9Q==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.28.0", - "@typescript-eslint/utils": "8.28.0", + "@typescript-eslint/typescript-estree": "8.29.0", + "@typescript-eslint/utils": "8.29.0", "debug": "^4.3.4", "ts-api-utils": "^2.0.1" }, @@ -5685,9 +5685,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.28.0.tgz", - "integrity": "sha512-bn4WS1bkKEjx7HqiwG2JNB3YJdC1q6Ue7GyGlwPHyt0TnVq6TtD/hiOdTZt71sq0s7UzqBFXD8t8o2e63tXgwA==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.29.0.tgz", + "integrity": "sha512-wcJL/+cOXV+RE3gjCyl/V2G877+2faqvlgtso/ZRbTCnZazh0gXhe+7gbAnfubzN2bNsBtZjDvlh7ero8uIbzg==", "dev": true, "license": "MIT", "engines": { @@ -5699,14 +5699,14 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.28.0.tgz", - "integrity": "sha512-H74nHEeBGeklctAVUvmDkxB1mk+PAZ9FiOMPFncdqeRBXxk1lWSYraHw8V12b7aa6Sg9HOBNbGdSHobBPuQSuA==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.29.0.tgz", + "integrity": "sha512-yOfen3jE9ISZR/hHpU/bmNvTtBW1NjRbkSFdZOksL1N+ybPEE7UVGMwqvS6CP022Rp00Sb0tdiIkhSCe6NI8ow==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/visitor-keys": "8.28.0", + "@typescript-eslint/types": "8.29.0", + "@typescript-eslint/visitor-keys": "8.29.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -5752,16 +5752,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.28.0.tgz", - "integrity": "sha512-OELa9hbTYciYITqgurT1u/SzpQVtDLmQMFzy/N8pQE+tefOyCWT79jHsav294aTqV1q1u+VzqDGbuujvRYaeSQ==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.29.0.tgz", + "integrity": "sha512-gX/A0Mz9Bskm8avSWFcK0gP7cZpbY4AIo6B0hWYFCaIsz750oaiWR4Jr2CI+PQhfW1CpcQr9OlfPS+kMFegjXA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.28.0", - "@typescript-eslint/types": "8.28.0", - "@typescript-eslint/typescript-estree": "8.28.0" + "@typescript-eslint/scope-manager": "8.29.0", + "@typescript-eslint/types": "8.29.0", + "@typescript-eslint/typescript-estree": "8.29.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -5776,13 +5776,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.28.0.tgz", - "integrity": "sha512-hbn8SZ8w4u2pRwgQ1GlUrPKE+t2XvcCW5tTRF7j6SMYIuYG37XuzIW44JCZPa36evi0Oy2SnM664BlIaAuQcvg==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.29.0.tgz", + "integrity": "sha512-Sne/pVz8ryR03NFK21VpN88dZ2FdQXOlq3VIklbrTYEt8yXtRFr9tvUhqvCeKjqYk5FSim37sHbooT6vzBTZcg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.28.0", + "@typescript-eslint/types": "8.29.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -20380,15 +20380,15 @@ } }, "node_modules/typescript-eslint": { - "version": "8.28.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.28.0.tgz", - "integrity": "sha512-jfZtxJoHm59bvoCMYCe2BM0/baMswRhMmYhy+w6VfcyHrjxZ0OJe0tGasydCpIpA+A/WIJhTyZfb3EtwNC/kHQ==", + "version": "8.29.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.29.0.tgz", + "integrity": "sha512-ep9rVd9B4kQsZ7ZnWCVxUE/xDLUUUsRzE0poAeNu+4CkFErLfuvPt/qtm2EpnSyfvsR0S6QzDFSrPCFBwf64fg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.28.0", - "@typescript-eslint/parser": "8.28.0", - "@typescript-eslint/utils": "8.28.0" + "@typescript-eslint/eslint-plugin": "8.29.0", + "@typescript-eslint/parser": "8.29.0", + "@typescript-eslint/utils": "8.29.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" diff --git a/package.json b/package.json index 9035538b5..0a5e8954a 100644 --- a/package.json +++ b/package.json @@ -250,7 +250,7 @@ "tsx": "4.19.3", "typedoc": "0.28.1", "typescript": "5.8.2", - "typescript-eslint": "8.28.0", + "typescript-eslint": "8.29.0", "vanilla-js-wheel-zoom": "9.0.4", "vitest": "3.0.9", "webpack": "5.98.0", From 217a28ef01e55ed0aa92c7191f1caea17a758817 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Tue, 1 Apr 2025 01:38:36 +0000 Subject: [PATCH 11/24] chore(deps): update vitest monorepo to v3.1.1 --- package-lock.json | 122 +++++++++++++++++++++++----------------------- package.json | 4 +- 2 files changed, 63 insertions(+), 63 deletions(-) diff --git a/package-lock.json b/package-lock.json index da65a3d3f..c69a71836 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "trilium", - "version": "0.92.5", + "version": "0.92.5-beta", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "trilium", - "version": "0.92.5", + "version": "0.92.5-beta", "license": "AGPL-3.0-only", "dependencies": { "@braintree/sanitize-url": "7.1.1", @@ -157,7 +157,7 @@ "@types/ws": "8.18.0", "@types/xml2js": "0.4.14", "@types/yargs": "17.0.33", - "@vitest/coverage-v8": "3.0.9", + "@vitest/coverage-v8": "3.1.1", "autoprefixer": "10.4.21", "bootstrap": "5.3.3", "copy-webpack-plugin": "13.0.0", @@ -195,7 +195,7 @@ "typescript": "5.8.2", "typescript-eslint": "8.28.0", "vanilla-js-wheel-zoom": "9.0.4", - "vitest": "3.0.9", + "vitest": "3.1.1", "webpack": "5.98.0", "webpack-cli": "6.0.1", "webpack-dev-middleware": "7.4.2" @@ -5794,9 +5794,9 @@ } }, "node_modules/@vitest/coverage-v8": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.0.9.tgz", - "integrity": "sha512-15OACZcBtQ34keIEn19JYTVuMFTlFrClclwWjHo/IRPg/8ELpkgNTl0o7WLP9WO9XGH6+tip9CPYtEOrIDJvBA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-3.1.1.tgz", + "integrity": "sha512-MgV6D2dhpD6Hp/uroUoAIvFqA8AuvXEFBC2eepG3WFc1pxTfdk1LEqqkWoWhjz+rytoqrnUUCdf6Lzco3iHkLQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5809,7 +5809,7 @@ "istanbul-reports": "^3.1.7", "magic-string": "^0.30.17", "magicast": "^0.3.5", - "std-env": "^3.8.0", + "std-env": "^3.8.1", "test-exclude": "^7.0.1", "tinyrainbow": "^2.0.0" }, @@ -5817,8 +5817,8 @@ "url": "https://opencollective.com/vitest" }, "peerDependencies": { - "@vitest/browser": "3.0.9", - "vitest": "3.0.9" + "@vitest/browser": "3.1.1", + "vitest": "3.1.1" }, "peerDependenciesMeta": { "@vitest/browser": { @@ -5827,14 +5827,14 @@ } }, "node_modules/@vitest/expect": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.0.9.tgz", - "integrity": "sha512-5eCqRItYgIML7NNVgJj6TVCmdzE7ZVgJhruW0ziSQV4V7PvLkDL1bBkBdcTs/VuIz0IxPb5da1IDSqc1TR9eig==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-3.1.1.tgz", + "integrity": "sha512-q/zjrW9lgynctNbwvFtQkGK9+vvHA5UzVi2V8APrp1C6fG6/MuYYkmlx4FubuqLycCeSdHD5aadWfua/Vr0EUA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "3.0.9", - "@vitest/utils": "3.0.9", + "@vitest/spy": "3.1.1", + "@vitest/utils": "3.1.1", "chai": "^5.2.0", "tinyrainbow": "^2.0.0" }, @@ -5843,13 +5843,13 @@ } }, "node_modules/@vitest/mocker": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.0.9.tgz", - "integrity": "sha512-ryERPIBOnvevAkTq+L1lD+DTFBRcjueL9lOUfXsLfwP92h4e+Heb+PjiqS3/OURWPtywfafK0kj++yDFjWUmrA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-3.1.1.tgz", + "integrity": "sha512-bmpJJm7Y7i9BBELlLuuM1J1Q6EQ6K5Ye4wcyOpOMXMcePYKSIYlpcrCm4l/O6ja4VJA5G2aMJiuZkZdnxlC3SA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/spy": "3.0.9", + "@vitest/spy": "3.1.1", "estree-walker": "^3.0.3", "magic-string": "^0.30.17" }, @@ -5870,9 +5870,9 @@ } }, "node_modules/@vitest/pretty-format": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.0.9.tgz", - "integrity": "sha512-OW9F8t2J3AwFEwENg3yMyKWweF7oRJlMyHOMIhO5F3n0+cgQAJZBjNgrF8dLwFTEXl5jUqBLXd9QyyKv8zEcmA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-3.1.1.tgz", + "integrity": "sha512-dg0CIzNx+hMMYfNmSqJlLSXEmnNhMswcn3sXO7Tpldr0LiGmg3eXdLLhwkv2ZqgHb/d5xg5F7ezNFRA1fA13yA==", "dev": true, "license": "MIT", "dependencies": { @@ -5883,13 +5883,13 @@ } }, "node_modules/@vitest/runner": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.0.9.tgz", - "integrity": "sha512-NX9oUXgF9HPfJSwl8tUZCMP1oGx2+Sf+ru6d05QjzQz4OwWg0psEzwY6VexP2tTHWdOkhKHUIZH+fS6nA7jfOw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-3.1.1.tgz", + "integrity": "sha512-X/d46qzJuEDO8ueyjtKfxffiXraPRfmYasoC4i5+mlLEJ10UvPb0XH5M9C3gWuxd7BAQhpK42cJgJtq53YnWVA==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/utils": "3.0.9", + "@vitest/utils": "3.1.1", "pathe": "^2.0.3" }, "funding": { @@ -5904,13 +5904,13 @@ "license": "MIT" }, "node_modules/@vitest/snapshot": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.0.9.tgz", - "integrity": "sha512-AiLUiuZ0FuA+/8i19mTYd+re5jqjEc2jZbgJ2up0VY0Ddyyxg/uUtBDpIFAy4uzKaQxOW8gMgBdAJJ2ydhu39A==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-3.1.1.tgz", + "integrity": "sha512-bByMwaVWe/+1WDf9exFxWWgAixelSdiwo2p33tpqIlM14vW7PRV5ppayVXtfycqze4Qhtwag5sVhX400MLBOOw==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "3.0.9", + "@vitest/pretty-format": "3.1.1", "magic-string": "^0.30.17", "pathe": "^2.0.3" }, @@ -5926,9 +5926,9 @@ "license": "MIT" }, "node_modules/@vitest/spy": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.0.9.tgz", - "integrity": "sha512-/CcK2UDl0aQ2wtkp3YVWldrpLRNCfVcIOFGlVGKO4R5eajsH393Z1yiXLVQ7vWsj26JOEjeZI0x5sm5P4OGUNQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-3.1.1.tgz", + "integrity": "sha512-+EmrUOOXbKzLkTDwlsc/xrwOlPDXyVk3Z6P6K4oiCndxz7YLpp/0R0UsWVOKT0IXWjjBJuSMk6D27qipaupcvQ==", "dev": true, "license": "MIT", "dependencies": { @@ -5939,13 +5939,13 @@ } }, "node_modules/@vitest/utils": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.0.9.tgz", - "integrity": "sha512-ilHM5fHhZ89MCp5aAaM9uhfl1c2JdxVxl3McqsdVyVNN6JffnEen8UMCdRTzOhGXNQGo5GNL9QugHrz727Wnng==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-3.1.1.tgz", + "integrity": "sha512-1XIjflyaU2k3HMArJ50bwSh3wKWPD6Q47wz/NUSmRV0zNywPc4w79ARjg/i/aNINHwA+mIALhUVqD9/aUvZNgg==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/pretty-format": "3.0.9", + "@vitest/pretty-format": "3.1.1", "loupe": "^3.1.3", "tinyrainbow": "^2.0.0" }, @@ -11002,9 +11002,9 @@ } }, "node_modules/expect-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.1.0.tgz", - "integrity": "sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.1.tgz", + "integrity": "sha512-/kP8CAwxzLVEeFrMm4kMmy4CCDlpipyA7MYLVrdJIkV0fYF0UaigQHRsxHiuY/GEea+bh4KSv3TIlgr+2UL6bw==", "dev": true, "license": "Apache-2.0", "engines": { @@ -19038,9 +19038,9 @@ } }, "node_modules/std-env": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz", - "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.1.tgz", + "integrity": "sha512-vj5lIj3Mwf9D79hBkltk5qmkFI+biIKWS2IBxEyEU3AX1tUf7AoL8nSazCOiiqQsGKIq01SClsKEzweu34uwvA==", "dev": true, "license": "MIT" }, @@ -20884,9 +20884,9 @@ } }, "node_modules/vite-node": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.0.9.tgz", - "integrity": "sha512-w3Gdx7jDcuT9cNn9jExXgOyKmf5UOTb6WMHz8LGAm54eS1Elf5OuBhCxl6zJxGhEeIkgsE1WbHuoL0mj/UXqXg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-3.1.1.tgz", + "integrity": "sha512-V+IxPAE2FvXpTCHXyNem0M+gWm6J7eRyWPR6vYoG/Gl+IscNOjXzztUhimQgTxaAoUoj40Qqimaa0NLIOOAH4w==", "dev": true, "license": "MIT", "dependencies": { @@ -20929,31 +20929,31 @@ } }, "node_modules/vitest": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.0.9.tgz", - "integrity": "sha512-BbcFDqNyBlfSpATmTtXOAOj71RNKDDvjBM/uPfnxxVGrG+FSH2RQIwgeEngTaTkuU/h0ScFvf+tRcKfYXzBybQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-3.1.1.tgz", + "integrity": "sha512-kiZc/IYmKICeBAZr9DQ5rT7/6bD9G7uqQEki4fxazi1jdVl2mWGzedtBs5s6llz59yQhVb7FFY2MbHzHCnT79Q==", "dev": true, "license": "MIT", "dependencies": { - "@vitest/expect": "3.0.9", - "@vitest/mocker": "3.0.9", - "@vitest/pretty-format": "^3.0.9", - "@vitest/runner": "3.0.9", - "@vitest/snapshot": "3.0.9", - "@vitest/spy": "3.0.9", - "@vitest/utils": "3.0.9", + "@vitest/expect": "3.1.1", + "@vitest/mocker": "3.1.1", + "@vitest/pretty-format": "^3.1.1", + "@vitest/runner": "3.1.1", + "@vitest/snapshot": "3.1.1", + "@vitest/spy": "3.1.1", + "@vitest/utils": "3.1.1", "chai": "^5.2.0", "debug": "^4.4.0", - "expect-type": "^1.1.0", + "expect-type": "^1.2.0", "magic-string": "^0.30.17", "pathe": "^2.0.3", - "std-env": "^3.8.0", + "std-env": "^3.8.1", "tinybench": "^2.9.0", "tinyexec": "^0.3.2", "tinypool": "^1.0.2", "tinyrainbow": "^2.0.0", "vite": "^5.0.0 || ^6.0.0", - "vite-node": "3.0.9", + "vite-node": "3.1.1", "why-is-node-running": "^2.3.0" }, "bin": { @@ -20969,8 +20969,8 @@ "@edge-runtime/vm": "*", "@types/debug": "^4.1.12", "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", - "@vitest/browser": "3.0.9", - "@vitest/ui": "3.0.9", + "@vitest/browser": "3.1.1", + "@vitest/ui": "3.1.1", "happy-dom": "*", "jsdom": "*" }, diff --git a/package.json b/package.json index 9035538b5..dc0e79051 100644 --- a/package.json +++ b/package.json @@ -214,7 +214,7 @@ "@types/ws": "8.18.0", "@types/xml2js": "0.4.14", "@types/yargs": "17.0.33", - "@vitest/coverage-v8": "3.0.9", + "@vitest/coverage-v8": "3.1.1", "autoprefixer": "10.4.21", "bootstrap": "5.3.3", "copy-webpack-plugin": "13.0.0", @@ -252,7 +252,7 @@ "typescript": "5.8.2", "typescript-eslint": "8.28.0", "vanilla-js-wheel-zoom": "9.0.4", - "vitest": "3.0.9", + "vitest": "3.1.1", "webpack": "5.98.0", "webpack-cli": "6.0.1", "webpack-dev-middleware": "7.4.2" From a7799d32b0332e9c6d9edde186522cb67d33f3f8 Mon Sep 17 00:00:00 2001 From: SiriusXT <1160925501@qq.com> Date: Tue, 1 Apr 2025 18:47:07 +0800 Subject: [PATCH 12/24] To prevent search lag when there are a large number of notes --- src/public/app/services/note_autocomplete.ts | 49 ++++++++++++++++---- src/routes/api/stats.ts | 11 ++++- src/routes/routes.ts | 1 + 3 files changed, 51 insertions(+), 10 deletions(-) diff --git a/src/public/app/services/note_autocomplete.ts b/src/public/app/services/note_autocomplete.ts index ca9894b1f..e879c87f1 100644 --- a/src/public/app/services/note_autocomplete.ts +++ b/src/public/app/services/note_autocomplete.ts @@ -10,6 +10,18 @@ const SELECTED_NOTE_PATH_KEY = "data-note-path"; const SELECTED_EXTERNAL_LINK_KEY = "data-external-link"; +// To prevent search lag when there are a large number of notes, set a delay based on the number of notes to avoid jitter. +const notesCount = await server.get(`stats/notesCount`); +let debounceTimeoutId: ReturnType; + +function getSearchDelay(notesCount: number): number { + const maxNotes = 20000; + const maxDelay = 1000; + const delay = Math.min(maxDelay, (notesCount / maxNotes) * maxDelay); + return delay; +} +let searchDelay = getSearchDelay(notesCount); + export interface Suggestion { noteTitle?: string; externalLink?: string; @@ -72,10 +84,9 @@ async function autocompleteSource(term: string, cb: (rows: Suggestion[]) => void const activeNoteId = appContext.tabManager.getActiveContextNoteId(); const length = term.trim().length; - let results: Suggestion[] = []; - if (length >= 3) { - results = await server.get(`autocomplete?query=${encodeURIComponent(term)}&activeNoteId=${activeNoteId}&fastSearch=${fastSearch}`); - } + let results = await server.get(`autocomplete?query=${encodeURIComponent(term)}&activeNoteId=${activeNoteId}&fastSearch=${fastSearch}`); + + options.fastSearch = true; if (length >= 1 && options.allowCreatingNotes) { results = [ @@ -112,6 +123,7 @@ async function autocompleteSource(term: string, cb: (rows: Suggestion[]) => void } function clearText($el: JQuery) { + searchDelay = 0; $el.setSelectedNotePath(""); $el.autocomplete("val", "").trigger("change"); } @@ -122,6 +134,7 @@ function setText($el: JQuery, text: string) { } function showRecentNotes($el: JQuery) { + searchDelay = 0; $el.setSelectedNotePath(""); $el.autocomplete("val", ""); $el.autocomplete("open"); @@ -137,11 +150,8 @@ function fullTextSearch($el: JQuery, options: Options) { options.fastSearch = false; $el.autocomplete("val", ""); $el.setSelectedNotePath(""); + searchDelay = 0; $el.autocomplete("val", searchString); - // Set a delay to avoid resetting to true before full text search (await server.get) is called. - setTimeout(() => { - options.fastSearch = true; - }, 100); } function initNoteAutocomplete($el: JQuery, options?: Options) { @@ -154,6 +164,15 @@ function initNoteAutocomplete($el: JQuery, options?: Options) { options = options || {}; + // Used to track whether the user is performing character composition with an input method (such as Chinese Pinyin, Japanese, Korean, etc.) and to avoid triggering a search during the composition process. + let isComposingInput = false; + $el.on("compositionstart", () => { + isComposingInput = true; + }); + $el.on("compositionend", () => { + isComposingInput = false; + }); + $el.addClass("note-autocomplete-input"); const $clearTextButton = $("").addClass("input-group-text input-clearer-button bx bxs-tag-x").prop("title", t("note_autocomplete.clear-text-field")); @@ -226,7 +245,19 @@ function initNoteAutocomplete($el: JQuery, options?: Options) { }, [ { - source: (term, cb) => autocompleteSource(term, cb, options), + source: (term, cb) => { + clearTimeout(debounceTimeoutId); + debounceTimeoutId = setTimeout(() => { + if (isComposingInput) { + return; + } + autocompleteSource(term, cb, options); + }, searchDelay); + + if (searchDelay === 0) { + searchDelay = getSearchDelay(notesCount); + } + }, displayKey: "notePathTitle", templates: { suggestion: (suggestion) => suggestion.highlightedNotePathTitle diff --git a/src/routes/api/stats.ts b/src/routes/api/stats.ts index 15e28f083..8f953bc0b 100644 --- a/src/routes/api/stats.ts +++ b/src/routes/api/stats.ts @@ -48,7 +48,16 @@ function getSubtreeSize(req: Request) { }; } +// Get the total number of notes +function getNotesCount(req: Request) { + const notesCount = sql.getRow( + `SELECT COUNT(*) AS count FROM notes WHERE isDeleted = 0;`, + ) as { count: number }; + return notesCount.count; +} + export default { getNoteSize, - getSubtreeSize + getSubtreeSize, + getNotesCount }; diff --git a/src/routes/routes.ts b/src/routes/routes.ts index abae1acaa..4b09def4f 100644 --- a/src/routes/routes.ts +++ b/src/routes/routes.ts @@ -361,6 +361,7 @@ function register(app: express.Application) { apiRoute(GET, "/api/similar-notes/:noteId", similarNotesRoute.getSimilarNotes); apiRoute(GET, "/api/backend-log", backendLogRoute.getBackendLog); apiRoute(GET, "/api/stats/note-size/:noteId", statsRoute.getNoteSize); + apiRoute(GET, "/api/stats/notesCount", statsRoute.getNotesCount); apiRoute(GET, "/api/stats/subtree-size/:noteId", statsRoute.getSubtreeSize); apiRoute(PST, "/api/delete-notes-preview", notesApiRoute.getDeleteNotesPreview); route(GET, "/api/fonts", [auth.checkApiAuthOrElectron], fontsRoute.getFontCss); From adcb803caafe94aec87495e011436ddfb421366d Mon Sep 17 00:00:00 2001 From: SiriusXT <1160925501@qq.com> Date: Tue, 1 Apr 2025 21:07:15 +0800 Subject: [PATCH 13/24] To prevent search lag when there are a large number of notes --- src/public/app/services/note_autocomplete.ts | 3 ++- src/routes/api/autocomplete.ts | 12 +++++++++++- src/routes/api/stats.ts | 11 +---------- src/routes/routes.ts | 2 +- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/public/app/services/note_autocomplete.ts b/src/public/app/services/note_autocomplete.ts index e879c87f1..c194e257e 100644 --- a/src/public/app/services/note_autocomplete.ts +++ b/src/public/app/services/note_autocomplete.ts @@ -11,7 +11,8 @@ const SELECTED_NOTE_PATH_KEY = "data-note-path"; const SELECTED_EXTERNAL_LINK_KEY = "data-external-link"; // To prevent search lag when there are a large number of notes, set a delay based on the number of notes to avoid jitter. -const notesCount = await server.get(`stats/notesCount`); +const notesCount = await server.get(`autocomplete/notesCount`); +console.log(notesCount); let debounceTimeoutId: ReturnType; function getSearchDelay(notesCount: number): number { diff --git a/src/routes/api/autocomplete.ts b/src/routes/api/autocomplete.ts index a357ca4b3..584c2c88a 100644 --- a/src/routes/api/autocomplete.ts +++ b/src/routes/api/autocomplete.ts @@ -8,6 +8,7 @@ import cls from "../../services/cls.js"; import becca from "../../becca/becca.js"; import type { Request } from "express"; import ValidationError from "../../errors/validation_error.js"; +import sql from "../../services/sql.js"; function getAutocomplete(req: Request) { if (typeof req.query.query !== "string") { @@ -79,6 +80,15 @@ function getRecentNotes(activeNoteId: string) { }); } +// Get the total number of notes +function getNotesCount(req: Request) { + const notesCount = sql.getRow( + `SELECT COUNT(*) AS count FROM notes WHERE isDeleted = 0;`, + ) as { count: number }; + return notesCount.count; +} + export default { - getAutocomplete + getAutocomplete, + getNotesCount }; diff --git a/src/routes/api/stats.ts b/src/routes/api/stats.ts index 8f953bc0b..15e28f083 100644 --- a/src/routes/api/stats.ts +++ b/src/routes/api/stats.ts @@ -48,16 +48,7 @@ function getSubtreeSize(req: Request) { }; } -// Get the total number of notes -function getNotesCount(req: Request) { - const notesCount = sql.getRow( - `SELECT COUNT(*) AS count FROM notes WHERE isDeleted = 0;`, - ) as { count: number }; - return notesCount.count; -} - export default { getNoteSize, - getSubtreeSize, - getNotesCount + getSubtreeSize }; diff --git a/src/routes/routes.ts b/src/routes/routes.ts index 4b09def4f..a08a37c9b 100644 --- a/src/routes/routes.ts +++ b/src/routes/routes.ts @@ -273,6 +273,7 @@ function register(app: express.Application) { route(PST, "/api/setup/sync-seed", [auth.checkAppNotInitialized], setupApiRoute.saveSyncSeed, apiResultHandler, false); apiRoute(GET, "/api/autocomplete", autocompleteApiRoute.getAutocomplete); + apiRoute(GET, "/api/autocomplete/notesCount", autocompleteApiRoute.getNotesCount); apiRoute(GET, "/api/quick-search/:searchString", searchRoute.quickSearch); apiRoute(GET, "/api/search-note/:noteId", searchRoute.searchFromNote); apiRoute(PST, "/api/search-and-execute-note/:noteId", searchRoute.searchAndExecute); @@ -361,7 +362,6 @@ function register(app: express.Application) { apiRoute(GET, "/api/similar-notes/:noteId", similarNotesRoute.getSimilarNotes); apiRoute(GET, "/api/backend-log", backendLogRoute.getBackendLog); apiRoute(GET, "/api/stats/note-size/:noteId", statsRoute.getNoteSize); - apiRoute(GET, "/api/stats/notesCount", statsRoute.getNotesCount); apiRoute(GET, "/api/stats/subtree-size/:noteId", statsRoute.getSubtreeSize); apiRoute(PST, "/api/delete-notes-preview", notesApiRoute.getDeleteNotesPreview); route(GET, "/api/fonts", [auth.checkApiAuthOrElectron], fontsRoute.getFontCss); From a715de6472a2a42fc4808f22e6784a5655c74ac2 Mon Sep 17 00:00:00 2001 From: Panagiotis Papadopoulos Date: Tue, 1 Apr 2025 19:15:25 +0200 Subject: [PATCH 14/24] chore(deps): run npm audit fix goes from 7 vulnerabilities (6 moderate, 1 high) to 5 moderate severity vulnerabilities --- package-lock.json | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/package-lock.json b/package-lock.json index 42cf056de..ec0a0ab3e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17309,15 +17309,6 @@ "node": ">=0.10.0" } }, - "node_modules/raw-body/node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "license": "MIT", - "engines": { - "node": ">=0.6" - } - }, "node_modules/raw-loader": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", @@ -19538,9 +19529,9 @@ } }, "node_modules/tar-fs": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", - "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.2.tgz", + "integrity": "sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==", "license": "MIT", "dependencies": { "chownr": "^1.1.1", @@ -20812,9 +20803,9 @@ } }, "node_modules/vite": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.0.tgz", - "integrity": "sha512-7dPxoo+WsT/64rDcwoOjk76XHj+TqNTIvHKcuMQ1k4/SeHDaQt5GFAeLYzrimZrMpn/O6DtdI03WUjdxuPM0oQ==", + "version": "6.2.4", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.4.tgz", + "integrity": "sha512-veHMSew8CcRzhL5o8ONjy8gkfmFJAd5Ac16oxBUjlwgX3Gq2Wqr+qNC3TjPIpy7TPV/KporLga5GT9HqdrCizw==", "dev": true, "license": "MIT", "dependencies": { From a6206d2bd6bc1c20456cf1c4ae985b3aaa686c0a Mon Sep 17 00:00:00 2001 From: Panagiotis Papadopoulos <102623907+pano9000@users.noreply.github.com> Date: Tue, 1 Apr 2025 18:37:29 +0200 Subject: [PATCH 15/24] fix(electron_context_menu): fix disabled search engine context menu on readonly notes fixes #543 --- src/public/app/menus/electron_context_menu.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/public/app/menus/electron_context_menu.ts b/src/public/app/menus/electron_context_menu.ts index 80c5a7dc2..51415c655 100644 --- a/src/public/app/menus/electron_context_menu.ts +++ b/src/public/app/menus/electron_context_menu.ts @@ -115,7 +115,6 @@ function setupContextMenu() { items.push({ title: "----" }); items.push({ - enabled: editFlags.canPaste, title: t("electron_context_menu.search_online", { term: shortenedSelection, searchEngine: searchEngineName }), uiIcon: "bx bx-search-alt", handler: () => electron.shell.openExternal(searchUrl) From b94bda66708ceb7bbfd4b2627d91f1f003c0011e Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 1 Apr 2025 22:07:59 +0300 Subject: [PATCH 16/24] chore(note_autocomplete): remove logging --- src/public/app/services/note_autocomplete.ts | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/src/public/app/services/note_autocomplete.ts b/src/public/app/services/note_autocomplete.ts index c194e257e..ae2522e18 100644 --- a/src/public/app/services/note_autocomplete.ts +++ b/src/public/app/services/note_autocomplete.ts @@ -1,6 +1,5 @@ import server from "./server.js"; import appContext from "../components/app_context.js"; -import utils from "./utils.js"; import noteCreateService from "./note_create.js"; import froca from "./froca.js"; import { t } from "./i18n.js"; @@ -12,12 +11,11 @@ const SELECTED_EXTERNAL_LINK_KEY = "data-external-link"; // To prevent search lag when there are a large number of notes, set a delay based on the number of notes to avoid jitter. const notesCount = await server.get(`autocomplete/notesCount`); -console.log(notesCount); let debounceTimeoutId: ReturnType; function getSearchDelay(notesCount: number): number { - const maxNotes = 20000; - const maxDelay = 1000; + const maxNotes = 20000; + const maxDelay = 1000; const delay = Math.min(maxDelay, (notesCount / maxNotes) * maxDelay); return delay; } @@ -168,10 +166,10 @@ function initNoteAutocomplete($el: JQuery, options?: Options) { // Used to track whether the user is performing character composition with an input method (such as Chinese Pinyin, Japanese, Korean, etc.) and to avoid triggering a search during the composition process. let isComposingInput = false; $el.on("compositionstart", () => { - isComposingInput = true; + isComposingInput = true; }); $el.on("compositionend", () => { - isComposingInput = false; + isComposingInput = false; }); $el.addClass("note-autocomplete-input"); @@ -253,8 +251,8 @@ function initNoteAutocomplete($el: JQuery, options?: Options) { return; } autocompleteSource(term, cb, options); - }, searchDelay); - + }, searchDelay); + if (searchDelay === 0) { searchDelay = getSearchDelay(notesCount); } From 242706e4acc74b2ad6d025664e251478c703f2fe Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 1 Apr 2025 22:27:29 +0300 Subject: [PATCH 17/24] chore(docs):: remove unnecessary
    s --- db/demo.zip | Bin 911149 -> 905725 bytes demo/root/Trilium Demo/Journal.html | 113 +------------ .../Phone call about work project.html | 110 +----------- .../18 - Monday/Meeting minutes.html | 110 +----------- .../21 - Thursday/Christmas shopping.html | 110 +----------- .../21 - Thursday/Office party.html | 108 +----------- .../Journal/2021/Epics/Christmas.html | 110 +----------- .../Epics/Christmas/Christmas dinner.html | 108 +----------- .../Journal/2021/Epics/Vacation.html | 108 +----------- .../Done/Buy a board game for Alice.html | 120 +------------- .../Done/Get a gym membership.html | 110 +----------- .../Locations/mall/Buy some book for Bob.html | 110 +----------- demo/root/Trilium Demo/Tech.html | 110 +----------- .../root/Trilium Demo/Tech/Linux/History.html | 128 ++------------ demo/root/Trilium Demo/Tech/Linux/Ubuntu.html | 110 +----------- .../root/Trilium Demo/Tech/node.js/Intro.html | 126 +------------- .../Trilium Demo/Tech/node.js/Overview.html | 156 +++--------------- .../Tech/node.js/Overview/History.html | 126 +------------- .../node.js/Overview/Industry support.html | 116 +------------ .../Overview/Platform architecture.html | 125 +------------- .../Trilium Demo/Tech/node.js/Releases.html | 120 +------------- demo/root/Trilium Demo/Work/HR.html | 110 +----------- demo/root/Trilium Demo/Work/Processes.html | 110 +----------- 23 files changed, 91 insertions(+), 2463 deletions(-) diff --git a/db/demo.zip b/db/demo.zip index d13245f7711c9316fa9dc79d3e4ed5986a629bb7..2976eacdae7f3f59f57cfed3870ada480eff8547 100644 GIT binary patch delta 30802 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 AXaE2J delta 36216 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 ou%*+rWgLjP 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 diff --git a/demo/root/Trilium Demo/Journal.html b/demo/root/Trilium Demo/Journal.html index b80ca54e2..faac301b5 100644 --- a/demo/root/Trilium Demo/Journal.html +++ b/demo/root/Trilium Demo/Journal.html @@ -13,117 +13,8 @@

    Journal

    diff --git a/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Phone call about work project.html b/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Phone call about work project.html index 70f27f429..11b751054 100644 --- a/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Phone call about work project.html +++ b/demo/root/Trilium Demo/Journal/2021/11 - November/28 - Tuesday/Phone call about work project.html @@ -13,115 +13,7 @@

    Phone call about work project

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    Bla bla bla ....

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +

    Bla bla bla ...

    diff --git a/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Meeting minutes.html b/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Meeting minutes.html index dc8c41cff..477456a5c 100644 --- a/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Meeting minutes.html +++ b/demo/root/Trilium Demo/Journal/2021/12 - December/18 - Monday/Meeting minutes.html @@ -13,115 +13,7 @@

    Meeting minutes

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    bla bla bla ...

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +

    bla bla bla...

    diff --git a/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday/Christmas shopping.html b/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday/Christmas shopping.html index 99fd86055..3e3e61d8c 100644 --- a/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday/Christmas shopping.html +++ b/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday/Christmas shopping.html @@ -13,115 +13,7 @@

    Christmas shopping

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    Bought a book!

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +

    Bought a book!

    diff --git a/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday/Office party.html b/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday/Office party.html index e4ed0b6ea..f4706849b 100644 --- a/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday/Office party.html +++ b/demo/root/Trilium Demo/Journal/2021/12 - December/21 - Thursday/Office party.html @@ -13,113 +13,7 @@

    Office party

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    That was fun!
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +

    That was fun!

    diff --git a/demo/root/Trilium Demo/Journal/2021/Epics/Christmas.html b/demo/root/Trilium Demo/Journal/2021/Epics/Christmas.html index 08a883e05..6aa070d40 100644 --- a/demo/root/Trilium Demo/Journal/2021/Epics/Christmas.html +++ b/demo/root/Trilium Demo/Journal/2021/Epics/Christmas.html @@ -13,115 +13,7 @@

    Christmas

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    This christmas is going to be awesome!

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +

    This christmas is going to be awesome!

    diff --git a/demo/root/Trilium Demo/Journal/2021/Epics/Christmas/Christmas dinner.html b/demo/root/Trilium Demo/Journal/2021/Epics/Christmas/Christmas dinner.html index d5cfc4948..41af08b44 100644 --- a/demo/root/Trilium Demo/Journal/2021/Epics/Christmas/Christmas dinner.html +++ b/demo/root/Trilium Demo/Journal/2021/Epics/Christmas/Christmas dinner.html @@ -13,113 +13,7 @@

    Christmas dinner

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    Carp of course!
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +

    Carp of course!

    diff --git a/demo/root/Trilium Demo/Journal/2021/Epics/Vacation.html b/demo/root/Trilium Demo/Journal/2021/Epics/Vacation.html index db37a860d..5d82e56d8 100644 --- a/demo/root/Trilium Demo/Journal/2021/Epics/Vacation.html +++ b/demo/root/Trilium Demo/Journal/2021/Epics/Vacation.html @@ -13,113 +13,7 @@

    Vacation

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    Planning stuff etc.
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +

    Planning stuff etc.

    diff --git a/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Buy a board game for Alice.html b/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Buy a board game for Alice.html index c62a21b6c..9cda89645 100644 --- a/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Buy a board game for Alice.html +++ b/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Buy a board game for Alice.html @@ -13,120 +13,12 @@

    Buy a board game for Alice

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +
    + +
    +

    Maybe CodeNames? https://boardgamegeek.com/boardgame/178900/codenames +

    diff --git a/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Get a gym membership.html b/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Get a gym membership.html index f4cafb46c..3591b09b3 100644 --- a/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Get a gym membership.html +++ b/demo/root/Trilium Demo/Scripting examples/Task manager/Done/Get a gym membership.html @@ -13,115 +13,7 @@

    Get a gym membership

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    Just in time for new years resolution!

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +

    Just in time for new years resolution!

    diff --git a/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/mall/Buy some book for Bob.html b/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/mall/Buy some book for Bob.html index fa1cf1d37..dd9db66c9 100644 --- a/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/mall/Buy some book for Bob.html +++ b/demo/root/Trilium Demo/Scripting examples/Task manager/Locations/mall/Buy some book for Bob.html @@ -13,115 +13,7 @@

    Buy some book for Bob

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    Bob likes to read popular science books so something like that…

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +

    Bob likes to read popular science books so something like that…

    diff --git a/demo/root/Trilium Demo/Tech.html b/demo/root/Trilium Demo/Tech.html index f7ae8c4d2..f22ea997a 100644 --- a/demo/root/Trilium Demo/Tech.html +++ b/demo/root/Trilium Demo/Tech.html @@ -13,115 +13,7 @@

    Tech

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    Expand note on the left pane to see content.

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +

    Expand note on the left pane to see content.

    diff --git a/demo/root/Trilium Demo/Tech/Linux/History.html b/demo/root/Trilium Demo/Tech/Linux/History.html index a6ad16b6d..0899d7210 100644 --- a/demo/root/Trilium Demo/Tech/Linux/History.html +++ b/demo/root/Trilium Demo/Tech/Linux/History.html @@ -13,124 +13,16 @@

    History

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    The history of Linux began in 1991 with the commencement - of a personal project by Finnish student - Linus Torvaldsto create a new free operating system kernel. Since - then, the resulting Linux kernel has - been marked by constant growth throughout its history. Since the initial - release of its source code in - 1991, it has grown from a small number of C files - under a license prohibiting commercial distribution to the 4.2.3 version - in 2015 with more than 18 million lines of source code under the GNU General Public License v2.

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +

    The history of Linux began in 1991 with the commencement + of a personal project by Finnish student + Linus Torvaldsto create a new free operating system kernel. Since + then, the resulting Linux kernel has + been marked by constant growth throughout its history. Since the initial + release of its source code in + 1991, it has grown from a small number of C files + under a license prohibiting commercial distribution to the 4.2.3 version + in 2015 with more than 18 million lines of source code under the GNU General Public License v2.

    diff --git a/demo/root/Trilium Demo/Tech/Linux/Ubuntu.html b/demo/root/Trilium Demo/Tech/Linux/Ubuntu.html index dbc5df06a..20f896ddd 100644 --- a/demo/root/Trilium Demo/Tech/Linux/Ubuntu.html +++ b/demo/root/Trilium Demo/Tech/Linux/Ubuntu.html @@ -13,115 +13,7 @@

    Ubuntu

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    Expand note on the left pane to see content.

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +

    Expand note on the left pane to see content.

    diff --git a/demo/root/Trilium Demo/Tech/node.js/Intro.html b/demo/root/Trilium Demo/Tech/node.js/Intro.html index e56faaa11..b66270fea 100644 --- a/demo/root/Trilium Demo/Tech/node.js/Intro.html +++ b/demo/root/Trilium Demo/Tech/node.js/Intro.html @@ -13,123 +13,15 @@

    Intro

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    Node.js is an open-source, - cross-platform, JavaScript - runtime environmentthat executes JavaScript code outside of a browser. - Node.js lets developers use JavaScript to write command line tools and - for server-side scripting—running - scripts server-side to produce dynamic web page content - before the page is sent to the user's web browser. 

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +

    Node.js is an open-source, + cross-platform, JavaScript + runtime environmentthat executes JavaScript code outside of a browser. + Node.js lets developers use JavaScript to write command line tools and + for server-side scripting—running + scripts server-side to produce dynamic web page content + before the page is sent to the user's web browser. 

    diff --git a/demo/root/Trilium Demo/Tech/node.js/Overview.html b/demo/root/Trilium Demo/Tech/node.js/Overview.html index 985c8e2ab..76c20a2ee 100644 --- a/demo/root/Trilium Demo/Tech/node.js/Overview.html +++ b/demo/root/Trilium Demo/Tech/node.js/Overview.html @@ -13,138 +13,30 @@

    Overview

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    Node.js allows the creation of Web servers and - networking tools using JavaScript and - a collection of "modules" that handle various core functionalities.[28] - [31][44] - [45][46] Modules - are provided for file system I/O, - networking (DNS, - HTTP, TCP, - TLS/SSL, or UDP), - binarydata (buffers), cryptography functions, - data streams, and other core functions.[31] - [45][47] Node.js's - modules use an API designed to reduce the complexity of writing server - applications.[31] - [45] -

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +

    Node.js allows the creation of Web servers and + networking tools using JavaScript and + a collection of "modules" that handle various core functionalities.[28] + [31][44] + [45][46] Modules + are provided for file system I/O, + networking (DNS, + HTTP, TCP, + TLS/SSL, or UDP), + binarydata (buffers), cryptography functions, + data streams, and other core functions.[31] + [45][47] Node.js's + modules use an API designed to reduce the complexity of writing server + applications.[31] + [45] +

    diff --git a/demo/root/Trilium Demo/Tech/node.js/Overview/History.html b/demo/root/Trilium Demo/Tech/node.js/Overview/History.html index 60486ff80..5c51f3b41 100644 --- a/demo/root/Trilium Demo/Tech/node.js/Overview/History.html +++ b/demo/root/Trilium Demo/Tech/node.js/Overview/History.html @@ -13,123 +13,15 @@

    History

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    Node.js was written initially by Ryan Dahl in - 2009,[24] about - thirteen years after the introduction of the first server-side JavaScript - environment, Netscape's LiveWire Pro Web.[25] The - initial release supported only Linux and Mac OS X. Its development and - maintenance was led by Dahl and later sponsored by Joyent. - [26] -

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +

    Node.js was written initially by Ryan Dahl in + 2009,[24] about + thirteen years after the introduction of the first server-side JavaScript + environment, Netscape's LiveWire Pro Web.[25] The + initial release supported only Linux and Mac OS X. Its development and + maintenance was led by Dahl and later sponsored by Joyent. + [26] +

    diff --git a/demo/root/Trilium Demo/Tech/node.js/Overview/Industry support.html b/demo/root/Trilium Demo/Tech/node.js/Overview/Industry support.html index 8f91e83ac..66c525f88 100644 --- a/demo/root/Trilium Demo/Tech/node.js/Overview/Industry support.html +++ b/demo/root/Trilium Demo/Tech/node.js/Overview/Industry support.html @@ -13,118 +13,10 @@

    Industry support

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    There are thousands of open-source libraries for Node.js, most of them - hosted on the npm website. - The Node.js developer community has two main mailing lists and the IRC channel - #node.js on freenode

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +

    There are thousands of open-source libraries for Node.js, most of them + hosted on the npm website. + The Node.js developer community has two main mailing lists and the IRC channel + #node.js on freenode

    diff --git a/demo/root/Trilium Demo/Tech/node.js/Overview/Platform architecture.html b/demo/root/Trilium Demo/Tech/node.js/Overview/Platform architecture.html index 0e6215a28..1a977bccc 100644 --- a/demo/root/Trilium Demo/Tech/node.js/Overview/Platform architecture.html +++ b/demo/root/Trilium Demo/Tech/node.js/Overview/Platform architecture.html @@ -13,123 +13,14 @@

    Platform architecture

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    Node.js brings event-driven programming to - web servers, enabling development of fast web servers in JavaScript. - [31]Developers can create scalable servers without using threading, - by using a simplified model of event-driven programming that - uses callbacks to signal the completion of a task.[31] - -

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +

    Node.js brings event-driven programming to + web servers, enabling development of fast web servers in JavaScript. + [31]Developers can create scalable servers without using threading, + by using a simplified model of event-driven programming that + uses callbacks to signal the completion of a task.[31] +

    diff --git a/demo/root/Trilium Demo/Tech/node.js/Releases.html b/demo/root/Trilium Demo/Tech/node.js/Releases.html index 6efda23c2..bfac00b34 100644 --- a/demo/root/Trilium Demo/Tech/node.js/Releases.html +++ b/demo/root/Trilium Demo/Tech/node.js/Releases.html @@ -13,120 +13,12 @@

    Releases

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    New major releases of Node.js are cut from the GitHub master - branch every six months. Even-numbered versions are cut in April and odd-numbered - versions are cut in October. When a new odd version is released, the previous - even version undergoes transition to Long Term Support (LTS), which gives - that version 18 months of active support from the date it is designated - LTS.

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +

    New major releases of Node.js are cut from the GitHub master + branch every six months. Even-numbered versions are cut in April and odd-numbered + versions are cut in October. When a new odd version is released, the previous + even version undergoes transition to Long Term Support (LTS), which gives + that version 18 months of active support from the date it is designated + LTS.

    diff --git a/demo/root/Trilium Demo/Work/HR.html b/demo/root/Trilium Demo/Work/HR.html index b840db79b..20a918aeb 100644 --- a/demo/root/Trilium Demo/Work/HR.html +++ b/demo/root/Trilium Demo/Work/HR.html @@ -13,115 +13,7 @@

    HR

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    HR stuff 

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +

    HR stuff

    diff --git a/demo/root/Trilium Demo/Work/Processes.html b/demo/root/Trilium Demo/Work/Processes.html index cdcade808..5bf20e3f4 100644 --- a/demo/root/Trilium Demo/Work/Processes.html +++ b/demo/root/Trilium Demo/Work/Processes.html @@ -13,115 +13,7 @@

    Processes

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -

    bla bla ...

    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    +

    bla bla...

    From 6aba18887fc8b960f613d15426a689d7bec40e05 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 1 Apr 2025 22:30:37 +0300 Subject: [PATCH 18/24] chore(docs): change icons & expanded branches --- db/demo.zip | Bin 905725 -> 905762 bytes demo/!!!meta.json | 138 ++++++++++++++++++++++++++++++------------- demo/navigation.html | 14 ++--- 3 files changed, 104 insertions(+), 48 deletions(-) diff --git a/db/demo.zip b/db/demo.zip index 2976eacdae7f3f59f57cfed3870ada480eff8547..bbb35239313b23b91696cc38c29e0731a0fe8dad 100644 GIT binary patch delta 17996 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 Zz`?~U!oi{bPbpH#<4{thAv-9@{vQ=dgX#bP diff --git a/demo/!!!meta.json b/demo/!!!meta.json index f28159e36..72a74ff37 100644 --- a/demo/!!!meta.json +++ b/demo/!!!meta.json @@ -154,7 +154,7 @@ "title": "Inbox", "notePosition": 10, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [ @@ -223,7 +223,7 @@ "title": "The Last Question", "notePosition": 20, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [], @@ -275,7 +275,7 @@ "title": "Formatting examples", "notePosition": 20, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "book", "mime": "", "attributes": [], @@ -442,7 +442,7 @@ "title": "Journal", "notePosition": 30, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [ @@ -485,7 +485,7 @@ "title": "2021", "notePosition": 10, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [ @@ -528,7 +528,7 @@ "title": "11 - November", "notePosition": 10, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [ @@ -572,7 +572,7 @@ "title": "28 - Tuesday", "notePosition": 10, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [ @@ -611,7 +611,7 @@ "title": "Phone call about work project", "notePosition": 0, "prefix": null, - "isExpanded": false, + "isExpanded": true, "type": "text", "mime": "text/html", "attributes": [], @@ -682,7 +682,7 @@ "title": "12 - December", "notePosition": 20, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [ @@ -726,7 +726,7 @@ "title": "18 - Monday", "notePosition": 10, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [ @@ -1343,7 +1343,7 @@ "title": "19 - Tuesday", "notePosition": 20, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [ @@ -1493,7 +1493,7 @@ "title": "21 - Thursday", "notePosition": 40, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [ @@ -1586,7 +1586,7 @@ "title": "22 - Friday", "notePosition": 50, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [ @@ -1786,7 +1786,7 @@ "title": "24 - Sunday - Christmas Eve!", "notePosition": 70, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [ @@ -2234,7 +2234,15 @@ "isExpanded": true, "type": "text", "mime": "text/html", - "attributes": [], + "attributes": [ + { + "type": "label", + "name": "iconClass", + "value": "bx bx-desktop", + "isInheritable": false, + "position": 10 + } + ], "format": "html", "dataFileName": "Tech.html", "attachments": [], @@ -2252,10 +2260,18 @@ "title": "Security", "notePosition": 10, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", - "attributes": [], + "attributes": [ + { + "type": "label", + "name": "iconClass", + "value": "bx bx-lock-alt", + "isInheritable": false, + "position": 10 + } + ], "format": "html", "attachments": [], "dirFileName": "Security", @@ -2290,10 +2306,18 @@ "title": "Linux", "notePosition": 20, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", - "attributes": [], + "attributes": [ + { + "type": "label", + "name": "iconClass", + "value": "bx bxl-tux", + "isInheritable": false, + "position": 10 + } + ], "format": "html", "attachments": [], "dirFileName": "Linux", @@ -2400,7 +2424,7 @@ "title": "Ubuntu", "notePosition": 20, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [], @@ -2447,10 +2471,18 @@ "title": "Programming", "notePosition": 30, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", - "attributes": [], + "attributes": [ + { + "type": "label", + "name": "iconClass", + "value": "bx bx-code-alt", + "isInheritable": false, + "position": 10 + } + ], "format": "html", "attachments": [], "dirFileName": "Programming", @@ -2471,7 +2503,15 @@ "isExpanded": false, "type": "text", "mime": "text/html", - "attributes": [], + "attributes": [ + { + "type": "label", + "name": "iconClass", + "value": "bx bxl-java", + "isInheritable": false, + "position": 10 + } + ], "format": "html", "dataFileName": "Java.html", "attachments": [] @@ -2503,15 +2543,23 @@ "HGcABfDS6a51", "B16t4MPcxaAs" ], - "title": "node.js", + "title": "Node.js", "notePosition": 40, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "book", "mime": "text/html", - "attributes": [], + "attributes": [ + { + "type": "label", + "name": "iconClass", + "value": "bx bxl-nodejs", + "isInheritable": false, + "position": 10 + } + ], "attachments": [], - "dirFileName": "node.js", + "dirFileName": "Node.js", "children": [ { "isClone": false, @@ -2547,7 +2595,7 @@ "title": "Overview", "notePosition": 10, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [], @@ -3162,7 +3210,7 @@ "title": "Books", "notePosition": 120, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [ @@ -3224,7 +3272,7 @@ "title": "Book template", "notePosition": 10, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [ @@ -3311,7 +3359,7 @@ "title": "Reviews", "notePosition": 20, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [ @@ -3358,10 +3406,18 @@ "title": "Work", "notePosition": 140, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", - "attributes": [], + "attributes": [ + { + "type": "label", + "name": "iconClass", + "value": "bx bx-briefcase-alt", + "isInheritable": false, + "position": 10 + } + ], "format": "html", "attachments": [], "dirFileName": "Work", @@ -3398,7 +3454,7 @@ "title": "Processes", "notePosition": 10, "prefix": null, - "isExpanded": false, + "isExpanded": true, "type": "text", "mime": "text/html", "attributes": [], @@ -3439,7 +3495,7 @@ "title": "Steel Blue", "notePosition": 150, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "code", "mime": "text/css", "attributes": [ @@ -3550,7 +3606,7 @@ "title": "Scripting examples", "notePosition": 340, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [ @@ -3578,7 +3634,7 @@ "title": "Task manager", "notePosition": 10, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [ @@ -4025,7 +4081,7 @@ "title": "Done", "notePosition": 20, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [ @@ -4281,7 +4337,7 @@ "title": "TODO", "notePosition": 30, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [ @@ -4398,7 +4454,7 @@ "title": "Implementation", "notePosition": 40, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [ @@ -4604,7 +4660,7 @@ "title": "Tags", "notePosition": 50, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [ diff --git a/demo/navigation.html b/demo/navigation.html index ae5e227f8..673f634b5 100644 --- a/demo/navigation.html +++ b/demo/navigation.html @@ -248,23 +248,23 @@ -
  • node.js +
  • Node.js
  • From 3f2945018c3eb02576e9cdaf0ef905a372832f21 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 1 Apr 2025 22:55:20 +0300 Subject: [PATCH 19/24] feat(demo): reorganize, add icons & geo map --- db/demo.zip | Bin 905762 -> 915061 bytes demo/!!!meta.json | 1147 ++++++++++------- demo/navigation.html | 103 +- demo/root/Trilium Demo.html | 13 +- .../Formatting examples/Checkbox lists.html | 12 +- .../Formatting examples/Math.html | 4 +- .../Trilium Demo/Mind map/1_new note.json | 0 demo/root/Trilium Demo/Mind map/new note.json | 1 - .../Mind map/new note/new note.json | 1 - .../Canvas.json} | 0 .../Canvas_canvas-export.svg} | 0 .../Geo Map (The Seven Wonders of .json | 1 + .../Chichén Itzá, Mexico.html | 43 + .../Christ the Redeemer, Brazil.html | 44 + .../Machu Picchu, Peru.html | 40 + .../Petra, Jordan.html | 41 + .../The Colosseum, Rome, Italy.html | 45 + .../The Great Wall of China.html | 42 + .../The Taj Mahal, India.html | 41 + .../Mermaid Diagrams/Bar chart.txt | 0 .../Bar chart_mermaid-export.svg | 0 .../{ => Note Types}/Mermaid Diagrams/C4.txt | 0 .../Mermaid Diagrams/C4_mermaid-export.svg | 0 .../Mermaid Diagrams/Class.txt | 0 .../Mermaid Diagrams/Class_mermaid-export.svg | 0 .../Mermaid Diagrams/Entity Relationship.txt | 0 .../Entity Relationship_mermai.svg | 0 .../Mermaid Diagrams/Flow (ELK).txt | 0 .../Flow (ELK)_mermaid-export.svg | 0 .../Mermaid Diagrams/Flow.txt | 0 .../Mermaid Diagrams/Flow_mermaid-export.svg | 0 .../Mermaid Diagrams/Gantt.txt | 0 .../Mermaid Diagrams/Gantt_mermaid-export.svg | 0 .../{ => Note Types}/Mermaid Diagrams/Git.txt | 0 .../Mermaid Diagrams/Git_mermaid-export.svg | 0 .../Mermaid Diagrams/Journey.txt | 0 .../Journey_mermaid-export.svg | 0 .../Mermaid Diagrams/Mind Map.txt | 0 .../Mind Map_mermaid-export.svg | 0 .../{ => Note Types}/Mermaid Diagrams/Pie.txt | 0 .../Mermaid Diagrams/Pie_mermaid-export.svg | 0 .../Mermaid Diagrams/Sequence.txt | 0 .../Sequence_mermaid-export.svg | 0 .../Mermaid Diagrams/State.txt | 0 .../Mermaid Diagrams/State_mermaid-export.svg | 0 .../Mind Map.json} | 0 .../Mind Map_mindmap-export.svg} | 0 47 files changed, 1080 insertions(+), 498 deletions(-) delete mode 100644 demo/root/Trilium Demo/Mind map/1_new note.json delete mode 100644 demo/root/Trilium Demo/Mind map/new note.json delete mode 100644 demo/root/Trilium Demo/Mind map/new note/new note.json rename demo/root/Trilium Demo/{Canvas note.json => Note Types/Canvas.json} (100%) rename demo/root/Trilium Demo/{Canvas note_canvas-export.svg => Note Types/Canvas_canvas-export.svg} (100%) create mode 100644 demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of .json create mode 100644 demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Chichén Itzá, Mexico.html create mode 100644 demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Christ the Redeemer, Brazil.html create mode 100644 demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Machu Picchu, Peru.html create mode 100644 demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Petra, Jordan.html create mode 100644 demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Colosseum, Rome, Italy.html create mode 100644 demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Great Wall of China.html create mode 100644 demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Taj Mahal, India.html rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/Bar chart.txt (100%) rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/Bar chart_mermaid-export.svg (100%) rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/C4.txt (100%) rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/C4_mermaid-export.svg (100%) rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/Class.txt (100%) rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/Class_mermaid-export.svg (100%) rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/Entity Relationship.txt (100%) rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/Entity Relationship_mermai.svg (100%) rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/Flow (ELK).txt (100%) rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/Flow (ELK)_mermaid-export.svg (100%) rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/Flow.txt (100%) rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/Flow_mermaid-export.svg (100%) rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/Gantt.txt (100%) rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/Gantt_mermaid-export.svg (100%) rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/Git.txt (100%) rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/Git_mermaid-export.svg (100%) rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/Journey.txt (100%) rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/Journey_mermaid-export.svg (100%) rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/Mind Map.txt (100%) rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/Mind Map_mermaid-export.svg (100%) rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/Pie.txt (100%) rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/Pie_mermaid-export.svg (100%) rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/Sequence.txt (100%) rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/Sequence_mermaid-export.svg (100%) rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/State.txt (100%) rename demo/root/Trilium Demo/{ => Note Types}/Mermaid Diagrams/State_mermaid-export.svg (100%) rename demo/root/Trilium Demo/{Mind map.json => Note Types/Mind Map.json} (100%) rename demo/root/Trilium Demo/{Mind map_mindmap-export.svg => Note Types/Mind Map_mindmap-export.svg} (100%) diff --git a/db/demo.zip b/db/demo.zip index bbb35239313b23b91696cc38c29e0731a0fe8dad..74d4e8c324b8d4dd5147145b470ad697be99d83d 100644 GIT binary patch delta 33519 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 diff --git a/demo/!!!meta.json b/demo/!!!meta.json index 72a74ff37..f3d4a363e 100644 --- a/demo/!!!meta.json +++ b/demo/!!!meta.json @@ -114,13 +114,6 @@ "isInheritable": false, "position": 50 }, - { - "type": "relation", - "name": "includeNoteLink", - "value": "CN3CCLggUqf4", - "isInheritable": false, - "position": 60 - }, { "type": "label", "name": "iconClass", @@ -2026,7 +2019,7 @@ "title": "Epics", "notePosition": 30, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [], @@ -2049,7 +2042,7 @@ "title": "Christmas", "notePosition": 0, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [], @@ -2119,7 +2112,7 @@ "title": "Shopping", "notePosition": 20, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [], @@ -2231,7 +2224,7 @@ "title": "Tech", "notePosition": 40, "prefix": null, - "isExpanded": true, + "isExpanded": false, "type": "text", "mime": "text/html", "attributes": [ @@ -2699,501 +2692,779 @@ }, { "isClone": false, - "noteId": "P1OnNHRhFn9u", + "noteId": "k7rcoITZRsi6", "notePath": [ "root", "Fb7eMY46lT6k", - "P1OnNHRhFn9u" + "k7rcoITZRsi6" ], - "title": "Canvas note", + "title": "Note Types", "notePosition": 60, "prefix": null, "isExpanded": true, - "type": "canvas", - "mime": "application/json", - "attributes": [], - "dataFileName": "Canvas note.json", - "attachments": [ + "type": "text", + "mime": "text/html", + "attributes": [ { - "attachmentId": "LrYmWTdvBYpX", - "title": "canvas-export.svg", - "role": "image", - "mime": "image/svg+xml", - "position": 0, - "dataFileName": "Canvas note_canvas-export.svg" - } - ] - }, - { - "isClone": false, - "noteId": "CN3CCLggUqf4", - "notePath": [ - "root", - "Fb7eMY46lT6k", - "CN3CCLggUqf4" - ], - "title": "Mind map", - "notePosition": 70, - "prefix": null, - "isExpanded": false, - "type": "mindMap", - "mime": "application/json", - "attributes": [], - "dataFileName": "Mind map.json", - "attachments": [ - { - "attachmentId": "xKxyCN02w5d2", - "title": "mindmap-export.svg", - "role": "image", - "mime": "image/svg+xml", - "position": 0, - "dataFileName": "Mind map_mindmap-export.svg" + "type": "label", + "name": "iconClass", + "value": "bx bx-file", + "isInheritable": false, + "position": 10 } ], - "dirFileName": "Mind map", + "format": "html", + "attachments": [], + "dirFileName": "Note Types", "children": [ { "isClone": false, - "noteId": "cLIqMYiMy7v9", + "noteId": "P1OnNHRhFn9u", "notePath": [ "root", "Fb7eMY46lT6k", - "CN3CCLggUqf4", - "cLIqMYiMy7v9" + "k7rcoITZRsi6", + "P1OnNHRhFn9u" ], - "title": "new note", + "title": "Canvas", "notePosition": 10, "prefix": null, - "isExpanded": false, - "type": "mindMap", + "isExpanded": true, + "type": "canvas", "mime": "application/json", "attributes": [], - "dataFileName": "new note.json", + "dataFileName": "Canvas.json", + "attachments": [ + { + "attachmentId": "LrYmWTdvBYpX", + "title": "canvas-export.svg", + "role": "image", + "mime": "image/svg+xml", + "position": 0, + "dataFileName": "Canvas_canvas-export.svg" + } + ] + }, + { + "isClone": false, + "noteId": "lZlMer9EkwF8", + "notePath": [ + "root", + "Fb7eMY46lT6k", + "k7rcoITZRsi6", + "lZlMer9EkwF8" + ], + "title": "Mermaid Diagrams", + "notePosition": 20, + "prefix": null, + "isExpanded": false, + "type": "book", + "mime": "", + "attributes": [ + { + "type": "label", + "name": "iconClass", + "value": "bx bx-selection", + "isInheritable": false, + "position": 10 + } + ], "attachments": [], - "dirFileName": "new note", + "dirFileName": "Mermaid Diagrams", "children": [ { "isClone": false, - "noteId": "nyo567lPZRFc", + "noteId": "DALQSU4fng4F", "notePath": [ "root", "Fb7eMY46lT6k", - "CN3CCLggUqf4", - "cLIqMYiMy7v9", - "nyo567lPZRFc" + "k7rcoITZRsi6", + "lZlMer9EkwF8", + "DALQSU4fng4F" ], - "title": "new note", + "title": "Flow", "notePosition": 10, "prefix": null, "isExpanded": false, - "type": "mindMap", - "mime": "application/json", + "type": "mermaid", + "mime": "text/mermaid", "attributes": [], - "dataFileName": "new note.json", - "attachments": [] + "dataFileName": "Flow.txt", + "attachments": [ + { + "attachmentId": "6u2TW8zweuBN", + "title": "mermaid-export.svg", + "role": "image", + "mime": "image/svg+xml", + "position": 10, + "dataFileName": "Flow_mermaid-export.svg" + } + ] + }, + { + "isClone": false, + "noteId": "g7rjYwoleBlR", + "notePath": [ + "root", + "Fb7eMY46lT6k", + "k7rcoITZRsi6", + "lZlMer9EkwF8", + "g7rjYwoleBlR" + ], + "title": "Flow (ELK)", + "notePosition": 11, + "prefix": null, + "isExpanded": false, + "type": "mermaid", + "mime": "text/mermaid", + "attributes": [], + "dataFileName": "Flow (ELK).txt", + "attachments": [ + { + "attachmentId": "9TKNS3IHYYQq", + "title": "mermaid-export.svg", + "role": "image", + "mime": "image/svg+xml", + "position": 10, + "dataFileName": "Flow (ELK)_mermaid-export.svg" + } + ] + }, + { + "isClone": false, + "noteId": "t73XNJNTTwQp", + "notePath": [ + "root", + "Fb7eMY46lT6k", + "k7rcoITZRsi6", + "lZlMer9EkwF8", + "t73XNJNTTwQp" + ], + "title": "Sequence", + "notePosition": 20, + "prefix": null, + "isExpanded": false, + "type": "mermaid", + "mime": "text/mermaid", + "attributes": [], + "dataFileName": "Sequence.txt", + "attachments": [ + { + "attachmentId": "XfWi1TqleVbL", + "title": "mermaid-export.svg", + "role": "image", + "mime": "image/svg+xml", + "position": 10, + "dataFileName": "Sequence_mermaid-export.svg" + } + ] + }, + { + "isClone": false, + "noteId": "6wdYxWSVuXof", + "notePath": [ + "root", + "Fb7eMY46lT6k", + "k7rcoITZRsi6", + "lZlMer9EkwF8", + "6wdYxWSVuXof" + ], + "title": "Gantt", + "notePosition": 30, + "prefix": null, + "isExpanded": false, + "type": "mermaid", + "mime": "text/plain", + "attributes": [], + "dataFileName": "Gantt.txt", + "attachments": [ + { + "attachmentId": "zCjOBL5UP9ii", + "title": "mermaid-export.svg", + "role": "image", + "mime": "image/svg+xml", + "position": 10, + "dataFileName": "Gantt_mermaid-export.svg" + } + ] + }, + { + "isClone": false, + "noteId": "WKL3yssKyoth", + "notePath": [ + "root", + "Fb7eMY46lT6k", + "k7rcoITZRsi6", + "lZlMer9EkwF8", + "WKL3yssKyoth" + ], + "title": "Class", + "notePosition": 40, + "prefix": null, + "isExpanded": false, + "type": "mermaid", + "mime": "text/plain", + "attributes": [], + "dataFileName": "Class.txt", + "attachments": [ + { + "attachmentId": "sRADq0QJpaYr", + "title": "mermaid-export.svg", + "role": "image", + "mime": "image/svg+xml", + "position": 10, + "dataFileName": "Class_mermaid-export.svg" + } + ] + }, + { + "isClone": false, + "noteId": "v9TM7cCXBILP", + "notePath": [ + "root", + "Fb7eMY46lT6k", + "k7rcoITZRsi6", + "lZlMer9EkwF8", + "v9TM7cCXBILP" + ], + "title": "State", + "notePosition": 50, + "prefix": null, + "isExpanded": false, + "type": "mermaid", + "mime": "text/plain", + "attributes": [], + "dataFileName": "State.txt", + "attachments": [ + { + "attachmentId": "NhPv2lQln1g4", + "title": "mermaid-export.svg", + "role": "image", + "mime": "image/svg+xml", + "position": 10, + "dataFileName": "State_mermaid-export.svg" + } + ] + }, + { + "isClone": false, + "noteId": "1EDhd9QJyulq", + "notePath": [ + "root", + "Fb7eMY46lT6k", + "k7rcoITZRsi6", + "lZlMer9EkwF8", + "1EDhd9QJyulq" + ], + "title": "Mind Map", + "notePosition": 60, + "prefix": null, + "isExpanded": false, + "type": "mermaid", + "mime": "text/mermaid", + "attributes": [], + "dataFileName": "Mind Map.txt", + "attachments": [ + { + "attachmentId": "Q8EircLk65HH", + "title": "mermaid-export.svg", + "role": "image", + "mime": "image/svg+xml", + "position": 10, + "dataFileName": "Mind Map_mermaid-export.svg" + } + ] + }, + { + "isClone": false, + "noteId": "n32hpxSA2fP8", + "notePath": [ + "root", + "Fb7eMY46lT6k", + "k7rcoITZRsi6", + "lZlMer9EkwF8", + "n32hpxSA2fP8" + ], + "title": "Pie", + "notePosition": 70, + "prefix": null, + "isExpanded": false, + "type": "mermaid", + "mime": "text/plain", + "attributes": [], + "dataFileName": "Pie.txt", + "attachments": [ + { + "attachmentId": "6xhRWdFidyIg", + "title": "mermaid-export.svg", + "role": "image", + "mime": "image/svg+xml", + "position": 10, + "dataFileName": "Pie_mermaid-export.svg" + } + ] + }, + { + "isClone": false, + "noteId": "T0QEYaEv7PmE", + "notePath": [ + "root", + "Fb7eMY46lT6k", + "k7rcoITZRsi6", + "lZlMer9EkwF8", + "T0QEYaEv7PmE" + ], + "title": "Journey", + "notePosition": 80, + "prefix": null, + "isExpanded": false, + "type": "mermaid", + "mime": "text/plain", + "attributes": [], + "dataFileName": "Journey.txt", + "attachments": [ + { + "attachmentId": "sxLqDNmjlbK4", + "title": "mermaid-export.svg", + "role": "image", + "mime": "image/svg+xml", + "position": 10, + "dataFileName": "Journey_mermaid-export.svg" + } + ] + }, + { + "isClone": false, + "noteId": "P9QvwWzLZnXJ", + "notePath": [ + "root", + "Fb7eMY46lT6k", + "k7rcoITZRsi6", + "lZlMer9EkwF8", + "P9QvwWzLZnXJ" + ], + "title": "Git", + "notePosition": 90, + "prefix": null, + "isExpanded": false, + "type": "mermaid", + "mime": "text/plain", + "attributes": [], + "dataFileName": "Git.txt", + "attachments": [ + { + "attachmentId": "tIoCBIaY50Jm", + "title": "mermaid-export.svg", + "role": "image", + "mime": "image/svg+xml", + "position": 10, + "dataFileName": "Git_mermaid-export.svg" + } + ] + }, + { + "isClone": false, + "noteId": "19O4nsY7dkPt", + "notePath": [ + "root", + "Fb7eMY46lT6k", + "k7rcoITZRsi6", + "lZlMer9EkwF8", + "19O4nsY7dkPt" + ], + "title": "Entity Relationship", + "notePosition": 100, + "prefix": null, + "isExpanded": false, + "type": "mermaid", + "mime": "text/plain", + "attributes": [], + "dataFileName": "Entity Relationship.txt", + "attachments": [ + { + "attachmentId": "AyKZhKQIE5w9", + "title": "mermaid-export.svg", + "role": "image", + "mime": "image/svg+xml", + "position": 10, + "dataFileName": "Entity Relationship_mermai.svg" + } + ] + }, + { + "isClone": false, + "noteId": "2izpY6SPbmhp", + "notePath": [ + "root", + "Fb7eMY46lT6k", + "k7rcoITZRsi6", + "lZlMer9EkwF8", + "2izpY6SPbmhp" + ], + "title": "Bar chart", + "notePosition": 110, + "prefix": null, + "isExpanded": false, + "type": "mermaid", + "mime": "text/mermaid", + "attributes": [], + "dataFileName": "Bar chart.txt", + "attachments": [ + { + "attachmentId": "r1wMURlU52l8", + "title": "mermaid-export.svg", + "role": "image", + "mime": "image/svg+xml", + "position": 10, + "dataFileName": "Bar chart_mermaid-export.svg" + } + ] + }, + { + "isClone": false, + "noteId": "hwx0dffwqIGg", + "notePath": [ + "root", + "Fb7eMY46lT6k", + "k7rcoITZRsi6", + "lZlMer9EkwF8", + "hwx0dffwqIGg" + ], + "title": "C4", + "notePosition": 120, + "prefix": null, + "isExpanded": false, + "type": "mermaid", + "mime": "text/plain", + "attributes": [], + "dataFileName": "C4.txt", + "attachments": [ + { + "attachmentId": "6v2qO6zsygVC", + "title": "mermaid-export.svg", + "role": "image", + "mime": "image/svg+xml", + "position": 10, + "dataFileName": "C4_mermaid-export.svg" + } + ] } ] }, { "isClone": false, - "noteId": "0k0PGp04a9AN", + "noteId": "CN3CCLggUqf4", "notePath": [ "root", "Fb7eMY46lT6k", - "CN3CCLggUqf4", - "0k0PGp04a9AN" + "k7rcoITZRsi6", + "CN3CCLggUqf4" ], - "title": "new note", - "notePosition": 20, + "title": "Mind Map", + "notePosition": 30, "prefix": null, - "isExpanded": false, + "isExpanded": true, "type": "mindMap", "mime": "application/json", "attributes": [], - "dataFileName": "1_new note.json", - "attachments": [] - } - ] - }, - { - "isClone": false, - "noteId": "lZlMer9EkwF8", - "notePath": [ - "root", - "Fb7eMY46lT6k", - "lZlMer9EkwF8" - ], - "title": "Mermaid Diagrams", - "notePosition": 90, - "prefix": null, - "isExpanded": false, - "type": "book", - "mime": "", - "attributes": [], - "attachments": [], - "dirFileName": "Mermaid Diagrams", - "children": [ - { - "isClone": false, - "noteId": "DALQSU4fng4F", - "notePath": [ - "root", - "Fb7eMY46lT6k", - "lZlMer9EkwF8", - "DALQSU4fng4F" - ], - "title": "Flow", - "notePosition": 10, - "prefix": null, - "isExpanded": false, - "type": "mermaid", - "mime": "text/mermaid", - "attributes": [], - "dataFileName": "Flow.txt", + "dataFileName": "Mind Map.json", "attachments": [ { - "attachmentId": "6u2TW8zweuBN", - "title": "mermaid-export.svg", + "attachmentId": "xKxyCN02w5d2", + "title": "mindmap-export.svg", "role": "image", "mime": "image/svg+xml", - "position": 10, - "dataFileName": "Flow_mermaid-export.svg" + "position": 0, + "dataFileName": "Mind Map_mindmap-export.svg" } ] }, { "isClone": false, - "noteId": "g7rjYwoleBlR", + "noteId": "OdCVNGzsvWuv", "notePath": [ "root", "Fb7eMY46lT6k", - "lZlMer9EkwF8", - "g7rjYwoleBlR" + "k7rcoITZRsi6", + "OdCVNGzsvWuv" ], - "title": "Flow (ELK)", - "notePosition": 11, - "prefix": null, - "isExpanded": false, - "type": "mermaid", - "mime": "text/mermaid", - "attributes": [], - "dataFileName": "Flow (ELK).txt", - "attachments": [ - { - "attachmentId": "9TKNS3IHYYQq", - "title": "mermaid-export.svg", - "role": "image", - "mime": "image/svg+xml", - "position": 10, - "dataFileName": "Flow (ELK)_mermaid-export.svg" - } - ] - }, - { - "isClone": false, - "noteId": "t73XNJNTTwQp", - "notePath": [ - "root", - "Fb7eMY46lT6k", - "lZlMer9EkwF8", - "t73XNJNTTwQp" - ], - "title": "Sequence", - "notePosition": 20, - "prefix": null, - "isExpanded": false, - "type": "mermaid", - "mime": "text/mermaid", - "attributes": [], - "dataFileName": "Sequence.txt", - "attachments": [ - { - "attachmentId": "XfWi1TqleVbL", - "title": "mermaid-export.svg", - "role": "image", - "mime": "image/svg+xml", - "position": 10, - "dataFileName": "Sequence_mermaid-export.svg" - } - ] - }, - { - "isClone": false, - "noteId": "6wdYxWSVuXof", - "notePath": [ - "root", - "Fb7eMY46lT6k", - "lZlMer9EkwF8", - "6wdYxWSVuXof" - ], - "title": "Gantt", - "notePosition": 30, - "prefix": null, - "isExpanded": false, - "type": "mermaid", - "mime": "text/plain", - "attributes": [], - "dataFileName": "Gantt.txt", - "attachments": [ - { - "attachmentId": "zCjOBL5UP9ii", - "title": "mermaid-export.svg", - "role": "image", - "mime": "image/svg+xml", - "position": 10, - "dataFileName": "Gantt_mermaid-export.svg" - } - ] - }, - { - "isClone": false, - "noteId": "WKL3yssKyoth", - "notePath": [ - "root", - "Fb7eMY46lT6k", - "lZlMer9EkwF8", - "WKL3yssKyoth" - ], - "title": "Class", + "title": "Geo Map (The Seven Wonders of the World)", "notePosition": 40, "prefix": null, "isExpanded": false, - "type": "mermaid", - "mime": "text/plain", - "attributes": [], - "dataFileName": "Class.txt", - "attachments": [ + "type": "geoMap", + "mime": "application/json", + "attributes": [ { - "attachmentId": "sRADq0QJpaYr", - "title": "mermaid-export.svg", - "role": "image", - "mime": "image/svg+xml", - "position": 10, - "dataFileName": "Class_mermaid-export.svg" + "type": "label", + "name": "label:geolocation", + "value": "promoted,alias=Geolocation,single,text", + "isInheritable": true, + "position": 10 + }, + { + "type": "label", + "name": "hidePromotedAttributes", + "value": "", + "isInheritable": false, + "position": 20 } - ] - }, - { - "isClone": false, - "noteId": "v9TM7cCXBILP", - "notePath": [ - "root", - "Fb7eMY46lT6k", - "lZlMer9EkwF8", - "v9TM7cCXBILP" ], - "title": "State", - "notePosition": 50, - "prefix": null, - "isExpanded": false, - "type": "mermaid", - "mime": "text/plain", - "attributes": [], - "dataFileName": "State.txt", - "attachments": [ + "dataFileName": "Geo Map (The Seven Wonders of .json", + "attachments": [], + "dirFileName": "Geo Map (The Seven Wonders of the World)", + "children": [ { - "attachmentId": "NhPv2lQln1g4", - "title": "mermaid-export.svg", - "role": "image", - "mime": "image/svg+xml", - "position": 10, - "dataFileName": "State_mermaid-export.svg" - } - ] - }, - { - "isClone": false, - "noteId": "1EDhd9QJyulq", - "notePath": [ - "root", - "Fb7eMY46lT6k", - "lZlMer9EkwF8", - "1EDhd9QJyulq" - ], - "title": "Mind Map", - "notePosition": 60, - "prefix": null, - "isExpanded": false, - "type": "mermaid", - "mime": "text/mermaid", - "attributes": [], - "dataFileName": "Mind Map.txt", - "attachments": [ + "isClone": false, + "noteId": "IdHyf4rlLmlO", + "notePath": [ + "root", + "Fb7eMY46lT6k", + "k7rcoITZRsi6", + "OdCVNGzsvWuv", + "IdHyf4rlLmlO" + ], + "title": "The Colosseum, Rome, Italy", + "notePosition": 10, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "label", + "name": "geolocation", + "value": "41.89024211851462, 12.492263083403595", + "isInheritable": false, + "position": 20 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bx-circle", + "isInheritable": false, + "position": 30 + } + ], + "format": "html", + "dataFileName": "The Colosseum, Rome, Italy.html", + "attachments": [] + }, { - "attachmentId": "Q8EircLk65HH", - "title": "mermaid-export.svg", - "role": "image", - "mime": "image/svg+xml", - "position": 10, - "dataFileName": "Mind Map_mermaid-export.svg" - } - ] - }, - { - "isClone": false, - "noteId": "n32hpxSA2fP8", - "notePath": [ - "root", - "Fb7eMY46lT6k", - "lZlMer9EkwF8", - "n32hpxSA2fP8" - ], - "title": "Pie", - "notePosition": 70, - "prefix": null, - "isExpanded": false, - "type": "mermaid", - "mime": "text/plain", - "attributes": [], - "dataFileName": "Pie.txt", - "attachments": [ + "isClone": false, + "noteId": "Wyp6vjVo0vuV", + "notePath": [ + "root", + "Fb7eMY46lT6k", + "k7rcoITZRsi6", + "OdCVNGzsvWuv", + "Wyp6vjVo0vuV" + ], + "title": "The Great Wall of China", + "notePosition": 20, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "label", + "name": "geolocation", + "value": "40.431907671437244, 116.57035343915216", + "isInheritable": false, + "position": 20 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bx-selection", + "isInheritable": false, + "position": 30 + } + ], + "format": "html", + "dataFileName": "The Great Wall of China.html", + "attachments": [] + }, { - "attachmentId": "6xhRWdFidyIg", - "title": "mermaid-export.svg", - "role": "image", - "mime": "image/svg+xml", - "position": 10, - "dataFileName": "Pie_mermaid-export.svg" - } - ] - }, - { - "isClone": false, - "noteId": "T0QEYaEv7PmE", - "notePath": [ - "root", - "Fb7eMY46lT6k", - "lZlMer9EkwF8", - "T0QEYaEv7PmE" - ], - "title": "Journey", - "notePosition": 80, - "prefix": null, - "isExpanded": false, - "type": "mermaid", - "mime": "text/plain", - "attributes": [], - "dataFileName": "Journey.txt", - "attachments": [ + "isClone": false, + "noteId": "VsO5E97Y2mPy", + "notePath": [ + "root", + "Fb7eMY46lT6k", + "k7rcoITZRsi6", + "OdCVNGzsvWuv", + "VsO5E97Y2mPy" + ], + "title": "The Taj Mahal, India", + "notePosition": 30, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "label", + "name": "geolocation", + "value": "27.175173410074475, 78.04213146744753", + "isInheritable": false, + "position": 20 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bx-arch", + "isInheritable": false, + "position": 30 + } + ], + "format": "html", + "dataFileName": "The Taj Mahal, India.html", + "attachments": [] + }, { - "attachmentId": "sxLqDNmjlbK4", - "title": "mermaid-export.svg", - "role": "image", - "mime": "image/svg+xml", - "position": 10, - "dataFileName": "Journey_mermaid-export.svg" - } - ] - }, - { - "isClone": false, - "noteId": "P9QvwWzLZnXJ", - "notePath": [ - "root", - "Fb7eMY46lT6k", - "lZlMer9EkwF8", - "P9QvwWzLZnXJ" - ], - "title": "Git", - "notePosition": 90, - "prefix": null, - "isExpanded": false, - "type": "mermaid", - "mime": "text/plain", - "attributes": [], - "dataFileName": "Git.txt", - "attachments": [ + "isClone": false, + "noteId": "8nRYOMoDdWs3", + "notePath": [ + "root", + "Fb7eMY46lT6k", + "k7rcoITZRsi6", + "OdCVNGzsvWuv", + "8nRYOMoDdWs3" + ], + "title": "Christ the Redeemer, Brazil", + "notePosition": 40, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "label", + "name": "geolocation", + "value": "-22.951993968508837, -43.21044464113274", + "isInheritable": false, + "position": 20 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bx-church", + "isInheritable": false, + "position": 30 + } + ], + "format": "html", + "dataFileName": "Christ the Redeemer, Brazil.html", + "attachments": [] + }, { - "attachmentId": "tIoCBIaY50Jm", - "title": "mermaid-export.svg", - "role": "image", - "mime": "image/svg+xml", - "position": 10, - "dataFileName": "Git_mermaid-export.svg" - } - ] - }, - { - "isClone": false, - "noteId": "19O4nsY7dkPt", - "notePath": [ - "root", - "Fb7eMY46lT6k", - "lZlMer9EkwF8", - "19O4nsY7dkPt" - ], - "title": "Entity Relationship", - "notePosition": 100, - "prefix": null, - "isExpanded": false, - "type": "mermaid", - "mime": "text/plain", - "attributes": [], - "dataFileName": "Entity Relationship.txt", - "attachments": [ + "isClone": false, + "noteId": "nZxMTxkP8AQ4", + "notePath": [ + "root", + "Fb7eMY46lT6k", + "k7rcoITZRsi6", + "OdCVNGzsvWuv", + "nZxMTxkP8AQ4" + ], + "title": "Machu Picchu, Peru", + "notePosition": 50, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "label", + "name": "geolocation", + "value": "-13.163198787170078, -72.54528356174288", + "isInheritable": false, + "position": 20 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bxs-castle", + "isInheritable": false, + "position": 30 + } + ], + "format": "html", + "dataFileName": "Machu Picchu, Peru.html", + "attachments": [] + }, { - "attachmentId": "AyKZhKQIE5w9", - "title": "mermaid-export.svg", - "role": "image", - "mime": "image/svg+xml", - "position": 10, - "dataFileName": "Entity Relationship_mermai.svg" - } - ] - }, - { - "isClone": false, - "noteId": "2izpY6SPbmhp", - "notePath": [ - "root", - "Fb7eMY46lT6k", - "lZlMer9EkwF8", - "2izpY6SPbmhp" - ], - "title": "Bar chart", - "notePosition": 110, - "prefix": null, - "isExpanded": false, - "type": "mermaid", - "mime": "text/mermaid", - "attributes": [], - "dataFileName": "Bar chart.txt", - "attachments": [ + "isClone": false, + "noteId": "DtMcvaYKen9C", + "notePath": [ + "root", + "Fb7eMY46lT6k", + "k7rcoITZRsi6", + "OdCVNGzsvWuv", + "DtMcvaYKen9C" + ], + "title": "Chichén Itzá, Mexico", + "notePosition": 60, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "label", + "name": "geolocation", + "value": "20.678882007143176, -88.56836961554815", + "isInheritable": false, + "position": 20 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bxs-component", + "isInheritable": false, + "position": 30 + } + ], + "format": "html", + "dataFileName": "Chichén Itzá, Mexico.html", + "attachments": [] + }, { - "attachmentId": "r1wMURlU52l8", - "title": "mermaid-export.svg", - "role": "image", - "mime": "image/svg+xml", - "position": 10, - "dataFileName": "Bar chart_mermaid-export.svg" - } - ] - }, - { - "isClone": false, - "noteId": "hwx0dffwqIGg", - "notePath": [ - "root", - "Fb7eMY46lT6k", - "lZlMer9EkwF8", - "hwx0dffwqIGg" - ], - "title": "C4", - "notePosition": 120, - "prefix": null, - "isExpanded": false, - "type": "mermaid", - "mime": "text/plain", - "attributes": [], - "dataFileName": "C4.txt", - "attachments": [ - { - "attachmentId": "6v2qO6zsygVC", - "title": "mermaid-export.svg", - "role": "image", - "mime": "image/svg+xml", - "position": 10, - "dataFileName": "C4_mermaid-export.svg" + "isClone": false, + "noteId": "ZkR3GvsSQ0Xe", + "notePath": [ + "root", + "Fb7eMY46lT6k", + "k7rcoITZRsi6", + "OdCVNGzsvWuv", + "ZkR3GvsSQ0Xe" + ], + "title": "Petra, Jordan", + "notePosition": 70, + "prefix": null, + "isExpanded": false, + "type": "text", + "mime": "text/html", + "attributes": [ + { + "type": "label", + "name": "geolocation", + "value": "30.32084750671952, 35.481009100454926", + "isInheritable": false, + "position": 20 + }, + { + "type": "label", + "name": "iconClass", + "value": "bx bxs-castle", + "isInheritable": false, + "position": 30 + } + ], + "format": "html", + "dataFileName": "Petra, Jordan.html", + "attachments": [] } ] } @@ -3208,7 +3479,7 @@ "L2NrzQACw0in" ], "title": "Books", - "notePosition": 120, + "notePosition": 130, "prefix": null, "isExpanded": false, "type": "text", @@ -3404,7 +3675,7 @@ "EBROzsTV1jh4" ], "title": "Work", - "notePosition": 140, + "notePosition": 150, "prefix": null, "isExpanded": false, "type": "text", @@ -3493,7 +3764,7 @@ "6RKJSJ65qIn5" ], "title": "Steel Blue", - "notePosition": 150, + "notePosition": 160, "prefix": null, "isExpanded": false, "type": "code", @@ -3604,7 +3875,7 @@ "G8k9CPUVtDeE" ], "title": "Scripting examples", - "notePosition": 340, + "notePosition": 350, "prefix": null, "isExpanded": false, "type": "text", diff --git a/demo/navigation.html b/demo/navigation.html index 673f634b5..55bba6d58 100644 --- a/demo/navigation.html +++ b/demo/navigation.html @@ -270,48 +270,79 @@ -
  • Canvas note -
  • -
  • Mind map +
  • Note Types -
  • -
  • Mermaid Diagrams -
  • diff --git a/demo/root/Trilium Demo.html b/demo/root/Trilium Demo.html index 2b2617d96..cd12b4bd1 100644 --- a/demo/root/Trilium Demo.html +++ b/demo/root/Trilium Demo.html @@ -18,30 +18,22 @@ height="150">

    Welcome to TriliumNext Notes! -

    This is initial "demo" document provided by TriliumNext by default to showcase some of its features and also give you some ideas how you might structure your notes. You can play with it, modify note content and tree structure as you wish.

    If you need any help, visit TriliumNext website: https://github.com/TriliumNext -

    -

    Cleanup

    - +

    Cleanup

    Once you're finished with experimenting and want to cleanup these pages, you can simply delete them all.

    -
     
    -

    Formatting

    - +

    Formatting

    TriliumNext supports classic formatting like italic, bold, bold and italic. Of course you can add links like this one pointing to google.com -

    Lists

    Ordered: -

    1. First Item
    2. @@ -56,7 +48,6 @@

    Unordered: -

    • Item
    • diff --git a/demo/root/Trilium Demo/Formatting examples/Checkbox lists.html b/demo/root/Trilium Demo/Formatting examples/Checkbox lists.html index edde9eae0..62c728414 100644 --- a/demo/root/Trilium Demo/Formatting examples/Checkbox lists.html +++ b/demo/root/Trilium Demo/Formatting examples/Checkbox lists.html @@ -17,26 +17,22 @@
      diff --git a/demo/root/Trilium Demo/Formatting examples/Math.html b/demo/root/Trilium Demo/Formatting examples/Math.html index d9413cb9e..54a28f3ff 100644 --- a/demo/root/Trilium Demo/Formatting examples/Math.html +++ b/demo/root/Trilium Demo/Formatting examples/Math.html @@ -15,10 +15,8 @@

      \(% \f is defined as #1f(#2) using the macro \f\relax{x} = \int_{-\infty}^\infty     \f\hat\xi\,e^{2 \pi i \xi x}     \,d\xi\)Some math examples:

      \[\displaystyle \frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} = 1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}} {1+\frac{e^{-8\pi}} {1+\cdots} } } }\] -

      Another:

      \[\displaystyle \left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)\] - -

      Inline math is also possible: \(c^2 = a^2 + b^2\) Neat!

      +

      Inline math is also possible: \(c^2 = a^2 + b^2\) 

       

      diff --git a/demo/root/Trilium Demo/Mind map/1_new note.json b/demo/root/Trilium Demo/Mind map/1_new note.json deleted file mode 100644 index e69de29bb..000000000 diff --git a/demo/root/Trilium Demo/Mind map/new note.json b/demo/root/Trilium Demo/Mind map/new note.json deleted file mode 100644 index b73e5bf70..000000000 --- a/demo/root/Trilium Demo/Mind map/new note.json +++ /dev/null @@ -1 +0,0 @@ -{"nodeData":{"id":"1add248a269dc540","topic":"new topic","root":true,"children":[{"topic":"sfg","id":"1add2e114258aa6f"}]},"arrows":[],"summaries":[],"direction":0,"theme":{"name":"Latte","palette":["#dd7878","#ea76cb","#8839ef","#e64553","#fe640b","#df8e1d","#40a02b","#209fb5","#1e66f5","#7287fd"],"cssVar":{"--main-color":"#444446","--main-bgcolor":"#ffffff","--color":"#777777","--bgcolor":"#f6f6f6","--panel-color":"#444446","--panel-bgcolor":"#ffffff","--panel-border-color":"#eaeaea"}}} \ No newline at end of file diff --git a/demo/root/Trilium Demo/Mind map/new note/new note.json b/demo/root/Trilium Demo/Mind map/new note/new note.json deleted file mode 100644 index cb4b5098a..000000000 --- a/demo/root/Trilium Demo/Mind map/new note/new note.json +++ /dev/null @@ -1 +0,0 @@ -{"nodeData":{"id":"1adc13eb15e57c17","topic":"new topic","root":true,"children":[{"topic":"asdfas","id":"1adc142dd5a11537","children":[{"topic":"adsf","id":"1adc14819bdcb38d"},{"topic":"asd","id":"1adc14c6920bc68a","children":[{"topic":"asd","id":"1adc1aab9383a26f","children":[{"topic":"asd","id":"1adc1b14942f7a44"}]}]},{"topic":"new node","id":"1adc14fc5f38fd4c"},{"topic":"adsf","id":"1adc152588d29a91"},{"topic":"asdf","id":"1adc19601cdcd9b6"}]},{"topic":"asdf","id":"1add48c7aa544e61","children":[{"topic":"asdf","id":"1add4917919fe495"}]},{"topic":"The quick brownie foxie","id":"1ade2085c2cd91a0"}]},"arrows":[],"summaries":[],"direction":1,"theme":{"name":"Latte","palette":["#dd7878","#ea76cb","#8839ef","#e64553","#fe640b","#df8e1d","#40a02b","#209fb5","#1e66f5","#7287fd"],"cssVar":{"--main-color":"#444446","--main-bgcolor":"#ffffff","--color":"#777777","--bgcolor":"#f6f6f6","--panel-color":"#444446","--panel-bgcolor":"#ffffff","--panel-border-color":"#eaeaea"}}} \ No newline at end of file diff --git a/demo/root/Trilium Demo/Canvas note.json b/demo/root/Trilium Demo/Note Types/Canvas.json similarity index 100% rename from demo/root/Trilium Demo/Canvas note.json rename to demo/root/Trilium Demo/Note Types/Canvas.json diff --git a/demo/root/Trilium Demo/Canvas note_canvas-export.svg b/demo/root/Trilium Demo/Note Types/Canvas_canvas-export.svg similarity index 100% rename from demo/root/Trilium Demo/Canvas note_canvas-export.svg rename to demo/root/Trilium Demo/Note Types/Canvas_canvas-export.svg diff --git a/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of .json b/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of .json new file mode 100644 index 000000000..c2bae9b3e --- /dev/null +++ b/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of .json @@ -0,0 +1 @@ +{"view":{"center":{"lat":5.840169838914697,"lng":14.578571156950112},"zoom":3}} \ No newline at end of file diff --git a/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Chichén Itzá, Mexico.html b/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Chichén Itzá, Mexico.html new file mode 100644 index 000000000..ab44bd638 --- /dev/null +++ b/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Chichén Itzá, Mexico.html @@ -0,0 +1,43 @@ + + + + + + + + Chichén Itzá, Mexico + + + +
      +

      Chichén Itzá, Mexico

      + +
      +

      Deep in the Mexican state of Yucatán lies Chichen Itza, + a historic Mayan city + built between the 9th and 12th centuries. Constructed by the pre-Columbian + Mayan tribe Itzá, + the city includes a series of monuments and temples. The most celebrated + is El Castillo, + also known as the Temple of Kukulcan. It is a huge step pyramid in the + center of the city which was built as a devotional temple to the god Kukulkan. + [1] + +

      +
        +
      1. ^ + +
      2. +
      +
      +
      + + + \ No newline at end of file diff --git a/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Christ the Redeemer, Brazil.html b/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Christ the Redeemer, Brazil.html new file mode 100644 index 000000000..3e1f1e905 --- /dev/null +++ b/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Christ the Redeemer, Brazil.html @@ -0,0 +1,44 @@ + + + + + + + + Christ the Redeemer, Brazil + + + +
      +

      Christ the Redeemer, Brazil

      + +
      +

      The totemic statue of Christ the Redeemer stands + over Rio de Janeiro on the top of Mount Corcovado. + At 30 meters tall, this monument is an iconic emblem of Brazil. This huge + public artwork was designed by the Polish-French sculptor Paul Landowski in the 1920s and + completed by Brazilian engineer Heitor da Silva Costa and French engineer + Albert Caquot in 1931. Made from reinforced + concrete clad in over six million soapstone tiles, the Christ the Redeemer + statue is the largest Art Deco sculpture + in the world. Built just after the end of the First World War, the sculpture + was an overpowering symbol of Christianity and hope when the world had + been brought to its knees.[1] +

      +
        +
      1. ^ + +
      2. +
      +
      +
      + + + \ No newline at end of file diff --git a/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Machu Picchu, Peru.html b/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Machu Picchu, Peru.html new file mode 100644 index 000000000..5e9817e5b --- /dev/null +++ b/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Machu Picchu, Peru.html @@ -0,0 +1,40 @@ + + + + + + + + Machu Picchu, Peru + + + +
      +

      Machu Picchu, Peru

      + +
      +

      Machu Picchu is + a lost treasure of the 15th century and a rare citadel discovered high + in the Andes mountains above the Peruvian Sacred Valley. Astonishingly, + it is one of the only pre-Columbian ruins found nearly intact, featuring + evidence of former plazas, temples, agricultural terraces, and homes. Archaeologists + believe the citadel was built as an estate for the Inca emperor Pachacuti in + around 1450 in polished drystone walls.[1] +

      +
        +
      1. ^ + +
      2. +
      +
      +
      + + + \ No newline at end of file diff --git a/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Petra, Jordan.html b/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Petra, Jordan.html new file mode 100644 index 000000000..1396c2691 --- /dev/null +++ b/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/Petra, Jordan.html @@ -0,0 +1,41 @@ + + + + + + + + Petra, Jordan + + + +
      +

      Petra, Jordan

      + +
      +

      Petra, + the ancient city in southern Jordan, is also known as the “rose city” for + its golden hue. It dates as far back as 312 BCE. Set in a remote valley, + this city was founded by the Arab Nabataeans, a sophisticated civilization + that carved stunning architecture and complex waterways out of surrounding + rock faces. The Nabateans also established Petra as a successful trade + hub, earning vast wealth and a booming population before being wiped out + by earthquakes.[1] +

      +
        +
      1. ^ + +
      2. +
      +
      +
      + + + \ No newline at end of file diff --git a/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Colosseum, Rome, Italy.html b/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Colosseum, Rome, Italy.html new file mode 100644 index 000000000..650a6623c --- /dev/null +++ b/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Colosseum, Rome, Italy.html @@ -0,0 +1,45 @@ + + + + + + + + The Colosseum, Rome, Italy + + + +
      +

      The Colosseum, Rome, Italy

      + +
      +

      The Colosseum is + the great oval amphitheater in + the center of Rome where gladiators once fought for their lives and + the pleasure of the crowd. The largest amphitheater ever built, it was + constructed from sand and stone over eight years, from 72 to 80 CE. The + colossal structure could hold 80,000 spectators, arranged in a circular + ring around the central stage. Dramatic and sometimes horrifying events + took place here, not just gladiatorial games but also Classical plays, + animal hunts, and executions. Some say water was even pumped into the arena + to enact mock sea battles known as naumachia. + [1] + +

      +
        +
      1. ^ + +
      2. +
      +
      +
      + + + \ No newline at end of file diff --git a/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Great Wall of China.html b/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Great Wall of China.html new file mode 100644 index 000000000..1f5d5886f --- /dev/null +++ b/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Great Wall of China.html @@ -0,0 +1,42 @@ + + + + + + + + The Great Wall of China + + + +
      +

      The Great Wall of China

      + +
      +

      The Great Wall of China is + a huge barrier that spans thousands of miles along China’s historic northern + border. Created over millennia, the wall began its life as a series of + smaller walls dating back to the 7th century BCE, built as protective barriers against nomadic raids. + In 220 BCE, China’s first Emperor, Qin Shi Huang, + masterminded the unification of all of China’s walls into one almighty + barrier, strengthening and extending the wall to keep out northern invaders. + [1] + +

      +
        +
      1. ^ + +
      2. +
      +
      +
      + + + \ No newline at end of file diff --git a/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Taj Mahal, India.html b/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Taj Mahal, India.html new file mode 100644 index 000000000..0d692392a --- /dev/null +++ b/demo/root/Trilium Demo/Note Types/Geo Map (The Seven Wonders of the World)/The Taj Mahal, India.html @@ -0,0 +1,41 @@ + + + + + + + + The Taj Mahal, India + + + +
      +

      The Taj Mahal, India

      + +
      +

      India’s renowned Taj Mahal (Persian for Crown of Palaces) is + the stunning white marble mausoleum on the bank of the Yamuna River in + the city of Agra. It has also been selected as one of the seven wonders + of the world. Mughal emperor Shah Jahan built + the temple as a tomb for his beloved wife, Mumtaz Mahal, who died during + childbirth in 1631. A marble tomb in the center is surrounded by 42 acres + of grounds, where gardens, a mosque, a guest house, and a pool complete + the complex.[1] +

      +
        +
      1. ^ + +
      2. +
      +
      +
      + + + \ No newline at end of file diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/Bar chart.txt b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Bar chart.txt similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/Bar chart.txt rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Bar chart.txt diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/Bar chart_mermaid-export.svg b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Bar chart_mermaid-export.svg similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/Bar chart_mermaid-export.svg rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Bar chart_mermaid-export.svg diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/C4.txt b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/C4.txt similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/C4.txt rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/C4.txt diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/C4_mermaid-export.svg b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/C4_mermaid-export.svg similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/C4_mermaid-export.svg rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/C4_mermaid-export.svg diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/Class.txt b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Class.txt similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/Class.txt rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Class.txt diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/Class_mermaid-export.svg b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Class_mermaid-export.svg similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/Class_mermaid-export.svg rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Class_mermaid-export.svg diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/Entity Relationship.txt b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Entity Relationship.txt similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/Entity Relationship.txt rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Entity Relationship.txt diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/Entity Relationship_mermai.svg b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Entity Relationship_mermai.svg similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/Entity Relationship_mermai.svg rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Entity Relationship_mermai.svg diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/Flow (ELK).txt b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow (ELK).txt similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/Flow (ELK).txt rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow (ELK).txt diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/Flow (ELK)_mermaid-export.svg b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow (ELK)_mermaid-export.svg similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/Flow (ELK)_mermaid-export.svg rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow (ELK)_mermaid-export.svg diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/Flow.txt b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow.txt similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/Flow.txt rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow.txt diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/Flow_mermaid-export.svg b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow_mermaid-export.svg similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/Flow_mermaid-export.svg rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Flow_mermaid-export.svg diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/Gantt.txt b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Gantt.txt similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/Gantt.txt rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Gantt.txt diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/Gantt_mermaid-export.svg b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Gantt_mermaid-export.svg similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/Gantt_mermaid-export.svg rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Gantt_mermaid-export.svg diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/Git.txt b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Git.txt similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/Git.txt rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Git.txt diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/Git_mermaid-export.svg b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Git_mermaid-export.svg similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/Git_mermaid-export.svg rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Git_mermaid-export.svg diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/Journey.txt b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Journey.txt similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/Journey.txt rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Journey.txt diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/Journey_mermaid-export.svg b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Journey_mermaid-export.svg similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/Journey_mermaid-export.svg rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Journey_mermaid-export.svg diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/Mind Map.txt b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Mind Map.txt similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/Mind Map.txt rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Mind Map.txt diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/Mind Map_mermaid-export.svg b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Mind Map_mermaid-export.svg similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/Mind Map_mermaid-export.svg rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Mind Map_mermaid-export.svg diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/Pie.txt b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Pie.txt similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/Pie.txt rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Pie.txt diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/Pie_mermaid-export.svg b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Pie_mermaid-export.svg similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/Pie_mermaid-export.svg rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Pie_mermaid-export.svg diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/Sequence.txt b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Sequence.txt similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/Sequence.txt rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Sequence.txt diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/Sequence_mermaid-export.svg b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Sequence_mermaid-export.svg similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/Sequence_mermaid-export.svg rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/Sequence_mermaid-export.svg diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/State.txt b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/State.txt similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/State.txt rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/State.txt diff --git a/demo/root/Trilium Demo/Mermaid Diagrams/State_mermaid-export.svg b/demo/root/Trilium Demo/Note Types/Mermaid Diagrams/State_mermaid-export.svg similarity index 100% rename from demo/root/Trilium Demo/Mermaid Diagrams/State_mermaid-export.svg rename to demo/root/Trilium Demo/Note Types/Mermaid Diagrams/State_mermaid-export.svg diff --git a/demo/root/Trilium Demo/Mind map.json b/demo/root/Trilium Demo/Note Types/Mind Map.json similarity index 100% rename from demo/root/Trilium Demo/Mind map.json rename to demo/root/Trilium Demo/Note Types/Mind Map.json diff --git a/demo/root/Trilium Demo/Mind map_mindmap-export.svg b/demo/root/Trilium Demo/Note Types/Mind Map_mindmap-export.svg similarity index 100% rename from demo/root/Trilium Demo/Mind map_mindmap-export.svg rename to demo/root/Trilium Demo/Note Types/Mind Map_mindmap-export.svg From 815078168f5a24128e25571788dc3dea9cb96a20 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 1 Apr 2025 23:24:21 +0300 Subject: [PATCH 20/24] refactor(dev): use es6-string-html for templates --- src/public/app/widgets/api_log.ts | 2 +- src/public/app/widgets/attachment_detail.ts | 2 +- .../attribute_widgets/attribute_detail.ts | 2 +- .../attribute_widgets/attribute_editor.ts | 2 +- .../widgets/bulk_actions/execute_script.ts | 2 +- .../widgets/bulk_actions/label/add_label.ts | 22 +++++++++---------- .../bulk_actions/label/delete_label.ts | 4 ++-- .../bulk_actions/label/rename_label.ts | 22 +++++++++---------- .../bulk_actions/label/update_label_value.ts | 20 ++++++++--------- .../widgets/bulk_actions/note/delete_note.ts | 10 ++++----- .../bulk_actions/note/delete_revisions.ts | 2 +- .../widgets/bulk_actions/note/move_note.ts | 14 ++++++------ .../widgets/bulk_actions/note/rename_note.ts | 18 +++++++-------- .../bulk_actions/relation/add_relation.ts | 16 +++++++------- .../bulk_actions/relation/delete_relation.ts | 6 ++--- .../bulk_actions/relation/rename_relation.ts | 22 +++++++++---------- .../relation/update_relation_target.ts | 20 ++++++++--------- .../app/widgets/buttons/abstract_button.ts | 2 +- .../widgets/buttons/attachments_actions.ts | 2 +- src/public/app/widgets/buttons/global_menu.ts | 2 +- .../app/widgets/buttons/note_actions.ts | 2 +- .../widgets/buttons/right_dropdown_button.ts | 2 +- .../app/widgets/buttons/update_available.ts | 2 +- src/public/app/widgets/close_zen_button.ts | 2 +- .../widgets/containers/ribbon_container.ts | 2 +- src/public/app/widgets/dialogs/about.ts | 2 +- src/public/app/widgets/dialogs/add_link.ts | 2 +- .../app/widgets/dialogs/branch_prefix.ts | 2 +- .../app/widgets/dialogs/bulk_actions.ts | 2 +- src/public/app/widgets/dialogs/clone_to.ts | 2 +- src/public/app/widgets/dialogs/confirm.ts | 2 +- .../app/widgets/dialogs/delete_notes.ts | 2 +- src/public/app/widgets/dialogs/export.ts | 2 +- src/public/app/widgets/dialogs/help.ts | 2 +- src/public/app/widgets/dialogs/import.ts | 2 +- .../app/widgets/dialogs/include_note.ts | 2 +- src/public/app/widgets/dialogs/info.ts | 2 +- .../app/widgets/dialogs/jump_to_note.ts | 2 +- .../app/widgets/dialogs/markdown_import.ts | 2 +- src/public/app/widgets/dialogs/move_to.ts | 2 +- .../app/widgets/dialogs/note_type_chooser.ts | 2 +- .../app/widgets/dialogs/password_not_set.ts | 2 +- src/public/app/widgets/dialogs/prompt.ts | 2 +- .../dialogs/protected_session_password.ts | 2 +- .../app/widgets/dialogs/recent_changes.ts | 2 +- src/public/app/widgets/dialogs/revisions.ts | 2 +- .../app/widgets/dialogs/sort_child_notes.ts | 2 +- .../app/widgets/dialogs/upload_attachments.ts | 2 +- src/public/app/widgets/editability_select.ts | 2 +- src/public/app/widgets/find.ts | 2 +- .../widgets/floating_buttons/code_buttons.ts | 2 +- .../copy_image_reference_button.ts | 2 +- .../floating_buttons/floating_buttons.ts | 2 +- .../floating_buttons/geo_map_button.ts | 2 +- .../widgets/floating_buttons/help_button.ts | 2 +- .../hide_floating_buttons_button.ts | 8 +++---- .../floating_buttons/png_export_button.ts | 2 +- .../floating_buttons/relation_map_buttons.ts | 2 +- .../floating_buttons/svg_export_button.ts | 2 +- .../floating_buttons/switch_layout_button.ts | 2 +- .../widgets/floating_buttons/zpetne_odkazy.ts | 2 +- src/public/app/widgets/geo_map.ts | 2 +- src/public/app/widgets/highlights_list.ts | 2 +- .../mobile_widgets/mobile_detail_menu.ts | 2 +- .../mobile_widgets/toggle_sidebar_button.ts | 2 +- src/public/app/widgets/note_detail.ts | 2 +- src/public/app/widgets/note_icon.ts | 2 +- src/public/app/widgets/note_language.ts | 2 +- src/public/app/widgets/note_list.ts | 2 +- src/public/app/widgets/note_map.ts | 2 +- src/public/app/widgets/note_title.ts | 2 +- src/public/app/widgets/note_tree.ts | 2 +- src/public/app/widgets/note_type.ts | 2 +- src/public/app/widgets/quick_search.ts | 2 +- .../ribbon_widgets/basic_properties.ts | 2 +- .../widgets/ribbon_widgets/book_properties.ts | 2 +- .../ribbon_widgets/classic_editor_toolbar.ts | 2 +- .../widgets/ribbon_widgets/edited_notes.ts | 2 +- .../widgets/ribbon_widgets/file_properties.ts | 2 +- .../ribbon_widgets/image_properties.ts | 2 +- .../inherited_attribute_list.ts | 2 +- .../ribbon_widgets/note_info_widget.ts | 2 +- .../app/widgets/ribbon_widgets/note_map.ts | 2 +- .../app/widgets/ribbon_widgets/note_paths.ts | 2 +- .../widgets/ribbon_widgets/note_properties.ts | 2 +- .../ribbon_widgets/owned_attribute_list.ts | 2 +- .../ribbon_widgets/promoted_attributes.ts | 2 +- .../widgets/ribbon_widgets/script_executor.ts | 2 +- .../ribbon_widgets/search_definition.ts | 2 +- .../widgets/ribbon_widgets/similar_notes.ts | 2 +- src/public/app/widgets/scroll_padding.ts | 2 +- .../app/widgets/search_options/ancestor.ts | 2 +- .../app/widgets/search_options/debug.ts | 2 +- .../app/widgets/search_options/fast_search.ts | 2 +- .../search_options/include_archived_notes.ts | 2 +- .../app/widgets/search_options/limit.ts | 2 +- .../app/widgets/search_options/order_by.ts | 2 +- .../widgets/search_options/search_script.ts | 2 +- .../widgets/search_options/search_string.ts | 2 +- src/public/app/widgets/search_result.ts | 2 +- src/public/app/widgets/shared_info.ts | 2 +- src/public/app/widgets/spacer.ts | 2 +- src/public/app/widgets/sql_result.ts | 2 +- src/public/app/widgets/sql_table_schemas.ts | 2 +- src/public/app/widgets/switch.ts | 2 +- src/public/app/widgets/sync_status.ts | 2 +- src/public/app/widgets/title_bar_buttons.ts | 8 +++---- src/public/app/widgets/toc.ts | 2 +- .../abstract_split_type_widget.ts | 2 +- .../widgets/type_widgets/attachment_detail.ts | 2 +- .../widgets/type_widgets/attachment_list.ts | 2 +- src/public/app/widgets/type_widgets/book.ts | 2 +- src/public/app/widgets/type_widgets/canvas.ts | 2 +- .../type_widgets/content/backend_log.ts | 2 +- .../widgets/type_widgets/content_widget.ts | 2 +- src/public/app/widgets/type_widgets/doc.ts | 2 +- .../app/widgets/type_widgets/editable_code.ts | 2 +- .../app/widgets/type_widgets/editable_text.ts | 2 +- src/public/app/widgets/type_widgets/empty.ts | 2 +- src/public/app/widgets/type_widgets/file.ts | 2 +- .../app/widgets/type_widgets/geo_map.ts | 2 +- src/public/app/widgets/type_widgets/image.ts | 2 +- .../app/widgets/type_widgets/mind_map.ts | 2 +- src/public/app/widgets/type_widgets/none.ts | 2 +- .../app/widgets/type_widgets/note_map.ts | 2 +- .../advanced/database_anonymization.ts | 2 +- .../advanced/database_integrity_check.ts | 2 +- .../type_widgets/options/advanced/sync.ts | 2 +- .../options/advanced/vacuum_database.ts | 2 +- .../options/appearance/code_block.ts | 2 +- .../appearance/electron_integration.ts | 2 +- .../type_widgets/options/appearance/fonts.ts | 2 +- .../options/appearance/max_content_width.ts | 2 +- .../type_widgets/options/appearance/ribbon.ts | 2 +- .../type_widgets/options/appearance/theme.ts | 2 +- .../widgets/type_widgets/options/backup.ts | 2 +- .../code_notes/code_auto_read_only_size.ts | 2 +- .../options/code_notes/code_editor.ts | 2 +- .../options/code_notes/code_mime_types.ts | 2 +- .../app/widgets/type_widgets/options/etapi.ts | 2 +- .../widgets/type_widgets/options/i18n/i18n.ts | 2 +- .../type_widgets/options/i18n/language.ts | 2 +- .../type_widgets/options/images/images.ts | 2 +- .../options/multi_factor_authentication.ts | 2 +- .../other/attachment_erasure_timeout.ts | 2 +- .../options/other/html_import_tags.ts | 2 +- .../options/other/network_connections.ts | 2 +- .../options/other/note_erasure_timeout.ts | 2 +- .../options/other/revision_snapshots_limit.ts | 2 +- .../other/revisions_snapshot_interval.ts | 2 +- .../options/other/search_engine.ts | 2 +- .../options/other/share_settings.ts | 2 +- .../type_widgets/options/other/tray.ts | 2 +- .../type_widgets/options/password/password.ts | 2 +- .../password/protected_session_timeout.ts | 2 +- .../widgets/type_widgets/options/shortcuts.ts | 2 +- .../app/widgets/type_widgets/options/sync.ts | 2 +- .../type_widgets/options/text_notes/editor.ts | 2 +- .../options/text_notes/heading_style.ts | 2 +- .../options/text_notes/highlights_list.ts | 2 +- .../options/text_notes/table_of_contents.ts | 2 +- .../text_notes/text_auto_read_only_size.ts | 2 +- .../widgets/type_widgets/protected_session.ts | 2 +- .../widgets/type_widgets/read_only_code.ts | 2 +- .../widgets/type_widgets/read_only_text.ts | 2 +- .../app/widgets/type_widgets/relation_map.ts | 2 +- src/public/app/widgets/type_widgets/render.ts | 2 +- .../app/widgets/type_widgets/web_view.ts | 2 +- .../app/widgets/view_widgets/calendar_view.ts | 2 +- .../widgets/view_widgets/list_or_grid_view.ts | 2 +- .../app/widgets/watched_file_update_status.ts | 2 +- 171 files changed, 253 insertions(+), 253 deletions(-) diff --git a/src/public/app/widgets/api_log.ts b/src/public/app/widgets/api_log.ts index d2b833a71..02f7563e6 100644 --- a/src/public/app/widgets/api_log.ts +++ b/src/public/app/widgets/api_log.ts @@ -3,7 +3,7 @@ import type FNote from "../entities/fnote.js"; import { t } from "../services/i18n.js"; import NoteContextAwareWidget from "./note_context_aware_widget.js"; -const TPL = ` +const TPL = /*html*/`
      - +
      diff --git a/src/public/app/widgets/toc.ts b/src/public/app/widgets/toc.ts index db15ba6a8..5c9a4b3e8 100644 --- a/src/public/app/widgets/toc.ts +++ b/src/public/app/widgets/toc.ts @@ -22,7 +22,7 @@ import appContext, { type EventData } from "../components/app_context.js"; import libraryLoader from "../services/library_loader.js"; import type FNote from "../entities/fnote.js"; -const TPL = `
      +const TPL = /*html*/`