mirror of
https://github.com/logseq/logseq.git
synced 2026-04-24 22:25:01 +00:00
Fix: broken linked references (#6105)
* enhance: clicking the refresh button if a query is slow * fix: skip running slow queries if there's no need to refresh * fix: linked reference filtering does not work on TASK items close #1669 * fix: each block should have its own page as a reference when query page references * fix: references * fix: non consecutive blocks in query result and filtered linked references * simplify filters logic * fix: ref numbers * Save both :block/refs and :block/path-refs for different usage * fix: block refs * enhance: move scheduled and deadlines to its own ns * linked references performance tweaks * mouse hover filters icon to expand the collapsed linked refs * perf: react/refresh! once instead twice * enhance: compute flashcards every hour instead of every 5s * feat: macros as blocks * feat: flashcards list * fix: refed pages count * fix: can't select in linked references * fix: block editing on linked refs * perf: editing in linked references * enhance: update srs cards number when clicking flashcards * Add a test for the case fixed in #6100 * Address feedbacks from Gabriel * fix: Block Ref Indicator is missing from the references-blocks class close #5375 * fix: referenced pages * fix: page refs * fix: Using filters pushed the title property to the second block close #5845 Co-authored-by: Gabriel Horner <gabriel@logseq.com>
This commit is contained in:
@@ -15,7 +15,8 @@
|
||||
(defn extract-blocks
|
||||
"Wrapper around logseq.graph-parser.block/extract-blocks that adds in system state
|
||||
and handles unexpected failure."
|
||||
[blocks content with-id? format]
|
||||
[blocks content format {:keys [with-id?]
|
||||
:or {with-id? true}}]
|
||||
(try
|
||||
(gp-block/extract-blocks blocks content with-id? format
|
||||
{:user-config (state/get-config)
|
||||
@@ -38,25 +39,15 @@ and handles unexpected failure."
|
||||
(defn parse-block
|
||||
([block]
|
||||
(parse-block block nil))
|
||||
([{:block/keys [uuid content page format] :as block} {:keys [with-id?]
|
||||
([{:block/keys [uuid content format] :as block} {:keys [with-id?]
|
||||
:or {with-id? true}}]
|
||||
(when-not (string/blank? content)
|
||||
(let [block (dissoc block :block/pre-block?)
|
||||
ast (format/to-edn content format nil)
|
||||
blocks (extract-blocks ast content with-id? format)
|
||||
blocks (extract-blocks ast content format {:with-id? with-id?})
|
||||
new-block (first blocks)
|
||||
parent-refs (->> (db/get-block-parent (state/get-current-repo) uuid)
|
||||
:block/path-refs
|
||||
(map :db/id))
|
||||
{:block/keys [refs]} new-block
|
||||
ref-pages (filter :block/name refs)
|
||||
path-ref-pages (->> (concat ref-pages parent-refs [(:db/id page)])
|
||||
(remove nil?))
|
||||
block (cond->
|
||||
(merge
|
||||
block
|
||||
new-block
|
||||
{:block/path-refs path-ref-pages})
|
||||
(merge block new-block)
|
||||
(> (count blocks) 1)
|
||||
(assoc :block/warning :multiple-blocks))
|
||||
block (dissoc block :block/title :block/body :block/level)]
|
||||
|
||||
Reference in New Issue
Block a user