mirror of
https://github.com/zadam/trilium.git
synced 2025-06-06 18:08:33 +02:00
fix thumbnails with chinese titles, closes #4478
This commit is contained in:
parent
10f3df3ed4
commit
ad74952194
5
package-lock.json
generated
5
package-lock.json
generated
@ -1,12 +1,11 @@
|
|||||||
{
|
{
|
||||||
"name": "trilium",
|
"name": "trilium",
|
||||||
"version": "0.62.1-beta",
|
"version": "0.62.2",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "trilium",
|
"version": "0.62.2",
|
||||||
"version": "0.62.1-beta",
|
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "AGPL-3.0-only",
|
"license": "AGPL-3.0-only",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -117,14 +117,14 @@ async function renderCode(note, $renderedContent) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function renderImage(entity, $renderedContent, options = {}) {
|
function renderImage(entity, $renderedContent, options = {}) {
|
||||||
const sanitizedTitle = entity.title.replace(/[^a-z0-9-.]/gi, "");
|
const encodedTitle = encodeURIComponent(entity.title);
|
||||||
|
|
||||||
let url;
|
let url;
|
||||||
|
|
||||||
if (entity instanceof FNote) {
|
if (entity instanceof FNote) {
|
||||||
url = `api/images/${entity.noteId}/${sanitizedTitle}?${Math.random()}`;
|
url = `api/images/${entity.noteId}/${encodedTitle}?${Math.random()}`;
|
||||||
} else if (entity instanceof FAttachment) {
|
} else if (entity instanceof FAttachment) {
|
||||||
url = `api/attachments/${entity.attachmentId}/image/${sanitizedTitle}?${entity.utcDateModified}">`;
|
url = `api/attachments/${entity.attachmentId}/image/${encodedTitle}?${entity.utcDateModified}">`;
|
||||||
}
|
}
|
||||||
|
|
||||||
$renderedContent // styles needed for the zoom to work well
|
$renderedContent // styles needed for the zoom to work well
|
||||||
|
@ -274,16 +274,16 @@ export default class RevisionsDialog extends BasicWidget {
|
|||||||
|
|
||||||
this.$content.html($table);
|
this.$content.html($table);
|
||||||
} else if (revisionItem.type === 'canvas') {
|
} else if (revisionItem.type === 'canvas') {
|
||||||
const sanitizedTitle = revisionItem.title.replace(/[^a-z0-9-.]/gi, "");
|
const encodedTitle = encodeURIComponent(revisionItem.title);
|
||||||
|
|
||||||
this.$content.html($("<img>")
|
this.$content.html($("<img>")
|
||||||
.attr("src", `api/revisions/${revisionItem.revisionId}/image/${sanitizedTitle}?${Math.random()}`)
|
.attr("src", `api/revisions/${revisionItem.revisionId}/image/${encodedTitle}?${Math.random()}`)
|
||||||
.css("max-width", "100%"));
|
.css("max-width", "100%"));
|
||||||
} else if (revisionItem.type === 'mermaid') {
|
} else if (revisionItem.type === 'mermaid') {
|
||||||
const sanitizedTitle = revisionItem.title.replace(/[^a-z0-9-.]/gi, "");
|
const encodedTitle = encodeURIComponent(revisionItem.title);
|
||||||
|
|
||||||
this.$content.html($("<img>")
|
this.$content.html($("<img>")
|
||||||
.attr("src", `api/revisions/${revisionItem.revisionId}/image/${sanitizedTitle}?${Math.random()}`)
|
.attr("src", `api/revisions/${revisionItem.revisionId}/image/${encodedTitle}?${Math.random()}`)
|
||||||
.css("max-width", "100%"));
|
.css("max-width", "100%"));
|
||||||
|
|
||||||
this.$content.append($("<pre>").text(fullRevision.content));
|
this.$content.append($("<pre>").text(fullRevision.content));
|
||||||
|
@ -365,8 +365,8 @@ export default class EditableTextTypeWidget extends AbstractTextTypeWidget {
|
|||||||
const note = await froca.getNote(noteId);
|
const note = await froca.getNote(noteId);
|
||||||
|
|
||||||
this.watchdog.editor.model.change( writer => {
|
this.watchdog.editor.model.change( writer => {
|
||||||
const sanitizedTitle = note.title.replace(/[^a-z0-9-.]/gi, "");
|
const encodedTitle = encodeURIComponent(note.title);
|
||||||
const src = `api/images/${note.noteId}/${sanitizedTitle}`;
|
const src = `api/images/${note.noteId}/${encodedTitle}`;
|
||||||
|
|
||||||
const imageElement = writer.createElement( 'image', { 'src': src } );
|
const imageElement = writer.createElement( 'image', { 'src': src } );
|
||||||
|
|
||||||
|
@ -153,7 +153,9 @@ function processContent(images, note, content) {
|
|||||||
const buffer = Buffer.from(dataUrl.split(",")[1], 'base64');
|
const buffer = Buffer.from(dataUrl.split(",")[1], 'base64');
|
||||||
|
|
||||||
const attachment = imageService.saveImageToAttachment(note.noteId, buffer, filename, true);
|
const attachment = imageService.saveImageToAttachment(note.noteId, buffer, filename, true);
|
||||||
const sanitizedTitle = attachment.title.replace(/[^a-z0-9-.]/gi, "");
|
|
||||||
|
// We might want to replace with escape-html. For non-latin-based languages, this doesn't work well.
|
||||||
|
const sanitizedTitle = attachment.title.replace(/[^a-z0-9-.]/gi, "") || "attachment";
|
||||||
const url = `api/attachments/${attachment.attachmentId}/image/${sanitizedTitle}`;
|
const url = `api/attachments/${attachment.attachmentId}/image/${sanitizedTitle}`;
|
||||||
|
|
||||||
log.info(`Replacing '${imageId}' with '${url}' in note '${note.noteId}'`);
|
log.info(`Replacing '${imageId}' with '${url}' in note '${note.noteId}'`);
|
||||||
|
@ -303,7 +303,8 @@ function importEnex(taskContext, file, parentNote) {
|
|||||||
|
|
||||||
const attachment = imageService.saveImageToAttachment(noteEntity.noteId, resource.content, originalName, taskContext.data.shrinkImages);
|
const attachment = imageService.saveImageToAttachment(noteEntity.noteId, resource.content, originalName, taskContext.data.shrinkImages);
|
||||||
|
|
||||||
const sanitizedTitle = attachment.title.replace(/[^a-z0-9-.]/gi, "");
|
// We might want to replace with escape-html. For non-latin-based languages, this doesn't work well.
|
||||||
|
const sanitizedTitle = attachment.title.replace(/[^a-z0-9-.]/gi, "") || "attachment";
|
||||||
const url = `api/attachments/${attachment.attachmentId}/image/${sanitizedTitle}`;
|
const url = `api/attachments/${attachment.attachmentId}/image/${sanitizedTitle}`;
|
||||||
const imageLink = `<img src="${url}">`;
|
const imageLink = `<img src="${url}">`;
|
||||||
|
|
||||||
|
@ -529,7 +529,8 @@ function downloadImages(noteId, content) {
|
|||||||
const imageService = require('../services/image');
|
const imageService = require('../services/image');
|
||||||
const attachment = imageService.saveImageToAttachment(noteId, imageBuffer, "inline image", true, true);
|
const attachment = imageService.saveImageToAttachment(noteId, imageBuffer, "inline image", true, true);
|
||||||
|
|
||||||
const sanitizedTitle = attachment.title.replace(/[^a-z0-9-.]/gi, "");
|
// We might want to replace with escape-html. For non-latin-based languages, this doesn't work well.
|
||||||
|
const sanitizedTitle = attachment.title.replace(/[^a-z0-9-.]/gi, "") || "attachment";
|
||||||
|
|
||||||
content = `${content.substr(0, imageMatch.index)}<img src="api/attachments/${attachment.attachmentId}/image/${sanitizedTitle}"${content.substr(imageMatch.index + imageMatch[0].length)}`;
|
content = `${content.substr(0, imageMatch.index)}<img src="api/attachments/${attachment.attachmentId}/image/${sanitizedTitle}"${content.substr(imageMatch.index + imageMatch[0].length)}`;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user