mirror of https://github.com/logseq/logseq
Add built-in marker pages
parent
e9c4691feb
commit
41625296b5
|
@ -239,7 +239,7 @@
|
||||||
(count prefix))))))
|
(count prefix))))))
|
||||||
|
|
||||||
(def marker-pattern
|
(def marker-pattern
|
||||||
#"(NOW|LATER|TODO|DOING|DONE|WAIT|CANCELED|STARTED|IN-PROGRESS)?\s?")
|
#"(NOW|LATER|TODO|DOING|DONE|WAIT|WAITING|CANCELED|STARTED|IN-PROGRESS)?\s?")
|
||||||
|
|
||||||
(defmethod handle-step :editor/set-marker [[_ marker] format]
|
(defmethod handle-step :editor/set-marker [[_ marker] format]
|
||||||
(when-let [input-id (state/get-edit-input-id)]
|
(when-let [input-id (state/get-edit-input-id)]
|
||||||
|
|
|
@ -856,7 +856,7 @@
|
||||||
:group-by-page? true)
|
:group-by-page? true)
|
||||||
{:style {:margin-top "0.25rem"
|
{:style {:margin-top "0.25rem"
|
||||||
:margin-left "0.25rem"}})
|
:margin-left "0.25rem"}})
|
||||||
[:div.text-sm "Empty"])]))
|
[:div.text-sm.mt-2 "Empty"])]))
|
||||||
|
|
||||||
(rum/defc admonition
|
(rum/defc admonition
|
||||||
[config type options result]
|
[config type options result]
|
||||||
|
|
|
@ -75,7 +75,7 @@
|
||||||
(hiccup/custom-query {:start-level 2} {:query-title title}
|
(hiccup/custom-query {:start-level 2} {:query-title title}
|
||||||
query)])]))))
|
query)])]))))
|
||||||
|
|
||||||
(reference/references title false)]))
|
(reference/references title false false)]))
|
||||||
|
|
||||||
(rum/defc journals <
|
(rum/defc journals <
|
||||||
[latest-journals]
|
[latest-journals]
|
||||||
|
|
|
@ -61,10 +61,20 @@
|
||||||
page-name)
|
page-name)
|
||||||
page (db/entity repo [:page/name page-name])
|
page (db/entity repo [:page/name page-name])
|
||||||
file (:page/file page)]
|
file (:page/file page)]
|
||||||
(if (and sidebar? file (empty? raw-page-headings))
|
(cond
|
||||||
|
(db/marker-page? page-name)
|
||||||
|
[:div
|
||||||
|
[:h1.title
|
||||||
|
(string/upper-case page-name)]
|
||||||
|
[:div.ml-2
|
||||||
|
(reference/references page-name false true)]]
|
||||||
|
|
||||||
|
(and sidebar? file (empty? raw-page-headings))
|
||||||
(do
|
(do
|
||||||
(state/sidebar-remove-block! (:sidebar/idx option))
|
(state/sidebar-remove-block! (:sidebar/idx option))
|
||||||
[:div.text-sm "Empty"])
|
[:div.text-sm "Empty"])
|
||||||
|
|
||||||
|
:else
|
||||||
(let [file-path (and (:db/id file) (:file/path (db/entity repo (:db/id file))))
|
(let [file-path (and (:db/id file) (:file/path (db/entity repo (:db/id file))))
|
||||||
content (db/get-file-no-sub repo file-path)
|
content (db/get-file-no-sub repo file-path)
|
||||||
page-headings (db/with-dummy-heading raw-page-headings format
|
page-headings (db/with-dummy-heading raw-page-headings format
|
||||||
|
@ -185,7 +195,7 @@
|
||||||
query)])])))
|
query)])])))
|
||||||
|
|
||||||
;; referenced headings
|
;; referenced headings
|
||||||
(reference/references page-name false)]))))
|
(reference/references page-name false false)]))))
|
||||||
|
|
||||||
(rum/defc all-pages < rum/reactive
|
(rum/defc all-pages < rum/reactive
|
||||||
[]
|
[]
|
||||||
|
|
|
@ -13,13 +13,15 @@
|
||||||
[frontend.db :as db]))
|
[frontend.db :as db]))
|
||||||
|
|
||||||
(rum/defc references < rum/reactive
|
(rum/defc references < rum/reactive
|
||||||
[page-or-tag-name tag?]
|
[page-or-tag-name tag? marker?]
|
||||||
(when page-or-tag-name
|
(when page-or-tag-name
|
||||||
(let [heading? (util/uuid-string? page-or-tag-name)
|
(let [heading? (util/uuid-string? page-or-tag-name)
|
||||||
heading-id (and heading? (uuid page-or-tag-name))
|
heading-id (and heading? (uuid page-or-tag-name))
|
||||||
page-or-tag-name (string/lower-case page-or-tag-name)
|
page-or-tag-name (string/lower-case page-or-tag-name)
|
||||||
encoded-page-or-tag-name (util/url-encode page-or-tag-name)
|
encoded-page-or-tag-name (util/url-encode page-or-tag-name)
|
||||||
ref-headings (cond
|
ref-headings (cond
|
||||||
|
marker?
|
||||||
|
(db/get-marker-headings (state/get-current-repo) page-or-tag-name)
|
||||||
tag?
|
tag?
|
||||||
(db/get-tag-referenced-headings page-or-tag-name)
|
(db/get-tag-referenced-headings page-or-tag-name)
|
||||||
heading-id
|
heading-id
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
(when-let [tag (get-tag state)]
|
(when-let [tag (get-tag state)]
|
||||||
[:div.tag
|
[:div.tag
|
||||||
[:h1.title (str "#" tag)]
|
[:h1.title (str "#" tag)]
|
||||||
(reference/references tag true)]))
|
(reference/references tag true false)]))
|
||||||
|
|
||||||
(defn render-graph
|
(defn render-graph
|
||||||
[state]
|
[state]
|
||||||
|
|
|
@ -770,19 +770,45 @@
|
||||||
sorted (sort-by-pos result)]
|
sorted (sort-by-pos result)]
|
||||||
(with-repo repo-url sorted)))
|
(with-repo repo-url sorted)))
|
||||||
|
|
||||||
|
(defn marker-page?
|
||||||
|
[page]
|
||||||
|
(contains?
|
||||||
|
#{"NOW" "LATER" "TODO" "DOING"
|
||||||
|
"DONE" "WAIT" "WAITING" "CANCELED" "STARTED" "IN-PROGRESS"}
|
||||||
|
(string/upper-case page)))
|
||||||
|
|
||||||
|
(defn get-marker-headings
|
||||||
|
[repo-url marker]
|
||||||
|
(let [marker (string/upper-case marker)]
|
||||||
|
(some->>
|
||||||
|
(q repo-url [:marker/headings marker]
|
||||||
|
{:use-cache? true}
|
||||||
|
'[:find (pull ?h [*])
|
||||||
|
:in $ ?marker
|
||||||
|
:where
|
||||||
|
[?h :heading/marker ?m]
|
||||||
|
[(= ?marker ?m)]]
|
||||||
|
marker)
|
||||||
|
react
|
||||||
|
seq-flatten
|
||||||
|
sort-by-pos
|
||||||
|
(with-repo repo-url)
|
||||||
|
(group-by-page))))
|
||||||
|
|
||||||
(defn get-page-headings
|
(defn get-page-headings
|
||||||
[repo-url page]
|
[repo-url page]
|
||||||
(let [page-id (:db/id (entity repo-url [:page/name page]))]
|
(let [page (string/lower-case page)]
|
||||||
(some->
|
(let [page-id (:db/id (entity repo-url [:page/name page]))]
|
||||||
(q repo-url [:page/headings page-id]
|
(some->
|
||||||
{:use-cache? true
|
(q repo-url [:page/headings page-id]
|
||||||
:transform-fn #(page-headings-transform repo-url %)}
|
{:use-cache? true
|
||||||
'[:find (pull ?heading [*])
|
:transform-fn #(page-headings-transform repo-url %)}
|
||||||
:in $ ?page-id
|
'[:find (pull ?heading [*])
|
||||||
:where
|
:in $ ?page-id
|
||||||
[?heading :heading/page ?page-id]]
|
:where
|
||||||
page-id)
|
[?heading :heading/page ?page-id]]
|
||||||
react)))
|
page-id)
|
||||||
|
react))))
|
||||||
|
|
||||||
(defn heading-and-children-transform
|
(defn heading-and-children-transform
|
||||||
[result repo-url heading-uuid level]
|
[result repo-url heading-uuid level]
|
||||||
|
|
Loading…
Reference in New Issue