From 5dcd7a74ca6b74d3680be6a33f8e35ff5ecec0d2 Mon Sep 17 00:00:00 2001 From: Tom Moor Date: Fri, 14 Jul 2023 21:46:31 -0400 Subject: [PATCH] fix: Remove no longer required unescaping, closes #5555 --- server/models/helpers/DocumentHelper.tsx | 3 +-- server/models/helpers/SearchHelper.ts | 3 +-- shared/utils/parseTitle.test.ts | 5 ----- shared/utils/parseTitle.ts | 6 +----- shared/utils/unescape.ts | 4 ---- 5 files changed, 3 insertions(+), 18 deletions(-) delete mode 100644 shared/utils/unescape.ts diff --git a/server/models/helpers/DocumentHelper.tsx b/server/models/helpers/DocumentHelper.tsx index c4e520980..ad734f94f 100644 --- a/server/models/helpers/DocumentHelper.tsx +++ b/server/models/helpers/DocumentHelper.tsx @@ -13,7 +13,6 @@ import { getCurrentTimeAsString, unicodeCLDRtoBCP47, } from "@shared/utils/date"; -import unescape from "@shared/utils/unescape"; import { parser, schema } from "@server/editor"; import { trace } from "@server/logging/tracing"; import type Document from "@server/models/Document"; @@ -83,7 +82,7 @@ export default class DocumentHelper { * @returns The document title and content as a Markdown string */ static toMarkdown(document: Document | Revision) { - const text = unescape(document.text); + const text = document.text.replace(/\n\\\n/g, "\n\n"); if (document.version) { return `# ${document.title}\n\n${text}`; diff --git a/server/models/helpers/SearchHelper.ts b/server/models/helpers/SearchHelper.ts index 1ad8415fe..6ac8c2e76 100644 --- a/server/models/helpers/SearchHelper.ts +++ b/server/models/helpers/SearchHelper.ts @@ -4,7 +4,6 @@ import { find, map } from "lodash"; import queryParser from "pg-tsquery"; import { Op, QueryTypes, WhereOptions } from "sequelize"; import { DateFilter } from "@shared/types"; -import unescape from "@shared/utils/unescape"; import { sequelize } from "@server/database/sequelize"; import Collection from "@server/models/Collection"; import Document from "@server/models/Document"; @@ -410,7 +409,7 @@ export default class SearchHelper { return { results: map(results, (result) => ({ ranking: result.searchRanking, - context: removeMarkdown(unescape(result.searchContext), { + context: removeMarkdown(result.searchContext, { stripHTML: false, }), document: find(documents, { diff --git a/shared/utils/parseTitle.test.ts b/shared/utils/parseTitle.test.ts index 94153ae48..c0af2ba03 100644 --- a/shared/utils/parseTitle.test.ts +++ b/shared/utils/parseTitle.test.ts @@ -6,11 +6,6 @@ it("should trim the title", () => { it("should extract first title", () => { expect(parseTitle(`# Title one\n# Title two`).title).toBe("Title one"); }); -it("should remove escape characters", () => { - expect(parseTitle(`# Thing \\- one`).title).toBe("Thing - one"); - expect(parseTitle(`# \\[wip\\] Title`).title).toBe("[wip] Title"); - expect(parseTitle(`# \\> Title`).title).toBe("> Title"); -}); it("should parse emoji if first character", () => { const parsed = parseTitle(`# 😀 Title`); expect(parsed.title).toBe("😀 Title"); diff --git a/shared/utils/parseTitle.ts b/shared/utils/parseTitle.ts index e3bed8d65..e3cb4ecd2 100644 --- a/shared/utils/parseTitle.ts +++ b/shared/utils/parseTitle.ts @@ -1,15 +1,11 @@ import emojiRegex from "emoji-regex"; -import unescape from "./unescape"; export default function parseTitle(text = "") { const regex = emojiRegex(); // find and extract title const firstLine = text.trim().split(/\r?\n/)[0]; - const trimmedTitle = firstLine.replace(/^#/, "").trim(); - - // remove any escape characters - const title = unescape(trimmedTitle); + const title = firstLine.replace(/^#/, "").trim(); // find and extract first emoji const matches = regex.exec(title); diff --git a/shared/utils/unescape.ts b/shared/utils/unescape.ts deleted file mode 100644 index 5de2587f4..000000000 --- a/shared/utils/unescape.ts +++ /dev/null @@ -1,4 +0,0 @@ -const unescape = (text: string) => - text.replace(/\\([\\`*{}[\]()#+\-.!_>])/g, "$1").replace(/\n\\\n/g, "\n\n"); - -export default unescape;