From cf16e1f60d0bb4325caa8ef33105eba5770d8a3c Mon Sep 17 00:00:00 2001 From: venus Date: Mon, 14 Sep 2026 01:03:23 -0500 Subject: [PATCH] working on obsidian plugin --- server.js | 44 +++++++++++++++++++++++++------------------- 1 file changed, 25 insertions(+), 19 deletions(-) diff --git a/server.js b/server.js index f54ef5c..57b0881 100644 --- a/server.js +++ b/server.js @@ -161,31 +161,37 @@ export function createServer(customSiteDir, customPostsDir, customAssetsDir) { return; } - fs.mkdirSync(postsDir, { recursive: true }); - fs.mkdirSync(assetsDir, { recursive: true }); + try { + fs.mkdirSync(postsDir, { recursive: true }); + fs.mkdirSync(assetsDir, { recursive: true }); - const normalizedContent = normalizeObsidianMarkdown(content); - const targetFilePath = path.join(postsDir, `${cleanSlug}.md`); - fs.writeFileSync(targetFilePath, normalizedContent, "utf-8"); + const normalizedContent = normalizeObsidianMarkdown(content); + const targetFilePath = path.join(postsDir, `${cleanSlug}.md`); + fs.writeFileSync(targetFilePath, normalizedContent, "utf-8"); - if (Array.isArray(assets)) { - for (const asset of assets) { - if (asset && asset.filename && asset.data) { - const cleanName = path.basename(asset.filename).replace(/[^a-zA-Z0-9._-]/g, ""); - if (cleanName) { - const assetPath = path.join(assetsDir, cleanName); - fs.writeFileSync(assetPath, Buffer.from(asset.data, "base64")); + if (Array.isArray(assets)) { + for (const asset of assets) { + if (asset && asset.filename && asset.data) { + const cleanName = path.basename(asset.filename).replace(/[^a-zA-Z0-9._-]/g, ""); + if (cleanName) { + const assetPath = path.join(assetsDir, cleanName); + fs.writeFileSync(assetPath, Buffer.from(asset.data, "base64")); + } } } } - } - res.writeHead(200, { "Content-Type": "application/json" }); - res.end(JSON.stringify({ - status: "published", - slug: cleanSlug, - path: `/posts/${cleanSlug}/` - })); + res.writeHead(200, { "Content-Type": "application/json" }); + res.end(JSON.stringify({ + status: "published", + slug: cleanSlug, + path: `/posts/${cleanSlug}/` + })); + } catch (writeErr) { + console.error("[Ingestion API] Error saving post/assets:", writeErr); + res.writeHead(500, { "Content-Type": "application/json" }); + res.end(JSON.stringify({ error: `Failed to write file to disk: ${writeErr.message}` })); + } }); return; }