diff --git a/package.json b/package.json
index 30d53c44f52..bd29653051c 100644
--- a/package.json
+++ b/package.json
@@ -45,7 +45,7 @@
"css:build": "postcss tailwind.all.css -o static/css/style.css --verbose --env production",
"css:watch": "TAILWIND_MODE=watch postcss tailwind.all.css -o static/css/style.css --verbose --watch",
"cljs:watch": "clojure -M:cljs watch parser-worker app electron",
- "cljs:electron-watch": "clojure -M:cljs watch parser-worker app electron",
+ "cljs:electron-watch": "PWD=$(pwd) PATCH_PARSER_WORKER=$(cat \"./templates/patch.parser.woker.js\" | sed -e \"s#PWD_ROOT#${PWD}#g\") clojure -M:cljs watch parser-worker app electron",
"cljs:release": "clojure -M:cljs release parser-worker app publishing electron",
"cljs:test": "clojure -M:test compile test",
"cljs:run-test": "node static/tests.js",
diff --git a/resources/index.html b/resources/index.html
new file mode 100644
index 00000000000..44faadf0073
--- /dev/null
+++ b/resources/index.html
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Logseq: A privacy-first platform for knowledge management and collaboration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/electron/electron/core.cljs b/src/electron/electron/core.cljs
index d9322b8c24a..c053308c8a4 100644
--- a/src/electron/electron/core.cljs
+++ b/src/electron/electron/core.cljs
@@ -15,14 +15,16 @@
[clojure.core.async :as async]
[electron.state :as state]))
-(defonce PLUGIN_SCHEME "lsp")
-(defonce PLUGIN_PROTOCOL (str PLUGIN_SCHEME "://"))
-(defonce PLUGIN_URL (str PLUGIN_PROTOCOL "logseq.io/"))
+(defonce LSP_SCHEME "lsp")
+(defonce LSP_PROTOCOL (str LSP_SCHEME "://"))
+(defonce PLUGIN_URL (str LSP_PROTOCOL "logseq.io/"))
+(defonce STATIC_URL (str LSP_PROTOCOL "logseq.com/"))
(defonce PLUGINS_ROOT (.join path (.homedir os) ".logseq/plugins"))
(def ROOT_PATH (path/join js/__dirname ".."))
(def MAIN_WINDOW_ENTRY (if dev?
- "http://localhost:3001"
+ ;;"http://localhost:3001"
+ (str "file://" (path/join js/__dirname "index.html"))
(str "file://" (path/join js/__dirname "electron.html"))))
(defonce *setup-fn (volatile! nil))
@@ -78,17 +80,21 @@
(callback #js {:path path}))))
(.registerFileProtocol
- protocol PLUGIN_SCHEME
+ protocol LSP_SCHEME
(fn [^js request callback]
(let [url (.-url request)
- path' (string/replace url PLUGIN_URL "")
+ [URL ROOT] (if (string/starts-with? url PLUGIN_URL)
+ [PLUGIN_URL PLUGINS_ROOT]
+ [STATIC_URL js/__dirname])
+
+ path' (string/replace url URL "")
path' (js/decodeURIComponent path')
- path' (.join path PLUGINS_ROOT path')]
+ path' (.join path ROOT path')]
(callback #js {:path path'}))))
#(do
- (.unregisterProtocol protocol PLUGIN_SCHEME)
+ (.unregisterProtocol protocol LSP_SCHEME)
(.unregisterProtocol protocol "assets")))
(defn- handle-export-publish-assets [_event html custom-css-path repo-path asset-filenames]
@@ -223,7 +229,7 @@
(.quit app))
(do
(.registerSchemesAsPrivileged
- protocol (bean/->js [{:scheme PLUGIN_SCHEME
+ protocol (bean/->js [{:scheme LSP_SCHEME
:privileges {:standard true
:secure true
:supportFetchAPI true}}]))
diff --git a/src/main/frontend/util/pool.cljs b/src/main/frontend/util/pool.cljs
index 54ea4e89aba..1430339eddc 100644
--- a/src/main/frontend/util/pool.cljs
+++ b/src/main/frontend/util/pool.cljs
@@ -12,7 +12,7 @@
([]
(create-parser-pool! 8))
([num]
- (p/let [static-path (if (and (util/electron?) (not config/dev?))
+ (p/let [static-path (if (util/electron?)
(ipc/ipc :getDirname)
"/static")]
(Pool.
diff --git a/templates/patch.parser.woker.js b/templates/patch.parser.woker.js
new file mode 100644
index 00000000000..f0be5c41933
--- /dev/null
+++ b/templates/patch.parser.woker.js
@@ -0,0 +1,6 @@
+const originImportScripts = globalThis.importScripts
+const importScripts = (url) => {
+ originImportScripts(
+ (location.href.startsWith('blob') ? 'file://PWD_ROOT/static/js/' : '') + url
+ )
+};;
\ No newline at end of file