From 6f1295f137b5f90766d9dda3c5c4b9e020be8ee5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20G=C3=B3mez=20Bermejo?= Date: Sun, 8 Jan 2023 17:23:27 +0100 Subject: [PATCH 1/2] partially support mobile --- src/services/EditEngineService.ts | 39 +++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/src/services/EditEngineService.ts b/src/services/EditEngineService.ts index 27a435c8..edab62b1 100644 --- a/src/services/EditEngineService.ts +++ b/src/services/EditEngineService.ts @@ -1,6 +1,6 @@ import { RowDataType, TableColumn } from "cdm/FolderModel"; import { LocalSettings } from "cdm/SettingsModel"; -import { TFile } from "obsidian"; +import { requireApiVersion, TFile } from "obsidian"; import { LOGGER } from "services/Logger"; import { ParseService } from "services/ParseService"; import { InputType, UpdateRowOptions } from "helpers/Constants"; @@ -10,6 +10,8 @@ import { EditionError, showDBError } from "errors/ErrorTypes"; import obtainRowDatabaseFields from "parsers/FileToRowDatabaseFields"; import { EditArguments } from "cdm/ServicesModel"; import NoteContentActionBuilder from "patterns/builders/NoteContentActionBuilder"; +import { parseFrontmatterFieldsToString } from "parsers/RowDatabaseFieldsToFile"; +import { hasFrontmatter } from "helpers/VaultManagement"; class EditEngine { private static instance: EditEngine; @@ -109,6 +111,7 @@ class EditEngine { const content = await VaultManagerDB.obtainContentFromTfile(file); const frontmatterKeys = VaultManagerDB.obtainFrontmatterKeys(content); const rowFields = obtainRowDatabaseFields(file, columns, frontmatterKeys); + const contentHasFrontmatter = hasFrontmatter(content); const column = columns.find( c => c.key === (UpdateRowOptions.COLUMN_KEY === option ? newValue : columnId) ); @@ -157,18 +160,30 @@ class EditEngine { } async function persistFrontmatter(deletedColumn?: string): Promise { - await app.fileManager.processFrontMatter(file, (frontmatter) => { - frontmatter[columnId] = ParseService.parseLiteral( - rowFields.frontmatter[columnId], - InputType.MARKDOWN, - ddbbConfig - ); - - if (deletedColumn) { - delete frontmatter[deletedColumn]; - } - }); + if (requireApiVersion("1.1.1")) { + await app.fileManager.processFrontMatter(file, (frontmatter) => { + frontmatter[columnId] = ParseService.parseLiteral( + rowFields.frontmatter[columnId], + InputType.MARKDOWN, + ddbbConfig + ); + if (deletedColumn) { + delete frontmatter[deletedColumn]; + } + }); + } else { + const frontmatterGroupRegex = contentHasFrontmatter ? /^---[\s\S]+?---\n*/g : /(^[\s\S]*$)/g; + const frontmatterFieldsText = parseFrontmatterFieldsToString(rowFields, ddbbConfig, deletedColumn); + const newContent = contentHasFrontmatter ? `${frontmatterFieldsText}\n` : `${frontmatterFieldsText ? frontmatterFieldsText.concat('\n') : frontmatterFieldsText}$1`; + const builder = new NoteContentActionBuilder() + .setContent(content) + .setFile(file) + .addRegExp(frontmatterGroupRegex) + .addRegExpNewValue(newContent) + .build(); + await VaultManagerDB.editNoteContent(builder); + } } /******************************************************************************************* From 86ca437cddb2e80acf4c6ec318be5cee57d824d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20G=C3=B3mez=20Bermejo?= Date: Sun, 8 Jan 2023 17:27:24 +0100 Subject: [PATCH 2/2] partially support mobile --- manifest-beta.json | 2 +- manifest.json | 4 ++-- package-lock.json | 4 ++-- package.json | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/manifest-beta.json b/manifest-beta.json index a7ad29c1..742fc69f 100644 --- a/manifest-beta.json +++ b/manifest-beta.json @@ -1,7 +1,7 @@ { "id": "dbfolder", "name": "DB Folder", - "version": "3.0.1", + "version": "3.2.3", "minAppVersion": "1.0.3", "description": "Folder with the capability to store and retrieve data from a folder like database", "author": "RafaelGB", diff --git a/manifest.json b/manifest.json index fc4bbf59..8b4cc79c 100644 --- a/manifest.json +++ b/manifest.json @@ -1,8 +1,8 @@ { "id": "dbfolder", "name": "DB Folder", - "version": "3.2.2", - "minAppVersion": "1.1.1", + "version": "3.2.3", + "minAppVersion": "1.0.3", "description": "Folder with the capability to store and retrieve data from a folder like database", "author": "RafaelGB", "authorUrl": "https://github.com/RafaelGB/obsidian-bd-folder", diff --git a/package-lock.json b/package-lock.json index e4a815e5..fb3dd28e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "obsidian-dbfolder", - "version": "3.2.2", + "version": "3.2.3", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "obsidian-dbfolder", - "version": "3.2.2", + "version": "3.2.3", "license": "MIT", "dependencies": { "@emotion/styled": "11.10.5", diff --git a/package.json b/package.json index 0cca0bc6..816a3eab 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "obsidian-dbfolder", - "version": "3.2.2", + "version": "3.2.3", "description": "This is a sample plugin for Obsidian (https://obsidian.md)", "main": "main.js", "scripts": {