fix(import/zip): remove nesting of ck-content divs

This commit is contained in:
Elian Doran 2025-03-31 00:58:35 +03:00
parent f32b76d047
commit f3b866fa7b
No known key found for this signature in database
3 changed files with 1140 additions and 1109 deletions

File diff suppressed because it is too large Load Diff

View File

@ -82,4 +82,37 @@ describe("removeTriliumTags", () => {
const expected = `\n<p>Hello world</p>\n`; const expected = `\n<p>Hello world</p>\n`;
expect(output).toEqual(expected); expect(output).toEqual(expected);
}); });
it("removes ckeditor tags from HTML", () => {
const output = removeTriliumTags(trimIndentation`\
<body>
<div class="content">
<h1 data-trilium-h1>21 - Thursday</h1>
<div class="ck-content">
<p>TODO:</p>
<ul class="todo-list">
<li>
<label class="todo-list__label">
<input type="checkbox" disabled="disabled"><span class="todo-list__label__description">&nbsp;&nbsp;</span>
</label>
</li>
</ul>
</div>
</div>
</body>
`).split("\n").filter((l) => l.trim()).join("\n");
const expected = trimIndentation`\
<body>
<p>TODO:</p>
<ul class="todo-list">
<li>
<label class="todo-list__label">
<input type="checkbox" disabled="disabled"><span class="todo-list__label__description">&nbsp;&nbsp;</span>
</label>
</li>
</ul>
</body>`;
expect(output).toEqual(expected);
});
}); });

View File

@ -659,11 +659,17 @@ function resolveNoteType(type: string | undefined): NoteType {
export function removeTriliumTags(content: string) { export function removeTriliumTags(content: string) {
const tagsToRemove = [ const tagsToRemove = [
"<h1 data-trilium-h1>([^<]*)<\/h1>", "<h1 data-trilium-h1>([^<]*)<\/h1>",
"<title data-trilium-title>([^<]*)<\/title>"]; "<title data-trilium-title>([^<]*)<\/title>"
];
for (const tag of tagsToRemove) { for (const tag of tagsToRemove) {
let re = new RegExp(tag, "gi"); let re = new RegExp(tag, "gi");
content = content.replace(re, ""); content = content.replace(re, "");
} }
// Remove ckeditor tags
content = content.replace(/<div class="ck-content">(.*)<\/div>/gms, "$1");
content = content.replace(/<div class="content">(.*)<\/div>/gms, "$1");
return content; return content;
} }