My Public Brain

logseq-query

page-type

Topic

CLI tool for querying your Logseq graphs

Jots

Install it with your preferred Node.js tool manager

volta install @logseq/nbb-logseq

List all your graphs with lq graphs

:name :path
logseqorg C:\Users\brian/.logseq/graphs/logseq_local_C+3A+++Users++brian++Dropbox++Documents++logseqorg.transit
logseq.md C:\Users\brian/.logseq/graphs/logseq_local_C+3A+++Users++brian++Dropbox++logseq.md.transit
logseq C:\Users\brian/.logseq/graphs/logseq_local_C+3A+++Users++brian++logseq.transit
my-logseq-brain C:\Users\brian/.logseq/graphs/logseq_local_C+3A+++Users++brian++my-logseq-brain.transit
logseq-dendron C:\Users\brian/.logseq/graphs/logseq_local_C+3A+++Users++brian++Projects++logseq-dendron.transit
my-logseq-graph C:\Users\brian/.logseq/graphs/logseq_local_C+3A+++Users++brian++Projects++my-logseq-graph.transit
logseq-katamari C:\Users\brian/.logseq/graphs/logseq_local_C+3A+++Users++brian++Sync++logseq-katamari.transit

Set your preferred graph in ~/.lq/config.edn

{:default-options {:graph "my-logseq-brain"}}

Figuring out the queries

lq q has-property public works

[{:block/properties-text-values
  {:page-type "[[Workflow]]", :public "true"},
  :block/pre-block? true,
  :block/uuid #uuid "6439754c-593b-4ae5-bc78-edc7048bcfcb",
  :block/invalid-properties #{},
  :block/properties {:page-type #{"Workflow"}, :public true},
  :block/journal? false,
  :block/left #:db{:id 29},
  :block/refs [#:db{:id 78} #:db{:id 79}],
  :block/format :markdown,
  :block/content "page-type:: [[Workflow]]\npublic:: true",
  :db/id 77,
  :block/path-refs [#:db{:id 29} #:db{:id 78} #:db{:id 79}],
  :block/parent #:db{:id 29},
  :block/unordered true,
  :block/page #:db{:id 29}}
 ; ...
]

lq q property public true and lq q property public "true" do not work.

What I’ve learned so far: practice your queries directly in Logseq and once you’re happy with the results, incorporate the query into your CLI workflow via lq

Related

GitHub - cldwalker/logseq-query