mirror of
https://github.com/logseq/logseq.git
synced 2026-05-02 18:06:32 +00:00
@@ -1186,16 +1186,35 @@
|
||||
|
||||
(defn copy-block-refs
|
||||
[]
|
||||
(when-let [blocks (seq (get-selected-blocks-with-children))]
|
||||
(let [ids (->> (distinct (map #(when-let [id (dom/attr % "blockid")]
|
||||
(uuid id)) blocks))
|
||||
(remove nil?))
|
||||
ids-str (some->> ids
|
||||
(map (fn [id] (util/format "((%s))" id)))
|
||||
(string/join "\n\n"))]
|
||||
(doseq [id ids]
|
||||
(set-block-id! id))
|
||||
(util/copy-to-clipboard! ids-str))))
|
||||
(when-let [selected-blocks (seq (get-selected-blocks-with-children))]
|
||||
(let [blocks (->> (distinct (map #(when-let [id (dom/attr % "blockid")]
|
||||
(let [level (dom/attr % "level")]
|
||||
{:id (uuid id)
|
||||
:level (int level)}))
|
||||
selected-blocks))
|
||||
(remove nil?))
|
||||
first-block (first blocks)
|
||||
first-root-level-index (ffirst
|
||||
(filter (fn [[_ block]] (= (:level block) 1))
|
||||
(map-indexed vector blocks)))
|
||||
adjusted-blocks (map-indexed (fn [index {:keys [id level]}]
|
||||
{:id id
|
||||
:level (if (and (< index first-root-level-index))
|
||||
(inc (- level (:level first-block)))
|
||||
level)})
|
||||
blocks)
|
||||
block (db/pull [:block/uuid (:id first-block)])
|
||||
copy-str (some->> adjusted-blocks
|
||||
(map (fn [{:keys [id level]}]
|
||||
(condp = (:block/format block)
|
||||
:org
|
||||
(util/format (str (string/join (repeat level "*")) " ((%s))") id)
|
||||
:markdown
|
||||
(util/format (str (string/join (repeat (dec level) "\t")) "- ((%s))") id))))
|
||||
(string/join "\n\n"))]
|
||||
(doseq [block blocks]
|
||||
(set-block-id! (:id block)))
|
||||
(util/copy-to-clipboard! copy-str))))
|
||||
|
||||
(defn copy-block-embeds
|
||||
[]
|
||||
|
||||
Reference in New Issue
Block a user