Skip to content

Commit 72b7eb8

Browse files
Merge pull request #50 from AB1908/master
Fix MediaDB note updates so that they preserve content
2 parents 2f0c15c + 3a73df6 commit 72b7eb8

File tree

1 file changed

+20
-14
lines changed

1 file changed

+20
-14
lines changed

src/main.ts

Lines changed: 20 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -185,23 +185,29 @@ export default class MediaDbPlugin extends Plugin {
185185
async createMediaDbNoteFromModel(mediaTypeModel: MediaTypeModel, attachFile?: TFile): Promise<void> {
186186
try {
187187
console.log('MDB | Creating new note...');
188-
// console.log(mediaTypeModel);
189188

190-
let fileMetadata = this.modelPropertyMapper.convertObject(mediaTypeModel.toMetaDataObject());
191-
let fileContent = '';
192-
193-
({fileMetadata, fileContent} = await this.attachFile(fileMetadata, fileContent, attachFile));
194-
({fileMetadata, fileContent} = await this.attachTemplate(fileMetadata, fileContent, await this.mediaTypeManager.getTemplate(mediaTypeModel, this.app)));
195-
196-
fileContent = `---\n${this.settings.useCustomYamlStringifier ? YAMLConverter.toYaml(fileMetadata) : stringifyYaml(fileMetadata)}---\n` + fileContent;
189+
let fileContent = await this.generateMediaDbNoteContents(mediaTypeModel, attachFile);
197190

191+
console.log("Inside createMediaDbNote", fileContent)
198192
await this.createNote(this.mediaTypeManager.getFileName(mediaTypeModel), fileContent);
199193
} catch (e) {
200194
console.warn(e);
201195
new Notice(e.toString());
202196
}
203197
}
204198

199+
private async generateMediaDbNoteContents(mediaTypeModel: MediaTypeModel, attachFile: TFile) {
200+
let fileMetadata = this.modelPropertyMapper.convertObject(mediaTypeModel.toMetaDataObject());
201+
let fileContent = '';
202+
203+
({ fileMetadata, fileContent } = await this.attachFile(fileMetadata, fileContent, attachFile));
204+
console.log("Inside createYAML", attachFile);
205+
({ fileMetadata, fileContent } = await this.attachTemplate(fileMetadata, fileContent, await this.mediaTypeManager.getTemplate(mediaTypeModel, this.app)));
206+
207+
fileContent = `---\n${this.settings.useCustomYamlStringifier ? YAMLConverter.toYaml(fileMetadata) : stringifyYaml(fileMetadata)}---` + fileContent;
208+
return fileContent;
209+
}
210+
205211
async attachFile(fileMetadata: any, fileContent: string, fileToAttach?: TFile): Promise<{ fileMetadata: any, fileContent: string }> {
206212
if (!fileToAttach) {
207213
return {fileMetadata: fileMetadata, fileContent: fileContent};
@@ -219,7 +225,8 @@ export default class MediaDbPlugin extends Plugin {
219225
let attachFileContent: string = await this.app.vault.read(fileToAttach);
220226
const regExp = new RegExp('^(---)\\n[\\s\\S]*\\n---');
221227
attachFileContent = attachFileContent.replace(regExp, '');
222-
fileContent += '\n' + attachFileContent;
228+
fileContent += attachFileContent;
229+
console.log("Inside attachfile", fileContent)
223230

224231
return {fileMetadata: fileMetadata, fileContent: fileContent};
225232
}
@@ -234,7 +241,7 @@ export default class MediaDbPlugin extends Plugin {
234241

235242
const regExp = new RegExp('^(---)\\n[\\s\\S]*\\n---');
236243
const attachFileContent = template.replace(regExp, '');
237-
fileContent += '\n' + attachFileContent;
244+
fileContent += attachFileContent;
238245

239246
return {fileMetadata: fileMetadata, fileContent: fileContent};
240247
}
@@ -331,8 +338,7 @@ export default class MediaDbPlugin extends Plugin {
331338
newMediaTypeModel = Object.assign(oldMediaTypeModel, newMediaTypeModel.getWithOutUserData());
332339

333340
console.log('MDB | deleting old entry');
334-
await this.app.vault.delete(activeFile);
335-
await this.createMediaDbNoteFromModel(newMediaTypeModel);
341+
await this.createMediaDbNoteFromModel(newMediaTypeModel, activeFile);
336342
}
337343

338344
async createEntriesFromFolder(folder: TFolder) {
@@ -347,7 +353,7 @@ export default class MediaDbPlugin extends Plugin {
347353

348354
for (const child of folder.children) {
349355
if (child instanceof TFile) {
350-
const file = child as TFile;
356+
const file: TFile = child;
351357
if (canceled) {
352358
erroredFiles.push({filePath: file.path, error: 'user canceled'});
353359
continue;
@@ -426,7 +432,7 @@ export default class MediaDbPlugin extends Plugin {
426432
const filePath = `${this.settings.folder.replace(/\/$/, '')}/${title}.md`;
427433

428434
const table = [['file', 'error']].concat(erroredFiles.map(x => [x.filePath, x.error]));
429-
// console.log(table)
435+
430436
let fileContent = `# ${title}\n\n${markdownTable(table)}`;
431437

432438
const targetFile = await this.app.vault.create(filePath, fileContent);

0 commit comments

Comments
 (0)