feat: open plaintext assets files in logseq

pull/5878/head
llcc 2022-06-27 15:01:37 +08:00 committed by Gabriel Horner
parent 54c886597c
commit bba9c935e0
2 changed files with 22 additions and 11 deletions

View File

@ -31,7 +31,7 @@
(defn text-formats
[]
#{:json :org :md :yml :dat :asciidoc :rst :txt :markdown :adoc :html :js :ts :edn :clj :ml :rb :ex :erl :java :php :c :css
:excalidraw})
:excalidraw :sh})
(defn img-formats
[]

View File

@ -33,6 +33,7 @@
[frontend.extensions.zotero :as zotero]
[frontend.format.block :as block]
[frontend.format.mldoc :as mldoc]
[frontend.fs :as fs]
[frontend.handler.block :as block-handler]
[frontend.handler.common :as common-handler]
[frontend.handler.dnd :as dnd]
@ -48,20 +49,20 @@
[frontend.security :as security]
[frontend.state :as state]
[frontend.template :as template]
[logseq.graph-parser.text :as text]
[frontend.ui :as ui]
[frontend.util :as util]
[frontend.util.clock :as clock]
[frontend.util.drawer :as drawer]
[frontend.util.text :as text-util]
[frontend.util.property :as property]
[logseq.graph-parser.config :as gp-config]
[logseq.graph-parser.util :as gp-util]
[logseq.graph-parser.mldoc :as gp-mldoc]
[logseq.graph-parser.block :as gp-block]
[frontend.util.text :as text-util]
[goog.dom :as gdom]
[goog.object :as gobj]
[lambdaisland.glogi :as log]
[logseq.graph-parser.block :as gp-block]
[logseq.graph-parser.config :as gp-config]
[logseq.graph-parser.mldoc :as gp-mldoc]
[logseq.graph-parser.text :as text]
[logseq.graph-parser.util :as gp-util]
[medley.core :as medley]
[promesa.core :as p]
[reitit.frontend.easy :as rfe]
@ -271,12 +272,15 @@
(when @src
(let [ext (keyword (util/get-file-ext @src))
repo (state/get-current-repo)
repo-dir (config/get-repo-dir (state/get-current-repo))
path (str (config/get-repo-dir repo) href)
share-fn (fn [event]
(util/stop event)
(when (mobile-util/native-platform?)
(p/let [url (str (config/get-repo-dir (state/get-current-repo)) href)]
(.share Share #js {:url url
:title "Open file with your favorite app"}))))]
(.share Share #js {:url path
:title "Open file with your favorite app"})))]
(cond
(contains? config/audio-formats ext)
(audio-cp @src)
@ -284,13 +288,20 @@
(contains? (gp-config/img-formats) ext)
(resizable-image config title @src metadata full_text true)
(contains? (gp-config/text-formats) ext)
[:a.asset-ref.is-plaintext {:href (rfe/href :file {:path path})
:on-click (fn [_event]
(p/let [result (fs/read-file repo-dir path)]
(db/set-file-content! repo path result )))}
title]
(= ext :pdf)
[:a.asset-ref.is-pdf {:href @src
:on-click share-fn}
title]
:else
[:a.asset-ref.is-doc {:ref @src
[:a.asset-ref.is-doc {:href @src
:on-click share-fn}
title])))))