diff --git a/esbuild.config.mjs b/esbuild.config.mjs index 4c0a1cb..f85614d 100644 --- a/esbuild.config.mjs +++ b/esbuild.config.mjs @@ -5,9 +5,11 @@ import esbuildSvelte from "esbuild-svelte"; import { sveltePreprocess } from "svelte-preprocess"; import dotenv from "dotenv"; import dotenvExpand from "dotenv-expand"; -import manifest from "./manifest.json" with { type: "json" }; -import fs from "fs/promises"; +import fs from "fs"; import path from "path"; +import { execSync } from "child_process"; + +const manifest = JSON.parse(fs.readFileSync("manifest.json", "utf8")); const env = dotenv.config(); dotenvExpand.expand(env); @@ -35,6 +37,14 @@ if (outDir[0] === "~") { outDir = path.join(process.env.HOME, outDir.slice(1)); } +const commitHash = execSync("git rev-parse --short HEAD"); +const devManifest = { + ...manifest, + id: `${manifest.id}-dev`, + name: `${manifest.name} (Dev)`, + version: `dev-${commitHash}`, +}; + const context = await esbuild.context({ banner: { js: banner, @@ -47,29 +57,37 @@ const context = await esbuild.context({ compilerOptions: { dev: !prod }, }), { - name: 'copy-plugin', + name: "copy-plugin", setup(build) { - build.onEnd(async () => { + build.onEnd(() => { try { - await fs.copyFile(new URL('./manifest.json', import.meta.url), path.resolve(outDir, 'manifest.json')); + console.log("Writing manifest.json"); + fs.writeFileSync( + path.resolve(outDir, "manifest.json"), + JSON.stringify(prod ? manifest : devManifest) + ); } catch (e) { - console.error('Failed to rename file:', e); + console.error("Failed to rename file:", e); } }); }, }, { - name: 'rename-plugin', + name: "rename-plugin", setup(build) { build.onEnd(async () => { try { - await fs.rename(path.resolve(outDir, 'main.css'), path.resolve(outDir, 'styles.css')); + console.log("Renaming main.css to styles.css"); + fs.renameSync( + path.resolve(outDir, "main.css"), + path.resolve(outDir, "styles.css") + ); } catch (e) { - console.error('Failed to rename file:', e); + console.error("Failed to rename file:", e); } }); }, - } + }, ], external: [ "obsidian", @@ -93,7 +111,7 @@ const context = await esbuild.context({ sourcemap: prod ? false : "inline", treeShaking: true, outdir: outDir, - minify: prod + minify: prod, }); if (prod) { diff --git a/package.json b/package.json index 2525fa0..1049175 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "obsidian-sample-plugin", "version": "1.0.0", - "description": "This is a sample plugin for Obsidian (https://obsidian.md)", + "description": "Simplifies tracking your reading progress and managing your book collection in Obsidian.", "main": "main.js", "scripts": { "dev": "node esbuild.config.mjs", diff --git a/src/ui/code-blocks/ReadingLogCodeBlockView.svelte b/src/ui/code-blocks/ReadingLogCodeBlockView.svelte index ae50d10..e8cce85 100644 --- a/src/ui/code-blocks/ReadingLogCodeBlockView.svelte +++ b/src/ui/code-blocks/ReadingLogCodeBlockView.svelte @@ -168,6 +168,7 @@ +