fix: 🐛 fix mark.js load error

This commit is contained in:
Jin 2025-03-29 00:51:36 +01:00
parent 534c146542
commit 608378193f
5 changed files with 30 additions and 10 deletions

17
package-lock.json generated
View File

@ -182,6 +182,7 @@
"rimraf": "6.0.1", "rimraf": "6.0.1",
"sass": "1.86.0", "sass": "1.86.0",
"sass-loader": "16.0.5", "sass-loader": "16.0.5",
"script-loader": "0.7.2",
"split.js": "1.6.5", "split.js": "1.6.5",
"supertest": "7.1.0", "supertest": "7.1.0",
"svg-pan-zoom": "3.6.2", "svg-pan-zoom": "3.6.2",
@ -18035,6 +18036,12 @@
"node": ">=0.6" "node": ">=0.6"
} }
}, },
"node_modules/raw-loader": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz",
"integrity": "sha512-sf7oGoLuaYAScB4VGr0tzetsYlS8EJH6qnTCfQ/WVEa89hALQ4RQfCKt5xCyPQKPDUbVUAIP1QsxAwfAjlDp7Q==",
"dev": true
},
"node_modules/rc": { "node_modules/rc": {
"version": "1.2.8", "version": "1.2.8",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
@ -19096,6 +19103,16 @@
"url": "https://opencollective.com/webpack" "url": "https://opencollective.com/webpack"
} }
}, },
"node_modules/script-loader": {
"version": "0.7.2",
"resolved": "https://registry.npmjs.org/script-loader/-/script-loader-0.7.2.tgz",
"integrity": "sha512-UMNLEvgOAQuzK8ji8qIscM3GIrRCWN6MmMXGD4SD5l6cSycgGsCo0tX5xRnfQcoghqct0tjHjcykgI1PyBE2aA==",
"dev": true,
"license": "MIT",
"dependencies": {
"raw-loader": "~0.5.1"
}
},
"node_modules/semver": { "node_modules/semver": {
"version": "7.7.1", "version": "7.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz",

View File

@ -238,6 +238,7 @@
"rimraf": "6.0.1", "rimraf": "6.0.1",
"sass": "1.86.0", "sass": "1.86.0",
"sass-loader": "16.0.5", "sass-loader": "16.0.5",
"script-loader": "0.7.2",
"split.js": "1.6.5", "split.js": "1.6.5",
"supertest": "7.1.0", "supertest": "7.1.0",
"svg-pan-zoom": "3.6.2", "svg-pan-zoom": "3.6.2",

View File

@ -5,8 +5,6 @@ import utils from "../services/utils.js";
import appContext from "../components/app_context.js"; import appContext from "../components/app_context.js";
import type FindWidget from "./find.js"; import type FindWidget from "./find.js";
import type { FindResult } from "./find.js"; import type { FindResult } from "./find.js";
import 'mark.js';
import 'mark.js/dist/jquery.mark.es6.min.js';
const FIND_RESULT_SELECTED_CSS_CLASSNAME = "ck-find-result_selected"; const FIND_RESULT_SELECTED_CSS_CLASSNAME = "ck-find-result_selected";
const FIND_RESULT_CSS_CLASSNAME = "ck-find-result"; const FIND_RESULT_CSS_CLASSNAME = "ck-find-result";
@ -24,6 +22,8 @@ export default class FindInHtml {
} }
async performFind(searchTerm: string, matchCase: boolean, wholeWord: boolean) { async performFind(searchTerm: string, matchCase: boolean, wholeWord: boolean) {
await import("script-loader!mark.js/dist/jquery.mark.min.js");
const $content = await this.parent?.noteContext?.getContentElement(); const $content = await this.parent?.noteContext?.getContentElement();
const wholeWordChar = wholeWord ? "\\b" : ""; const wholeWordChar = wholeWord ? "\\b" : "";

View File

@ -6,8 +6,6 @@ import treeService from "../../services/tree.js";
import utils from "../../services/utils.js"; import utils from "../../services/utils.js";
import type FNote from "../../entities/fnote.js"; import type FNote from "../../entities/fnote.js";
import ViewMode, { type ViewModeArgs } from "./view_mode.js"; import ViewMode, { type ViewModeArgs } from "./view_mode.js";
import 'mark.js';
import 'mark.js/dist/jquery.mark.es6.min.js';
const TPL = ` const TPL = `
<div class="note-list"> <div class="note-list">
@ -217,6 +215,8 @@ class ListOrGridView extends ViewMode {
const highlightedTokens = this.parentNote.highlightedTokens || []; const highlightedTokens = this.parentNote.highlightedTokens || [];
if (highlightedTokens.length > 0) { if (highlightedTokens.length > 0) {
await import("script-loader!mark.js/dist/jquery.mark.min.js");
const regex = highlightedTokens.map((token) => utils.escapeRegExp(token)).join("|"); const regex = highlightedTokens.map((token) => utils.escapeRegExp(token)).join("|");
this.highlightRegex = new RegExp(regex, "gi"); this.highlightRegex = new RegExp(regex, "gi");
@ -268,12 +268,12 @@ class ListOrGridView extends ViewMode {
i === this.page i === this.page
? $("<span>").text(i).css("text-decoration", "underline").css("font-weight", "bold") ? $("<span>").text(i).css("text-decoration", "underline").css("font-weight", "bold")
: $('<a href="javascript:">') : $('<a href="javascript:">')
.text(i) .text(i)
.attr("title", `Page of ${startIndex} - ${endIndex}`) .attr("title", `Page of ${startIndex} - ${endIndex}`)
.on("click", () => { .on("click", () => {
this.page = i; this.page = i;
this.renderList(); this.renderList();
}), }),
" &nbsp; " " &nbsp; "
); );
} else if (lastPrinted) { } else if (lastPrinted) {

2
src/types.d.ts vendored
View File

@ -30,3 +30,5 @@ declare module "is-animated" {
function isAnimated(buffer: Buffer): boolean; function isAnimated(buffer: Buffer): boolean;
export default isAnimated; export default isAnimated;
} }
declare module "script-loader!mark.js/dist/jquery.mark.min.js";