Merge branch 'develop' into feat/clean-share-url

pull/1781/head
Jin 2025-06-18 15:52:06 +07:00
commit e8ff80aeee
12 changed files with 541 additions and 331 deletions

@ -38,9 +38,9 @@
"@playwright/test": "1.53.0",
"@stylistic/eslint-plugin": "4.4.1",
"@types/express": "5.0.3",
"@types/node": "22.15.31",
"@types/node": "22.15.32",
"@types/yargs": "17.0.33",
"@vitest/coverage-v8": "3.2.3",
"@vitest/coverage-v8": "3.2.4",
"eslint": "9.29.0",
"eslint-plugin-simple-import-sort": "12.1.1",
"esm": "3.2.25",

@ -0,0 +1,4 @@
# The development license key for premium CKEditor features.
# Note: This key must only be used for the Trilium Notes project.
# Expires on: 2025-09-13
VITE_CKEDITOR_KEY=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE3NTc3MjE1OTksImp0aSI6ImFiN2E0NjZmLWJlZGMtNDNiYy1iMzU4LTk0NGQ0YWJhY2I3ZiIsImRpc3RyaWJ1dGlvbkNoYW5uZWwiOlsic2giLCJkcnVwYWwiXSwid2hpdGVMYWJlbCI6dHJ1ZSwiZmVhdHVyZXMiOlsiRFJVUCIsIkNNVCIsIkRPIiwiRlAiLCJTQyIsIlRPQyIsIlRQTCIsIlBPRSIsIkNDIiwiTUYiLCJTRUUiLCJFQ0giLCJFSVMiXSwidmMiOiI1MzlkOWY5YyJ9.2rvKPql4hmukyXhEtWPZ8MLxKvzPIwzCdykO653g7IxRRZy2QJpeRszElZx9DakKYZKXekVRAwQKgHxwkgbE_w

@ -1,6 +0,0 @@
VITE_CKEDITOR_ENABLE_INSPECTOR=false
# The development license key for premium CKEditor features.
# Note: This key is for development purposes only and should not be used in production.
# Expires on: 2025-09-13
VITE_CKEDITOR_KEY=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE3NTc3MjE1OTksImp0aSI6IjRmMjdkYmYxLTcwOTEtNDYwZi04ZDZmLTc0NzBiZjQwNjg2MCIsImRpc3RyaWJ1dGlvbkNoYW5uZWwiOlsic2giLCJkcnVwYWwiXSwid2hpdGVMYWJlbCI6dHJ1ZSwibGljZW5zZVR5cGUiOiJkZXZlbG9wbWVudCIsImZlYXR1cmVzIjpbIkRSVVAiLCJDTVQiLCJETyIsIkZQIiwiU0MiLCJUT0MiLCJUUEwiLCJQT0UiLCJDQyIsIk1GIiwiU0VFIiwiRUNIIiwiRUlTIl0sInZjIjoiMjMxYzMwNTEifQ.9Ct5lIKbioC3dM8EFatDTmimEIVOdItE3Uh_ICHlS_A_8ueqIfkZpsN3L4_EqprvteNki9yqbuZVGpZTaQ51xg

@ -1,6 +1 @@
VITE_CKEDITOR_ENABLE_INSPECTOR=false
# The development license key for premium CKEditor features.
# Note: This key must only be used for the Trilium Notes project.
# Expires on: 2025-09-13
VITE_CKEDITOR_KEY=eyJhbGciOiJFUzI1NiJ9.eyJleHAiOjE3NTc3MjE1OTksImp0aSI6ImFiN2E0NjZmLWJlZGMtNDNiYy1iMzU4LTk0NGQ0YWJhY2I3ZiIsImRpc3RyaWJ1dGlvbkNoYW5uZWwiOlsic2giLCJkcnVwYWwiXSwid2hpdGVMYWJlbCI6dHJ1ZSwiZmVhdHVyZXMiOlsiRFJVUCIsIkNNVCIsIkRPIiwiRlAiLCJTQyIsIlRPQyIsIlRQTCIsIlBPRSIsIkNDIiwiTUYiLCJTRUUiLCJFQ0giLCJFSVMiXSwidmMiOiI1MzlkOWY5YyJ9.2rvKPql4hmukyXhEtWPZ8MLxKvzPIwzCdykO653g7IxRRZy2QJpeRszElZx9DakKYZKXekVRAwQKgHxwkgbE_w

@ -27,7 +27,7 @@
"@triliumnext/highlightjs": "workspace:*",
"@triliumnext/share-theme": "workspace:*",
"autocomplete.js": "0.38.1",
"bootstrap": "5.3.6",
"bootstrap": "5.3.7",
"boxicons": "2.1.4",
"dayjs": "1.11.13",
"dayjs-plugin-utc": "0.1.2",
@ -48,7 +48,7 @@
"mark.js": "8.11.1",
"marked": "15.0.12",
"mermaid": "11.6.0",
"mind-elixir": "4.6.0",
"mind-elixir": "4.6.1",
"normalize.css": "8.0.1",
"panzoom": "9.4.3",
"preact": "10.26.9",

@ -88,7 +88,7 @@
"multer": "2.0.1",
"normalize-strings": "1.1.1",
"ollama": "0.5.16",
"openai": "5.3.0",
"openai": "5.5.1",
"rand-token": "1.0.1",
"safe-compare": "1.1.4",
"sanitize-filename": "1.6.3",

@ -40,7 +40,7 @@
"@playwright/test": "^1.36.0",
"@triliumnext/server": "workspace:*",
"@types/express": "^5.0.0",
"@types/node": "22.15.31",
"@types/node": "22.15.32",
"@vitest/coverage-v8": "^3.0.5",
"@vitest/ui": "^3.0.0",
"chalk": "5.4.1",

@ -11,31 +11,12 @@ export default defineConfig( {
svg()
],
test: {
browser: {
enabled: true,
name: 'chrome',
provider: 'webdriverio',
providerOptions: {},
headless: true,
ui: false
},
environment: "happy-dom",
include: [
'tests/**/*.[jt]s'
],
globals: true,
watch: false,
passWithNoTests: true,
coverage: {
thresholds: {
lines: 100,
functions: 100,
branches: 100,
statements: 100
},
provider: 'istanbul',
include: [
'src'
]
}
passWithNoTests: true
}
} );

@ -2,6 +2,7 @@ import "ckeditor5/ckeditor5.css";
import "./theme/code_block_toolbar.css";
import { COMMON_PLUGINS, CORE_PLUGINS, POPUP_EDITOR_PLUGINS } from "./plugins";
import { BalloonEditor, DecoupledEditor, FindAndReplaceEditing, FindCommand } from "ckeditor5";
import "./translation_overrides.js";
export { EditorWatchdog } from "ckeditor5";
export type { EditorConfig, MentionFeed, MentionFeedObjectItem, Node, Position, Element, WatchdogConfig } from "ckeditor5";
export type { TemplateDefinition } from "ckeditor5-premium-features";

@ -0,0 +1,8 @@
window.CKEDITOR_TRANSLATIONS = {
en: {
dictionary: {
"Insert template": "Insert text snippet",
"Search template": "Search text snippet"
}
}
};

@ -0,0 +1,37 @@
import { it } from "vitest";
import { describe } from "vitest";
import { ClassicEditor } from "../src/index.js";
import { type BalloonEditor, type ButtonView, type Editor } from "ckeditor5";
import { beforeEach } from "vitest";
import { expect } from "vitest";
describe("Text snippets", () => {
let editorElement: HTMLDivElement;
let editor: Editor;
beforeEach(async () => {
editorElement = document.createElement( 'div' );
document.body.appendChild( editorElement );
console.log("Trigger each");
editor = await ClassicEditor.create(editorElement, {
licenseKey: "GPL",
toolbar: {
items: [
"insertTemplate"
]
}
});
});
it("uses correct translations", () => {
const itemsWithButtonView = Array.from(editor.ui.view.toolbar?.items)
.filter(item => "buttonView" in item)
.map(item => (item.buttonView as ButtonView).label);
expect(itemsWithButtonView).not.toContain("Insert template");
expect(itemsWithButtonView).toContain("Insert text snippet");
});
});

File diff suppressed because it is too large Load Diff