mirror of
https://github.com/zadam/trilium.git
synced 2025-12-05 23:14:24 +01:00
Merge branch 'main' into feat/llm-tool-improvement
This commit is contained in:
commit
c119ffe478
@ -91,5 +91,5 @@ async function start() {
|
||||
}
|
||||
|
||||
// @TriliumNextTODO sqlInit.dbReady never seems to resolve so program hangs
|
||||
// see https://github.com/TriliumNext/Notes/issues/1020
|
||||
// see https://github.com/TriliumNext/Trilium/issues/1020
|
||||
sqlInit.dbReady.then(cls.wrap(start)).catch((err) => console.error(err));
|
||||
|
||||
@ -8,5 +8,5 @@ test("Displays update badge when there is a version available", async ({ page })
|
||||
await page.getByText(`Version ${expectedVersion} is available,`).click();
|
||||
|
||||
const page1 = await page.waitForEvent("popup");
|
||||
expect(page1.url()).toBe(`https://github.com/TriliumNext/Notes/releases/tag/v${expectedVersion}`);
|
||||
expect(page1.url()).toBe(`https://github.com/TriliumNext/Trilium/releases/tag/v${expectedVersion}`);
|
||||
});
|
||||
|
||||
@ -424,7 +424,7 @@ export default class GlobalMenuWidget extends BasicWidget {
|
||||
}
|
||||
|
||||
downloadLatestVersionCommand() {
|
||||
window.open("https://github.com/TriliumNext/Notes/releases/latest");
|
||||
window.open("https://github.com/TriliumNext/Trilium/releases/latest");
|
||||
}
|
||||
|
||||
activeContextChangedEvent() {
|
||||
|
||||
@ -27,7 +27,7 @@ const TPL = /*html*/`
|
||||
<table class="table table-borderless">
|
||||
<tr>
|
||||
<th>${t("about.homepage")}</th>
|
||||
<td><a class="tn-link" href="https://github.com/TriliumNext/Notes" class="external">https://github.com/TriliumNext/Notes</a></td>
|
||||
<td><a class="tn-link" href="https://github.com/TriliumNext/Trilium" class="external">https://github.com/TriliumNext/Trilium</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>${t("about.app_version")}</th>
|
||||
@ -92,7 +92,7 @@ export default class AboutDialog extends BasicWidget {
|
||||
this.$syncVersion.text(appInfo.syncVersion.toString());
|
||||
this.$buildDate.text(formatDateTime(appInfo.buildDate));
|
||||
this.$buildRevision.text(appInfo.buildRevision);
|
||||
this.$buildRevision.attr("href", `https://github.com/TriliumNext/Notes/commit/${appInfo.buildRevision}`);
|
||||
this.$buildRevision.attr("href", `https://github.com/TriliumNext/Trilium/commit/${appInfo.buildRevision}`);
|
||||
if (utils.isElectron()) {
|
||||
this.$dataDirectory.html(
|
||||
$("<a></a>", {
|
||||
|
||||
@ -41,9 +41,9 @@ export default class IncorrectCpuArchDialog extends BasicWidget {
|
||||
// Open the releases page where users can download the correct version
|
||||
if (utils.isElectron()) {
|
||||
const { shell } = utils.dynamicRequire("electron");
|
||||
shell.openExternal("https://github.com/TriliumNext/Notes/releases/latest");
|
||||
shell.openExternal("https://github.com/TriliumNext/Trilium/releases/latest");
|
||||
} else {
|
||||
window.open("https://github.com/TriliumNext/Notes/releases/latest", "_blank");
|
||||
window.open("https://github.com/TriliumNext/Trilium/releases/latest", "_blank");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@ -74,7 +74,7 @@ export const DEFAULT_ALLOWED_TAGS = [
|
||||
"del",
|
||||
"ins",
|
||||
"en-media", // for ENEX import
|
||||
// Additional tags (https://github.com/TriliumNext/Notes/issues/567)
|
||||
// Additional tags (https://github.com/TriliumNext/Trilium/issues/567)
|
||||
"acronym",
|
||||
"article",
|
||||
"big",
|
||||
|
||||
@ -18,7 +18,7 @@
|
||||
}
|
||||
},
|
||||
"devDependencies": {
|
||||
"dotenv": "16.5.0",
|
||||
"electron": "36.5.0"
|
||||
"dotenv": "16.6.0",
|
||||
"electron": "36.6.0"
|
||||
}
|
||||
}
|
||||
|
||||
@ -17,7 +17,7 @@
|
||||
"@types/electron-squirrel-startup": "1.0.2",
|
||||
"@triliumnext/server": "workspace:*",
|
||||
"copy-webpack-plugin": "13.0.0",
|
||||
"electron": "36.5.0",
|
||||
"electron": "36.6.0",
|
||||
"@electron-forge/cli": "7.8.1",
|
||||
"@electron-forge/maker-deb": "7.8.1",
|
||||
"@electron-forge/maker-dmg": "7.8.1",
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
"@triliumnext/desktop": "workspace:*",
|
||||
"@types/fs-extra": "11.0.4",
|
||||
"copy-webpack-plugin": "13.0.0",
|
||||
"electron": "36.5.0",
|
||||
"electron": "36.6.0",
|
||||
"fs-extra": "11.3.0"
|
||||
},
|
||||
"nx": {
|
||||
|
||||
@ -17,6 +17,6 @@
|
||||
}
|
||||
},
|
||||
"devDependencies": {
|
||||
"dotenv": "16.5.0"
|
||||
"dotenv": "16.6.0"
|
||||
}
|
||||
}
|
||||
|
||||
@ -59,7 +59,7 @@
|
||||
"debounce": "2.2.0",
|
||||
"debug": "4.4.1",
|
||||
"ejs": "3.1.10",
|
||||
"electron": "36.5.0",
|
||||
"electron": "36.6.0",
|
||||
"electron-debug": "4.1.0",
|
||||
"electron-window-state": "5.0.3",
|
||||
"escape-html": "1.0.3",
|
||||
@ -88,7 +88,7 @@
|
||||
"multer": "2.0.1",
|
||||
"normalize-strings": "1.1.1",
|
||||
"ollama": "0.5.16",
|
||||
"openai": "5.7.0",
|
||||
"openai": "5.8.1",
|
||||
"rand-token": "1.0.1",
|
||||
"safe-compare": "1.1.4",
|
||||
"sanitize-filename": "1.6.3",
|
||||
|
||||
22
apps/server/src/becca/entities/brevision.spec.ts
Normal file
22
apps/server/src/becca/entities/brevision.spec.ts
Normal file
@ -0,0 +1,22 @@
|
||||
import BRevision from "./brevision.js";
|
||||
|
||||
describe("Revision", () => {
|
||||
it("handles note with empty title properly", () => {
|
||||
const revision = new BRevision({
|
||||
revisionId: "4omM5OvlLhOw",
|
||||
noteId: "WHMg7iFCRG3Z",
|
||||
type: "text",
|
||||
mime: "text/html",
|
||||
isProtected: false,
|
||||
title: "",
|
||||
blobId: "",
|
||||
dateLastEdited: "2025-06-27 14:10:39.688+0300",
|
||||
dateCreated: "2025-06-27 14:10:39.688+0300",
|
||||
utcDateLastEdited: "2025-06-27 14:10:39.688+0300",
|
||||
utcDateCreated: "2025-06-27 14:10:39.688+0300",
|
||||
utcDateModified: "2025-06-27 14:10:39.688+0300"
|
||||
});
|
||||
const pojo = revision.getPojo();
|
||||
expect(pojo.title).toBeDefined();
|
||||
});
|
||||
});
|
||||
@ -192,7 +192,7 @@ class BRevision extends AbstractBeccaEntity<BRevision> {
|
||||
type: this.type,
|
||||
mime: this.mime,
|
||||
isProtected: this.isProtected,
|
||||
title: this.title || undefined,
|
||||
title: this.title,
|
||||
blobId: this.blobId,
|
||||
dateLastEdited: this.dateLastEdited,
|
||||
dateCreated: this.dateCreated,
|
||||
@ -211,10 +211,10 @@ class BRevision extends AbstractBeccaEntity<BRevision> {
|
||||
|
||||
if (pojo.isProtected) {
|
||||
if (protectedSessionService.isProtectedSessionAvailable()) {
|
||||
pojo.title = protectedSessionService.encrypt(this.title) || undefined;
|
||||
pojo.title = protectedSessionService.encrypt(this.title) ?? "";
|
||||
} else {
|
||||
// updating protected note outside of protected session means we will keep original ciphertexts
|
||||
delete pojo.title;
|
||||
pojo.title = "";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -8,7 +8,7 @@ import appInfo from "../../services/app_info.js";
|
||||
* operationId: app-info
|
||||
* externalDocs:
|
||||
* description: Server implementation
|
||||
* url: https://github.com/TriliumNext/Notes/blob/v0.91.6/src/services/app_info.ts
|
||||
* url: https://github.com/TriliumNext/Trilium/blob/v0.91.6/src/services/app_info.ts
|
||||
* responses:
|
||||
* '200':
|
||||
* description: Installation info
|
||||
|
||||
@ -25,7 +25,7 @@ import type { Request } from "express";
|
||||
* operationId: login-sync
|
||||
* externalDocs:
|
||||
* description: HMAC calculation
|
||||
* url: https://github.com/TriliumNext/Notes/blob/v0.91.6/src/services/utils.ts#L62-L66
|
||||
* url: https://github.com/TriliumNext/Trilium/blob/v0.91.6/src/services/utils.ts#L62-L66
|
||||
* requestBody:
|
||||
* content:
|
||||
* application/json:
|
||||
|
||||
@ -95,7 +95,7 @@ function forceFullSync() {
|
||||
* operationId: sync-changed
|
||||
* externalDocs:
|
||||
* description: Server implementation
|
||||
* url: https://github.com/TriliumNext/Notes/blob/v0.91.6/src/routes/api/sync.ts
|
||||
* url: https://github.com/TriliumNext/Trilium/blob/v0.91.6/src/routes/api/sync.ts
|
||||
* parameters:
|
||||
* - in: query
|
||||
* name: instanceId
|
||||
@ -214,7 +214,7 @@ const partialRequests: Record<
|
||||
* operationId: sync-update
|
||||
* externalDocs:
|
||||
* description: Server implementation
|
||||
* url: https://github.com/TriliumNext/Notes/blob/v0.91.6/src/routes/api/sync.ts
|
||||
* url: https://github.com/TriliumNext/Trilium/blob/v0.91.6/src/routes/api/sync.ts
|
||||
* parameters:
|
||||
* - in: header
|
||||
* name: pageCount
|
||||
|
||||
@ -136,7 +136,7 @@ function getNotesAndBranchesAndAttributes(_noteIds: string[] | Set<string>) {
|
||||
* operationId: tree
|
||||
* externalDocs:
|
||||
* description: Server implementation
|
||||
* url: https://github.com/TriliumNext/Notes/blob/v0.91.6/src/routes/api/tree.ts
|
||||
* url: https://github.com/TriliumNext/Trilium/blob/v0.91.6/src/routes/api/tree.ts
|
||||
* parameters:
|
||||
* - in: query
|
||||
* name: subTreeNoteId
|
||||
|
||||
@ -8,7 +8,7 @@ const doubleCsrfUtilities = doubleCsrf({
|
||||
path: "/",
|
||||
secure: false,
|
||||
sameSite: "strict",
|
||||
httpOnly: !isElectron // set to false for Electron, see https://github.com/TriliumNext/Notes/pull/966
|
||||
httpOnly: !isElectron // set to false for Electron, see https://github.com/TriliumNext/Trilium/pull/966
|
||||
},
|
||||
cookieName: "_csrf"
|
||||
});
|
||||
|
||||
@ -77,7 +77,7 @@ function setPassword(req: Request, res: Response) {
|
||||
* operationId: login-normal
|
||||
* externalDocs:
|
||||
* description: HMAC calculation
|
||||
* url: https://github.com/TriliumNext/Notes/blob/v0.91.6/src/services/utils.ts#L62-L66
|
||||
* url: https://github.com/TriliumNext/Trilium/blob/v0.91.6/src/services/utils.ts#L62-L66
|
||||
* requestBody:
|
||||
* content:
|
||||
* application/x-www-form-urlencoded:
|
||||
|
||||
@ -293,25 +293,25 @@ describe("Markdown export", () => {
|
||||
const html = trimIndentation`\
|
||||
<ul>
|
||||
<li><a href="https://github.com/JYC333">@JYC333</a> made their first contribution
|
||||
in <a href="https://github.com/TriliumNext/Notes/pull/294">#294</a>
|
||||
in <a href="https://github.com/TriliumNext/Trilium/pull/294">#294</a>
|
||||
|
||||
</li>
|
||||
<li>
|
||||
<p><a href="https://github.com/TriliumNext/Notes/issues/375">Note Tooltip isn't removed when clicking on internal trilium link in read-only mode</a>
|
||||
<p><a href="https://github.com/TriliumNext/Trilium/issues/375">Note Tooltip isn't removed when clicking on internal trilium link in read-only mode</a>
|
||||
|
||||
</p>
|
||||
</li>
|
||||
<li>
|
||||
<p><a href="https://github.com/TriliumNext/Notes/issues/384">Calendar dropdown won't close if click/right-click other button that open notes from launcher bar</a>
|
||||
<p><a href="https://github.com/TriliumNext/Trilium/issues/384">Calendar dropdown won't close if click/right-click other button that open notes from launcher bar</a>
|
||||
|
||||
</p>
|
||||
</li>
|
||||
</ul>
|
||||
`;
|
||||
const expected = trimIndentation`\
|
||||
* [@JYC333](https://github.com/JYC333) made their first contribution in [#294](https://github.com/TriliumNext/Notes/pull/294)
|
||||
* [Note Tooltip isn't removed when clicking on internal trilium link in read-only mode](https://github.com/TriliumNext/Notes/issues/375)
|
||||
* [Calendar dropdown won't close if click/right-click other button that open notes from launcher bar](https://github.com/TriliumNext/Notes/issues/384)`;
|
||||
* [@JYC333](https://github.com/JYC333) made their first contribution in [#294](https://github.com/TriliumNext/Trilium/pull/294)
|
||||
* [Note Tooltip isn't removed when clicking on internal trilium link in read-only mode](https://github.com/TriliumNext/Trilium/issues/375)
|
||||
* [Calendar dropdown won't close if click/right-click other button that open notes from launcher bar](https://github.com/TriliumNext/Trilium/issues/384)`;
|
||||
expect(markdownExportService.toMarkdown(html)).toBe(expected);
|
||||
});
|
||||
|
||||
|
||||
@ -84,7 +84,7 @@ export const DEFAULT_ALLOWED_TAGS = [
|
||||
"del",
|
||||
"ins",
|
||||
"en-media", // for ENEX import
|
||||
// Additional tags (https://github.com/TriliumNext/Notes/issues/567)
|
||||
// Additional tags (https://github.com/TriliumNext/Trilium/issues/567)
|
||||
"acronym",
|
||||
"article",
|
||||
"big",
|
||||
|
||||
@ -259,15 +259,15 @@ $$`;
|
||||
const input = trimIndentation`\
|
||||
### 🐞 Bugfixes
|
||||
|
||||
* [v0.90.4 docker does not read USER\_UID and USER\_GID from environment](https://github.com/TriliumNext/Notes/issues/331)
|
||||
* [Invalid CSRF token on Android phone](https://github.com/TriliumNext/Notes/issues/318)
|
||||
* [Excess spacing in lists](https://github.com/TriliumNext/Notes/issues/341)`;
|
||||
* [v0.90.4 docker does not read USER\_UID and USER\_GID from environment](https://github.com/TriliumNext/Trilium/issues/331)
|
||||
* [Invalid CSRF token on Android phone](https://github.com/TriliumNext/Trilium/issues/318)
|
||||
* [Excess spacing in lists](https://github.com/TriliumNext/Trilium/issues/341)`;
|
||||
const expected = [
|
||||
/*html*/`<h3>🐞 Bugfixes</h3>`,
|
||||
/*html*/`<ul>`,
|
||||
/*html*/`<li><a href="https://github.com/TriliumNext/Notes/issues/331">v0.90.4 docker does not read USER_UID and USER_GID from environment</a></li>`,
|
||||
/*html*/`<li><a href="https://github.com/TriliumNext/Notes/issues/318">Invalid CSRF token on Android phone</a></li>`,
|
||||
/*html*/`<li><a href="https://github.com/TriliumNext/Notes/issues/341">Excess spacing in lists</a></li>`,
|
||||
/*html*/`<li><a href="https://github.com/TriliumNext/Trilium/issues/331">v0.90.4 docker does not read USER_UID and USER_GID from environment</a></li>`,
|
||||
/*html*/`<li><a href="https://github.com/TriliumNext/Trilium/issues/318">Invalid CSRF token on Android phone</a></li>`,
|
||||
/*html*/`<li><a href="https://github.com/TriliumNext/Trilium/issues/341">Excess spacing in lists</a></li>`,
|
||||
/*html*/`</ul>`
|
||||
].join("");
|
||||
expect(markdownService.renderToHtml(input, "Title")).toStrictEqual(expected);
|
||||
|
||||
@ -117,11 +117,11 @@ export const downloadMatrix: DownloadMatrix = {
|
||||
},
|
||||
tarX64: {
|
||||
name: "x86 (.tar.xz)",
|
||||
url: `https://github.com/TriliumNext/Notes/releases/download/v${version}/TriliumNotes-Server-v${version}-linux-x64.tar.xz`
|
||||
url: `https://github.com/TriliumNext/Trilium/releases/download/v${version}/TriliumNotes-Server-v${version}-linux-x64.tar.xz`
|
||||
},
|
||||
tarArm64: {
|
||||
name: "ARM (.tar.xz)",
|
||||
url: `https://github.com/TriliumNext/Notes/releases/download/v${version}/TriliumNotes-Server-v${version}-linux-arm64.tar.xz`
|
||||
url: `https://github.com/TriliumNext/Trilium/releases/download/v${version}/TriliumNotes-Server-v${version}-linux-arm64.tar.xz`
|
||||
},
|
||||
nixos: {
|
||||
name: "NixOS module",
|
||||
@ -150,7 +150,7 @@ export const downloadMatrix: DownloadMatrix = {
|
||||
export function buildDownloadUrl(app: App, platform: Platform, format: string, architecture: Architecture): string {
|
||||
if (app === "desktop") {
|
||||
return downloadMatrix.desktop[platform]?.downloads[format].url ??
|
||||
`https://github.com/TriliumNext/Notes/releases/download/v${version}/TriliumNotes-v${version}-${platform}-${architecture}.${format}`;
|
||||
`https://github.com/TriliumNext/Trilium/releases/download/v${version}/TriliumNotes-v${version}-${platform}-${architecture}.${format}`;
|
||||
} else if (app === "server") {
|
||||
return downloadMatrix.server[platform]?.downloads[format].url ?? "#";
|
||||
} else {
|
||||
|
||||
@ -80,7 +80,7 @@
|
||||
"url": "https://github.com/TriliumNext/Notes/issues"
|
||||
},
|
||||
"homepage": "https://github.com/TriliumNext/Notes#readme",
|
||||
"packageManager": "pnpm@10.12.3",
|
||||
"packageManager": "pnpm@10.12.4",
|
||||
"pnpm": {
|
||||
"patchedDependencies": {
|
||||
"@ckeditor/ckeditor5-mention": "patches/@ckeditor__ckeditor5-mention.patch",
|
||||
|
||||
@ -32,14 +32,14 @@
|
||||
"ckeditor5-metadata.json"
|
||||
],
|
||||
"devDependencies": {
|
||||
"@ckeditor/ckeditor5-dev-build-tools": "43.0.1",
|
||||
"@ckeditor/ckeditor5-dev-build-tools": "43.1.0",
|
||||
"@ckeditor/ckeditor5-inspector": ">=4.1.0",
|
||||
"@ckeditor/ckeditor5-package-tools": "^4.0.0",
|
||||
"@typescript-eslint/eslint-plugin": "~8.35.0",
|
||||
"@typescript-eslint/parser": "^8.0.0",
|
||||
"@vitest/browser": "^3.0.5",
|
||||
"@vitest/coverage-istanbul": "^3.0.5",
|
||||
"ckeditor5": "45.2.0",
|
||||
"ckeditor5": "45.2.1",
|
||||
"eslint": "^9.0.0",
|
||||
"eslint-config-ckeditor5": ">=9.1.0",
|
||||
"http-server": "^14.1.0",
|
||||
@ -53,7 +53,7 @@
|
||||
"webdriverio": "^9.0.7"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"ckeditor5": "45.2.0"
|
||||
"ckeditor5": "45.2.1"
|
||||
},
|
||||
"author": "Elian Doran <contact@eliandoran.me>",
|
||||
"license": "GPL-2.0-or-later",
|
||||
|
||||
@ -33,14 +33,14 @@
|
||||
"ckeditor5-metadata.json"
|
||||
],
|
||||
"devDependencies": {
|
||||
"@ckeditor/ckeditor5-dev-build-tools": "43.0.1",
|
||||
"@ckeditor/ckeditor5-dev-build-tools": "43.1.0",
|
||||
"@ckeditor/ckeditor5-inspector": ">=4.1.0",
|
||||
"@ckeditor/ckeditor5-package-tools": "^4.0.0",
|
||||
"@typescript-eslint/eslint-plugin": "~8.35.0",
|
||||
"@typescript-eslint/parser": "^8.0.0",
|
||||
"@vitest/browser": "^3.0.5",
|
||||
"@vitest/coverage-istanbul": "^3.0.5",
|
||||
"ckeditor5": "45.2.0",
|
||||
"ckeditor5": "45.2.1",
|
||||
"eslint": "^9.0.0",
|
||||
"eslint-config-ckeditor5": ">=9.1.0",
|
||||
"http-server": "^14.1.0",
|
||||
@ -54,7 +54,7 @@
|
||||
"webdriverio": "^9.0.7"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"ckeditor5": "45.2.0"
|
||||
"ckeditor5": "45.2.1"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "node ./scripts/build-dist.mjs",
|
||||
|
||||
@ -35,14 +35,14 @@
|
||||
"ckeditor5-metadata.json"
|
||||
],
|
||||
"devDependencies": {
|
||||
"@ckeditor/ckeditor5-dev-build-tools": "43.0.1",
|
||||
"@ckeditor/ckeditor5-dev-build-tools": "43.1.0",
|
||||
"@ckeditor/ckeditor5-inspector": ">=4.1.0",
|
||||
"@ckeditor/ckeditor5-package-tools": "^4.0.0",
|
||||
"@typescript-eslint/eslint-plugin": "~8.35.0",
|
||||
"@typescript-eslint/parser": "^8.0.0",
|
||||
"@vitest/browser": "^3.0.5",
|
||||
"@vitest/coverage-istanbul": "^3.0.5",
|
||||
"ckeditor5": "45.2.0",
|
||||
"ckeditor5": "45.2.1",
|
||||
"eslint": "^9.0.0",
|
||||
"eslint-config-ckeditor5": ">=9.1.0",
|
||||
"http-server": "^14.1.0",
|
||||
@ -56,7 +56,7 @@
|
||||
"webdriverio": "^9.0.7"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"ckeditor5": "45.2.0"
|
||||
"ckeditor5": "45.2.1"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "node ./scripts/build-dist.mjs",
|
||||
|
||||
@ -35,15 +35,15 @@
|
||||
"ckeditor5-metadata.json"
|
||||
],
|
||||
"devDependencies": {
|
||||
"@ckeditor/ckeditor5-dev-build-tools": "43.0.1",
|
||||
"@ckeditor/ckeditor5-dev-utils": "43.0.1",
|
||||
"@ckeditor/ckeditor5-dev-build-tools": "43.1.0",
|
||||
"@ckeditor/ckeditor5-dev-utils": "43.1.0",
|
||||
"@ckeditor/ckeditor5-inspector": ">=4.1.0",
|
||||
"@ckeditor/ckeditor5-package-tools": "^4.0.0",
|
||||
"@typescript-eslint/eslint-plugin": "~8.35.0",
|
||||
"@typescript-eslint/parser": "^8.0.0",
|
||||
"@vitest/browser": "^3.0.5",
|
||||
"@vitest/coverage-istanbul": "^3.0.5",
|
||||
"ckeditor5": "45.2.0",
|
||||
"ckeditor5": "45.2.1",
|
||||
"eslint": "^9.0.0",
|
||||
"eslint-config-ckeditor5": ">=9.1.0",
|
||||
"http-server": "^14.1.0",
|
||||
@ -57,7 +57,7 @@
|
||||
"webdriverio": "^9.0.7"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"ckeditor5": "45.2.0"
|
||||
"ckeditor5": "45.2.1"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "node ./scripts/build-dist.mjs",
|
||||
@ -90,6 +90,6 @@
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@ckeditor/ckeditor5-icons": "45.2.0"
|
||||
"@ckeditor/ckeditor5-icons": "45.2.1"
|
||||
}
|
||||
}
|
||||
|
||||
@ -35,14 +35,14 @@
|
||||
"ckeditor5-metadata.json"
|
||||
],
|
||||
"devDependencies": {
|
||||
"@ckeditor/ckeditor5-dev-build-tools": "43.0.1",
|
||||
"@ckeditor/ckeditor5-dev-build-tools": "43.1.0",
|
||||
"@ckeditor/ckeditor5-inspector": ">=4.1.0",
|
||||
"@ckeditor/ckeditor5-package-tools": "^4.0.0",
|
||||
"@typescript-eslint/eslint-plugin": "~8.35.0",
|
||||
"@typescript-eslint/parser": "^8.0.0",
|
||||
"@vitest/browser": "^3.0.5",
|
||||
"@vitest/coverage-istanbul": "^3.0.5",
|
||||
"ckeditor5": "45.2.0",
|
||||
"ckeditor5": "45.2.1",
|
||||
"eslint": "^9.0.0",
|
||||
"eslint-config-ckeditor5": ">=9.1.0",
|
||||
"http-server": "^14.1.0",
|
||||
@ -56,7 +56,7 @@
|
||||
"webdriverio": "^9.0.7"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"ckeditor5": "45.2.0"
|
||||
"ckeditor5": "45.2.1"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "node ./scripts/build-dist.mjs",
|
||||
|
||||
@ -35,8 +35,8 @@
|
||||
"@triliumnext/ckeditor5-keyboard-marker": "workspace:*",
|
||||
"@triliumnext/ckeditor5-math": "workspace:*",
|
||||
"@triliumnext/ckeditor5-mermaid": "workspace:*",
|
||||
"ckeditor5": "45.2.0",
|
||||
"ckeditor5-premium-features": "45.2.0"
|
||||
"ckeditor5": "45.2.1",
|
||||
"ckeditor5-premium-features": "45.2.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/jquery": "3.5.32"
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/**
|
||||
* https://github.com/TriliumNext/Notes/issues/1002
|
||||
* https://github.com/TriliumNext/Trilium/issues/1002
|
||||
*/
|
||||
|
||||
import { Command, DocumentSelection, Element, Node, Plugin, Range } from 'ckeditor5';
|
||||
@ -11,11 +11,11 @@ export default class MoveBlockUpDownPlugin extends Plugin {
|
||||
editor.commands.add('moveBlockUp', new MoveBlockUpCommand(editor));
|
||||
editor.commands.add('moveBlockDown', new MoveBlockDownCommand(editor));
|
||||
|
||||
// Use native DOM capturing to intercept Ctrl/Alt + ↑/↓,
|
||||
// Use native DOM capturing to intercept Ctrl/Alt + ↑/↓,
|
||||
// as plugin-level keystroke handling may fail when the selection is near an object.
|
||||
this.bindMoveBlockShortcuts(editor);
|
||||
}
|
||||
|
||||
|
||||
bindMoveBlockShortcuts(editor: any) {
|
||||
editor.editing.view.once('render', () => {
|
||||
const domRoot = editor.editing.view.getDomRoot();
|
||||
@ -59,7 +59,7 @@ abstract class MoveBlockUpDownCommand extends Command {
|
||||
if (!isEnabled) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
const movingBlocks = this.offset === 'before'
|
||||
? selectedBlocks
|
||||
: [...selectedBlocks].reverse();
|
||||
@ -104,7 +104,7 @@ abstract class MoveBlockUpDownCommand extends Command {
|
||||
this.scrollToSelection();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
getSelectedBlocks(selection: DocumentSelection) {
|
||||
const blocks = [...selection.getSelectedBlocks()];
|
||||
const resolved: Element[] = [];
|
||||
@ -129,7 +129,7 @@ abstract class MoveBlockUpDownCommand extends Command {
|
||||
// Deduplicate adjacent duplicates (e.g., nested selections resolving to same block)
|
||||
return resolved.filter((blk, idx) => idx === 0 || blk !== resolved[idx - 1]);
|
||||
}
|
||||
|
||||
|
||||
scrollToSelection() {
|
||||
// Ensure scroll happens in sync with DOM updates
|
||||
requestAnimationFrame(() => {
|
||||
|
||||
1907
pnpm-lock.yaml
generated
1907
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@ -23,10 +23,10 @@ const options = {
|
||||
title: "Trilium Notes - Sync server API",
|
||||
version: packageJson["version"],
|
||||
description:
|
||||
"This is the internal sync server API used by Trilium Notes.\n\n_If you're looking for the officially supported External Trilium API, see [here](https://triliumnext.github.io/Docs/Wiki/etapi.html)._\n\nThis page does not yet list all routes. For a full list, see the [route controller](https://github.com/TriliumNext/Notes/blob/v0.91.6/src/routes/routes.ts).",
|
||||
"This is the internal sync server API used by Trilium Notes.\n\n_If you're looking for the officially supported External Trilium API, see [here](https://triliumnext.github.io/Docs/Wiki/etapi.html)._\n\nThis page does not yet list all routes. For a full list, see the [route controller](https://github.com/TriliumNext/Trilium/blob/v0.91.6/src/routes/routes.ts).",
|
||||
contact: {
|
||||
name: "TriliumNext issue tracker",
|
||||
url: "https://github.com/TriliumNext/Notes/issues"
|
||||
url: "https://github.com/TriliumNext/Trilium/issues"
|
||||
},
|
||||
license: {
|
||||
name: "GNU Free Documentation License 1.3 (or later)",
|
||||
@ -159,7 +159,7 @@ console.log("Saved to", outputPath);
|
||||
* type: string
|
||||
* example: "text"
|
||||
* enum: ["text", "code", "render", "file", "image", "search", "relationMap", "book", "noteMap", "mermaid", "canvas", "webView", "launcher", "doc", "contentWidget", "mindMap", "geoMap"]
|
||||
* description: "[Reference list](https://github.com/TriliumNext/Notes/blob/v0.91.6/src/services/note_types.ts)"
|
||||
* description: "[Reference list](https://github.com/TriliumNext/Trilium/blob/v0.91.6/src/services/note_types.ts)"
|
||||
* mime:
|
||||
* type: string
|
||||
* example: "text/html"
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
import { type BrowserContext, chromium } from 'playwright';
|
||||
import { createWriteStream, existsSync, readFileSync, writeFileSync } from 'fs';
|
||||
|
||||
const SOURCE_URL = "https://github.com/TriliumNext/Notes";
|
||||
const SOURCE_URL = "https://github.com/TriliumNext/Trilium";
|
||||
const TARGET_REPOSITORY_ID = 92111509;
|
||||
|
||||
const fsLog = createWriteStream('port-discussions.log', { flags: 'a' });
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user