From 88e00370ee05d68edf4d3691656ed20ca08e2bab Mon Sep 17 00:00:00 2001 From: sid597 Date: Wed, 19 Aug 2026 23:16:40 +0530 Subject: [PATCH] ENG-2154 Undecorate Obsidian node titles into core_title on publish --- apps/obsidian/src/utils/conceptConversion.ts | 6 ++++++ apps/obsidian/src/utils/syncDgNodesToSupabase.ts | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/apps/obsidian/src/utils/conceptConversion.ts b/apps/obsidian/src/utils/conceptConversion.ts index 339311234..931ff36ab 100644 --- a/apps/obsidian/src/utils/conceptConversion.ts +++ b/apps/obsidian/src/utils/conceptConversion.ts @@ -10,6 +10,7 @@ import type { DiscourseNodeInVault } from "./getDiscourseNodes"; import type { LocalConceptDataInput } from "@repo/database/inputTypes"; import type { ObsidianDiscourseNodeData } from "./syncDgNodesToSupabase"; import type { Json } from "@repo/database/dbTypes"; +import { extractContentFromTitle } from "./extractContentFromTitle"; /** * Get extra data (author, timestamps) from file metadata @@ -160,12 +161,17 @@ export const discourseRelationTripleSchemaToLocalConcept = ({ export const discourseNodeInstanceToLocalConcept = ( context: SupabaseContext, nodeData: ObsidianDiscourseNodeData, + nodeTypesById: Record, ): LocalConceptDataInput => { const extraData = getNodeExtraData(nodeData.file, context.userId); const { nodeInstanceId, nodeTypeId, importedFromRid, ...otherData } = nodeData.frontmatter; const literal_content: Record = { label: nodeData.file.basename, + core_title: extractContentFromTitle( + nodeTypesById[nodeData.nodeTypeId]?.format ?? "", + nodeData.file.basename, + ), source_data: otherData as unknown as Json, }; if (importedFromRid && typeof importedFromRid === "string") diff --git a/apps/obsidian/src/utils/syncDgNodesToSupabase.ts b/apps/obsidian/src/utils/syncDgNodesToSupabase.ts index 9eb73e40a..d3d0f80ba 100644 --- a/apps/obsidian/src/utils/syncDgNodesToSupabase.ts +++ b/apps/obsidian/src/utils/syncDgNodesToSupabase.ts @@ -594,7 +594,7 @@ const convertDgToSupabaseConcepts = async ({ .filter((n) => !!n); const nodeInstanceToLocalConcepts = nodesSince.map((node) => { - return discourseNodeInstanceToLocalConcept(context, node); + return discourseNodeInstanceToLocalConcept(context, node, nodeTypesById); }); const relationInstancesData = await loadRelations(plugin);