Logseq
Logseq is a knowledge management and collaboration platform. It focuses on privacy, longevity, and user control. It is Free Libre Open Source Software (AGPL-licensed).
Logseq offers a range of powerful tools for knowledge management, collaboration, PDF annotation, and task management with support for multiple file formats, including Markdown and Org-mode, and various features for organizing and structuring your notes.
Logseq's Whiteboard feature lets you organize your knowledge and ideas using a spatial canvas with shapes, drawings, website embeds, and connectors. You can visually group and link your notes and external media (such as videos and images), enabling visual thinkers to compose, remix, annotate, and connect content from their knowledge base and emerging thoughts in a new way.
In addition to its core features, Logseq has a growing ecosystem of plugins and themes that enable a wide range of workflows and customization options. Mobile apps are also available, providing access to most of the features of the desktop application. Whether you're a student, a professional, or anyone who values a clear and organized approach to managing your ideas and notes, Logseq is an excellent choice for anyone looking to improve their productivity and streamline their workflow.
view the rest of the comments
I'm no expert in advanced queries, but just to note that you could make things simpler (well, shorter at least) by using a regex to handle all those starts-with lines.
This selects all pages that don't start with 0-9 or @:
You could also extend the regex to handle the "includes _ or -" bit too:
@Deebster I also found this website pretty cool to help me visualize what a regex does. https://regex-vis.com/
@[email protected] looks good! I am fluent in regex and SQL and I know some Clojure, but these datalog queries are still a bit of mystery to me... that's the thing I need to visualise!
I did a lot of tinkering around recently to get an advanced query working for me which ended up being quite tricky to work through. I have Project pages (eg
[[12335]]
) and on journal pages I have job note blocks for specific jobs ie#12335 Notes
with a:job
property so the block title can change if needed. There are multiple levels of notes / subnotes / tasks here and I was attempting to do the below query before I learned or-join, but the query was fragile & failing if tasks weren't at a specific indent level. I ended up spending a Sunday afternoon deep diving into this stuff to figure this out.:where
represents the same value across all clauses.[(get ?prop :job) ?job]
[(contains? #{"TODO" "WAITING" "DOING"} ?marker)]
.