Fix the bug where note revisions cannot be previewed.

This commit is contained in:
SiriusXT 2025-03-11 16:24:35 +08:00
parent 1a54b8f5a5
commit 4b269c2859

View File

@ -188,6 +188,7 @@ export default class RevisionsDialog extends BasicWidget {
} }
async loadRevisions(noteId: string) { async loadRevisions(noteId: string) {
this.$title.empty();
this.$list.empty(); this.$list.empty();
this.$content.empty(); this.$content.empty();
this.$titleButtons.empty(); this.$titleButtons.empty();
@ -305,14 +306,14 @@ export default class RevisionsDialog extends BasicWidget {
} }
} else if (revisionItem.type === "code") { } else if (revisionItem.type === "code") {
this.$content.html($("<pre>") this.$content.html($("<pre>")
.text(fullRevision.content).html()); .text(fullRevision.content).prop("outerHTML"));
} else if (revisionItem.type === "image") { } else if (revisionItem.type === "image") {
if (fullRevision.mime === "image/svg+xml") { if (fullRevision.mime === "image/svg+xml") {
let encodedSVG = encodeURIComponent(fullRevision.content); //Base64 of other format images may be embedded in svg let encodedSVG = encodeURIComponent(fullRevision.content); //Base64 of other format images may be embedded in svg
this.$content.html($("<img>") this.$content.html($("<img>")
.attr("src", `data:${fullRevision.mime};utf8,${encodedSVG}`) .attr("src", `data:${fullRevision.mime};utf8,${encodedSVG}`)
.css("max-width", "100%") .css("max-width", "100%")
.css("max-height", "100%").html()); .css("max-height", "100%").prop("outerHTML"));
} else { } else {
this.$content.html( this.$content.html(
$("<img>") $("<img>")
@ -321,7 +322,7 @@ export default class RevisionsDialog extends BasicWidget {
.attr("src", `data:${fullRevision.mime};base64,${fullRevision.content}`) .attr("src", `data:${fullRevision.mime};base64,${fullRevision.content}`)
.css("max-width", "100%") .css("max-width", "100%")
.css("max-height", "100%") .css("max-height", "100%")
.html() .prop("outerHTML")
); );
} }
} else if (revisionItem.type === "file") { } else if (revisionItem.type === "file") {
@ -340,7 +341,7 @@ export default class RevisionsDialog extends BasicWidget {
); );
} }
this.$content.html($table.html()); this.$content.html($table.prop("outerHTML"));
} else if (["canvas", "mindMap"].includes(revisionItem.type)) { } else if (["canvas", "mindMap"].includes(revisionItem.type)) {
const encodedTitle = encodeURIComponent(revisionItem.title); const encodedTitle = encodeURIComponent(revisionItem.title);
@ -348,7 +349,7 @@ export default class RevisionsDialog extends BasicWidget {
$("<img>") $("<img>")
.attr("src", `api/revisions/${revisionItem.revisionId}/image/${encodedTitle}?${Math.random()}`) .attr("src", `api/revisions/${revisionItem.revisionId}/image/${encodedTitle}?${Math.random()}`)
.css("max-width", "100%") .css("max-width", "100%")
.html()); .prop("outerHTML"));
} else if (revisionItem.type === "mermaid") { } else if (revisionItem.type === "mermaid") {
const encodedTitle = encodeURIComponent(revisionItem.title); const encodedTitle = encodeURIComponent(revisionItem.title);
@ -356,7 +357,7 @@ export default class RevisionsDialog extends BasicWidget {
$("<img>") $("<img>")
.attr("src", `api/revisions/${revisionItem.revisionId}/image/${encodedTitle}?${Math.random()}`) .attr("src", `api/revisions/${revisionItem.revisionId}/image/${encodedTitle}?${Math.random()}`)
.css("max-width", "100%") .css("max-width", "100%")
.html()); .prop("outerHTML"));
this.$content.append($("<pre>").text(fullRevision.content)); this.$content.append($("<pre>").text(fullRevision.content));
} else { } else {