#94 maybe a fix, idk not tested

This commit is contained in:
Moritz Jung 2023-05-29 19:46:09 +02:00
parent e48963487b
commit cb97b57d02
3 changed files with 2154 additions and 1660 deletions

3802
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,4 +1,4 @@
import { ButtonComponent, MarkdownRenderer, Modal, Setting } from 'obsidian';
import {ButtonComponent, Component, MarkdownRenderer, Modal, Setting} from 'obsidian';
import MediaDbPlugin from 'src/main';
import { MediaTypeModel } from 'src/models/MediaTypeModel';
import { PREVIEW_MODAL_DEFAULT_OPTIONS, PreviewModalData, PreviewModalOptions } from '../utils/ModalHelper';
@ -13,6 +13,7 @@ export class MediaDbPreviewModal extends Modal {
title: string;
cancelButton: ButtonComponent;
submitButton: ButtonComponent;
markdownComponent: Component;
submitCallback: (previewModalData: PreviewModalData) => void;
closeCallback: (err?: Error) => void;
@ -26,6 +27,8 @@ export class MediaDbPreviewModal extends Modal {
this.title = previewModalOptions.modalTitle;
this.elements = previewModalOptions.elements;
this.createNoteOptions = previewModalOptions.createNoteOptions;
this.markdownComponent = new Component();
}
setSubmitCallback(submitCallback: (previewModalData: PreviewModalData) => void): void {
@ -51,7 +54,9 @@ export class MediaDbPreviewModal extends Modal {
let fileContent = await this.plugin.generateMediaDbNoteContents(result, this.createNoteOptions);
fileContent = `\n${fileContent}\n`;
MarkdownRenderer.renderMarkdown(fileContent, fileDiv, null, null);
this.markdownComponent.load();
MarkdownRenderer.renderMarkdown(fileContent, fileDiv, null, this.markdownComponent);
}
contentEl.createDiv({ cls: 'media-db-plugin-spacer' });
@ -77,6 +82,7 @@ export class MediaDbPreviewModal extends Modal {
}
onClose(): void {
this.markdownComponent.unload();
this.closeCallback();
}
}

View file

@ -19,7 +19,7 @@ export class YAMLConverter {
} else if (typeof value === 'number') {
return value.toString();
} else if (typeof value === 'string') {
return '"' + value + '"';
return '"' + value.replace("\"", "\\\"") + '"';
} else if (typeof value === 'object') {
let output = '';