diff --git a/src/main/frontend/components/block.cljs b/src/main/frontend/components/block.cljs index 142c82a2b8..b7a532c272 100644 --- a/src/main/frontend/components/block.cljs +++ b/src/main/frontend/components/block.cljs @@ -370,7 +370,7 @@ [e block href] (let [href (if-let [url (:logseq.property.asset/external-url block)] (if (string/starts-with? url "zotero://") - (pdf-assets/get-zotero-local-pdf-path (:logseq.property.asset/external-file-name block)) + (pdf-assets/get-zotero-local-pdf-path (:logseq.property.asset/external-file-name block) :id (last (string/split url #"/"))) url) href)] (when-let [s (or href (some-> (.-target e) (.-dataset) (.-href)))] diff --git a/src/main/frontend/extensions/pdf/assets.cljs b/src/main/frontend/extensions/pdf/assets.cljs index 9ff9728bf1..1aeb2b5754 100644 --- a/src/main/frontend/extensions/pdf/assets.cljs +++ b/src/main/frontend/extensions/pdf/assets.cljs @@ -199,14 +199,20 @@ :owner-window (pdf-windows/resolve-own-window viewer))))) (defn get-zotero-local-pdf-path - [path] + [path & {:keys [id]}] (let [zotero-config (get-in (state/sub-config) [:zotero/settings-v2 "default"]) zotero-data-directory (:zotero-data-directory zotero-config) zotero-linked-attachment-base-directory (:zotero-linked-attachment-base-directory zotero-config) relative-path (subs path 14)] - (if (string/starts-with? path "zotero-link://") - (str zotero-linked-attachment-base-directory "/" relative-path) - (str zotero-data-directory "/storage/" relative-path)))) + (cond + (string/starts-with? path "zotero-link://") + (str "file://" (util/node-path.join zotero-linked-attachment-base-directory relative-path)) + + (string/starts-with? path "zotero-path://") + (str "file://" (util/node-path.join zotero-data-directory "storage" relative-path)) + + :else ;; compatible with commit 33db791 + (str "file://" (util/node-path.join zotero-data-directory "storage" id path))))) (defn db-based-open-block-ref! [block]