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

View file

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