mirror of https://github.com/logseq/logseq
fix(dev): import cljs runtime scripts for parser worker base on file://
parent
655dd0beae
commit
c4a92c2657
|
@ -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",
|
||||
|
|
|
@ -0,0 +1,61 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta content="minimum-scale=1, initial-scale=1, width=device-width, shrink-to-fit=no" name="viewport">
|
||||
<link href="./css/style.css" rel="stylesheet" type="text/css">
|
||||
<link href="./img/logo.png" rel="shortcut icon" type="image/png">
|
||||
<link href="./img/logo.png" rel="shortcut icon" sizes="192x192">
|
||||
<link href="./img/logo.png" rel="apple-touch-icon">
|
||||
<meta content="Logseq" name="apple-mobile-web-app-title">
|
||||
<meta content="yes" name="apple-mobile-web-app-capable">
|
||||
<meta content="yes" name="apple-touch-fullscreen">
|
||||
<meta content="black-translucent" name="apple-mobile-web-app-status-bar-style">
|
||||
<meta content="yes" name="mobile-web-app-capable">
|
||||
<meta content="summary" name="twitter:card">
|
||||
<meta content="A privacy-first, open-source platform for knowledge management and collaboration." name="twitter:description">
|
||||
<meta content="@logseq" name="twitter:site">
|
||||
<meta content="A privacy-first, open-source platform for knowledge management and collaboration." name="twitter:title">
|
||||
<meta content="https://asset.logseq.com/static/img/logo.png" name="twitter:image:src">
|
||||
<meta content="A privacy-first, open-source platform for knowledge management and collaboration." name="twitter:image:alt">
|
||||
<meta content="A privacy-first, open-source platform for knowledge management and collaboration." property="og:title">
|
||||
<meta content="site" property="og:type">
|
||||
<meta content="https://logseq.com" property="og:url">
|
||||
<meta content="https://asset.logseq.com/static/img/logo.png" property="og:image">
|
||||
<meta content="A privacy-first, open-source platform for knowledge management and collaboration." property="og:description">
|
||||
<title>Logseq: A privacy-first platform for knowledge management and collaboration</title>
|
||||
<meta content="logseq" property="og:site_name">
|
||||
<meta content="A privacy-first, open-source platform for knowledge management and collaboration." name="description">
|
||||
</head>
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
<script>window.__LSP__HOST__ = true</script>
|
||||
<script>window.user = null</script>
|
||||
<script>
|
||||
window.EXCALIDRAW_ASSET_PATH = "./js/";
|
||||
</script>
|
||||
<script src="./js/magic_portal.js"></script>
|
||||
<script>let worker = new Worker('./js/worker.js')
|
||||
const portal = new MagicPortal(worker);
|
||||
(async () => {
|
||||
const git = await portal.get('git')
|
||||
window.git = git
|
||||
const fs = await portal.get('fs')
|
||||
window.fs = fs
|
||||
const pfs = await portal.get('pfs')
|
||||
window.pfs = pfs
|
||||
const gitHttp = await portal.get('gitHttp')
|
||||
window.gitHttp = gitHttp
|
||||
const workerThread = await portal.get('workerThread')
|
||||
window.workerThread = workerThread
|
||||
})()
|
||||
</script>
|
||||
<script defer src="./js/highlight.min.js"></script>
|
||||
<script defer src="./js/interact.min.js"></script>
|
||||
<script defer src="./js/lsplugin.core.js"></script>
|
||||
<script defer src="./js/main.js"></script>
|
||||
<script defer src="./js/code-editor.js"></script>
|
||||
<script defer src="./js/age-encryption.js"></script>
|
||||
<script defer src="./js/excalidraw.js"></script>
|
||||
</body>
|
||||
</html>
|
|
@ -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}}]))
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
const originImportScripts = globalThis.importScripts
|
||||
const importScripts = (url) => {
|
||||
originImportScripts(
|
||||
(location.href.startsWith('blob') ? 'file://PWD_ROOT/static/js/' : '') + url
|
||||
)
|
||||
};;
|
Loading…
Reference in New Issue