#!/usr/bin/env node // Patches the extracted Obsidian asar for browser use: // 1. Removes Content-Security-Policy meta tag // 2. Injects shim-loader.js script (non-deferred, before all other scripts) // 3. Injects favicon link const fs = require("fs"); const path = require("path"); const asarDir = process.argv[2]; if (!asarDir) { console.error("Usage: node patch-obsidian.js "); process.exit(1); } function patchHtml(filePath) { if (!fs.existsSync(filePath)) { console.warn(`[patch] Skipping (not found): ${filePath}`); return; } let html = fs.readFileSync(filePath, "utf-8"); // Remove CSP meta tag html = html.replace( /\s*]*>\s*/g, "\n", ); // Inject favicon into html = html.replace( "", ' \n', ); // Inject ignis-ui and shim-loader before the first \n' + '\n' + '