Showing preview only (3,423K chars total). Download the full file or copy to clipboard to get everything.
Repository: logseq/docs
Branch: master
Commit: 107237ba14ff
Files: 356
Total size: 3.2 MB
Directory structure:
gitextract_8azhvacr/
├── .github/
│ └── workflows/
│ ├── gh-pages.yml
│ └── test.yml
├── .gitignore
├── .graph-validator/
│ ├── config.edn
│ └── schema.cljs
├── .rdf-export/
│ └── config.edn
├── CONTRIBUTING.md
├── LICENSE.md
├── README.md
├── assets/
│ └── 192252746-f86ac736-3996-4711-b3b9-449c648eb445_1666117451901_0.webm
├── bb.edn
├── db-version-changes.md
├── db-version.md
├── journals/
│ ├── 2020_05_14.org
│ ├── 2020_05_15.org
│ ├── 2020_05_17.org
│ ├── 2020_05_18.org
│ ├── 2020_05_20.org
│ ├── 2020_05_21.org
│ ├── 2020_05_22.org
│ ├── 2020_05_25.org
│ ├── 2020_05_27.org
│ ├── 2020_05_28.org
│ ├── 2020_05_29.org
│ ├── 2020_05_30.org
│ ├── 2020_05_31.org
│ ├── 2020_06_01.org
│ ├── 2020_09_14.md
│ ├── 2020_09_19.md
│ ├── 2020_09_20.md
│ ├── 2020_09_21.md
│ ├── 2020_09_22.md
│ ├── 2020_09_23.md
│ ├── 2020_09_24.md
│ ├── 2020_09_25.md
│ ├── 2020_09_28.md
│ ├── 2020_09_29.md
│ ├── 2020_10_01.md
│ ├── 2020_10_02.md
│ ├── 2020_10_03.md
│ ├── 2020_10_05.md
│ ├── 2020_10_06.md
│ ├── 2020_10_07.md
│ ├── 2020_10_08.org
│ ├── 2020_10_09.md
│ ├── 2020_10_10.md
│ ├── 2020_10_11.md
│ ├── 2020_10_12.md
│ ├── 2020_10_16.md
│ ├── 2020_10_22.md
│ ├── 2020_10_23.md
│ ├── 2020_10_24.md
│ ├── 2020_10_26.md
│ ├── 2020_10_27.org
│ ├── 2020_10_28.md
│ ├── 2020_11_06.md
│ ├── 2020_11_07.md
│ ├── 2020_11_11.md
│ ├── 2020_11_13.md
│ ├── 2020_11_17.md
│ ├── 2020_11_18.md
│ ├── 2020_11_26.md
│ ├── 2020_11_29.md
│ ├── 2020_12_05.md
│ ├── 2020_12_07.md
│ ├── 2020_12_16.md
│ ├── 2020_12_29.md
│ ├── 2021_01_12.md
│ ├── 2021_01_13.md
│ ├── 2021_01_15.md
│ ├── 2021_01_16.md
│ ├── 2021_01_18.md
│ ├── 2021_01_19.md
│ ├── 2021_01_23.md
│ ├── 2021_01_24.md
│ ├── 2021_01_27.md
│ ├── 2021_01_28.md
│ ├── 2021_01_29.md
│ ├── 2021_01_30.md
│ ├── 2021_01_31.md
│ ├── 2021_02_01.md
│ ├── 2021_02_02.md
│ ├── 2021_02_05.md
│ ├── 2021_02_06.md
│ ├── 2021_02_07.md
│ ├── 2021_02_14.md
│ ├── 2021_02_15.md
│ ├── 2021_02_16.md
│ ├── 2021_02_17.md
│ ├── 2021_02_20.md
│ ├── 2021_02_26.md
│ ├── 2021_02_27.md
│ ├── 2021_03_01.md
│ ├── 2021_03_02.md
│ ├── 2021_03_08.md
│ ├── 2021_03_15.md
│ ├── 2021_03_26.md
│ ├── 2021_03_27.md
│ ├── 2021_04_01.md
│ ├── 2021_04_02.md
│ ├── 2021_04_19.md
│ ├── 2021_04_30.md
│ ├── 2021_07_14.md
│ └── 2021_07_19.md
├── logseq/
│ ├── config.edn
│ ├── custom.css
│ ├── metadata.edn
│ └── srs-of-matrix.edn
├── pages/
│ ├── Academic.md
│ ├── Advanced Queries.md
│ ├── Advanced commands.md
│ ├── Aliases and external links.md
│ ├── All Platforms.md
│ ├── All pages.md
│ ├── Android.md
│ ├── Assets alias.md
│ ├── Basic settings.md
│ ├── Block Reference.md
│ ├── Boolean.md
│ ├── Breaking Changes.md
│ ├── Built-in Properties.md
│ ├── Calculator.md
│ ├── Changelog.md
│ ├── Changelog_07_09.md
│ ├── Changelog_2020.org
│ ├── Class.md
│ ├── ClojureScript Eval in a Block.md
│ ├── Cloze.md
│ ├── Code block.md
│ ├── Command.md
│ ├── Commands.md
│ ├── Community.md
│ ├── Community___Query Learning Sprint (Summer 2022).md
│ ├── Copy and Paste.md
│ ├── Custom theme.md
│ ├── DataType.md
│ ├── Desktop.md
│ ├── Draw.md
│ ├── Embed Media - Audio, Photos, Videos.md
│ ├── Export.md
│ ├── Feature.md
│ ├── FeatureTag.md
│ ├── Features.md
│ ├── Filename format.md
│ ├── Find in page.md
│ ├── Flashcards.md
│ ├── Getting started with the Journals page.md
│ ├── Git Auto-Commit.md
│ ├── Global config.edn.md
│ ├── Global configuration.md
│ ├── Glossary.md
│ ├── Graph Overview.md
│ ├── Handbook.md
│ ├── Headings.md
│ ├── Hiccup.md
│ ├── How to create a Logseq graph using existing Markdown files.md
│ ├── How to create a new graph.md
│ ├── How to create pages in Logseq.md
│ ├── How to filter linked references.md
│ ├── How to sync your Logseq graph across devices.md
│ ├── How to work with the right-hand sidebar.md
│ ├── Import.md
│ ├── Journals page.md
│ ├── Keyboard shortcuts.md
│ ├── Knowledge Graph.md
│ ├── Learn Datalog Today.md
│ ├── Left sidebar.md
│ ├── Linked References.md
│ ├── Local Http server.md
│ ├── Logseq Protocol.md
│ ├── Logseq Sync Encryption.md
│ ├── Logseq Sync.md
│ ├── Logseq file and folder naming rules.md
│ ├── Macros.md
│ ├── Markdown.md
│ ├── Marketplace demo.md
│ ├── Marketplace.md
│ ├── Math Block.md
│ ├── Migrate to Logseq Beta.md
│ ├── Namespaces.md
│ ├── New to Logseq%3F.md
│ ├── Numbered List.md
│ ├── OneStutteringMind.md
│ ├── Org Mode.org
│ ├── PDF highlights.md
│ ├── Page and block references.md
│ ├── Page graph.md
│ ├── Platform.md
│ ├── Plugins 01.md
│ ├── Plugins 02 - Build a mind map plugin.md
│ ├── Plugins 101.md
│ ├── Plugins.md
│ ├── Properties.md
│ ├── Property.md
│ ├── Publish Web.md
│ ├── Publishing (Desktop App Only).md
│ ├── Publishing.md
│ ├── Queries.md
│ ├── Query Builder.md
│ ├── Query function.md
│ ├── Query table.md
│ ├── Query.md
│ ├── Refactoring_of_logseq.md
│ ├── Right sidebar.md
│ ├── Search.md
│ ├── Settings.md
│ ├── Snap to grid.md
│ ├── Spaced Repetition.md
│ ├── Start here.md
│ ├── String.md
│ ├── StringWithRefs.md
│ ├── Tables.md
│ ├── Tags.md
│ ├── Tasks.md
│ ├── Templates___Docs.md
│ ├── The basics of block references.md
│ ├── The difference between block embeds and block references.md
│ ├── The difference between block embeds and page embeds.md
│ ├── Thing.md
│ ├── Tweet___This 1 Tiny Time Managem...___.md
│ ├── UI Element.md
│ ├── Undo and Redo.md
│ ├── Unlinked References.md
│ ├── Uri.md
│ ├── User configuration.md
│ ├── WIP How to work with the left-hand sidebar.md
│ ├── WIP Supercharge search with queries.md
│ ├── Web.md
│ ├── What is indentation and why does it matter%3F.md
│ ├── Whiteboard.md
│ ├── Whiteboard___Action Bar.md
│ ├── Whiteboard___Action Bar___Arrow head toggle.md
│ ├── Whiteboard___Action Bar___Auto resize toggle.md
│ ├── Whiteboard___Action Bar___Bold toggle.md
│ ├── Whiteboard___Action Bar___Collapse toggle.md
│ ├── Whiteboard___Action Bar___Color swatch.md
│ ├── Whiteboard___Action Bar___Edit.md
│ ├── Whiteboard___Action Bar___Fill toggle.md
│ ├── Whiteboard___Action Bar___Italic toggle.md
│ ├── Whiteboard___Action Bar___Link.md
│ ├── Whiteboard___Action Bar___Open embedded url.md
│ ├── Whiteboard___Action Bar___Reload.md
│ ├── Whiteboard___Action Bar___Scale select.md
│ ├── Whiteboard___Action Bar___Shape select.md
│ ├── Whiteboard___Action Bar___Stroke type select.md
│ ├── Whiteboard___Action Bar___Url input.md
│ ├── Whiteboard___Canvas.md
│ ├── Whiteboard___Context Menu.md
│ ├── Whiteboard___Dashboard.md
│ ├── Whiteboard___Element locking.md
│ ├── Whiteboard___Embed.md
│ ├── Whiteboard___Object.md
│ ├── Whiteboard___Object___Image.md
│ ├── Whiteboard___Object___PDF.md
│ ├── Whiteboard___Object___Tweet.md
│ ├── Whiteboard___Object___Youtube.md
│ ├── Whiteboard___Object___iFrame.md
│ ├── Whiteboard___Quick Add.md
│ ├── Whiteboard___Tool.md
│ ├── Whiteboard___Tool___Connector.md
│ ├── Whiteboard___Tool___Eraser.md
│ ├── Whiteboard___Tool___Global color swatch.md
│ ├── Whiteboard___Tool___Global scale select.md
│ ├── Whiteboard___Tool___Highlight.md
│ ├── Whiteboard___Tool___Move.md
│ ├── Whiteboard___Tool___Pencil.md
│ ├── Whiteboard___Tool___Portal.md
│ ├── Whiteboard___Tool___Select.md
│ ├── Whiteboard___Tool___Shape.md
│ ├── Whiteboard___Tool___Shape___Circle.md
│ ├── Whiteboard___Tool___Shape___Rectangle.md
│ ├── Whiteboard___Tool___Shape___Triangle.md
│ ├── Whiteboard___Tool___Text.md
│ ├── Whiteboard___Toolbar.md
│ ├── Why linking matters.md
│ ├── Youtube timestamp.md
│ ├── Zotero.md
│ ├── about.org
│ ├── bensu.md
│ ├── block_embed.md
│ ├── canary changelog.md
│ ├── changelog_06.md
│ ├── config edn file.md
│ ├── contents.md
│ ├── custom.css.md
│ ├── custom.js.md
│ ├── description.md
│ ├── desktop app.md
│ ├── devon.md
│ ├── docs.md
│ ├── domainIncludes.md
│ ├── examples.md
│ ├── export.css.md
│ ├── faq.org
│ ├── favorites.md
│ ├── how_to_take_notes.md
│ ├── iOS.md
│ ├── initial-version.md
│ ├── llcc.md
│ ├── meta.md
│ ├── minor change.md
│ ├── name.md
│ ├── one year in logseq.md
│ ├── page_embed.md
│ ├── parent.md
│ ├── pengx17.md
│ ├── platforms.md
│ ├── plugins.edn.md
│ ├── rangeIncludes.md
│ ├── sameAs.md
│ ├── setting___enable journals.md
│ ├── setting___enable logical outdenting.md
│ ├── setting___enable timetracking.md
│ ├── setting___enable tooltip.md
│ ├── setting___language.md
│ ├── setting___preferred file format.md
│ ├── setting___preferred journal format.md
│ ├── setting___preferred workflow.md
│ ├── setting___send usage data and diagnostics to logseq.md
│ ├── setting___show brackets.md
│ ├── setting___theme modes.md
│ ├── slide.md
│ ├── supports.md
│ ├── templates.md
│ ├── term.page title.md
│ ├── term___alias.md
│ ├── term___backlink.md
│ ├── term___block reference with label.md
│ ├── term___block rendering.md
│ ├── term___block title.md
│ ├── term___block.md
│ ├── term___bullet.md
│ ├── term___editing mode.md
│ ├── term___file link.md
│ ├── term___graph.md
│ ├── term___internal line break.md
│ ├── term___network of connected ideas.md
│ ├── term___page reference with label.md
│ ├── term___page reference.md
│ ├── term___page title.md
│ ├── term___page.md
│ ├── term___web link.md
│ ├── testimonials.md
│ ├── theme.md
│ ├── tips_and_tricks.md
│ ├── tutorial.md
│ ├── type.md
│ ├── unique.md
│ ├── url.md
│ └── videos.md
├── script/
│ ├── .gitignore
│ ├── nbb.edn
│ ├── package.json
│ └── query.cljs
├── typos.toml
└── whiteboards/
└── Test Whiteboard.edn
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/workflows/gh-pages.yml
================================================
name: Publish
on:
push:
branches: [ master ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Logseq Publish
uses: logseq/publish-spa@main
with:
output-directory: www
accent-color: indigo
- name: Add .nojekyll file
run: touch www/.nojekyll
- name: Deploy to gh-pages
uses: JamesIves/github-pages-deploy-action@v4.4.1
with:
branch: gh-pages
folder: www
clean: true
clean-exclude: |
CNAME
.nojekyll
================================================
FILE: .github/workflows/test.yml
================================================
name: Test
on:
push:
pull_request:
branches: [master]
jobs:
typos:
name: Spell Check with Typos
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: crate-ci/typos@v1.13.10
nbb-tests:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Run graph-validator tests
uses: logseq/graph-validator@main
rdf-export:
runs-on: ubuntu-latest
name: Test rdf export
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Export graph as RDF
uses: logseq/rdf-export@main
================================================
FILE: .gitignore
================================================
.DS_Store
bak/
pages-metadata.edn
logseq/graphs-txid.edn
logseq/.recycle/
================================================
FILE: .graph-validator/config.edn
================================================
{:exclude [tags-and-page-refs-have-pages]
:add-namespaces [logseq.graph-validator.validations.class
logseq.graph-validator.validations.property
schema]
;; These are all used in examples
:property/ignore-list #{:author :project :tag :publication-date :price :qty
:full-title :source}}
================================================
FILE: .graph-validator/schema.cljs
================================================
(ns schema
"Enforce schema constraints on page types"
(:require [clojure.test :refer [deftest is]]
[logseq.graph-validator.state :as state]
[logseq.db.file-based.rules :as file-rules]
[datascript.core :as d]))
(defn- get-property-names-for-type [type']
(->> (d/q '[:find (pull ?b [:block/properties])
:in $ ?type %
:where (page-property ?b :type ?type)]
@state/db-conn
type'
[(:page-property file-rules/query-dsl-rules)])
(map (comp :block/properties first))
(mapcat keys)
set
;; Remove built ins
((fn [x] (apply disj x [:id :title :alias :tags :type])))))
(defn- get-properties-for-type [type']
(->> (d/q '[:find (pull ?b [:block/properties])
:in $ ?type %
:where (page-property ?b :type ?type)]
@state/db-conn
type'
[(:page-property file-rules/query-dsl-rules)])
(map (comp :block/properties first))))
(deftest feature-schema
(is (= #{:platforms :description :initial-version}
(get-property-names-for-type "Feature"))
"Features should only have theses properties")
(let [props (get-properties-for-type "Feature")]
(is (empty? (remove :platforms props))
"All features should have a :platforms property")))
================================================
FILE: .rdf-export/config.edn
================================================
{:base-url "https://docs.logseq.com/#/page/"
:prefixes {:d "https://docs.logseq.com/#/page/"}
:expand-macros true}
================================================
FILE: CONTRIBUTING.md
================================================
Thanks for your interest in contributing! :heart: :man_dancing: :woman_dancing:
## What to contribute
Fixes and small changes are great. Logseq has a large number of features so new
docs for undocumented features are much appreciated. See [this
section](#documenting-a-feature) on documenting a new feature. We also keep a
[live list of documentation tasks](https://docs.logseq.com/#/page/docs) that we
could use help with. Feel free to ask questions on Github or the Discord
`#documentation` channel if attempting one of these tasks. If you are making
large changes to the documentation, please open an issue to discuss them first.
We also have [documentation tasks](https://github.com/orgs/logseq/projects/5/views/1?filterQuery=label%3Adocumentation) outside this repository that could use help.
### Documenting a Feature
A feature page has a specific format as described in
https://docs.logseq.com/#/page/Feature. Use the `Feature` template when starting
a new page. Please fill in as many of the properties and headers as you can.
If you only know enough to fill in parts of a page, that's fine. Just add a
`TODO Write Something Descriptive Here #docs` with what's left to do.
### What not to Contribute
* Tutorials on how to do X
* Reach out to Ramses on https://discuss.logseq.com/c/docs/18 or on Discord if interested in contributing one.
* Changes to how pages are organized or formatted
* These pages are organized with a fairly specific ontology as they are translated to RDF.
* Changes to our `TODO ... #docs` tasks
* Unless you're finishing one of these, please leave these alone as we are using them to track our progress.
## How to Contribute
For minor fixes like typos, feel free to just [edit a
file in Github](https://docs.github.com/en/repositories/working-with-files/managing-files/editing-files).
For any other contribution it helps to make changes locally so you can see how it looks in Logseq. In order to do this you should:
1. Ensure you have [git](https://git-scm.com/downloads) installed.
2. Fork and Clone THIS REPO. The upstream should be set to the FORKED REPO. If you need more information on what this means, read:
* [About forks](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/about-forks)
* [Cloning and forking repositories from GitHub Desktop](https://docs.github.com/en/desktop/contributing-and-collaborating-using-github-desktop/adding-and-cloning-repositories/cloning-and-forking-repositories-from-github-desktop)
3. Add the cloned local repo (of your FORKED REPO) to Logseq via the `Add new graph` button on the top left dropdown menu. Select the directory where you cloned the repo.
4. Create a branch off of master. The following two commands create a branch called `branch-name` and navigates onto it.
```git
git branch branch-name
git checkout branch-name
```
5. Make your edits and confirm they look good in Logseq. Then, commit them using `git commit -m "message"` and `git push` and submit a pull request onto GitHub!
* For submitting a pull request, check: [Creating a pull request from a fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork)
For more info, see [this guide on working with pull
requests](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork).
================================================
FILE: LICENSE.md
================================================
MIT License
Copyright (c) 2023 Logseq
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================
# [docs.logseq.com](https://docs.logseq.com)
Official reference documentation for [Logseq](https://logseq.com/).
## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md).
================================================
FILE: bb.edn
================================================
{:deps
{logseq/bb-tasks
#_{:local/root "../bb-tasks"}
{:git/url "https://github.com/logseq/bb-tasks"
:git/sha "4295d5df0458cc06a09c5d506510ee49b785407d"}}
:tasks
{nbb
{:doc "Run any nbb-logseq command"
:task (apply shell {:dir "script"} "yarn -s nbb-logseq" *command-line-args*)}
query
{:doc "Run a pre-defined query"
:depends [-ensure-latest-cached-db]
:task (apply shell {:dir "script"} "yarn -s nbb-logseq query.cljs" *command-line-args*)}
write-rdf
{:doc "Run a pre-defined query"
:depends [-ensure-latest-cached-db]
:task (shell {:dir "script"} "yarn -s nbb-logseq -e"
(str
"(require '[logseq.rdf-export :as rdf-export]) (apply rdf-export/write-rdf-file "
(pr-str (into [".."] *command-line-args*))
")"))}
write-class-hierarchy
{:doc "Run logseq-class-hierarchy as a lib"
:depends [-ensure-latest-cached-db]
:task (shell {:dir "script"} "yarn -s nbb-logseq -e"
(str
"(require '[cldwalker.logseq-clis.cli.logseq-class-hierarchy :as lch])"
"(apply lch/-main "
(pr-str ["../pages/Class Hierarchy.md" "-d" ".."])
")"))}
-ensure-latest-cached-db
logseq.bb-tasks.nbb.cached-db/ensure-latest-cached-db}}
================================================
FILE: db-version-changes.md
================================================
## Description
This page describes changes for existing Logseq features on the [database version](https://github.com/logseq/logseq/pull/9858). The changes described here only apply to DB graphs. File graphs have been split off into https://github.com/logseq/og as [explained in more detail with this post](https://logseq.io/page/b2ad9ce1-9cb7-4436-8083-54cb4516d324/df4dc09d-0a12-4c87-904e-22a9bf4c350a).
## Overview
* [High Level Changes](#high-level-changes)
* [Miscelleanous Changes](#miscelleanous-changes)
* [Changes By Feature](#changes-by-feature)
## High Level Changes
* The application performance is better - loading faster, handling larger graphs and large tables. See https://github.com/logseq/logseq/pull/11774 for latest details.
* Blocks and pages are united as [nodes](./db-version.md#nodes). They are referenced as `[[]]` and blocks no longer use `(())` for referencing.
* Properties have a lot more functionality with the [new properties](./db-version.md#properties)!
* Previous tags should behave like before that an inline tag is entered using `Cmd-Enter`.
* NOTE: Pressing enter on a `#` input triggers a powerful [tags](./db-version.md#tags) feature.
* All blocks and pages have created-at and updated-at timestamps! With this built-in dimension of time, time powered features are possible.
* The [previous tables](https://docs.logseq.com/#/page/tables) including version 2 are replaced by a shadcn based table. The new tables have inline editing like spreadsheets by default. See [here](./db-version.md#tables) for more.
* A good amount of the UI is rewritten to use [shadcn](https://github.com/shadcn-ui/ui). This means a more beautiful, consistent and powerful UI!
* Flashcards have been re-implemented with [a new algorithm](https://github.com/open-spaced-repetition/free-spaced-repetition-scheduler). It isn't compatible with the previous flashcards so none of the properties and srs data from the previous version is imported.
* Markdown is the only supported format. Org mode files are no longer supported.
* Zotero integration is no longer a built-in feature and will hopefully be moved to a plugin.
* To simplify editor `/` commands, [Commands](https://docs.logseq.com/#/page/commands) and [Advanced Commands](https://docs.logseq.com/#/page/advanced%20commands) are merged together under `/`.
* A few [Advanced Commands](https://docs.logseq.com/#/page/advanced%20commands) are available. More may become available as requested. The available commands are:
* `>Query` is now `/Advanced Query`
* `>Src` is now `/Code block`
* `>Quote` is `/Quote`
* Code blocks, quote blocks and math blocks [have tags](./db-version.md#more-tags). Since properties are not are a part of the block content, properties can more naturally be added to these blocks.
* Pdf annotations [have a tag](./db-version.md#more-tags). This allows annotations to be viewed across pdfs and to have custom views of annotations while using the pdf viewer.
* Markdown syntax for blocks e.g. a heading or quote is no longer visible or editable. Removing a block's heading is done by right-click on a block and choosing the crossed out H icon.
* Slides have been removed as a feature and we can support it as 3rd party plugin.
* Whiteboards have been removed as a feature and will hopefully be available as a plugin.
* Excalidraw e.g. `/draw` is no longer a built-in feature and will hopefully be moved to a plugin.
* Templates are created by tagging a block with `#Template` as described [here](./db-version.md#templates). Previously templates were made by adding a `template` property or through a menu item `Make a template`.
* Plugins can be used from the web. For security reasons only [plugins configured with no "effect"](https://github.com/logseq/marketplace#how-to-submit-your-plugin) are usable. We will gradually open up effect plugins to certified/trustworthy plugins.
## Miscelleanous Changes
* On desktop, the graph cache directory `~/.logseq/graphs/` has moved to `~/logseq/graphs/`. See [Graph Directories](#graph-directories) for how they are used for DB graphs.
* Scripts using [nbb-logseq](https://github.com/logseq/nbb-logseq) can read and write graphs. Previously with file graphs, scripts could only read graphs.
* Embedded pages and blocks look almost the same as other nodes. The main indicator of an embed will be an icon to the left of the block.
* Default date picker now has an input for typing a date in natural language.
* There is no re-index like in file graphs.
* `All Pages` screen is renamed to `Pages`. Also it can toggle between table and list view.
* On browser, multiple tabs can be opened and kept in sync, even when offline. Syncing between tabs _does not_ require a sync server.
* The visibility of left sidebar items are configurable. To configure, hover over the `Navigations` header and click on the filter icon to open a dropdown for toggling visibility of sidebar items.
## Changes by Feature
### Pages
* Page properties are no longer set by using the first block of a page. Rather, a page property is [set the same way a block property is](./db-version.md#add-and-edit-property-values) - by editing from the page title (block content).
* `#` and `/` are disallowered characters for page names.
### Tags
* Tags have [a lot of new functionality](./db-version.md#tags).
* When a tag is added on a block, it now displays to the right of the block. To inline a tag like before, press `Cmd-Enter` in the tag dropdown.
### Tasks
* Using terms from the [previous tasks](https://docs.logseq.com/#/page/tasks), a task marker, priority, deadline and scheduled are respectively now `Status`, `Priority`, `Deadline` and `Scheduled` properties on a task.
* Logbook timestamps have been replaced with Status change history.
* Tasks are no longer created by typing keywords like `TODO` but instead with commands like '/todo'.
* Read more about the [new tasks](./db-version.md#tasks).
### Assets
* Assets can have custom user properties.
* Assets are blocks and thus can show their linked references when zoomed in on the asset block.
* Assets are resized by hovering over them and then dragging the left-right arrows that are visible over the scrollbars.
* Maximum allowed asset size is 100M
* Pdf annotations are visible under an asset block by default. Previously this view was in a separate page and required clicking in the pdf viewer.
### Queries
* Read more about the [new queries](./db-version.md#queries).
* [Simple queries](https://docs.logseq.com/#/page/queries)
* Simple queries are created via the `/Query` command and not the `{{query}}` macro. This means that user macros cannot be used to create specialized queries.
* Simple queries can have titles.
* When using the query builder, the resulting query's text is not meant to be easily read as internal ids are used for some concepts e.g. properties.
* The query builder's queries run against all [nodes](./db-version.md#nodes) instead of forcing the user to choose between blocks or pages.
* Query filter changes:
* These previous query filters will no longer work and should be manually converted:
* `(page-tags)` -> `(tags)`
* `(page-property)` -> `(property)`
* `(has-page-property)` -> `(has-property)`
* `(priority A)` -> `(priority high)`
* The `all-page-tags` and `sort-by` query filters no longer exists. Sorting is done via the table component.
* [Advanced queries](https://docs.logseq.com/#/page/advanced%20queries)
* Advanced queries are now edited in a code block which means queries are syntax highlighted.
* Some old advanced queries will no longer work and need to be rewritten. For engineers, compare the [db graph `schema`](https://github.com/logseq/logseq/blob/master/deps/db/src/logseq/db/frontend/schema.cljs) vs the [file graph `schema`](https://github.com/logseq/logseq/blob/master/deps/db/src/logseq/db/file_based/schema.cljs).
* The task related properties `:block/marker`, `:block/priority`, `:block/deadline` and `:block/scheduled` have been respectively renamed to `:logseq.property/status`, `:logseq.property/priority`, `:logseq.property/deadline` and `:logseq.property/scheduled`. These properties should be queried via rules like `property` e.g. `(property :logseq.property/deadline ...)`.
* These advanced query options are deprecated: :title, :group-by-page? and :collapsed?.
* Attribute changes:
* The attribute `:block/content` was renamed to `:block/title`. If used in an advanced query including in config.edn's `:default-queries`, change it to use `:block/title` e.g. `[?b :block/content "content"]` -> `[?b :block/title "content"]`
* The attribute `:block/original-name` was renamed to `:block/title`. If used in an advanced query including in config.edn's `:default-queries`, change it to use `:block/title` e.g. `[?b :block/original-name "name"]` -> `[?b :block/title "name"]`
* The attribute `:block/journal?` no longer exists. If used in an advanced query including in config.edn's `:default-queries`, change `[?p :block/journal? true]` to `[?p :blocks/tags :logseq.class/Journal]`
* The attribute `:block/left` no longer exists and has been replaced by `:block/order`. It is not recommended to write queries with this attribute.
* The attribute `:block/path-refs` no longer exists. Please use `(has-ref ?b ?ref)` instead of `[?b :block/path-refs ?ref]`.
* Since block timestamps are available, they display in table view where possible.
### Namespaces
* Creating namespaces through `/` in `[[]]` should work as before e.g. `[[foo/bar/baz]]` creates the hierarchy of `foo` > `bar` > `baz`. Unlike before, the reference will turn into `[[baz]]` after it is created.
* Pages can edit their namespace explicitly by going to the `Library` page and moving it under the desired parent namespace. Previously managing a namespace could only be done by renaming a namespace.
* The `Hierarchy` section displays above a namespaced page's blocks. It displays as a collapsible tree as this allows for viewing large namespaces more easily.
* Namespaced pages no longer have their namespace embedded in their page name. The big advantage of this is that renaming any part of the namespace does not affect all the pages under a namespace.
* The macro `{{namespace}}` is deprecated. Use the Library feature instead.
### User Config
* A graph's config.edn, custom.js and custom.css files are only editable within Logseq from `Settings`.
* The following config.edn options are no longer used by any graphs: `:ref/linked-references-collapsed-threshold`.
* The following config.edn options are no longer used: `:block-hidden-properties, :default-templates, :favorites, :hidden, :ignored-page-references-keywords, :journals-directory, :pages-directory, :preferred-format, :preferred-workflow, :whiteboards-directory, :feature/enable-block-timestamps?, :file/name-format, :file-sync/ignore-files, :journal/file-name-format, :journal/page-title-format, :logbook/settings, :org-mode/insert-file-link?, :property/separated-by-commas, :property-pages/enabled?, :property-pages/excludelist, :srs/initial-interval, :srs/learning-fraction` in DB graphs. See [this code](https://github.com/logseq/logseq/blob/b0a255f96bfd512d5b87acca52c8d9f958c6a593/deps/common/src/logseq/common/config.cljs#L124-L157) for more details.
### Search
* When search modal first opens, recently updated pages display at the top.
* Tags can be created from the modal as described in [tags](./db-version.md#tags).
### Graph Directories
* Graphs have a convention of `~/logseq/graphs/GRAPH-NAME` where `GRAPH-NAME` is the graph name.
* Inside a graph directory:
* `db.sqlite` - Stores all your graph's data including user configs.
* `assets/` - Stores assets like before.
* `logseq/` inside a directory no longer exists.
### API
* All property related calls like `upsertBlockProperty` work with DB graphs. Property values can now be numbers and booleans. Properties are namespaced to `:plugin.property._api`
* See [this test file](https://github.com/logseq/logseq/blob/master/clj-e2e/test/logseq/e2e/plugins_basic_test.clj) for using the api with DB graphs.
================================================
FILE: db-version.md
================================================
## Description
This page describes DB (database) graph functionality as of April 28th, 2026. See [here](https://test.logseq.com/#/) to try the latest stable version. If you're an existing user of Logseq, you'll be interested in [changes with the db version](./db-version-changes.md).
## Overview
* [Nodes](#nodes)
* [Properties](#properties)
* [Tags](#tags)
* [Tag Based Features](#tag-based-features)
* [Tasks](#tasks)
* [Journals](#journals)
* [Queries](#queries)
* [Cards](#cards)
* [Assets](#assets)
* [Templates](#templates)
* [More Tags](#more-tags)
* [Bulk Actions](#bulk-actions)
* [Views](#views)
* [Tables](#tables)
* [Library](#library)
* [Search Commands](#search-commands)
* [MCP Server](#mcp-server)
* [Sync](#sync)
* [Publish](#publish)
* [Plugins](#plugins)
* [DB Graph Importer](#db-graph-importer)
* [Automated Backup](#automated-backup)
* [Export and Import](#export-and-import)
* [Graph Export](#graph-export)
* [Graph Import](#graph-import)
* [Build EDN Data](#build-edn-data)
* [iOS App](#ios-app)
* [Android App](#android-app)
* [Scripting](#scripting)
* [CLI](#cli)
* [Additional Links](#additional-links)
## Nodes
A node is a new term for a page or block because the two now behave similarly. Nodes have the following common behaviors:
* Nodes are referenced by using `[[]]`.
* Nodes have a pretty similar editing experience whether changing block content or a page title. In the editing block, properties can be set, `/` commands are available and [tags](#tags) can be set.
* Nodes have `Linked References` and `Unlinked References` sections. Blocks need to be zoomed in to see this.
* Nodes can be favorited. For a zoomed in block, use the `Add to/remove from favorites` command.
* Nodes share the same keybindings for [properties](#property-shortcuts) and blocks e.g. toggling block properties visibility with `Cmd-;`.
* Nodes can be tagged to become a [tagged node](#tagged-node).
* Nodes are embedded with the same `/Node embed` command.
* Nodes are collapsible with an arrow on the left that appears on hover.
* Nodes can have an icon which floats to the left.
Blocks that have a page as a parent i.e. usually top-level blocks can be converted to a page and back to a block easily. To convert this block to a page, simply tag the block with `#Page`. This also makes the newly created page a namespaced page under its parent(s). For example, if the block `b1` on the journal `Aug 29th, 2025` is converted to the page, `b1` becomes a namespaced page in the [Library](#library) with parent `Aug 29th, 2025`. To convert this type of page back to a block, press `p t` and remove `#Page` from the node.
Blocks and pages still have some differences that we are hoping to unify like the block view when it is zoomed in.
However, blocks and pages will have some differences as noted in the [pages](#pages) and [blocks](#blocks) sections.
### Pages
Things that are specific to pages:
* Pages have a dedicated view called `Pages`.
* When a property, tag, journal or whiteboard are created, they are created as a page.
* Pages are unique as follows:
* Page names are unique by tag e.g. there can be `Apple #Company` and `Apple #Fruit`.
* Property names are unique and can have the same names as built-in property names.
* The uniqueness of these pages should be visible everywhere in the app with icons for page types and the display of a page's tag(s).
* Hovering over a page title shows common features like `Set property` to add a property to the page.
* Page deletion and recycling works as follows:
* If a page is a tag, property or today's journal, the deletion is permanent and can't be recovered.
* Otherwise, a page is recycled and can be recovered for up to 30 days before being deleted. To recover the page, simply re-create the page. Alternatively, click three dots menu in the upper right corner and select `Recycle`. Click `Restore` on the recycled page block to restore it.
* Note: Deleting anything else in the app is permanent and no recycling is available unless explicitly mentioned.
### Blocks
Things that are specific to blocks:
* Blocks are created in a page.
* Tagged blocks a.k.a. blocks with names do not have unique names.
* A block can have multiple reactions set by `Add reaction` from the bulleted, right click menu. Each user can have multiple reactions on a node.
## Properties
### Add and Edit Property Values
Properties can be added to any block or page.
To create your first property:
* Create a new block
* Press `Cmd-p` and type the name of a new property.
* The keybinding is `Ctrl-alt-p` on Linux and Windows.
* Alternatively, if your cursor is in the block, type `/pro<ENTER>` to kick off the same `Add new property` command
* Select `Text` as the property type and then type some property value
A property itself can have properties on its property page. By default the `Description` property is available for adding a description to a property.
### Property Shortcuts
* `Cmd-p` quickly adds properties to the current node or selected nodes. You can create or select existing properties from it. Keybinding is `Ctrl-Alt-p` on Linux and Windows.
* `Cmd-j` quickly edits block or page properties from the keyboard. After pressing `Cmd-j`, choose which property or property value by typing the letters in the bubble next to it e.g. `c` or `ab`.
* `p a` toggles displaying all the current node's properties below it. This is useful to quickly view properties that are hidden or in a different position.
* `p t` adds or removes or tags to the current node or selected nodes.
* `p i` opens the icon picker to set an icon for the current node.
* `p r` opens the emoji picker to set an emoji for the current node.
* See [task shortcuts](#task-shortcuts) for task specific ones.
* To navigate between property values across nodes, use the up and down arrow keys.
NOTE: Most shortcuts have a corresponding search command. You can find the command for a given shortcut's keys keybinding by using `Settings > Keymap`, clicking the keystroke filter and typing the keys.
### Configure a Property
Properties are configurable wherever they are used by clicking on its name to display a dropdown menu. Press `Cmd` and click to navigate to a property page. Property icons are set by clicking on the property's default icon to the left of its name. Properties can also be configured by navigating to their page with [Search](https://docs.logseq.com/#/page/search) and then clicking on the `Configure` button that appears above when hovering over the name.
Property fields in the dropdown menu:
* `Property name`: Name to visually identify the property
* `Property type`: This determines what type a property's property values will have. Once a property is used this field cannot change. If you're unsure of what type to choose, use `Text`. See [property-types](#property-types) for more.
* `Default value`: This sets the default value for a property. See [property-default-values](#property-default-values) for more.
* `Specify node tags`: For a `Node` type property, specify tags that a property value is allowed to have. Only property values with these tags will be displayed as possible values.
* `Available choices`: This limits a property to only have one of the defined choices. See [property choices](#property-choices) for more.
* `Checkbox state mapping`: For properties that have [property choices](#property-choices), this defines mapping two choices to be checked or unchecked on a checkbox. To enable seeing the checkbox, configure the `Show as checkbox on ...` field.
* `Multiple values`: When selected, a property can have multiple values associated with it. All property types can have multiple values except for checkbox and datetime.
* `UI position`: This determines where the property values are displayed. By default the values are displayed as a row-like block under a block (`Block properties`). You can also choose to display property values at the beginning like task status, under a block like deadline date, or at the end of a block. This config is available to all property types except `Url` and `DateTime`.
* `Hide by default`: When selected, a property won't be visible on any of its blocks by default. But it will be visible if you zoom in on its blocks or display them in the sidebar.
* `Hide empty value`: When selected, a property won't be visible on a block if it is has an empty property value.
Some property fields are only configurable from certain contexts:
* `Show as checkbox on ...`: This appears when clicked from a node or from a tag's `Tag properties`. When selected, a checkbox will show on that node or any node with that tag respectively. For this to take affect, the property must have configured `Checkbox state mapping`.
### Built-in Properties
Logseq uses built-in properties to provide core features. A few of these properties are public and editable by the user. To navigate to a public built-in property use [Search](https://docs.logseq.com/#/page/search). For example, type `status` to go to the `Status` property used by [tasks](#tasks). When on a built-in property page, only some of its property fields are editable as allowing all fields to be edited could break functionality. The property fields that can be edited are its icon, `UI position`, `Hide by default` and `Available choices`.
### Property Types
A property type determines what type a property's property values can have. There are 6 types of property values: Text, Number, Date, Checkbox, Url, and Node. Here is more info on each:
* `Text`: This is the recommended default as it allows for any text and behaves like a block. This means that node references work here and children blocks can be created under the block.
* `Number`: This is for numbers including negative numbers and floats e.g. 3.5. Unlike file graph properties, these are stored as actual numbers. This means that all features and queries that use this property type correctly sort as numbers by default.
* `Date`: This is for dates and is editable with a date picker. When a date property value is used, it correctly links to the journal page. This property type can be used with [repeated nodes](#repeated-tasks-and-nodes).
* `DateTime`: This is for date times and is editable with a datetime picker. See the `Due` property in [cards](#cards) for an example property that uses this. This property type can be used with [repeated nodes](#repeated-tasks-and-nodes).
* `Checkbox`: This is used to set or unset a property value and displays as a checkbox. To engineers this type is known as a boolean.
* `Url`. This limits text to only allow urls e.g. `https.//logseq.com`. This does not behave like `Text` e.g. no referencing or child blocks.
* `Node`: This allows a property value to link to other nodes i.e. pages or blocks. When first configuring this, you are prompted to select a tag. You can choose to skip a tag if you don't care about limiting the available nodes. When a tag is selected or created, only nodes with that tag will appear as options for the property. For example, if you define the property `Author`, you could create a tag `#Person` that only allows nodes tagged with `#Person` as values. Also worth noting that tag selection works for all child tags of the chosen tag. Using the previous example, if `#Actor` is a child of `#Person`, nodes tagged with `#Person` or `#Actor` are allowed values.
### Property Choices
Property choices allow a property to only have one of the defined choices. Only the property types `Text`, `Url` and `Number` support this. From the [configuration dropdown](#configure-a-property), a property choice can be added, deleted and edited to have a required value, an optional description and an optional icon. Drag the choices up and down to order how they appear. For a good example of choices see the `Status` property. A property with property choices can be used with [repeated nodes](#repeated-tasks-and-nodes).
If a property has already been used, it is possible to convert it to use choices. After clicking `Add choice`, a panel displays to convert all existing property values to choices. If a property is using choices, it is possible to stop using choices by deleting them from the property. Caution: deleting a choice from a property also currently deletes the choice from all blocks it is used.
Property choices can be scoped to a tag. To do this, go to a tag's page, click on a property in `Tag Properties`, click on its `Available choices` and create or edit the choices. Create a choice from this context to scope it to only show up for this tag. Edit a choice and from its three dots menu, select `Hide for #X` to hide the choice for tag X. Scoping property choices by tags is useful to offer different choices depending on the tag. For example, say we have the tag `#MyTask` with the `Status` property. Tag-scoped property choices allows us to hide built-in Status choices for `#MyTask` and create a couple `#MyTask` choices without altering the `Status` choices for the built-in `#Task`.
### Property Default Values
Properties can have default values, currently just for the types Text, Number and Checkbox. A property's default value takes effect for these two use cases:
* When a property is added to a node, it defaults to the default value.
* When a property is a tag property for a tag and that tag is added to a node, the node defaults to having the default value for that property.
When using simple queries, properties for the above two use cases will have that default value. When using property choices, one of them can be set as a default value by checking the default choice box in the list of property choices.
## Tags
Tags are an easy way to group nodes across pages i.e. flexible lists. Tags can have `Tag Properties` which are properties that all nodes inherit from a tag. Using this functionality allows you to create flexible tables. Using tags this way is known in other applications as types, classes or supertags.
To create your first tag:
* Open [Search](https://docs.logseq.com/#/page/search) and type `#NAME` where NAME is tag name.
* A dialog pops up that lets you create and/or add tag properties to the tag. These tag properties are inherited by every node that uses the tag.
For example, say we created a tag `Person` and added `lastName` and `birthday` tag properties to it. Now when `#Person` is added to a block or page, those two properties automatically display and are editable for them. A powerful thing about tags is that when its tag properties change those changes immediately show up on all [tagged nodes](#tagged-node).
A tag can have properties on its own page. By default the `Description` property is available for adding a description and `Hide from node` is available to hide the tag on tagged nodes that float to the far right. To set these properties, go to the tag's page and with the focus on the title press the add property shortcut from [property shortcuts](#property-shortcuts) e.g. `Cmd-p`.
### Create Tags
Ways to create tags:
* Open search and type `#NAME` where `NAME` is the tag name.
* In any block including a page name, type `#NAME` and press `Enter`. The tag floats to the right of the block.
* In a block type `#NAME` and press `Cmd-Enter`. An inline tag is created.
* Paste text in a block that includes `#NAME`. An inline tag is created for tag `NAME`.
* Configure a `Node` property type to have a tag config.
* Configure a tag to have an `Extends` property, the new `Extends` value becomes a tag.
* In a block type `#NAME` and press `Esc`. An inline tag is created. Not recommended as it doesn't work for all use cases.
* Convert any page to a tag by clicking on the three dots menu in the upper right corner and clicking `Convert to Tag`.
Any tag can be converted to a page by clicking on the three dots menu and clicking `Convert Tag to Page`.
### Parent Tags
Tags can have multiple parent tags via the `Extends` property and default to the `Root Tag` as a parent. Parent tags are powerful as the tag inherits the properties from each of its parent tags. For example, say we have `#Book` with property `author` and `#MediaObject` with property `duration`. If we create a new `#Audiobook` with property `readBy` and give it parents of `#Book` and `#MediaObject`, any node tagged with `#Audiobook` would have 3 properties: `author`, `duration` and `readBy`.
Parent tags also provide a way of organizing tags in a tree hierarchy. Since a tag can have multiple parents, it can appear multiple times in a hierarchy. For example, here's the tree hierarchy of the example in the previous paragraph:
- Root Tag
- Book
- AudioBook
- MediaObject
- AudioBook
On any tag page that is a parent tag, you can see this hierarchy under the `Children` section.
### Configure a Tag
Tags are configurable from their page. Navigate to their page by using [Search](https://docs.logseq.com/#/page/search) or clicking on their `#` name links. On their page, hover over their name to see the rotating triangle icon to the left. Click on it to see the tag page's properties. Two important properties you'll see for configuring a tag:
* `Extends`: Use this to allow the tag to inherit properties from one or more parent tags. This defaults to the `Root Tag` which doesn't have any properties.
* `Tag Properties`: These tag properties are inherited by every node that uses the tag. Drag one above or below the other to sort them. These properties will then display sorted on the tagged node.
* `Enable bidirectional properties` - Enable this so that a tag's properties of type :node become bidirectional. For example, say we enable bidirectionality on a `#Book` tag with an `author` property. When going on a book's author page, a `Books` bidirectional property will display. By default the bidirectional title is a tag's name pluralized. To customize this title, set the `Bidirectional property title` on the bidirectional tag e.g. `#Book`.
### Tagged Node
A tagged node is a page or block that has a tag. A tagged node is also known as an object or a tag instance. There are a couple of ways to create tagged nodes:
* In the current block or page title, type `#` at the end and select a tag.
* In [Search](https://docs.logseq.com/#/page/search), type `PAGE #TAG` to create a page named `PAGE` with tag `TAG`.
* In a block after `[[]]`, type `#` and select a tag. For example `[[block content]]#TAG` links to the block with `block content` and adds `#TAG`. For existing references, a tag is added to the node. For new references, a new page is created with the tag.
A tagged node can have multiple tags. Once a node is tagged it displays all tags' properties as empty off the node in positions configured by each property. The only properties that don't display are ones hidden via `Hide by default`.
A tagged node can have an icon. When it does have an icon, it will appear to the left of its name or in a reference.
## Tag Based Features
The features in this section use [tags](#tags). Each of these features have built-in [tables](#tables) (dashboards) to view and manage them on their tag page!
### Tasks
Tasks are improved from the previous version as they more powerful and customizable. All tasks are blocks with the built-in tag `#Task`. When a task is created it has the properties `Status`, `Priority`, `Deadline` and `Scheduled`.
#### Create a Task
A new task can be created in a number of ways:
* On a block without a tag, add the `Status` property by typing the status choice e.g. `/todo` or cyling status with `Cmd-Enter`.
* Type text in a block and end it with `#Task`.
* When on the `Task` page, create a new row in the Task table.
* On a block without a tag, add the `Deadline` or `Scheduled` property by typing `/Deadline` or `/Scheduled`.
#### Task Shortcuts
Any block can have a task property value set with a command or a keybinding. The commands start with `Add task` and the keybindings are:
* To set property `Status`, press `p s`.
* To set property `Priority`, press `p p`.
* To set property `Deadline`, press `p d`.
The statuses `Todo`, `Doing` and `Done` can be cycled through with `Cmd-Enter`.
The `/STATUS` commands can set a status where `STATUS` is one of the status choices e.g. `/todo`. Similarly, priority choices can be set with `/PRIORITY` commands. `/Deadline` sets the `Deadline` property. `/Scheduled` sets the `Scheduled` property.
#### Task Status
The status property is probably the most often used task property and thus it has been simplified and made customizable. The `TODO/DOING` and `NOW/LATER` workflows have been merged into `TODO/DOING` and some of the other TODO keywords have been converted to built-in status values. The default built-in values for status are:
* `Backlog`
* `Todo`
* `Doing`
* `In Review`
* `Done`
* `Canceled`
This property keeps a history of status changes for each block. Once this property changes from `Todo` to another status, its history is available by clicking on the task's spent time e.g. `9s` on the right side of a block. This history is queryable through advanced queries.
#### Repeated Tasks and Nodes
Repeating works for tasks as well as for user defined properties. Read to the end to define your own repeated nodes.
Repeated tasks are available on any task that has a `Deadline` (or `Scheduled`) property. When setting the values for these properties in a popup, check `Repeat task` to enable repeating. The datetime interval for repeating is customizable. Click on the number or time interval e.g. `Day` to change it. For dates, the time interval ranges from `Day` to `Year`. For datetimes, the time interval ranges from `Minute` to `Year`.
Once repetition is enabled on a node, it works as follows:
* When `Status` changes to `Done`, the `Status` resets to `Todo`.
* When `Status` changes to `Done`, the `Deadline` (or `Scheduled`) property changes to the current day/time plus the current repeated interval. For example, if it's currently 12:20 and the interval is 1 hr, the new value is 13:20.
To define your own repeated nodes, create a `Date` or `DateTime` property and a property with [property choices](#property-choices) that has `Checkbox state mapping` configured. To configure a node with your user properties, re-read the previous paragraphs replacing `Status`, `Deadline`, `Todo` and `Done` with your properties and checkbox mapping. One additional configuration you'll want to choose in a date/datetime popup is the property dropdown next to `When`.
#### Customizing Tasks
Since tasks are powered by properties and [tags](#tags), they can be customized in a number of ways. Some parts of a task can't be customized because tasks are built into core features like the [Query Builder](https://docs.logseq.com/#/page/query%20builder) and queries on today's journal. Here are ways to customize tasks:
1. The `Status` property choices can be customized by going to the `Status` page with [Search](https://docs.logseq.com/#/page/search). From the property's [configuration dropdown](#configure-a-property) edit the name and icon of built-in choices. You can add new choices but not delete the built-in ones.
2. Task properties can be configured by going to the property's page. From this page you can configure its icon or the ui position via the [configuration dropdown](#configure-a-property).
3. `#Task` can be configured to have additional properties from the tag's [page](#configure-a-tag).
4. Custom types of tasks can be created by creating a tag that has `#Task` as the [parent tag](#parent-tags). For example, create a `#ProjectTask` from [Search](https://docs.logseq.com/#/page/search) and configure it to have `Task` as the parent. Then add a property on the `project` property on `#ProjectTask`. You now have a task for projects!
### Journals
A journal page has the [tag](#tags) `#Journal`. Like tasks, journals can be customized by adding properties to its tag. For example, navigate to the `#Journal` page and add a property. This property now shows up on all journals!
Journals are automatically created for the current day in the Journals view. There are a couple of ways to create a journal:
* Natural language that autocompletes within `[[]]` can reference specific days e.g. `[[Today]]`. A specific day this week, last week or next week can be described e.g. `[[This Friday]]`, `[[Last Friday]]` or `[[Next Friday]]`.
* Use the `/Date picker` command to insert a specific date. The date picker is keyboard friendly as arrow keys change calendar days and `Tab` focuses the input. The input takes natural language e.g. `next week` and converts it to a date. See [the library we use](https://github.com/wanasit/chrono#readme) for other natural language examples.
* Properties with the :date property type e.g. `Deadline` create journals for their property values.
* When on a journal day, create a journal for the next day or previous day by using the keybindings `g n` or `g p` respectively.
### Queries
A [(simple) query](https://docs.logseq.com/#/page/queries) and [advanced query](https://docs.logseq.com/#/page/advanced%20queries) have the [tag](#tags) `#Query`. Queries are created in one of the following ways:
* Type the `/Query` command to create a query through the [query builder](https://docs.logseq.com/#/page/query%20builder).
* Type a simple query in a block and then type the `/Query` command to run the query.
* Type the `/Advanced Query` command to create an advanced query.
Like other tags, go to the `#Query` page to see a table to manage queries. Query results are displayed in a [view](#views).
### Cards
A [(flash)card](https://docs.logseq.com/#/page/flashcards) has the tag `#Card`. This feature has been re-implemented to use a [new algorithm](https://github.com/open-spaced-repetition/free-spaced-repetition-scheduler).
#### Create Cards
* Tag blocks with `#Card` to create new cards.
* To convert multiple blocks into cards at once, select them, right-click and choose `Make a flashcard`.
#### View Cards
All cards are accessible on the `#Card` page within the tagged nodes table.
The `Due` column indicates when the next review is scheduled.
#### Review Cards
Select `Flashcards` from the left sidebar to view all cards due for review.
You can rate them using 4 levels to arrange their next review date.
### Assets
An asset has the tag `#Asset`. Create an asset in the following ways:
* Drag and drop a file onto a block.
* Upload a file by going to the `#Asset` page and clicking on the `+ New` icon under the tagged nodes table.
* Create from an external file by creating an image link in a block e.g. ``, clicking on it and then highlighting it. You'll be prompted to create an asset from the external one. This works for urls as well as local file paths e.g. `/Users/user/...`.
Asset files are stored under a graph's `assets/` directory. Manage assets from the `#Asset` page's tagged nodes table. The `Gallery View` is a helpful way to view assets.
### Templates
A template has the tag `#Template`. A template allows for block(s) and their children to be easily copied. To create a template, write the name of the template in a new block and tag the block with `#Template`. Then add children blocks (however many levels deep) under the template block. To insert a copy of a template, use the `/Template` command.
When creating a template block, there is an optional `Apply template to tags` property to use. This property provides interesting automation whenever a [tagged node](#tagged-node) is created for a configured tag. For example, create a template and configure the property to apply to `#Journal`. Now whenever a journal page is created, the template gets applied at the top of the page. If a tag is configured with multiple templates, the templates are applied in succession. When a tagged node is a block instead of a page e.g. `#Task`, the template is applied as the first child of the block. Templates can apply to built-in and user tags.
### More Tags
Here are more tags that are built-in, most of which are created with `/` commands:
* `#Code` - Create a code block with the `/Code block` command or by typing the backtick ` three times.
* `#Quote` - Create a quote block with the `/Quote` command or by typing `>`.
* `#Math` - Create a math block written as LaTeX with the `/Math block` command.
* `#PDF Annotation` - A node with this tag is created each a [pdf is annotated or highlighted](https://docs.logseq.com/#/page/pdf%20highlights).
Like other tags, go to their tag pages to view and manage all of them in one place. Also like other tags, extend any tag by adding more properties to it. For example, add an author property to `#Quote` to optionally add authors to quotes.
## Bulk Actions
Bulk actions are a powerful way to make changes across nodes. When multiple nodes are selected, bulk actions can be taken on them. To select nodes in a block context, use a mouse or the shift + arrow keys. Once nodes are selected, a bulk action header appears above the blocks. The bulk action header can be closed with `Esc`. The following bulk actions are available in the header:
* `Tag`: Click on `#` icon to add/update/remove [tags](#tags) for selected nodes.
* `Copy`: Copy the block or page title of selected nodes.
* `Set Property`: Add or update a [property](#properties) for selected nodes.
* `Unset Property`: Remove a [property](#properties) for selected nodes.
* `Delete`: Click on the trash icon to delete selected nodes.
* `Three dots menu`: Click on the three dots icon to invoke additional actions to apply to selected nodes. These actions mostly consist of ones that are available when right clicking on a block.
Nodes can also be selected and have bulk actions in [tables](#tables).
## Views
Views are a powerful way to visualize a group of nodes in different ways. A view can switch between the following view types: `Table View`, `List View` or `Gallery View`. Most views default to the [Table View](#tables). The `List View` displays nodes in an outliner with nodes grouped by pages. The `Gallery View` is useful for viewing blocks as square tiles, especially for assets.
Views are used in a number of features including queries, (un)linked references, property and tag pages and `Pages`. For all these features except queries, multiple views can be created. Regardless of which view type you're in, a view's header has these common actions from left to right:
* `View name`: A view's name is editable by clicking on it and renaming it. A view can also be deleted from here.
* `New view`: Click on `+` to create a new view. Since a view is fairly customizable, this is useful for creating different views on the same nodes and to view a specific subgroup of nodes with filters.
* `Filter`: Filter nodes by any properties/columns by clicking on the filter icon.
* Multiple filters can be created and applied.
* By default, only rows that match all filters display (AND the filters). To match on any filter (OR filters), change the dropdown on the right to `Match any filter`.
* There are different operators to filter values for every property value type e.g. `Date` and `DateTime`. For example, string values can have `is` or `is not` operators while numbers can also have `<, >, <=, >= and between` operators.
* `Search`: Live search a view by clicking on the magnifying glass icon. This is the only feature that doesn't persist when switching away from a view.
* `View type`: Click on the view type name to switch between different types.
* `Three dots menu`: Click on the three dots menu to invoke additional actions. Some actions are specific to a view type. The following actions are common across view types:
* `Group by`: Group by a column/property and its values i.e. a different group for each property value. The different groups are vertically stacked.
* Nodes can be grouped by all property types except for `DateTime`.
* While each group is displayed as a different view, they all obey the same view-level configuration.
* `Sort groups by`: When grouping nodes by page, sort group by options including `Journal date`, `Page name` and `Page created date`.
* `Sort groups order`: When grouping nodes by page, sort groups `Ascending` or `Descending`.
* `Export EDN`: Exports the currently viewable nodes to your clipboard as [Build EDN Data](#build-edn-data). The exported nodes are affected by `Search` or `Filter` usage.
* `New node`: Click on the `+` icon to create a new node in the view. Different features will behave differently for this. For example, when clicked from a tag or property page, the new node will have that tag or property added to it.
NOTE: All actions that alter what you see are saved except for `Search`!
### Tables
A table displays a group of nodes as rows and a node's properties as columns. A table behaves like a spreadsheet as table cells are editable by default. A node has the following special columns which are available by default: `Name`, `Created At` and `Updated At`. Tables have the following features:
* `Sort`: Click on a column to sort it by ascending or descending. Multiples sorts can be applied. Click on the sort icon in the header to remove a sort.
* `Columns visibility`: Under the three dots menu, this menu can toggle the visibility of any column.
* `+ New`: At the bottom of the table, this creates a new node, like the `+` icon in the view header.
* Column actions:
* Click on column(s) and select `Pin` to ensure they appear first.
* Drag columns to sort their order.
* Resize columns by dragging the resize handle at a column header's border.
* Bulk actions: When rows in the table are selected, bulk actions appear in the table header. All the bulk actions [described above](#bulk-actions) are available except for the `Three dots menu`.
* Keyboard shortcuts: Use arrow keys to navigate between cells. Press `Enter` to edit a cell and `Esc` to exit editing.
## Library
The `Library` is a built-in page that displays and edits namespaced pages as if they were blocks on a page. This is powerful as it allows an outliner to build and organize a hierarchy of pages. This is useful for those who want to organize their pages as if they were under folders on a computer. Pages that have no common properties are a good fit for namespaces. Pages that have common properties are better organized with [tags](#tags). The following actions can be done on the `Library` page:
* Add to the Library with the `Add existing pages to Library` button.
* Delete from the Library by selecting a block and pressing `Backspace` or `Cmd-X`. This also deletes the page's relationship to its namespace. This does not delete the page.
## Search Commands
Search commands run commands from the [Search modal](https://docs.logseq.com/#/page/search). To invoke a search command, press `Cmd+Shift-P` on Mac/Linux or `Ctrl+Shift-P` on Windows, type the command and press `Enter`. The following commands are new and only for DB graphs unless otherwise noted:
* Command `Quick add` - Opens a modal to quickly jot down notes without losing context. This feature is in its own tab in the mobile app. The modal's contents are sent to the current journal day by pressing a button or the keybinding `Cmd-E`.
* Command `Customize appearance` - Opens a modal to edit appearance related settings.
* Command `Move blocks to` - Moves the current or selected nodes to the chosen page. Also available for file graphs.
* Commands from [property shortcuts](#property-shortcuts).
* Commands from [Build EDN Data](#build-edn-data).
* For developers, there are `Validate current graph` and `Garbage collect graph` commands.
## MCP Server
There is an optional [MCP](https://modelcontextprotocol.io/docs/getting-started/intro) server to allow AI applications to connect to a graph. An MCP server can run from the desktop app against the current graph or from the [cli](#cli) against a local or current graph. To configure the server on desktop:
1. Go to `Settings > AI` and enable the `MCP Server` switch.
2. Then create an authorization token to your [HTTP Server](https://docs.logseq.com/#/page/local%20http%20server) for MCP requests and start the HTTP server.
3. Configure a Local LLM that supports the [Streamable HTTP](https://modelcontextprotocol.io/specification/2025-11-25/basic/transports#streamable-http) mode:
* [Gemini](https://gemini.google.com/) can be used on a free tier with a google account. Add the server with the gemini cli: `gemini mcp add logseq-http http://127.0.0.1:12315/mcp --transport http --header "Authorization: Bearer TOKEN"` where `TOKEN` is your server's auth token.
* [LM Studio](https://lmstudio.ai/) can be used locally for free. Add a MCP server [as documented](https://lmstudio.ai/docs/app/plugins/mcp) and use http://127.0.0.1:12315/mcp for the url and for the Authorization header use `Bearer TOKEN` where `TOKEN` is your server's auth token.
NOTE: When running from the cli, you can skip step 1.
The MCP Server supports the following features:
* All creates and edits support one or many nodes as the MCP server can batch creates and edits in one invocation.
* All creates and edits have a pretend option e.g. "pretend add page X with y blocks". This is useful for seeing how many changes would occur.
* All changes to a current graph are undo/redo-able e.g. `Cmd-Z` in the app.
* Search any node e.g. cmd-k.
* Create and list pages.
* Create and list tags. When creating tags, their properties and parent can be specified
* Create and list properties. When creating properties, their type, cardinality and tags (for node type) can be specified
* Add blocks to a page or edit them. When adding, tags can be specified. When editing, only block titles are supported.
* All references to tags, properties or pages can handle new ones or reference existing ones.
* Creation of pages, tags and properties runs the same app validations to prevent invalid data.
The following are TODOs for the MCP server:
* Edit pages, tags and properties
* Read and write properties that are associated with any node type
* Read and write block children. This includes listing blocks beyond the top-level in a page.
* Anything related to namespaces or property values
## Sync
NOTE: This feature is a paid feature that is currently _invite only_. This feature can also be self hosted!
Logseq Sync syncs DB graphs between devices. It is also referred to as RTC (Real Time Collaboration) since this sync supports collaboration between users in real time like Google Docs! Some workflows that are specific to Sync:
* To create a synced DB graph:
* On a desktop or browser client, do a one-time setup of setting up an encryption password. Go to `Settings > Encryption` and follow the instructions.
* Click on the left sidebar graph name to open a menu and choose the `Create db graph` menu item.
* Check 'Use Logseq Sync?'
* To configure a self host sync url, go to `Settings > Advanced > Sync Server URL`. For more on self hosting, see guides in [Additional Links](#additional-links).
## Publish
NOTE: This paid feature requires an account used with Sync. This feature can also be self hosted!
Logseq Publish allows users to share pages of any graph. Pages are published to https://logseq.io with [CloudFlare](https://www.cloudflare.com/) and can be optionally password protected. The published page is a read-only, minimal outliner with the ability to collapse blocks and a few other features. If you're looking to publish a whole graph, there is an older [publishing feature](https://docs.logseq.com/#/page/publishing).
After logging in, publish the current page by pressing `Cmd-M` or run the command `Open publish dialog ...`. Before publishing, there is an optional password that can be provided. After publishing, the current page has a `Published URL` property for the url to share and the option to `Unpublish` next to it. To update local changes to the page, simply re-publish. To customize any css or js for published pages, edit the `publish.css` and `publish.js` pages through `Cmd-K`.
A published page has the following features:
* Search across published pages for the graph with `Cmd-K` or the search bar at the top.
* If a page is password protected, it is excluded from search results to ensure its privacy.
* Press `t o` to toggle collapse/expand of all blocks.
* Press `t t` or use the slider at the top to toggle dark mode.
* Click on a tag to see all nodes with that tag.
The publishing platform has the following url routes that are useful to know:
* `https://logseq.io/tag/TAG` to see all nodes across users tagged with `TAG`.
* `https://logseq.io/ref/REF` to see all nodes across users referenced by page `REF`.
* `https://logseq.io/u/USER` to see all pages for `USER`.
* `https://logseq.io/graph/GRAPH-UUID` to see all pages for a graph.
* `https://logseq.io/page/GRAPH-UUID/TAG-UUID` to see all blocks in a published page. If the page is a tag, all nodes tagged with the tag are shown.
To configure a self host publish url, go to `Settings > Advanced > Publish Server URL`. You will need a Cloudflare account in order to self host. For more on self hosting, see guides in [Additional Links](#additional-links).
## Plugins
There are currently 65+ plugins that support DB graphs. To see them, go to https://logseq.github.io/marketplace/ and filter by the `Supports DB?` column. In the app's `Marketplace`, plugins that support DB have a DB icon with a heart in the upper right corner. Sort by `Supports DB graphs` to see DB supported plugins first.
The [JS Plugin SDK](https://logseq.github.io/plugins/) adds support for DB graphs, including DB-graph specific methods. There is also a CLJS SDK. See https://github.com/logseq/cljs-plugin-example for an example plugin using the CLJS SDK. For example DB-compatible plugins, see https://github.com/benjypng/logseq-zoterolocal-plugin and https://github.com/kerim/logseq-checklist.
## DB Graph Importer
The DB Graph Importer converts a file graph to a DB graph. An overview of what it does:
* It imports markdown files.
* All tasks are imported as new [tasks](#tasks). Some task statuses have been remapped to avoid duplicates e.g. `TODO` and `LATER`. The following statuses have been remapped:
* `LATER` -> `Todo`
* `IN-PROGRESS` and `NOW` -> `Doing`
* `WAIT` and `WAITING` -> `Backlog`
* Tags are imported as follows:
* By default, all tags are imported as [tags](#tags) using the `Import all tags` input. This allows you to use all your tags as you have previously, along with the new functionality they have. Any properties associated with a tag are added to tags to take advantage of the new functionality.
* Alternatively you can import only specific tags to [tags](#tags) using the `Import specific tags` input. Tags that aren't specified in this input are then imported as follows:
* All such tags become pages.
* Tags in a block are converted to [page references](https://docs.logseq.com/#/page/term%2Fpage%20reference).
* Tags associated with a page are associated to that page with a `Page Tags` property.
* Tags are removed from their blocks when the `Remove inline tags` checkbox is checked. This matches the behavior of the DB version.
* Property types are automatically detected for Number, Date, Checkbox, Url, Node and Text. If a property value has two conflicting but compatible types like Number and Text, it will choose the more lenient Text type.
* Assets are copied and renamed to unique uuids. Zotero pdfs are imported, if the importer is run on desktop.
### Convert File Graph to DB graph
* Click on the three dots menu in the upper right corner and select `Import`.
* Click on the `File to DB graph` button.
* This brings up a dialog. For larger graphs it takes longer for the dialog to display.
* The dialog requires you to input a name for your graph.
* The dialog has the following optional inputs:
1. `Extract inline code snippets as child blocks` - When checked, this handles blocks with multiple code snippets by extracting them to child blocks. By default only the first snippet is imported as a block can only support one `#Code` (snippet).
1. `Import all tags` - This checkbox convert all existing tags to be [tags](#tags).
1. `Import specific tags` - This input is an alternative to `Import all tags` in which you only convert specific tags to be [tags](#tags). This is helpful if you don't want most of your existing tags to behave like tags. You can also convert pages later by right clicking on a page's name.
1. `Remove inline tags` - This checkbox removes inline tags from block content for any converted tags. This matches the DB graph behavior since all tags are now visible to the right of a block.
1. `Import additional tags from property values` - This input converts property values for the specified property/properties to the tags. For example, in the official docs graph the [type property](https://docs.logseq.com/#/page/type) is used this way. This means that all `type` property values like [Feature](https://docs.logseq.com/#/page/feature) on [this page](https://docs.logseq.com/#/page/code%20block) would get converted to a tag.
1. `Import tag parents from property values` - This input converts property values for the specified property to be [a parent of a tag](#parent-tags). For example, in the official docs graph the [parent property](https://docs.logseq.com/#/page/parent) is used this way. This means that all `parent` property values like [Thing](https://docs.logseq.com/#/page/thing) on [this page](https://docs.logseq.com/#/page/feature) would get converted to a tag.
### Importer Limitations
The importer does its best to import all file graph content and loudly error or warn when something doesn't fully import. The only exceptions are the following cases:
* A block with multiple simple queries, multiple advanced queries, multiple embeds or multiple quotes only imports the first of these. This is because file graphs could have multiple of these in one block whereas DB graphs can only have one of these per block.
* A block with a mix of simple queries, advanced queries, embeds or quotes only imports one of these. This is because file graphs could have multiple of these in one block whereas DB graphs can only have one of these per block.
## Automated Backup
This feature is _only_ for the browser and desktop. An automated backup of graphs is available by clicking on the upper right three dots menu and selecting `Export Graph`.
For the browser, you can specify a folder (directory) to save backups. A backup folder can be reused across graphs as each graph gets its own folder within a backup folder. After choosing this folder, hourly backups begin. The last 12 backups are saved.
For the desktop, backups are automatically enabled at the `backups` folder inside your graph directory. The last 12 backups are saved.
## Export and Import
### Graph Export
To export a DB graph, click on the three dots menu in the upper right corner, select `Export graph` and then choose one of the following options:
1. `Export SQLite DB` - Export graph as a [SQLite](https://sqlite.org/) .db file.
2. `Export both SQLite DB and assets` - Export graph as a .zip file containing the DB file and the graph's assets.
3. `Export EDN file` - Export graph as EDN described in [Build EDN Data](#build-edn-data). This is the only export type that fully captures a graph's data and is editable. This export is not yet recommended as the only means to backup a graph.
4. `Export as standard Markdown (no block properties)` - Export graph as standard markdown, not Logseq markdown. Since this export is unlikely to ever export timestamps or all properties, it cannot capture all data in a graph. See the EDN export for an export type that captures all data and is editable.
5. `Export public pages` - Export graph in order to publish it on the web. See https://docs.logseq.com/#/page/publishing for more.
6. `Export debug transit file` - Export graph as a transit file to be shared with the Logseq team for debugging. Any personal sensitive data is removed.
### Graph Import
To import a DB graph, click on the three dots menu in the upper right corner, selecting `Export graph` and then choose one of the following options:
To import the exported .sqlite file, click on the three dots menu in the upper right corner, select `Import` and then choose one of the following options:
1. `SQLite` - Import using the SQLite DB file from export.
2. `SQLite + assets (.zip)` - Import a zip file that contains a graph's DB file and assets.
3. `File to DB graph` - Import a markdown graph. See the [db graph importer](#db-graph-importer) for more on it.
4. `Debug Transit` - Import a debug transit file from export.
5. `EDN to DB graph` - Import a DB graph that was exported as EDN into a new DB graph.
### Build EDN Data
Build [EDN](https://github.com/edn-format/edn) data is a data format to represent DB graph content. This allows for data to be shared between users as text in a graph-agnostic way. With this text, a user can import it to replicate another user's content including the content's properties and tags. This is important as it gives users control of their content like Markdown did for [the original Logseq](https://github.com/logseq/og) although not as user friendly. It also enables workflows that aren't possible with file graphs. The following commands use Build EDN:
* `Export block EDN data` - Run this command on the current block to copy it to the clipboard. When this data is imported, it will overwrite the current block.
* `Export page EDN data` - Run this command on the current page to copy it to the clipboard. When this is imported to an existing page, it will append to the existing page.
* `Export graph's tags and properties EDN data` - Run this command to copy the entire graph's tags and properties. This is useful for sharing your workflows with others without sharing your graph-specific data. This is an example of a workflow that was not possible with file graphs.
* `Import EDN data` - Run this command to import any of the above exported data. If importing a block, you must have focus on the block you want to import into. If you do not want the import after seeing it, press `Cmd-Z` to undo it.
Build EDN data is also available:
* for the whole graph using the `Export EDN file` and `EDN to DB graph` options described above.
* from any [view](#views) as a header action. For example, go to the `Pages` view and filter it to only export the viewable pages.
* for multiple selected nodes with the `Copy / Export as` modal.
For developers, Build EDN is EDN with logseq-specific keywords from namespaces [logseq.db.sqlite.build](https://github.com/logseq/logseq/blob/master/deps/db/src/logseq/db/sqlite/build.cljs) and [logseq.db.sqlite.export](https://github.com/logseq/logseq/blob/master/deps/db/src/logseq/db/sqlite/export.cljs). See those namespaces for more documentation on this format. Build EDN is used extensively by [test helpers](https://github.com/logseq/logseq/blob/master/deps/db/src/logseq/db/test/helper.cljs) to test Logseq internally. It is also useful for writing scripts e.g. [this script](https://github.com/logseq/logseq/blob/master/deps/db/script/create_graph.cljs) to create a new DB graph or [these scripts](https://github.com/logseq/logseq/tree/master/scripts#create-graph-scripts) to create custom graphs.
NOTE: Build EDN has no association with `--output` EDN from the CLI or any EDN from the original Logseq.
## iOS App
NOTE: This is _invite only_ for now.
The new iOS App works on the latest iOS versions and should work on both iPhones and iPads. The app has native UI components and provides a mobile-first outliner experience. While it doesn't have all the features of the desktop app, it adds mobile-specific features. Here is an overview of high level navigation and features:
* There are five tabs: Home, Graphs, Capture, Go To and Search. There is also a datepicker in the upper left for easy journal navigation and a three dots menu in the upper right with tab-specific actions.
* The outliner is available in all tabs except for `Graphs`.
* In `Home`, see a default Journals view. Click on the three dots menu for more info about your app.
* In `Graphs`, manage local, personal remote and shared remote graphs. Click on the the three dots menu for additional actions like `Import`.
* In `Capture`, view and create new blocks. Click on the upper left audio button to capture a voice recording. Click on the upper right icon to send the captured blocks to today's journal.
* In `Go To`, view favorited and recent nodes.
* In `Search`, search nodes like you would with `Cmd-K` search in the desktop app.
* External apps can send text to Logseq via their `Share` button. This quick capture will insert block into today's journal.
* Outliner:
* When editing a block, there is a block action bar that pops up at the bottom. The block action bar has buttons for several actions including ones to create a task, insert/create a photo, create a voice recording and open the `/` commands menu.
* Collapse blocks by clicking on arrows on the right.
## Android App
There is a new Android app that has native UI components. This has not been opened up for alpha testing yet.
## Scripting
DB graphs are scriptable using https://github.com/logseq/nbb-logseq. Scripts can both read and _write any_ data in a DB graph. See https://github.com/logseq/nbb-logseq#database-version to get started.
### Modify a DB Graph
On desktop, it is easy to modify an existing DB graph with a script and see the change in Logseq. To do so:
1. Press `Cmd-S` to persist a graph to `~/logseq/graphs/GRAPH-NAME/db.sqlite`.
2. Modify the db.sqlite with a nbb-logseq script.
3. Update the app to use the modified db.sqlite by using the `Replace graph with its db.sqlite file` dev command.
## CLI
NOTE: This refers to the old CLI which will soon be replaced by https://github.com/logseq/logseq/pull/12340
TODO: Update this section
The `logseq` [CLI](https://en.wikipedia.org/wiki/Command-line_interface) provides commands to interact with desktop DB graphs and local graphs from the command line. The CLI works independent of the Logseq app and makes Logseq features available for automation on CI/CD platforms like [Github Actions](https://github.com/features/actions). For example, a DB graph could have a Markdown export created on every push to Github. Some CLI commands also interact with the current DB graph if the [HTTP API Server](https://docs.logseq.com/#/page/local%20http%20server) is turned on. The CLI provides the following commands including:
* list - List local graphs
* show - Show DB graph(s) info
* search - Search DB graph like grep
* query - Query DB graph(s)
* export - Export DB graph as Markdown
* export-edn - Export DB graph as EDN
* import-edn Import into DB graph with EDN
* append - Append text to current page
* mcp-server - Run a MCP server
* validate - Validate DB graph
Read the [CLI's homepage](https://www.npmjs.com/package/@logseq/cli) to learn more.
## Additional Links
* https://discuss.logseq.com/t/introducing-newtags-with-examples/32310 - Helpful tutorial on tags
* https://github.com/C0ntr0lledCha0s/logseq-template-graph - Example graph with useful properties and tags. Import graph as EDN.
* https://github.com/jcblemai/logseq-graph-ci - Github workflow that uses CLI to validate a graph
* https://github.com/kerim/logseq-db-query-builder - Visual advanced query builder
* https://github.com/kerim/logseq-db-knowledge - Skills for working with DB graphs
* https://github.com/benjypng/logseq-todo-pwa - PWA that uses HTTP API
* https://github.com/clstb/yalms - MCP server that uses HTTP API
* https://bit.ly/logseqdbfaq - Informal DB version FAQ by power user
* https://www.youtube.com/@HDanzu/videos - Several videos on DB version
* https://github.com/yshalsager/logseq-selfhost - Guide on self hosting Logseq Publish, Sync and web
* https://discuss.logseq.com/t/logseq-db-changelog/30013 - Helpful changelog for DB updates
================================================
FILE: journals/2020_05_14.org
================================================
* Thursday, 05/14/2020
** [[Changelog 2020]]
*** [[https://excalidraw.com/][Excalidraw]] Integration. [[Draw]] [[Features]]
Excalidraw is a [[https://github.com/excalidraw/excalidraw][open sourcing]] virtual whiteboard for sketching hand-drawn like diagrams.
Open <https://logseq.com/draw> and enjoy it!
*** Make it impossible for the server to know anything about the user's github token [[Security]]
Now your personal github access token will be encrypted using a randomly generated key,
then the encrypted token will be stored in localstorage and the random key will be sent to the server. Next time you refresh the browser, the server can return this random key and the encrypted token can be decrypted correctly!
The cons is that you need to input your personal access token each time you need to login.
*** A [[https://logseq.com/docs][live demo]] for guest users to try!
================================================
FILE: journals/2020_05_15.org
================================================
* Friday, 05/15/2020
** [[Changelog 2020]]
*** No need to input github person token each time when you login.
*** Disable tab adjusting level when there's any links input modal
:PROPERTIES:
:CUSTOM_ID: 5ec11d99-65be-470d-b303-ec1a3b07a5e0
:END:
*** Fix an editor issue when there's no headings in the file
*** Fix issue of /tab/ key adjusting level
*** Move datascript dbs to indexeddb
================================================
FILE: journals/2020_05_17.org
================================================
* Sunday, 05/17/2020
** [[Changelog 2020]]
*** Add block reference
:PROPERTIES:
:id: 60a77d61-fc7d-46e7-b34f-c8eb4f54dce2
:END:
E.g ~((block))~
*** Add zoom in && out to edit specific heading, click the ~dot~ before the heading.
*** Add keybindings for adjusting levels.
You can already use ~tab~ to add or remove one level, two more bindings were added:
1. ^^alt+shift+left^^ to remove one level each time.
2. ^^alt+shift+right^^ to add one level each time.
*** Defaults to solarized dark theme.
** [[Fixed issues]]
*** Logout will clear both localstorage and indexeddb.
================================================
FILE: journals/2020_05_18.org
================================================
* Monday, 05/18/2020
** [[Changelog 2020]]
*** Add a right sidebar.
You can ~shift~ + ~click~ to open any page, heading, or reference.
*** When editing, no longer showing both ~##~ (for markdown users) and ~**~ (for Org mode users).
** [[Fixed issues]]
*** Allow editing contents before any headings when editing files.
================================================
FILE: journals/2020_05_20.org
================================================
* Wednesday, 05/20/2020
** [[Changelog 2020]]
*** Add [[term/alias][Page alias]] (Only supporting org mode for now).
*** [[https://github.com/org-roam/org-roam][Org roam]] Integration.
Rudimentary Roam replica with Org-mode.
[[Features]]
*** Basic page graph.
[[Features]]
** [[Fixed issues]]
*** Definition list parsing
================================================
FILE: journals/2020_05_21.org
================================================
* Thursday, 05/21/2020
** [[Changelog 2020]]
*** Add a white theme (dark theme is coming).
*** Now you can add new pages.
[[https://cdn.logseq.com/%2F59c4036f-98b3-42b6-b6a6-2800a06f44a12020_05_21_Screenshot%202020-05-21%2023-05-27%20%2B0800.png?Expires=4743673557&Signature=TcfZIqnSCw8llL8MIosuA2CxXBU7DRJE80Eea0HIUHD84mM-Nf6WctPpDa8cMtNuw7QN78CG6lMfcv-pfVf5Cu8xbIj6GYYOF-88qviC9TgtUhShsfuLFvKtEHFuxksX2b9M1NWzPFavyXgzEG~xdefeDKE7j6D5kgIjdcB1vP2-hQvP2EIyvBjx78-NdH4iadFp5ja1~xMRlLBaF4qJJGIPpaxtyuFvNr52eQL55xDLGis5CifX3H1TAKE10giCTg5F4CXnW6l7cipaEq10csIXIbtK4VzGfEyihl3OYYafz20rPzMk-QvXwxqf3IzVI0dZACIHTBzbGiTYdg6cWA__&Key-Pair-Id=APKAJE5CCD6X7MP6PTEA][2020_05_21_Screenshot 2020-05-21 23-05-27 +0800.png]]
** [[Fixed issues]]
*** Fixed slow editing
================================================
FILE: journals/2020_05_22.org
================================================
* Friday, 05/22/2020
** [[Changelog 2020]]
*** Add a dark theme, inspired by the famous [[https://ethanschoonover.com/solarized/][Solarized dark theme]].
*** Search support ~pages~, ~files~ and ~blocks~ now. Also, there's a link for creating ~New page~.
*** Editing should be a lot faster than before!
*** Searching is faster too!
** [[Fixed issues]]
*** Fix scroll not working when the right sidebar is open.
================================================
FILE: journals/2020_05_25.org
================================================
* Monday, 05/25/2020
** [[Changelog 2020]]
*** Add a git status ~dot~ to the heading.
[[https://cdn.logseq.com/%2F59c4036f-98b3-42b6-b6a6-2800a06f44a12020_05_25_Screenshot%202020-05-25%2016-29-44%20%2B0800.png?Expires=4743995397&Signature=exWvdf-0DamW6KaW8TzXh3QfkNzQhHgb4TML0rtSpkF~lGQNzziPt55G33Gbr12rxcIxD2z06hFFLMtfdepuFrLqyDmfR-znKlwpgWwOZTlpEJnJ-N52FqrJOnJ9qrzHYIGKG0Q4XcJYMTfIT1NYzHzGXdHsFDx3G-4elHsDPxVvw6wereuD3EuxSt6uVDaJNjLUhreSq~3fBln3~IUl1BgZObT8SaglqS-IZxUY1weYRN11JYKLWze2pOLTbRnwjogUm4jSc1rRU0xYDZBVhfVaBdNJwKXi5tMnXOEbhVgGJZj34HrSRHOHkZ40bOoj4dGjYoYm7NJlq8-mZu4zTg__&Key-Pair-Id=APKAJE5CCD6X7MP6PTEA][2020_05_25_Screenshot 2020-05-25 16-29-44 +0800.png]]
*** Editing and inserting new headings should be fast now!
================================================
FILE: journals/2020_05_27.org
================================================
* Wednesday, 05/27/2020
** Fixed issues
*** Fixed issue of login.
*** Fixed issue of git pull.
*** Don't re-render the right sidebar if there's no data changed.
================================================
FILE: journals/2020_05_28.org
================================================
* Thursday, 05/28/2020
** Changelog
*** Add history support.
| Name | Shortcut |
|------+----------|
| Undo | ~Ctrl-c~ |
| Redo | ~Ctrl-y~ |
================================================
FILE: journals/2020_05_29.org
================================================
* Friday, 05/29/2020
** Changelog
*** Add auto pairs, it supports ~(~, ~[~ and ~{~ now.
** Fixed issues
*** Selection are working fine on Chrome.
*** ~Ctrl-x~ can copy now.
================================================
FILE: journals/2020_05_30.org
================================================
* Saturday, 05/30/2020
** Changelog
*** Add custom datalog query support.
1. Add multiple queries to the journals page:
For example, to see all your todos for the last 2 days in the home page,
add the content below to your ~logseq.edn~:
#+BEGIN_SRC clojure
:default-queries
{:journals [{:title "TODO"
:query "[[:find (pull ?h [*])
:in $ ?start ?today
:where
[?h :heading/marker ?marker]
[?h :heading/page ?p]
[?p :page/journal? true]
[?p :page/journal-day ?d]
[(>= ?d ?start)]
[(< ?d ?today)]
[(contains? #{\"TODO\" \"DOING\" \"WAITING\" \"WAIT\"} ?marker)]]
:2d
:today]"}]}
#+END_SRC
2. Add a query block to any pages:
For example:
#+BEGIN_SRC clojure
{:query
[:find (pull ?h [*])
:where
[?h :heading/content ?content]
[?h :heading/page ?p]
[?p :block/name "jun 1st, 2020"]]}
#+END_SRC
#+BEGIN_QUERY
{:query
[:find (pull ?h [*])
:where
[?h :heading/content ?content]
[?h :heading/page ?p]
[?p :block/name "jun 1st, 2020"]]}
#+END_QUERY
================================================
FILE: journals/2020_05_31.org
================================================
* Sunday, 05/31/2020
** Changelog
*** Custom journal date format support. [[Features]]
:PROPERTIES:
:id: 60acdeb9-aa65-492b-8398-d4d65c1631c1
:END:
You can set the ~:date-formatter~ in ~logseq.edn~.
The default formatter is ~"MMM do, yyyy"~, which will be something like
~Jun 1st, 2020~.
*** Templates support . [[Features]]
You can set the option ~:default-templates~ in the file ~logseq.edn~.
**** For Markdown users
#+BEGIN_SRC clojure
:default-templates
{:journals "## [[Work]]
###
## [[Family]]
###
"}
#+END_SRC
**** For Org mode users
#+BEGIN_SRC clojure
:default-templates
{:journals "** [[Work]]
,***
,** [[Family]]
,***
"}
#+END_SRC
** Fixed issues
*** Org mode auto link parsing.
*** Markdown definition parsing (it supports both multiple definitions and multiple lines now).
*** Footnote parsing.
================================================
FILE: journals/2020_06_01.org
================================================
* Jun 1st, 2020
** [[Changelog 2020]]
*** Admonitions, inspired by [[https://asciidoctor.org/docs/user-manual/#admonition][Asciidoctor Admonitions]]. [[Features]]
**** Note
#+BEGIN_NOTE
It supports */formats/* too.
- Item 1
- Item nested 1
- Item nested 2
- Item 2
#+END_NOTE
**** Tip
#+BEGIN_TIP
Tips.
#+END_TIP
**** Important
#+BEGIN_IMPORTANT
IMPORTANT
#+END_IMPORTANT
**** Caution
#+BEGIN_CAUTION
CAUTION
#+END_CAUTION
**** Warning
#+BEGIN_WARNING
WARNING
#+END_WARNING
================================================
FILE: journals/2020_09_14.md
================================================
---
title: Sep 14th, 2020
---
-
================================================
FILE: journals/2020_09_19.md
================================================
---
title: Sep 19th, 2020
---
-
================================================
FILE: journals/2020_09_20.md
================================================
---
title: Sep 20th, 2020
---
-
================================================
FILE: journals/2020_09_21.md
================================================
---
title: Sep 21st, 2020
---
-
================================================
FILE: journals/2020_09_22.md
================================================
---
title: Sep 22nd, 2020
---
-
================================================
FILE: journals/2020_09_23.md
================================================
---
title: Sep 23rd, 2020
---
- Test something
================================================
FILE: journals/2020_09_24.md
================================================
---
title: Sep 24th, 2020
---
-
================================================
FILE: journals/2020_09_25.md
================================================
---
title: Sep 25th, 2020
---
-
================================================
FILE: journals/2020_09_28.md
================================================
---
title: Sep 28th, 2020
---
-
================================================
FILE: journals/2020_09_29.md
================================================
---
title: Sep 29th, 2020
---
-
================================================
FILE: journals/2020_10_01.md
================================================
---
title: Oct 1st, 2020
---
-
================================================
FILE: journals/2020_10_02.md
================================================
---
title: Oct 2nd, 2020
---
- Testing
Testing
-
-
================================================
FILE: journals/2020_10_03.md
================================================
---
title: Oct 3rd, 2020
---
-
================================================
FILE: journals/2020_10_05.md
================================================
---
title: Oct 5th, 2020
---
-
================================================
FILE: journals/2020_10_06.md
================================================
---
title: Oct 6th, 2020
---
-
================================================
FILE: journals/2020_10_07.md
================================================
---
title: Oct 7th, 2020
---
-
================================================
FILE: journals/2020_10_08.org
================================================
#+TITLE: Oct 8th, 2020
**
================================================
FILE: journals/2020_10_09.md
================================================
---
title: Oct 9th, 2020
---
-
================================================
FILE: journals/2020_10_10.md
================================================
---
title: Oct 10th, 2020
---
-
================================================
FILE: journals/2020_10_11.md
================================================
---
title: Oct 11th, 2020
---
-
================================================
FILE: journals/2020_10_12.md
================================================
---
title: Oct 12th, 2020
---
-
================================================
FILE: journals/2020_10_16.md
================================================
---
title: Oct 16th, 2020
---
-
================================================
FILE: journals/2020_10_22.md
================================================
---
title: Oct 22nd, 2020
---
-
================================================
FILE: journals/2020_10_23.md
================================================
---
title: Oct 23rd, 2020
---
-
================================================
FILE: journals/2020_10_24.md
================================================
---
title: Oct 24th, 2020
---
-
================================================
FILE: journals/2020_10_26.md
================================================
---
title: Oct 26th, 2020
---
-
================================================
FILE: journals/2020_10_27.org
================================================
#+TITLE: Oct 27th, 2020
**
================================================
FILE: journals/2020_10_28.md
================================================
---
title: Oct 28th, 2020
---
-
================================================
FILE: journals/2020_11_06.md
================================================
---
title: Nov 6th, 2020
---
-
================================================
FILE: journals/2020_11_07.md
================================================
---
title: Nov 7th, 2020
---
-
================================================
FILE: journals/2020_11_11.md
================================================
---
title: Nov 11th, 2020
---
-
================================================
FILE: journals/2020_11_13.md
================================================
---
title: Nov 13th, 2020
---
-
================================================
FILE: journals/2020_11_17.md
================================================
---
title: Nov 17th, 2020
---
-
================================================
FILE: journals/2020_11_18.md
================================================
---
title: Nov 18th, 2020
---
-
================================================
FILE: journals/2020_11_26.md
================================================
---
title: Nov 26th, 2020
---
-
================================================
FILE: journals/2020_11_29.md
================================================
---
title: Nov 29th, 2020
---
-
================================================
FILE: journals/2020_12_05.md
================================================
---
title: Dec 5th, 2020
---
-
================================================
FILE: journals/2020_12_07.md
================================================
---
title: Dec 7th, 2020
---
-
================================================
FILE: journals/2020_12_16.md
================================================
---
title: Dec 16th, 2020
---
-
================================================
FILE: journals/2020_12_29.md
================================================
---
title: Dec 29th, 2020
---
-
================================================
FILE: journals/2021_01_12.md
================================================
---
title: Jan 12th, 2021
---
-
================================================
FILE: journals/2021_01_13.md
================================================
---
title: Jan 13th, 2021
---
-
================================================
FILE: journals/2021_01_15.md
================================================
---
title: Jan 15th, 2021
---
-
================================================
FILE: journals/2021_01_16.md
================================================
---
title: Jan 16th, 2021
---
-
================================================
FILE: journals/2021_01_18.md
================================================
---
title: Jan 18th, 2021
---
-
================================================
FILE: journals/2021_01_19.md
================================================
---
title: Jan 19th, 2021
---
-
================================================
FILE: journals/2021_01_23.md
================================================
---
title: Jan 23rd, 2021
---
-
================================================
FILE: journals/2021_01_24.md
================================================
---
title: Jan 24th, 2021
---
-
================================================
FILE: journals/2021_01_27.md
================================================
---
title: Jan 27th, 2021
---
-
================================================
FILE: journals/2021_01_28.md
================================================
---
title: Jan 28th, 2021
---
-
================================================
FILE: journals/2021_01_29.md
================================================
---
title: Jan 29th, 2021
---
-
================================================
FILE: journals/2021_01_30.md
================================================
---
title: Jan 30th, 2021
---
-
================================================
FILE: journals/2021_01_31.md
================================================
---
title: Jan 31st, 2021
---
-
================================================
FILE: journals/2021_02_01.md
================================================
---
title: Feb 1st, 2021
---
-
================================================
FILE: journals/2021_02_02.md
================================================
---
title: Feb 2nd, 2021
---
-
================================================
FILE: journals/2021_02_05.md
================================================
---
title: Feb 5th, 2021
---
-
================================================
FILE: journals/2021_02_06.md
================================================
---
title: Feb 6th, 2021
---
-
================================================
FILE: journals/2021_02_07.md
================================================
---
title: Feb 7th, 2021
---
-
================================================
FILE: journals/2021_02_14.md
================================================
---
title: Feb 14th, 2021
---
-
================================================
FILE: journals/2021_02_15.md
================================================
---
title: Feb 15th, 2021
---
-
================================================
FILE: journals/2021_02_16.md
================================================
---
title: Feb 16th, 2021
---
-
================================================
FILE: journals/2021_02_17.md
================================================
---
title: Feb 17th, 2021
---
-
================================================
FILE: journals/2021_02_20.md
================================================
---
title: Feb 20th, 2021
---
- DONE Write changelog for v0.0.9
done:: 1614350275750
================================================
FILE: journals/2021_02_26.md
================================================
---
title: Feb 26th, 2021
---
- NOW Write changelog for v0.0.10
now:: 1614348097567
================================================
FILE: journals/2021_02_27.md
================================================
---
title: Feb 27th, 2021
---
-
================================================
FILE: journals/2021_03_01.md
================================================
---
title: Mar 1st, 2021
---
-
================================================
FILE: journals/2021_03_02.md
================================================
---
title: Mar 2nd, 2021
---
-
================================================
FILE: journals/2021_03_08.md
================================================
---
title: Mar 8th, 2021
---
-
================================================
FILE: journals/2021_03_15.md
================================================
---
title: Mar 15th, 2021
---
-
================================================
FILE: journals/2021_03_26.md
================================================
---
title: Mar 26th, 2021
---
-
================================================
FILE: journals/2021_03_27.md
================================================
---
title: Mar 27th, 2021
---
-
================================================
FILE: journals/2021_04_01.md
================================================
---
title: Apr 1st, 2021
---
-
================================================
FILE: journals/2021_04_02.md
================================================
---
title: Apr 2nd, 2021
---
-
================================================
FILE: journals/2021_04_19.md
================================================
---
title: Apr 19th, 2021
---
-
================================================
FILE: journals/2021_04_30.md
================================================
---
title: Apr 30th, 2021
---
-
================================================
FILE: journals/2021_07_14.md
================================================
-
================================================
FILE: journals/2021_07_19.md
================================================
-
================================================
FILE: logseq/config.edn
================================================
{:text-formats [],
:all-pages-public? true
:default-home {:page "Contents"}
;; Currently, we support either "Markdown" or "Org".
;; This can overwrite your global preference so that
;; maybe your personal preferred format is Org but you'd
;; need to use Markdown for some projects.
;; :preferred-format ""
:preferred-format "Markdown"
:feature/enable-grammarly? false
;; The app will ignore those directories or files.
;; E.g. "/archived" "/test.md"
:hidden ["script" "README.md" "CONTRIBUTING.md" "LICENSE.md" "db-version.md" "db-version-changes.md"]
;; When creating the new journal page, the app will use your template content here.
;; Example for Markdown users: "## [[Work]]\n###\n## [[Family]]\n###\n
;; Example for Org mode users: "** [[Work]]\n***\n** [[Family]]\n***\n
:default-templates
{:journals ""}
;; The app will show those queries in today's journal page,
;; the "NOW" query asks the tasks which need to be finished "now",
;; the "NEXT" query asks the future tasks.
;; Add your own commands to speedup.
;; E.g. [["js" "Javascript"]]
:commands
[]
;; Macros replace texts and will make you more productive.
;; For example:
;; Add this to the macros below:
;; {"poem" "Rose is $1, violet's $2. Life's ordered: Org assists you."}
;; input "{{{poem(red,blue)}}}"
;; becomes
;; Rose is red, violet's blue. Life's ordered: Org assists you.
:macros
{"docs-base-url" "https://docs.logseq.com/#/page/$1"
"query-done" "{{query (and (task done) $1)}}"
"mark" "[:mark \"$1\"]"}
:feature/enable-block-time? true
:feature/enable-timetracking? true
:feature/enable-journals? false
:ui/show-brackets? true
:feature/enable-encryption? false
:markdown/version 2
:favorites ["Getting started" "Changelog" "Videos"]
:file/name-format :triple-lowbar
:feature/enable-whiteboards? true}
================================================
FILE: logseq/custom.css
================================================
.page-property-value .macro {
display: inline-flex;
}
================================================
FILE: logseq/metadata.edn
================================================
()
================================================
FILE: logseq/srs-of-matrix.edn
================================================
{2 {2.46 2.64}, 1 {2.6 4.14}, 0 {2.5 4.43}}
================================================
FILE: pages/Academic.md
================================================
type:: [[FeatureTag]]
================================================
FILE: pages/Advanced Queries.md
================================================
type:: [[Feature]]
platforms:: [[All Platforms]]
description:: Advanced queries are written with [Datalog](https://en.wikipedia.org/wiki/Datalog) and query the [Datascript](https://github.com/tonsky/datascript) database.
- ## Intro
- #+BEGIN_NOTE
[[Learn Datalog Today]] is a great first reference if you're not familiar with Datalog.
If this is your first time looking at an advanced query, first skim our [beginner user resources](((63bc6201-53b1-47a4-834f-83934b69ad49))). Several resources are listed so look ones for that fit your learning style.
#+END_NOTE
- ## Advanced Query Shape
- An advanced query looks like this:
updated-at:: 1609246099894
created-at:: 1609244764756
#+BEGIN_EXAMPLE
{:title [:h2 "Your query title"]
:query [:find (pull ?b [*])
:where ...]
:inputs [...]
:view (fn [query-result] [:div ...]) ;; or :keyword from config.edn
:result-transform (fn [query-result] ...) ;; or :keyword from config.edn
:collapsed? true
:group-by-page? true
:remove-block-children? true
:rules [...]}
#+END_EXAMPLE
| Name | Description | Default | Optional |
|------------------|----------------------------------|---------|----------|
| title | query title, supports hiccup | | true |
| query | datascript query or simple query | | false |
| inputs | query inputs, can be multiple values | | true |
| view | fn or keyword | | true |
| collapsed? | whether to collapse the result | false | true |
| result-transform | fn or keyword | | true |
| rules | list of rules to apply to query | | true |
|group-by-page? | groups results by page, only applies in list view | true | true|
|remove-block-children? | Removes results that are children of a result, see below. Only applies to block queries. | true | true |
- **Query Tips**
updated-at:: 1609244703085
created-at:: 1609244703085
#+BEGIN_TIP
1. `?b` and `?p` are special symbols in queries that must be used with blocks and pages.
2. Page names are stored as lower case in the database.
3. Most simple query operators are available as [rules](https://docs.datomic.com/on-prem/query/query.html#rules) in queries
4. Titles can be be hiccups or double-quoted strings. For example, if you want to put custom macros into the query title, you can write something like `"{{poem foo,bar}}"`.
5. When [[Developer mode]] is enabled, page and block data can be viewed by running the respective commands `(Dev) Show page data` and `(Dev) Show block data` .
#+END_TIP
- ### Query Options
- #### remove-block-children?
- When this option is true, do not return child blocks separately when they are already shown as a sub-bullet of a parent block.
- This is the default so that child results don't appear multiple times visually and confuse users.
- When this option is false, the parent block is returned including all its children as well as the child blocks individually when they also match the query criteria.
- This only applies when the property group-by-page? is set to false.
- Only applies to queries that return blocks.
- ### Query Inputs
These are special values for a query's `:inputs` key above:
- #### Special page and block inputs
- `:current-page` - Sanitized, lower case name of current page the user is in. See [this example](((63b70dc8-58a5-4a43-ae19-28143edb7752)))
- `:query-page` - Sanitized, lower case name of page that query is in. This is useful when a query is to be displayed in an embedded page and the user doesn't want the query to change pages.
- `:current-block` - `:db/id` of current block. See [this example](((63bc5e11-24f1-45fd-945d-4a272e5ecf0d)))
- `:parent-block` - `:db/id` of parent block
- #### Special date inputs
description:: Useful for querying journal pages or blocks relative to today's date
- `:today` - Today's date. See [this example](((63b70dc8-1d59-4348-9737-e62b17fdabca)))
- `:yesterday` - Yesterday's date
- `:tomorrow` - Tomorrow's date
- `:right-now-ms` - Timestamp for current time
- #### Relative date inputs
description:: Useful for querying journal pages or blocks relative to a specific date
- Relative date queries are created by combining 3 pieces: a direction (`+` or `-`), and amount (any number `X`), and a unit (`d` for days, `w` for weeks, `m` for months, and `y` for years). *(examples within)*
collapsed:: true
- `:+200d` - 200 days in the future
- `:-11w` - 11 weeks in the past
- `:+1m` - 1 month in the future
- `:-2y` - 2 years in the past
- `:-Xd` - Date for X number of days before today's date
- `:-Xw` - Date for X number of weeks before today's date
- `:-Xm` - Date for X number of months before today's date
- `:-Xy` - Date for X number of years before today's date
- `:+Xd` - Date for X number of days after today
- `:+Xw` - Date for X number of weeks after today
- `:+Xm` - Date for X number of months after today
- `:+Xy` - Date for X number of years after today
- #### Relative timestamp inputs
description:: Useful for querying for block attributes that use millisecond timestamps e.g. `:block/created-at`
- Relative timestamp inputs can be created by adding a **time suffix** to any of the relative date inputs. Multiple **time suffixes** cannot be combined. The **time suffixes** that are supported are as follows:
- `-start` - returns the start of the day you are querying for, returning the timestamp for 00:00:00.000. *(examples within)*
collapsed:: true
- `:+1d-start` will result in the millisecond timestamp for midnight tonight, at 00:00:00.000
- `:-1d-start` will result in the millisecond timestamp for midnight the night before yesterday, at 00:00:00.000
- This is functionally equivalent to the **time suffixes** `-00`, `-0000`, `-000000`, and `-000000000`
- `-end` - returns the end of the day you are querying for, returning the timestamp for 23:59:59:999. *(examples within)*
collapsed:: true
- `:+1d-end` will result in the millisecond timestamp just before midnight tomorrow night, at 23:59:59.999
- `:-1d-end` will result in the millisecond timestamp just before midnight last night, at 23:59:59.999
- This is functionally equivalent to the **time suffix** `-235959999`
- `-HH` - Specific hour of the day you are querying, in 24 hour time. *(examples within)*
collapsed:: true
- `:+1d-14` will result in the millisecond timestamp for tomorrow, at 2:00:00.000 pm
- `:-2w-00` will result in the millisecond timestamp 14 days ago, at 00:00:00.000 am
- `:+1m-23` will result in the millisecond timestamp one month from today, at 11:00:00.000 pm
- `-HHMM` - Specific hour and minute of the day you are querying, in 24 hour time. *(examples within)*
collapsed:: true
- `:+1d-1430` will result in the millisecond timestamp for tomorrow, at 2:30:00.000 pm
- `:-2w-0000` will result in the millisecond timestamp 14 days ago, at 00:00:00.000 am
- `:+1m-2359` will result in the millisecond timestamp one month from today, at 11:59:00.000 pm
- `-HHMMSS` - Specific hour, minute, and seconds of the day you are querying for, in 24 hour time. *(examples within)*
collapsed:: true
- `:+1d-143015` will result in the millisecond timestamp for tomorrow, at 2:30:15.000 pm
- `:-2w-000000` will result in the millisecond timestamp 14 days ago, at 00:00:00.000 am
- `:+1m-235959` will result in the millisecond timestamp one month from today, at 11:59:59.000 pm
- `-HHMMSSmmm` - Specific hour, minute, seconds, and milliseconds of the day you are querying for, in 24 hour time. *(examples within)*
collapsed:: true
- `:+1d-143015777` will result in the millisecond timestamp for tomorrow, at 2:30:15.777 pm
- `:-2w-000000000` will result in the millisecond timestamp 14 days ago, at 00:00:00.000 am
- `:+1m-235959999` will result in the millisecond timestamp one month from today, at 11:59:59.999 pm
- `-ms` - when querying for dates in the past, it will return the timestamp 00:00:00.000, and when querying for dates in the future, will return the timestamp for 23:59:59.999. *(examples within)*
collapsed:: true
- `:-1d-ms` will return the timestamp for midnight the night before yesterday, at 00:00:00.000.
- Functionally equivalent to `:-1d-start`
- `:+1d-ms` will return the timestamp just before midnight tomorrow night, at 23:59:59.999.
- Functionallty equivalent to `:+1d-end`
-
- It should be noted that most **time suffixes** (all besides `-ms`) can be used in combination with the `:today` special date. *(examples within)*
collapsed:: true
- `:today-start` - returns a timestamp for 00:00:00.000 today
- `:today-end` - returns a timestamp for 23:59:59.000 today
- `:today-HH` - returns a timestamp for HH:00:00.000 today
- `:today-HHMM` - returns a timestamp for HH:MM:00.000 today
- `:today-HHMMSS` - returns a timestamp for HH:MM:SS.000 today
- `:today-HHMMSSmmm` - returns a timestamp for HH:MM:SS.mmm today
- #### Deprecated inputs
collapsed:: true
- Previously we supported different inputs between basic queries and advanced queries. These have now been unified, however we still support the follow queries for the time being. If you are using any of the following, plus upgrade them to the newer syntax mentioned for each item
- `:Xd` - Date for X number of days before today. **New syntax:** `:-Xd`
- `:Xd-before` - Date for X number of days before today. See [this example](((63b70dc8-1d59-4348-9737-e62b17fdabca))). **New syntax:** `:-Xd`
- `:Xd-after` - Date for X number of days after today. **New syntax:** `:+Xd`
- `:Xd-before-ms` - Timestamp of X days before today. **New syntax:** `:-Xd-ms`
- `:Xd-after-ms` - Timestamp of X days after today. **New syntax** `:+Xd-ms`
- `:start-of-today-ms` - Timestamp for beginning of today. **New syntax** `:today-start`
- `:end-of-today-ms` - Timestamp for end of today. **New syntax** `:today-end`
- ## Query Examples
- 1. Get all tasks
created_at:: 1609232063516
updated-at:: 1609245970090
#+BEGIN_SRC clojure
#+BEGIN_QUERY
{:title "All tasks"
:query [:find (pull ?b [*])
:where
[?b :block/marker _]]}
#+END_QUERY
#+END_SRC
- 2. Get all tasks with a tag "project"
#+BEGIN_SRC clojure
#+BEGIN_QUERY
{:title "All blocks with tag project"
:query [:find (pull ?b [*])
:where
[?p :block/name "project"]
[?b :block/refs ?p]]}
#+END_QUERY
#+END_SRC
- id:: 63b70dc8-1d59-4348-9737-e62b17fdabca
3. Blocks in 7ds with a page reference of datalog
#+BEGIN_SRC clojure
#+BEGIN_QUERY
{:title "Journal blocks in last 7 days with a page reference of datalog"
:query [:find (pull ?b [*])
:in $ ?start ?today ?tag
:where
(between ?b ?start ?today)
(page-ref ?b ?tag)]
:inputs [:-7d :today "datalog"]}
#+END_QUERY
#+END_SRC
- 4. All TODO tasks
#+BEGIN_SRC clojure
#+BEGIN_QUERY
{:title "TODO tasks"
:query [:find (pull ?b [*])
:where
(task ?b #{"TODO"})]}
#+END_QUERY
#+END_SRC
- 5. All the tags specified in the front matter (tags: tag1, tag2)
#+BEGIN_SRC clojure
#+BEGIN_QUERY
{:title "All page tags"
:query [:find ?tag-name
:where
[?tag :block/name ?tag-name]]
:view (fn [tags]
[:div
(for [tag (flatten tags)]
[:a.tag.mr-1 {:href (str "#/page/" tag)}
(str "#" tag)])])}
#+END_QUERY
#+END_SRC
- 6. All pages have a "programming" tag
#+BEGIN_SRC clojure
#+BEGIN_QUERY
{:title "All pages have a *programming* tag"
:query [:find ?name
:in $ ?tag
:where
[?t :block/name ?tag]
[?p :block/tags ?t]
[?p :block/name ?name]]
:inputs ["programming"]
:view (fn [result]
[:div.flex.flex-col
(for [page result]
[:a {:href (str "#/page/" page)} (clojure.string/capitalize page)])])}
#+END_QUERY
#+END_SRC
- 7. Get all the blocks with the property "type" and the value "programming_lang"
#+BEGIN_SRC clojure
#+BEGIN_QUERY
{:title [:h2 "Programming languages list"]
:query [:find (pull ?b [*])
:where
(property ?b :type "programming_lang")]}
#+END_QUERY
#+END_SRC
- id:: 63b70dc8-58a5-4a43-ae19-28143edb7752
8. TODO tasks tagged using current page
#+BEGIN_SRC clojure
#+BEGIN_QUERY
{:title "All tasks tagged using current page"
:query [:find (pull ?b [*])
:in $ ?current-page
:where
[?p :block/name ?current-page]
[?b :block/refs ?p]
(task ?b #{"TODO"})]
:inputs [:current-page]}
#+END_QUERY
#+END_SRC
- 9. Active tasks from the last 2 weeks
#+BEGIN_SRC clojure
#+BEGIN_QUERY
{:title "🟢 ACTIVE"
:query [:find (pull ?b [*])
:in $ ?start ?today
:where
(task ?b #{"NOW" "DOING"})
(between ?b ?start ?today)]
:inputs [:-2w :today]
:result-transform (fn [result]
(sort-by (fn [h]
(get h :block/priority "Z")) result))
:collapsed? false}
#+END_QUERY
#+END_SRC
- 10. Tasks referencing due dates in the past
#+BEGIN_SRC clojure
#+BEGIN_QUERY
{:title "⚠️ OVERDUE"
:query [:find (pull ?b [*])
:in $ ?start ?today
:where
(task ?b #{"NOW" "LATER" "TODO" "DOING"})
(between ?b ?start ?today)]
:inputs [:-56d :today]
:collapsed? false}
#+END_QUERY
#+END_SRC
- 11. Tasks referencing due dates up to 10 days ahead
#+BEGIN_SRC clojure
#+BEGIN_QUERY
{:title "📅 NEXT"
:query [:find (pull ?b [*])
:in $ ?start ?next
:where
(task ?b #{"NOW" "LATER" "TODO" "DOING"})
(between ?b ?start ?next)]
:inputs [:today :+10d]
:collapsed? false}
#+END_QUERY
#+END_SRC
- 12. Tasks from last week which are still outstanding (may slip soon!)
#+BEGIN_SRC clojure
#+BEGIN_QUERY
{:title "🟠 SLIPPING"
:query [:find (pull ?b [*])
:in $ ?start ?today
:where
(task ?b #{"NOW" "LATER" "TODO" "DOING"})
(between ?b ?start ?today)]
:inputs [:-7d :today]
:result-transform (fn [result]
(sort-by (fn [h]
(get h :block/created-at)) result))
:collapsed? true}
#+END_QUERY
#+END_SRC
- 13. Tasks created more than 1 week ago, less old than 2 months but still outstanding
#+BEGIN_SRC clojure
#+BEGIN_QUERY
{:title "🔴 STALLED"
:query [:find (pull ?b [*])
:in $ ?start ?today
:where
(task ?b #{"NOW" "LATER" "TODO" "DOING"})
(between ?b ?start ?today)]
:inputs [:-2m :-1w]
:result-transform (fn [result]
(sort-by (fn [h]
(get h :block/created-at)) result))
:collapsed? true}
]}
#+END_QUERY
#+END_SRC
- 14. Next 7 days' deadline or schedule
((60531c23-238e-4748-9b19-27088f9c3771))
#+BEGIN_SRC clojure
#+BEGIN_QUERY
{:title "next 7 days' deadline or schedule"
:query [:find (pull ?block [*])
:in $ ?start ?next
:where
(or
[?block :block/scheduled ?d]
[?block :block/deadline ?d])
[(> ?d ?start)]
[(< ?d ?next)]]
:inputs [:today :+7d]
:collapsed? false}
#+END_QUERY
#+END_SRC
- 15. Query with rules as input
#+BEGIN_SRC clojure
#+BEGIN_QUERY
{:title "Blocks containing TODO that are not tasks"
:query [:find (pull ?b [*])
:in $ ?query %
:where
(block-content ?b ?query)
(not-task ?b)]
:inputs ["TODO"
[[(not-task ?b)
(not [?b :block/marker _])]]]}
#+END_QUERY
#+END_SRC
- 16. Query with rules via :rules
``` clojure
#+BEGIN_QUERY
{:title "Blocks that start with an https link"
:query [:find (pull ?b [*])
:in $ %
:where (starts-with ?b "https://")]
:rules [[(starts-with ?b ?substr)
[?b :block/content ?content]
[(clojure.string/starts-with? ?content ?substr)]]]}
#+END_QUERY
```
- 17. Query that uses simple query
#+BEGIN_SRC clojure
#+BEGIN_QUERY
{:title "DOING tasks with priority A"
:query (and (todo DOING) (priority A))
:collapsed? true}
#+END_QUERY
#+END_SRC
- id:: 63bc5e11-24f1-45fd-945d-4a272e5ecf0d
18. Query that uses :current-block input
#+BEGIN_SRC clojure
#+BEGIN_QUERY
{:title "Get children blocks of current query block"
:inputs [:current-block]
:query [:find (pull ?b [*])
:in $ ?current-block
:where [?b :block/parent ?current-block]]}
#+END_QUERY
#+END_SRC
- 19. Aggregate query
#+BEGIN_SRC clojure
#+BEGIN_QUERY
{:title "Count number of blocks in the current page"
:query [:find (count ?b)
:in $ ?current-page
:where
[?p :block/name ?current-page]
[?b :block/page ?p]]
:inputs [:current-page]}
#+END_QUERY
#+END_SRC
- ## Additional Links
- For beginner users
id:: 63bc6201-53b1-47a4-834f-83934b69ad49
- https://qwxlea.github.io/#/page/datalog%2Fintro%20to%20datalog - Beginner friendly intro to datalog
- [[Learn Datalog Today]] - User-friendly, interactive datalog tutorial
- https://mschmidtkorth.github.io/logseq-msk-docs/#/page/queries%2Fadvanced%20queries%2Ftutorial - Advanced query line by line explanations
- https://max-datom.com/ - fun, interactive datalog tutorial
- https://bgrolleman.gitlab.io/logseq_publish_toolsontech/#/page/logseq%2Fadvanced%20queries - Some useful tips on advanced queries
- https://mschmidtkorth.github.io/logseq-msk-docs/#/page/queries%2Fadvanced%20queries - More useful tips on advanced queries
- For advanced users a.k.a. engineers
- https://siferiax.github.io/#/page/logseq%2Fadvanced%20queries - Query references for more advanced concepts
- [Datomic query documentation](https://docs.datomic.com/query.html) - Thorough reference for datomic dialect of Datalog. Explains most datalog concepts well
- https://nextjournal.com/try/learn-xtdb-datalog-today/learn-xtdb-datalog-today - Interactive datalog tutorial for engineers
- [Datascript's intro docs](https://github.com/tonsky/datascript/wiki/Getting-started)
- [Logseq's database schema](https://github.com/logseq/logseq/blob/master/deps/db/src/logseq/db/file_based/schema.cljs)
================================================
FILE: pages/Advanced commands.md
================================================
type:: [[Feature]]
platforms:: [[All Platforms]] except [[Publish Web]]
description:: Advanced functionality that can be invoked from any block
- ## Usage
- Type `<` to kick off #autocompletion and list of advanced commands.
- ## Functionality
- When a command is selected it expands to a BEGIN...END section inside a block. There can be multiple BEGIN...END sections in a block.
- List of advanced commands:
- `Quote` - Displays text as quoted by indenting text and giving it left and right margins.
- `Src` - Syntax highlights code text using CodeMirror. Passing an argument to the block e.g. `#+BEGIN_SRC clojure` sets the language. Default language is empty. Takes an optional `:results` argument which invokes [[ClojureScript Eval in a Block]]
- `Query` - Defines a block for [[Advanced Queries]]. Block renders query results when not being edited.
- Admonition commands display an icon next to a block to call attention to it for a specific purpose. These are inspired by [Asciidoctor admonitions](https://asciidoctor.org/docs/user-manual/#admonition).
- `Note`
- `Tip`
- `Important`
- `Caution`
- `Warning`
- `Example` - Displays text as an example with white space preservation and a different colored background.
- `Verse` - Displays text that are for poetry by preserving newlines.
- `Comment` - Inlines a comment in a block. Comment is only visible when the block is being edited.
- TODO List additional advanced commands #docs
`Latex export`
`Center`
`Ascii`
`Export`
================================================
FILE: pages/Aliases and external links.md
================================================
- It's also possible to link to pages outside of Logseq, i.e. websites. To point to a URL, either use the trigger menu by typing `/link` or use the keyboard shortcut `Cmd-l` (macOS)/`Ctrl-l` (Windows) to add the following shortcode to the block: `[]()`. Between the brackets (`[ ]`), put the label (name) of the link. Between the parenthesis, put the URL:
- `[This is the label or name of the link](https://thisistheurl.com)`
- Apart from linking to pages outside of Logseq, you can also use the alias function to link to an internal page. This is handy for when you want to show a different label for an internal link. For example, `[I worked on projects]([[Projects]])` will make the entire "I worked on projects" sentence clickable and point it to the _Projects_ page.
- Finally, for aliases that you use often it's best to add a page alias. For example, you might want the link `[[PKM]]` to point to the page `Personal Knowledge Management`. To do this, add the following in the **first block** of the page `Personal Knowledge Management`: `alias:: PKM`
- Now, anytime you click a `[[PKM]]` link, you'll end up on the `Personal Knowledge Management` page.
================================================
FILE: pages/All Platforms.md
================================================
type:: [[Platform]]
- We support features on the following platforms:
- [[Desktop]]
- [[iOS]]
- [[Android]]
- [[Web]]
- [[Publish Web]]
================================================
FILE: pages/All pages.md
================================================
type:: [[Feature]]
description:: Page dedicated to page management - search, delete and sort pages.
platforms:: [[All Platforms]]
- ## Usage
- Type `g a` to navigate to this page or click on the [[Left sidebar]] and then the `All pages` link
- ## Functionality
- List and paginate through all pages. Sort by available columns
- Search pages
- Select individual pages or all current pages to delete selected pages
- Click on calendar icon to toggle filter to only include journal pages
- Remove orphaned pages
-
================================================
FILE: pages/Android.md
================================================
type:: [[Platform]]
================================================
FILE: pages/Assets alias.md
================================================
type:: [[Feature]]
platforms:: [[Desktop]]
initial-version:: unreleased
- #+BEGIN_NOTE
It's not supported yet.
This only works on the desktop app at the moment.
#+END_NOTE
- **What are assets?**
- Some resources like images, audio, PDF documents, etc. They're stored by default in the ` /assets` directory.
- **Problem**
- You don't want to store images or PDF files inside the default `/assets` directory, you want to store them outside the current graph's directory, for example, you're using Zotero to manage those files.
- **Advantages of assets alias?**
- You can have multiple `alias`.
- Each alias could point to a different directory, you can also specify the accepted file extensions for any alias.
- Files will be stored in the corresponding directory when dragging or copy them to Logseq.
- **How to use?**
- a. enable this feature in the settings modal.
{:height 224, :width 441}
- b. specify an external alias directory and give it a name (alias). You can add more directories later.
{:height 167, :width 439}
- c. now if there's an image file `test.png` in the selected directory, you can access this file by `alias` name that starts with `@`, for example, `@Pictures/test.png`.

- d. (optional) You can specify `acceptable file extensions` to be allowed for each asset alias, for example, you can add both `jpg` and `png` for `@Pictures`.
{:height 201, :width 557}
-
================================================
FILE: pages/Basic settings.md
================================================
- [[setting/theme modes]]
- [[setting/show brackets]]
- [[setting/language]]
- [[setting/preferred file format]]
- [[setting/preferred journal format]]
- [[setting/preferred workflow]]
- [[setting/enable logical outdenting]]
- [[setting/enable tooltip]]
- [[setting/enable timetracking]]
- [[setting/enable journals]]
- [[setting/send usage data and diagnostics to logseq]]
================================================
FILE: pages/Block Reference.md
================================================
type:: [[Feature]]
platforms:: [[All Platforms]]
alias:: term/block reference
description:: Clickable link to a particular Logseq block e.g. `((123e4567-e89b-12d3-a456-426614174000))`. Produced by putting a unique [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) inside parenthesis `(())`
- ## Usage
- Create one by first typing `((` or the `/Block reference` command and then selecting a block from the #autocompletion search
- Read [[The basics of block references]] tutorial for more on creating and using a block reference.
- ## Functionality
- A block that has references will have a reference counter to its right.
- Clicking on that reference counter will expand all of its block linked references and group them by page:
- 
- Blocks should be referenceable anywhere including properties.
================================================
FILE: pages/Boolean.md
================================================
type:: [[Class]]
parent:: [[DataType]]
url:: https://schema.org/Boolean
================================================
FILE: pages/Breaking Changes.md
================================================
alias:: breaking change
-
================================================
FILE: pages/Built-in Properties.md
================================================
description:: There are built-in in properties that control Logseq functionality. Most of the these properties are hidden from the user but a few are user editable. These property names are reserved for Logseq and thus _must_ not be used as a user property.
- Legend for properties below:
* (1) and (N) indicate how many values you may define, one and multiple values respectively.
* (page) and (block) indicates a property is a page property or block property only. Otherwise a property can be both a page property and block property.
- Editable properties
- `icon` (1) (page) - define icon identifier for a page.
- `title` (1) (page) - overrides the title of a page to be different from the file name.
- `tags` (N) - get listed in their own section "Pages tagged with X" below a page.
- `template` (1) - designates a page/block as a template.
- `template-including-parent` (1) - specifies whether the parent level content of the selected block should be included when using a template. previously called `include-parent`
- `alias` (N) - define synonyms for a page.
- `filters` (N) (page) - store selected filters for linked references on page-level. object with booleans
- `public` (1) (page) - defines whether a page should be included in an export. boolean
- `exclude-from-graph-view` (1) (page) - defines whether a page should be excluded in global graph view. boolean
- See ((646c1b4d-9cf2-4c8c-bb05-7f336e027ea1)) for table related properties
- Hidden properties
- `collapsed` (1) (block) - specifies whether a block is collapsed.
- `id` (1) (block) - specifies a block id.
- `created-at` (1) (block) - deprecated property that defines the created date/time stamps in [Unix time](https://en.wikipedia.org/wiki/Unix_time)
- `updated-at` (1) (block) - deprecated property that defines the updated date/time stamps in [Unix time](https://en.wikipedia.org/wiki/Unix_time). previously `last-modified-at`
- `query-table` (1) (block) - marks a query to be shown as the table view.
- `query-properties` (N) (block) - properties user has chosen to see in query table.
- `query-sort-by` (1) (block) - property by which to sort query table
- `query-sort-desc` (1) (block) - property sort direction. boolean where true is descending
- See `hidden-built-in-properties` in https://github.com/logseq/logseq/blob/master/deps/graph-parser/src/logseq/graph_parser/property.cljs for the full list.
================================================
FILE: pages/Calculator.md
================================================
type:: [[Command]]
description:: The calculator supports basic operations like `+ - / * ^` and advanced operations (factorial, modular division, and scientific functions).
- The built-in calculator is opened by the command `/Calculator`.
- The standard mathematical order of evaluation of operations is followed; parentheses may be used to further specify the order.
- Comments start with `#`. The rest of the line is ignored.
id:: 62c8421b-d22e-40ce-aead-0b7e9e2951f7
- Values can be assigned to variables for use in further calculations.
- The result of each line is automatically assigned to a variable called `last`, for continuation of calculations.
- The number format of results is controlled using the `:format` directive.
- Results can be shown in a different base using the `:base` directive.
- ## Example calculations
- ```calc
# Basic arithmetic
6 * 7
1 + 2 * (3 - 4)
(2 + 13) / (17 + 23)
# Powers
3^3 # 3 cubed
27^(1/3) # cube root of 27
last^2 # square last answer
# Variables
x = -7
2 * x^2 + 11 * x - 21
x1 = 4
x2 = 7
y1 = 10
y2 = 4
m = (y2 - y1)/(x2 - x1)
# Functions
abs(x1 - x2)
sqrt(20.25)
log(1000)
ln(10)
exp(1)
# Trig functions
sin(PI/2)
cos(PI)
tan(PI/3)
asin(-0.5)
# Factorial
4! # 4 × 3 × 2 × 1
10!/(4! * 6!) # "10 choose 4"
# Modulo (remainder upon division)
42 mod 5
42 mod 6
3.75 mod 1.5
```
- ## Scientific functions
- |Function name|Description|
|--|--|
|`sqrt`|square root|
|`log`|common logarithm (base 10)|
|`ln`|natural logarithm (base _e_)|
|`exp`|natural exponential, _e_ raised to the specified power|
|`abs`|absolute value|
|`sin`|sine (argument in radians)|
|`cos`|cosine (argument in radians)|
|`tan`|tangent (argument in radians)|
|`asin`|inverse sine (arc sine), value in radians|
|`acos`|inverse cosine (arc cosine), value in radians|
|`atan`|inverse tangent (arc tangent), value in radians|
- ## Constants
- |Name|Value|Description|
|--|--|--|
|`PI`|3.14159265358979323846|the ratio of a circle's circumference to its diameter|
|`E`|2.71828182845904523536|the base of the natural logarithm `ln` (sometimes called *Euler's number*)|
- ## Number bases
- Numbers may be entered in different number bases by prefixing the number as follows.
- |Base|Prefix|Example|
|--|--|--|
|2|`0b`|`0b1110`|
|8|`0o`|`0o20`|
|16|`0x`|`0xE`|
- Results may be shown in these bases using the directives `:bin`, `:oct` and `:hex`.
- Results will show all available digits of precision.
- To return to decimal results, use the directive `:dec`.
- ### Example
- ```calc
0x10 + 0x10 # hex addition; result in decimal
:hex # show results in hexadecimal
0xFF * 0b1000
last / 0o12
:oct # show results in octal
:bin # show results in binary
:dec # and back to decimal
```
- ## Result formatting
- Use the `format` (or `fmt`) directive to set the number format used for results:
- `:format <mode> [parameters]`
- The default format style is `normal`.
- The format styles only apply when results are in decimal.
- |Format style(s)|Parameters|Description|
|--|--|--|
|`norm`, `normal`|precision|display up to the specified number of **significant figures** (default 21), switching to scientific notation when needed|
|`fix`, `fixed`|places (**required**)|display the result **rounded** to specified number of decimal places; use scientific notation when all precision is lost|
| `sci`, `scientific`|places|display the result in **scientific notation** with specified number of decimal places|
|`frac`, `fraction`| maximum-denominator |display the result as a **mixed-number**, if its denominator is less than or equal to the maximum denominator (default 4095)|
|`imp`, `improper`| maximum-denominator |display the result as an **improper fraction**, if its denominator is less than or equal to the maximum denominator (default 4095)|
- ### Mixed numbers
- A mixed number is a way of representing a fraction as a whole number plus a (proper) fraction. Since the calculator uses plain text, mixed numbers are represented as `a b/c` where `a`, `b` and `c` are positive integers:
- `a b/c` is equivalent to `a+b/c`
- e.g. `1 2/3` is the mixed number $1 \frac{2}{3}$
- `-a b/c` is equivalent to `-(a+b/c)`
- e.g. `-3 1/4` is the mixed number $-3\frac{1}{4}$
- ### Example
- ```calc
PI * 4.5^2
:format fix 5 # round results to 5 decimal places
:format sci 5 # scientific notation with 5 places
:format norm 5 # 5 significant figures
1.5*2.4
:format imp # improper fraction
:format frac # mixed number fraction
2 1/2 * 3 3/8 - 1 1/4 # mixed number arithmetic
3e-4 # denominator too large
:format imp 10000 # can use higher maximum denominator
```
================================================
FILE: pages/Changelog.md
================================================
## Beta 0.10.15 [[Dec 1st, 2025]]
id:: 692d8283-7f1d-44cf-81b0-bb25c469a64e
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.10.15>
- [[Fixed issues]]
- Fix: Youtube embeds not working
- [[Enhancement]]
- Bump Electron to 38.4.0
- ## Beta 0.10.14 [[Sep 18th, 2025]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.10.14>
- [[Fixed issues]]
- Bump pdf.js to 4.2.67, thanks to [https://github.com/Th-o-mas](https://github.com/Th-o-mas)
Security vulnerability ([GHSA-92h5-2358-7xjv](https://github.com/logseq/logseq/security/advisories/GHSA-92h5-2358-7xjv)) with remote code execution has been closed.
- fix: match paste of x.com links for twitter [#12043](https://github.com/logseq/logseq/pull/12043)
- ## Beta 0.10.13 [[Aug 7th, 2025]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.10.13>
- [[Fixed issues]]
- Fix: Youtube embeds not working [#12031](https://github.com/logseq/logseq/issues/12031)
- ## Beta 0.10.12 [[May 26th, 2025]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.10.12>
- [[Fixed issues]]
- App freeze, high CPU/GPU usage, and frequent diff prompts [#11880](https://github.com/logseq/logseq/issues/11880)
- High CPU consumption [#11874](https://github.com/logseq/logseq/issues/11874)
- Using GTK 2/3 and GTK 4 in the same process is not supported [#11873](https://github.com/logseq/logseq/issues/11873)
- App crashes on Mac
- ## Beta 0.10.11 [[May 21st, 2025]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.10.11>
- Includes all changes from ((681b5cd1-444a-46a8-8b6f-2dd5e6ece3fd)) and fixes major regressions with it.
- [[Fixed Issues]]
- Images and themes not working [#11486](https://github.com/logseq/logseq/issues/11846)
- Global search in blocks not working [#11851](https://github.com/logseq/logseq/issues/11851)
- **NOTE**: You may need to run the command `Rebuild search index` for this fix.
- Drag and drop of pdfs not working [#11850](https://github.com/logseq/logseq/issues/11850)
- [[Enhancement]]
- Upgrade Electron to 36.2.0
- ## Beta 0.10.10 [[May 7th, 2025]]
id:: 681b5cd1-444a-46a8-8b6f-2dd5e6ece3fd
Release removed: ~~Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.10.10>~~
- [[Thanks]]
- [chiefnoah](https://github.com/chiefnoah)
- Fix Twitter's rename breaking macro wrapping [#11325](https://github.com/logseq/logseq/pull/11325)
- [rappire](https://github.com/rappire)
- Update Korean translation [#11320](https://github.com/logseq/logseq/pull/11320)
- [AyushAgrawal-A2](https://github.com/AyushAgrawal-A2)
- fix: cut/delete blocks should work in page-embed [#11216](https://github.com/logseq/logseq/pull/11216)
- fix: drag-drop / copy-paste should work for multiple files [#11214](https://github.com/logseq/logseq/pull/11214)
- [scayuela](https://github.com/scayuela)
- Catalan translation [#11587](https://github.com/logseq/logseq/pull/11587)
- [xraysight](https://github.com/xraysight)
- PL translation update 100% [#11306](https://github.com/logseq/logseq/pull/11306)
- [queeup](https://github.com/queeup)
- update Turkish translation [#11098](https://github.com/logseq/logseq/pull/11098)
- [keonu05](https://github.com/keonu05)
- Update Korean translation [#11454](https://github.com/logseq/logseq/pull/11454)
- [[Fixed issues]]
- fix: graph keep re-index when loading
- fix(sync): cannot delete some nested files
- fix(mobile): incorrect theme color for the android status bar
- Fix Twitter's rename breaking macro wrapping
- fix(mobile): invalid keyboard input for the `create account` pane form
- fix: Open as Page in sidebar does not work
- [[Enhancement]]
- Upgrade Electron to 35.0.1
- enhance(ux): better highlights page name for the search result items
- Add MSI build for windows
-
- ## Beta 0.10.9 [[Apr 23rd, 2024]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.10.9>
- [[Thanks]]
- [[desk7]]
- Update Italian translation in [#11179](https://github.com/logseq/logseq/pull/11179)
- [[KaMeHb-UA]]
- Add Linux ARM64 build support in [#11183](https://github.com/logseq/logseq/pull/11183)
- [[Sun-Wukung]]
- Update tutorial-sk.md in #11226
- [[thief-sty]]
- Update docs/develop-logseq.md in [#11218](https://github.com/logseq/logseq/pull/11218)
- Fix e2e-test command in [#11217](https://github.com/logseq/logseq/pull/11217)
- [[Fixed issues]]
- Fix missing refs for property text values when creating a page [#11208](https://github.com/logseq/logseq/pull/11208)
- Fix incorrect behavior of the delete key for deleting the last char [#11190](https://github.com/logseq/logseq/pull/11190)
- Fix missing default colors for highlight mark tag [#11247](https://github.com/logseq/logseq/pull/11247)
- [[Enhancement]]
- New block placeholder should accept tab and enter key [#11255](https://github.com/logseq/logseq/pull/11255)
- Restore App window at current workspace [#11246](https://github.com/logseq/logseq/pull/11246)
- I18n: Italian [#11179](https://github.com/logseq/logseq/pull/11179), Slovak [#11226](https://github.com/logseq/logseq/pull/11226)
- Linux ARM64 build support [#11183](https://github.com/logseq/logseq/pull/11183)
- ## Beta 0.10.8 [[Mar 28th, 2024]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.10.8>
- [[Thanks]]
- [[albanobattistella]]
- Update Italian translation in [#11154](https://github.com/logseq/logseq/pull/11154)
- [[e-zz]]
- Fix shift+mouse click on PDF View not invoking area highlight on Linux in [#10973](https://github.com/logseq/logseq/pull/10973)
- [[Liu Cheng]]
- Fix missing newline after multiline block when exporting a page in [#10934](https://github.com/logseq/logseq/pull/10934)
- [[Jon Ramos]]
- Fix toggling of task list in [#11079](https://github.com/logseq/logseq/pull/11079)
- [[liymike]]
- Update Simplified Chinese) translation in [#11119](https://github.com/logseq/logseq/pull/11119)
- [[queeup]]
- Update Turkish translation in [#11063](https://github.com/logseq/logseq/pull/11063)
- [[yannicka]]
- Remove obsolete "@tailwindcss/line-clamp" dependency in [#11130](https://github.com/logseq/logseq/pull/11130)
- [[Fixed issues]]
- Fix toggling of task list [#11079](https://github.com/logseq/logseq/pull/11079)
- Missing newline after multiline block when exporting a page [#10934](https://github.com/logseq/logseq/pull/10934)
- Incorrect cursor move for the emoji from the line head [#11112](https://github.com/logseq/logseq/pull/11112)
- Shift+mouse click on PDF View not invoking area highlight on Linux [#10973](https://github.com/logseq/logseq/pull/10973)
- Fine tune page title search strategy [#11147](https://github.com/logseq/logseq/pull/11147)
- Logout and clear keys for Logseq Sync [#11111](https://github.com/logseq/logseq/pull/11111)
- Fix ui button component's click handling [#11068](https://github.com/logseq/logseq/pull/11068)
- [[Enhancement]]
- I18n: Simplified Chinese [#11119](https://github.com/logseq/logseq/pull/11119), Turkish [#11063](https://github.com/logseq/logseq/pull/11063), Italian [#11154](https://github.com/logseq/logseq/pull/11154)
- ## Beta 0.10.7 [[Feb 29th, 2024]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.10.7>
- [[Thanks]]
- [[Mostafa Ahangarha]]
- Add partial Persian translation in [#10938](https://github.com/logseq/logseq/pull/10938)
- [[Vladimir Pouzanov]]
- Fix :graph/current usage in the electron state in [#11013](https://github.com/logseq/logseq/pull/11013)
- [[Puneeth Chaganti]]
- Fix typo in mldoc package name in [#10995](https://github.com/logseq/logseq/pull/10995)
- [[Tobias Domhan]]
- Fix preserve root node block refs when cutting + pasting in [#10841](https://github.com/logseq/logseq/pull/10841)
- [[Topher Hunt]]
- Add new keybinding for "toggle expand/collapse this block" in [#10980](https://github.com/logseq/logseq/pull/10980)
- [[YU000jp]]
- Fix main scrollbar jumps in [#10037](https://github.com/logseq/logseq/pull/10037)
- [[Fixed issues]]
- Add .heic to media type [#11017](https://github.com/logseq/logseq/pull/11017)
- Preserve root node block refs when cutting + pasting. [#10841](https://github.com/logseq/logseq/pull/10841)
- Fix main scrollbar jumps [#10037](https://github.com/logseq/logseq/pull/10037)
- Fix wrong `:command/toggle-favorite` handling in config [#10998](https://github.com/logseq/logseq/pull/10998)
- Fix search term query highlight performance [#11030](https://github.com/logseq/logseq/pull/11030)
- [[Enhancement]]
- New keybinding for "toggle expand/collapse this block" [#10980](https://github.com/logseq/logseq/pull/10980)
- I18n: Persian [#10938](https://github.com/logseq/logseq/pull/10938),
- Add share/open asset file for Android App [#10977](https://github.com/logseq/logseq/pull/10977)
- Enhance accent color related details [#10986](https://github.com/logseq/logseq/pull/10986)
- refactoring dropdown/context menu with the new components [#10897](https://github.com/logseq/logseq/pull/10897)
- Better handling for macOS scrollbar system setting of auto scrolling mode [#11048](https://github.com/logseq/logseq/pull/11048)
- ## Beta 0.10.6 [[Feb 5th, 2024]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.10.6>
- [[Thanks]]
- [[ChristianAvila]]
- Adding larger auto-commit interval in [#10536](https://github.com/logseq/logseq/pull/10536)
- [[mfenniak]]
- Fix outdent-then-delete removing incorrect block in [#10790](https://github.com/logseq/logseq/pull/10790)
- [[ReillyBrogan]]
- Update better-sqlite3 to v9.3.0 in [#10884](https://github.com/logseq/logseq/pull/10884)
- [[TaylorHo]]
- Enhance Brazilian Portuguese translations in [#10891](https://github.com/logseq/logseq/pull/10891)
- [[Mostafa Ahangarha]]
- Minor typo fixes and grammar improvements in docs in [#10940](https://github.com/logseq/logseq/pull/10940)
- [[CNLHC]]
- Add support for closing history panel after selecting a version in [#10530](https://github.com/logseq/logseq/pull/10530)
- [[linsui]]
- Add fastlane structure for F-Droid in [#10925](https://github.com/logseq/logseq/pull/10925)
- [[Morgan Plain]]
- Support changing graph forces via UI in [#10755](https://github.com/logseq/logseq/pull/10755)
- [[queeup]]
- Update Turkish translation in [#10937](https://github.com/logseq/logseq/pull/10937)
- [[Fixed issues]]
- Publishing not working [#10911](https://github.com/logseq/logseq/pull/10911)
- Logseq Sync crash on Android [#10922](https://github.com/logseq/logseq/pull/10922)
- Performance of Search on mobile platforms [#10924](https://github.com/logseq/logseq/pull/10924)
- Outdent-then-delete removing incorrect block [#10790](https://github.com/logseq/logseq/pull/10790)
- Wrong new page button click handling in graph view [#10962](https://github.com/logseq/logseq/pull/10962)
- Save composing text when clicking mobile bar buttons [#10921](https://github.com/logseq/logseq/pull/10921)
- [[Enhancement]]
- Git auto-commit: support commit on close, allow changing settings on-the-fly, allowing larger auto-commit interval [#10536](https://github.com/logseq/logseq/pull/10536)
- Trigger on-change for slider when mouse up instead of input value change [#10972](https://github.com/logseq/logseq/pull/10972)
- Support time offset of YouTube links [#10945](https://github.com/logseq/logseq/pull/10945)
- Support changing graph forces via UI [#10755](https://github.com/logseq/logseq/pull/10755)
- Support for closing history panel after selecting a version [#10530](https://github.com/logseq/logseq/pull/10530)
- I18n: Brazilian Portuguese translations [#10891](https://github.com/logseq/logseq/pull/10891), Turkish translation [#10937](https://github.com/logseq/logseq/pull/10937)
- ## Beta 0.10.5 [[Jan 18th, 2024]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.10.5>
This version fixes a language-specific App crash in the French translation file. This bug does not affect non-French users.
- [[Thanks]]
- [[DavidLapous]]
- Fix typo in French translation in [10874](https://github.com/logseq/logseq/pull/10874)
- [[Fixed issues]]
- A language-specific app crash occurred due to an incorrect French translation file [#10876](https://github.com/logseq/logseq/pull/10876)
- Typo in French translation [10874](https://github.com/logseq/logseq/pull/10874)
- ## Beta 0.10.4 [[Jan 17th, 2024]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.10.4>
- [[Thanks]]
- [[alan-roe]]
- Fix docker build in [#10287](https://github.com/logseq/logseq/pull/10287)
- [[aurnik]]
- Add highlighted page aliases in search results in [#10761](https://github.com/logseq/logseq/pull/10761)
- Prevent jumping when hovering over left sidebar items in [#10760](https://github.com/logseq/logseq/pull/10760)
- [[e-zz]]
- Fix area highlights in PDF view don't blink in [#10732](https://github.com/logseq/logseq/pull/10732)
- [[eliovir]]
- Update French translations in [#10810](https://github.com/logseq/logseq/pull/10810)
- [[hasecilu]]
- Update Spanish translation in [#10840](https://github.com/logseq/logseq/pull/10840)
- [[ingepettersen]]
- Update Norwegian translation in [#10849](https://github.com/logseq/logseq/pull/10849)
- [[megayu]]
- Enhance block selection in [#10745](https://github.com/logseq/logseq/pull/10745)
- [[situ2001]]
- Prevent button in modal from being clicked twice when pressing enter key in [#10820](https://github.com/logseq/logseq/pull/10820)
- [[ZerdoX-x]]
- Update project deps in [#10857](https://github.com/logseq/logseq/pull/10857)
- [[Fixed issues]]
- Highlight page aliases in search results [#10761](https://github.com/logseq/logseq/pull/10761)
- Prevent jumping when hovering over left sidebar items [#10760](https://github.com/logseq/logseq/pull/10760)
- Android App crash caused by special filenames [#10845](https://github.com/logseq/logseq/pull/10845)
- Missing Git SDK in Plugin API [#10767](https://github.com/logseq/logseq/pull/10767)
- Remove prefix spaces when no-indent is used in exporting [#10807](https://github.com/logseq/logseq/pull/10807)
- Accept video as mobile shared content [#10797](https://github.com/logseq/logseq/pull/10797)
- PDF view's area highlights don't blink [#10732](https://github.com/logseq/logseq/pull/10732)
- Cannot toggle updated-at and created-at in query view [#10759](https://github.com/logseq/logseq/pull/10759)
- Add support for older GLIBC on Linux [#10832](https://github.com/logseq/logseq/pull/10832), note that search index is still not available on old Linux
- Do not notify network status when logged out [#10813](https://github.com/logseq/logseq/pull/10813)
- Fix incorrect position for the filter modal on the iOS platform [#10798](https://github.com/logseq/logseq/pull/10798)
- Prevent button in modal from being clicked twice when pressing enter key [#10820](https://github.com/logseq/logseq/pull/10820)
- [[Enhancement]]
- New UI components [#10694](https://github.com/logseq/logseq/pull/10694)
- Better block selection [#10745](https://github.com/logseq/logseq/pull/10745)
- Enhancement of Plugin APIs [#10782](https://github.com/logseq/logseq/pull/10782)
- Enhancement of left sidebar UI [#10765](https://github.com/logseq/logseq/pull/10765)
- I18n: French translations [#10810](https://github.com/logseq/logseq/pull/10810), Norwegian translation [#10849](https://github.com/logseq/logseq/pull/10849), Spanish translation [#10840](https://github.com/logseq/logseq/pull/10840)
- ## Beta 0.10.3 [[Dec 25th, 2023]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.10.3>
This bug-fix release addresses the bundled Git bug introduced in 0.10.2.
- [[Thanks]]
- [[Vivianne]]
- Fix French translation in [#10749](https://github.com/logseq/logseq/pull/10749)
- [[Hidekazu Kubota]]
- Add percent encoding file names with leading dots in [#10746](https://github.com/logseq/logseq/pull/10746)
- [[Fixed issues]]
- Safety key string for the simple command key value in Plugin API [#10741](https://github.com/logseq/logseq/pull/10741)
- Fix missing bundled Git [#10751](https://github.com/logseq/logseq/pull/10751)
- Percent encoding file names with leading dots [#10746](https://github.com/logseq/logseq/pull/10746)
- [[Enhancement]]
- I18n: French translation [#10749](https://github.com/logseq/logseq/pull/10749)
- ## Beta 0.10.2 [[Dec 22nd, 2023]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.10.2>
- [[Features]]
- Clone handles for quickly cloning existing shapes in Whiteboards [#10637](https://github.com/logseq/logseq/pull/10637)

- [[Thanks]]
- [[eliovir]]
- Update French translation in [#10647](https://github.com/logseq/logseq/pull/10647), [#10706](https://github.com/logseq/logseq/pull/10706)
- [[jiyi]]
- Update Chinese translation in [#10668](https://github.com/logseq/logseq/pull/10668)
- [[queeup]]
- Update Turkish translation in [#10718](https://github.com/logseq/logseq/pull/10718)
- [[Richard Garčár]]
- Update Slovak translation in [#10673](https://github.com/logseq/logseq/pull/10673)
- [[Vivianne]]
- Add more localization support for linked references view in [#10643](https://github.com/logseq/logseq/pull/10643)
- [[Fixed issues]]
- Full page content search [#10645](https://github.com/logseq/logseq/pull/10645)
- Missing current-page search [#10662](https://github.com/logseq/logseq/pull/10662)
- Don't treat blocks with headings as pre-blocks [#10710](https://github.com/logseq/logseq/pull/10710)
- Save inline images in excalidraw [#10652](https://github.com/logseq/logseq/pull/10652)
- Sync navbar and action bar color for Android when theme change [#10653](https://github.com/logseq/logseq/pull/10653)
- Incorrect auto-save state when paste batch blocks [#10672](https://github.com/logseq/logseq/pull/10672)
- Incorrect handling of pasting html list [#10674](https://github.com/logseq/logseq/pull/10674)
- Incorrect node edge color for Graph view [#10693](https://github.com/logseq/logseq/pull/10693)
- Incorrect IME composition detection [#10654](https://github.com/logseq/logseq/pull/10654)
- Detached PDF viewer does not open HTTP links in default browser [#10724](https://github.com/logseq/logseq/pull/10724)
- [[Enhancement]]
- I18n: French [#10706](https://github.com/logseq/logseq/pull/10706) [#10647](https://github.com/logseq/logseq/pull/10647), Slovak [#10673](https://github.com/logseq/logseq/pull/10673), Turkish [#10718](https://github.com/logseq/logseq/pull/10718), Chinese [#10668](https://github.com/logseq/logseq/pull/10668)
- Plugin APIs [#10399](https://github.com/logseq/logseq/pull/10399)
- Release .zip package build for Windows [#10678](https://github.com/logseq/logseq/pull/10678)
- Add more localization support for linked references view [#10643](https://github.com/logseq/logseq/pull/10643)
- ## Beta 0.10.1 [[Dec 6th, 2023]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.10.1>
- [[Thanks]]
- [[Blezur]]
- Polish translations in [#10604](https://github.com/logseq/logseq/pull/10604)
- [[Ulices]]
- Update Spanish translation in [#10594](https://github.com/logseq/logseq/pull/10594)
- [[ksqsf]]
- Fix and-or simple query that contains string literals in [#10632](https://github.com/logseq/logseq/pull/10632)
- [[ROCKTAKEY]]
- Update Japanese translation in [#10612](https://github.com/logseq/logseq/pull/10612)
- [[queeup]]
- Update Turkish translation in [#10595](https://github.com/logseq/logseq/pull/10595)
- [[Vivianne]]
- Fixed missing space in fr and es i18n files in [#10644](https://github.com/logseq/logseq/pull/10644)
- [[Fixed issues]]
- New Search related issues [#10584](https://github.com/logseq/logseq/pull/10584), [#10634](https://github.com/logseq/logseq/pull/10634)
- Cross-platform shortcut icons [#10590](https://github.com/logseq/logseq/pull/10590)
- Increase the default search length [#10570](https://github.com/logseq/logseq/pull/10570)
- Search does not navigate to block of interest if collapsed [#10633](https://github.com/logseq/logseq/pull/10633)
- Add whiteboards to search filters [#10630](https://github.com/logseq/logseq/pull/10630)
- Theme color related issues [#10581](https://github.com/logseq/logseq/pull/10581), [#10638](https://github.com/logseq/logseq/pull/10638)
- Block UUID shouldn't be added to recents [#10616](https://github.com/logseq/logseq/pull/10616)
- Incorrect background color for the left sidebar on mobile [#10582](https://github.com/logseq/logseq/pull/10582)
- Incorrect node edge color for the global graph view [#10585](https://github.com/logseq/logseq/pull/10585)
- Fix and-or simple query that contains string literals [#10632](https://github.com/logseq/logseq/pull/10632)
- [[Enhancement]]
- I18n: Turkish translation [#10595](https://github.com/logseq/logseq/pull/10595), Polish translations [#10604](https://github.com/logseq/logseq/pull/10604), Spanish translation [#10594](https://github.com/logseq/logseq/pull/10594), Japanese translation [#10612](https://github.com/logseq/logseq/pull/10612)
- ## Beta 0.10.0 [[Nov 28th, 2023]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.10.0>
- [[Features]]
- A new and improved [[Search]]! [#10132](https://github.com/logseq/logseq/pull/10132)
- Design core enhancements including the ability to set an "Accent color" from Settings [#10132](https://github.com/logseq/logseq/pull/10132)
- [[Thanks]]
- [[cosmo9able]]
- Update Brazilian Portuguese translation in [#10461](https://github.com/logseq/logseq/pull/10461)
- [[e-zz]]
- Fix wrong bounding coordinates for PDF highlights in [#10426](https://github.com/logseq/logseq/pull/10426)
- [[eliovir]]
- Update French translation in [#10454](https://github.com/logseq/logseq/pull/10454)
- [[ormai]]
- Update Italian translation in [#10557](https://github.com/logseq/logseq/pull/10557)
- [[queeup]]
- Update Turkish translation in [#10492](https://github.com/logseq/logseq/pull/10492)
- [[Fixed issues]]
- Remove the need to add a space to trigger search command [#10506](https://github.com/logseq/logseq/pull/10506)
- Fix background color for some UI buttons [#10512](https://github.com/logseq/logseq/pull/10512)
- Fix demo page creation for browser version [#10497](https://github.com/logseq/logseq/pull/10497)
- Fix wrong bounding coordinates for PDF highlights [#10426](https://github.com/logseq/logseq/pull/10426)
- Fix filesystem path handling, add missing Windows UNC path support [#10525](https://github.com/logseq/logseq/pull/10525)
- Fix query builder construction [#10485](https://github.com/logseq/logseq/pull/10485)
- [[Enhancement]]
- Export asset ref link as dataset value for the pdf asset [#10488](https://github.com/logseq/logseq/pull/10488)
- I18n: Brazilian Portuguese [#10461](https://github.com/logseq/logseq/pull/10461), French [#10454](https://github.com/logseq/logseq/pull/10454), Italian [#10557](https://github.com/logseq/logseq/pull/10557), Turkish [#10492](https://github.com/logseq/logseq/pull/10492)
- Polish accent color details [#10520](https://github.com/logseq/logseq/pull/10520)
- ## Beta 0.9.20 [[Nov 1st, 2023]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.9.20>
- [[Features]]
- New handbook [#8524](https://github.com/logseq/logseq/pull/8524) - [Documentation]([[Handbook]])
- [[Thanks]]
- [[CorrectRoadH]]
- Support zoom via touchpad in [#10435](https://github.com/logseq/logseq/pull/10435)
- [[Ulices]]
- Update Spanish translation in [#10431](https://github.com/logseq/logseq/pull/10431)
- [[ingepettersen]]
- Update Norwegian translation in [#10361](https://github.com/logseq/logseq/pull/10361)
- [[SylvainDuran]]
- Update French translations in [#10427](https://github.com/logseq/logseq/pull/10427)
- [[udkl]]
- Fix `#card` should only be appended to the title in [#10387](https://github.com/logseq/logseq/pull/10387)
- [[Fixed issues]]
- Fix android back button closing order [#10345](https://github.com/logseq/logseq/pull/10345)
- Fix journal name judgement [#10350](https://github.com/logseq/logseq/pull/10350) [#10422](https://github.com/logseq/logseq/pull/10422) [#10434](https://github.com/logseq/logseq/pull/10434)
- Refine drag and drop of assets. Fix not being about to save assets sometimes [#10351](https://github.com/logseq/logseq/pull/10351)
- `#card` should only be appended to the title [#10387](https://github.com/logseq/logseq/pull/10387)
- On Android, activity restarts when a Bluetooth keyboard gets connected [#10444](https://github.com/logseq/logseq/pull/10444)
- Shortcuts editor can't edit disabled keymap [#10290](https://github.com/logseq/logseq/pull/10290)
- Refine Logseq Sync login box tips [#10443](https://github.com/logseq/logseq/pull/10443)
- [[Enhancement]]
- Upgrade electron to v25 [#10440](https://github.com/logseq/logseq/pull/10440)
- Make Smart Merge the default option for Logseq Sync [#10428](https://github.com/logseq/logseq/pull/10428)
- I18n: Spanish [#10431](https://github.com/logseq/logseq/pull/10431), French [#10427](https://github.com/logseq/logseq/pull/10427), Norwegian [#10361](https://github.com/logseq/logseq/pull/10361)
- Add toggle option for PDF view: auto opening the highlight context menu from new text selection [#10390](https://github.com/logseq/logseq/pull/10390)
- ## Beta 0.9.19 [[Oct 11th, 2023]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.9.19>
- [[Thanks]]
- [[Alan Roe]]
- Move cursor to end or beginning of line when boundary limit reached in [#10244](https://github.com/logseq/logseq/pull/10244)
- Use `cmd/ctrl` + `=` to zoom in [#10241](https://github.com/logseq/logseq/pull/10241)
- [[Bad3r]]
- Bump CodeMirror version in [#9822](https://github.com/logseq/logseq/pull/9822)
- [[Ulices]]
- Update Spanish translations in [#10320](https://github.com/logseq/logseq/pull/10320)
- [[hkgnp]]
- Add marker prop to BlockEntity interface in [#10312](https://github.com/logseq/logseq/pull/10312)
- [[jionkitten]]
- Fix too frequent highlights saving in PDF view in [#10238](https://github.com/logseq/logseq/pull/10238)
- [[Sander]]
- Allow plugins to access custom format clipboard data in [#10225](https://github.com/logseq/logseq/pull/10225)
- [[Fixed issues]]
- Can't close window on macOS with `cmd`+`w` [#10325](https://github.com/logseq/logseq/pull/10325)
- The first window does not close when there're multiple windows [#10336](https://github.com/logseq/logseq/pull/10336)
- Capture all `logseq://` links on Android [#10266](https://github.com/logseq/logseq/pull/10266)
- Allow drag and drop to dummy page [#10292](https://github.com/logseq/logseq/pull/10292)
- Bypass corrupted SQLite search index when App starts [#10286](https://github.com/logseq/logseq/pull/10286)
- Missing the initial ref highlight block sometimes for PDF view [#10333](https://github.com/logseq/logseq/pull/10333)
- Avoid too frequent highlights saving in PDF view [#10238](https://github.com/logseq/logseq/pull/10238)
- Fix incorrect auto-complete modal position for overflow editor content input [#10298](https://github.com/logseq/logseq/pull/10298)
- Incorrect API call for the electron production bundle [#10329](https://github.com/logseq/logseq/pull/10329)
- [[Enhancement]]
- Whiteboards: Pen mode (palm rejection) [#10222](https://github.com/logseq/logseq/pull/10222)
- Move cursor to end or beginning of line when boundary limit reached [#10244](https://github.com/logseq/logseq/pull/10244)
- Upgrade to Capacitor v5 for mobile platforms [#10278](https://github.com/logseq/logseq/pull/10278)
- Use `cmd/ctrl` + `=` to zoom [#10241](https://github.com/logseq/logseq/pull/10241)
- Allow plugins to access custom format clipboard data [#10225](https://github.com/logseq/logseq/pull/10225)
- I18n: Update Spanish translations [#10320](https://github.com/logseq/logseq/pull/10320)
- ## Beta 0.9.18 [[Sep 20th, 2023]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.9.18>
- [[Thanks]]
- [[Jack Case]]
- Allow writing to files with group permission without chmod on Linux in [#9297](https://github.com/logseq/logseq/pull/9297)
- [[Ulices]]
- Update Spanish translations in [#10195](https://github.com/logseq/logseq/pull/10195)
- [[jf]]
- Allow for single-digit minutes and seconds in youtube-timestamp in [#9930](https://github.com/logseq/logseq/pull/9930)
- [[queeup]]
- Update Turkish translation in [#10180](https://github.com/logseq/logseq/pull/10180)
- [[WsinGithub]]
- Disable Bilibili video autoplay in [#10207](https://github.com/logseq/logseq/pull/10207)
- [[Fixed issues]]
- Update rewrite-edn to fix backslash characters unable to be keyboard shortcut [#10224](https://github.com/logseq/logseq/pull/10224)
- Disable Bilibili video autoplay [#10207](https://github.com/logseq/logseq/pull/10207)
- Disable graph name warning [#10253](https://github.com/logseq/logseq/pull/10253)
- Support asset filenames with wrong percent encoding [#10191](https://github.com/logseq/logseq/pull/10191)
- Incorrect asset resource path for custom CSS on iOS [#10232](https://github.com/logseq/logseq/pull/10232)
- Incorrect mouse point payload for the plugin hook of the editor input selection [#10175](https://github.com/logseq/logseq/pull/10175)
- Avoid checking network connectivity for non-sync graph [#10171](https://github.com/logseq/logseq/pull/10171)
- [[Enhancement]]
- Electron loading [#10201](https://github.com/logseq/logseq/pull/10201)
- Allow for single-digit minutes and seconds in youtube-timestamp (addresses #9920) [#9930](https://github.com/logseq/logseq/pull/9930)
- New option to allow writing to files with group permission without chmod on Linux [#9297](https://github.com/logseq/logseq/pull/9297)
- Introduce customizable close window shortcut [#10190](https://github.com/logseq/logseq/pull/10190)
- Support Socks5 proxy for Desktop App [#10199](https://github.com/logseq/logseq/pull/10199)
- I18n: Spanish [#10195](https://github.com/logseq/logseq/pull/10195), Turkish [#10180](https://github.com/logseq/logseq/pull/10180)
- ## Beta 0.9.17 [[Sep 7th, 2023]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.9.17>.
- [[Fixed issues]]
- iOS network checking issue for Logseq Sync [#10163](https://github.com/logseq/logseq/pull/10163)
- Electron App maximize bug [#10165](https://github.com/logseq/logseq/pull/10165)
- ## Beta 0.9.16 [[Sep 6th, 2023]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.9.16>.
This version is revoked due to severe bugs.
- [[Thanks]]
- [[Allan Chain]]
- Fix `input-selection-end` event is not firing correctly in [#10113](https://github.com/logseq/logseq/pull/10113)
- Fix plugins can't be disabled if any error is thrown in beforeunload [#10114](https://github.com/logseq/logseq/pull/10114)
- [[Affif Mukhlashin]]
- Add Bahasa Indonesia translation in [#10148](https://github.com/logseq/logseq/pull/10148)
- [[djm2k]]
- Update develop-logseq-on-windows.md doc to warn about Choco in [#10075](https://github.com/logseq/logseq/pull/10075)
- [[Zhizhen He]]
- Update typos CI actions in [#10143](https://github.com/logseq/logseq/pull/10143)
- [[omahs]]
- Fix typos [#10143](https://github.com/logseq/logseq/pull/10143)
- [[Leonardo Salgueiro]]
- Fix `logseq.updateSettings` API doesn't update existing settings in [#10111](https://github.com/logseq/logseq/pull/10111)
- [[toymil]]
- Remove `word-spacing` CSS rule for inline monospace code in [#10077](https://github.com/logseq/logseq/pull/10077)
- [[Fixed issues]]
- Should Focus draw container when click [#10116](https://github.com/logseq/logseq/pull/10116)
- Copy keyboard shortcut not working in PDF view [#10092](https://github.com/logseq/logseq/pull/10092)
- PDF pane becomes blank after zooming or resizing [#10115](https://github.com/logseq/logseq/pull/10115)
- Annotation of a PDF of different page sizes [#10121](https://github.com/logseq/logseq/pull/10121)
- Incorrect path of PDF.js cmaps resources [#10084](https://github.com/logseq/logseq/pull/10084)
- Fix Close button visibility of right side panel [#10145](https://github.com/logseq/logseq/pull/10145)
- In Plugin API, `input-selection-end` event is not firing correctly [#10113](https://github.com/logseq/logseq/pull/10113)
- `logseq.updateSettings` API doesn't update existing settings [#10111](https://github.com/logseq/logseq/pull/10111)
- Plugins can't be disabled if any error is thrown in beforeunload [#10114](https://github.com/logseq/logseq/pull/10114)
- Fixes for Logseq Sync: Download progress for iOS [#10090](https://github.com/logseq/logseq/pull/10090)
- iOS App Crash caused by memory management [#10097](https://github.com/logseq/logseq/pull/10097)
- Remove `word-spacing` CSS rule for inline monospace code [#10077](https://github.com/logseq/logseq/pull/10077)
- Make linked references filters reactive when the page properties changed [#9638](https://github.com/logseq/logseq/pull/9638)
- [[Enhancement]]
- New shortcuts(keymap) editing UI [#9803](https://github.com/logseq/logseq/pull/9803)
- Enhancements of Plugin APIs [#10127](https://github.com/logseq/logseq/pull/10127)
- I18n: Add Bahasa Indonesia translation [#10148](https://github.com/logseq/logseq/pull/10148)
- Refine Electron loading [#10049](https://github.com/logseq/logseq/pull/10049)
- Add graph folder checking for bad folder names and nested graph [#10141](https://github.com/logseq/logseq/pull/10141)
- Add connectivity testing for Logseq Sync [#10112](https://github.com/logseq/logseq/pull/10112) [#10147](https://github.com/logseq/logseq/pull/10147)
- Enhancements for Logseq Sync: avoid logging out, reconnect when online [#10134](https://github.com/logseq/logseq/pull/10134)
- Remove legacy shortcuts entry from the general settings [#10154](https://github.com/logseq/logseq/pull/10154)
- Disable default close window shortcut [#10096](https://github.com/logseq/logseq/pull/10096)
- ## Beta 0.9.15 [[Aug 22nd, 2023]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.9.15>.
This version fixes right sidebar regressions introduced in the previous version.
- [[Thanks]]
- [[ingepettersen]]
- Update Norwegian translations in [#10068](https://github.com/logseq/logseq/pull/10068)
- [[Ulices]]
- Update Spanish translations in [#10065](https://github.com/logseq/logseq/pull/10065)
- [[Fixed issues]]
- Right sidebar pane menu overflow [#10046](https://github.com/logseq/logseq/pull/10046)
- Disable sidebar pane content scrolling [#10071](https://github.com/logseq/logseq/pull/10071)
- Fix right sidebar pane header wrap and content padding [#10072](https://github.com/logseq/logseq/pull/10072)
- [[Enhancement]]
- PDF password support [#10034](https://github.com/logseq/logseq/pull/10034)
- Plugin API enhancements [#10022](https://github.com/logseq/logseq/pull/10022)
- I18n: Norwegian [#10068](https://github.com/logseq/logseq/pull/10068), Spanish [#10065](https://github.com/logseq/logseq/pull/10065)
- ## Beta 0.9.14 [[Aug 17th, 2023]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.9.14>
#+BEGIN_NOTE
This version introduces left sidebar and right sidebar enhancements, if you encounter some style issues, please revert to the default theme.
#+END_NOTE
- [[Thanks]]
- [[HikoriHawky]]
- Add Whiteboards pen pressure support in [#9988](https://github.com/logseq/logseq/pull/9988)
- [[jomanhattan]]
- Update French translation in [#9981](https://github.com/logseq/logseq/pull/9981)
- [[matheusfrancisco]]
- Fix right sidebar empty string error caused by whiteboards names in [#10018](https://github.com/logseq/logseq/pull/10018)
- [[ROCKTAKEY]]
- Update Japanese translation in [#10004](https://github.com/logseq/logseq/pull/10004)
- [[situ2001]]
- Add drag threshold for graph view in [#9989](https://github.com/logseq/logseq/pull/9989)
- [[Fixed issues]]
- Add sub-pixel anti-aliasing for Electron [#10032](https://github.com/logseq/logseq/pull/10032)
- Add drag threshold for graph view [#9989](https://github.com/logseq/logseq/pull/9989)
- Display of embedded drawing [#9969](https://github.com/logseq/logseq/pull/9969)
- Sometimes template expansion inserts an additional slash [#9972](https://github.com/logseq/logseq/pull/9972)
- PDF Viewer: highlighted text layer is overlaid by the PDF.js built-in annotation layer [#9982](https://github.com/logseq/logseq/pull/9982)
- Rendering error caused by empty string of whiteboards in the right sidebar [#10018](https://github.com/logseq/logseq/pull/10018)
- [[Enhancement]]
- Left sidebar enhancements [#9880](https://github.com/logseq/logseq/pull/9880)
- Right sidebar enhancements #[[minor change]] [#9846](https://github.com/logseq/logseq/pull/9846)
- I18n: French [#9981](https://github.com/logseq/logseq/pull/9981) Japanese [#10004](https://github.com/logseq/logseq/pull/10004)
- Whiteboards drawing pen pressure support [#9988](https://github.com/logseq/logseq/pull/9988)
- PDF Viewer: support `shift + enter` to pick the previous searching results highlight [#10002](https://github.com/logseq/logseq/pull/10002)
- Polish UI details of the zotero search component [#10011](https://github.com/logseq/logseq/pull/10011)
- ## Beta 0.9.13 [[Aug 2nd, 2023]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.9.13>
- [[Thanks]]
- [[atxulo]]
- Improvements in Spanish translation in [#9896](https://github.com/logseq/logseq/pull/9896)
- [[einmeterhecht]]
- Translate all missing entries for German in [#9948](https://github.com/logseq/logseq/pull/9948)
- [[Ulices]]
- Spanish translation update in [#9732](https://github.com/logseq/logseq/pull/9732)
- [[ingepettersen]]
- Norwegian translation update in [#9905](https://github.com/logseq/logseq/pull/9905)
- [[ROCKTAKEY]]
- Add additional Japanese translation in [#9909](https://github.com/logseq/logseq/pull/9909)
- [[Fixed issues]]
- Draw: persist when updating existing elements [#9919](https://github.com/logseq/logseq/pull/9919)
- Setting default sidebar pages on config [#9959](https://github.com/logseq/logseq/pull/9959)
- Editing of global config on Windows [#9932](https://github.com/logseq/logseq/pull/9932)
- Image URL tag referrer policy fix for mobile platforms [#9895](https://github.com/logseq/logseq/pull/9895)
- Page history of Logseq Sync on mobile platforms [#9933](https://github.com/logseq/logseq/pull/9933)
- Cold start merge strategy of Smart Merge [#9953](https://github.com/logseq/logseq/pull/9953)
- [[Enhancement]]
- I18n updates: Spanish [#9896](https://github.com/logseq/logseq/pull/9896) [#9732](https://github.com/logseq/logseq/pull/9732), German [#9948](https://github.com/logseq/logseq/pull/9948), Norwegian [#9905](https://github.com/logseq/logseq/pull/9905), Japanese [#9909](https://github.com/logseq/logseq/pull/9909)
- ## Beta 0.9.11 [[Jul 19th, 2023]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.9.11>
- [[Breaking Changes]]
- Upgrade Electron to 24 [#9482](https://github.com/logseq/logseq/pull/9482) #[[minor change]]. Windows 7/8/8.1 users should upgrade their OS or stick to an old version of Logseq.
- [[Features]]
- Add PDF shape to Whiteboards [#9743](https://github.com/logseq/logseq/pull/9743) 
- [[Thanks]]
- [[Allan Chain]]
- Include katex resources from npm in [#9712](https://github.com/logseq/logseq/pull/9712)
- [[Bad3r]]
- Fix CVE-2023-2931 in Electron 24 in [#9854](https://github.com/logseq/logseq/pull/9854) #[[minor change]]
- Fix CI stale actions in [#9777](https://github.com/logseq/logseq/pull/9777)
- [[gfgafn]]
- Fix delete character which has more than one UTF-16 code unit using Delete key in [#9837](https://github.com/logseq/logseq/pull/9837)
- [[Rui Sun]]
- Add Chinese i18n translations and make more of right-sidebar, query, slide, and bug-report translatable in [#9801](https://github.com/logseq/logseq/pull/9801)
- [[ingepettersen]]
- Update Norwegian translation in [#9771](https://github.com/logseq/logseq/pull/9771)
- [[jihuayu]]
- Fix unable to change theme mode in theme row for zh-cn lang in [#9884](https://github.com/logseq/logseq/pull/9884)
- [[Lewis Sparlin]]
- Fix positioning of swipe-left action bar on iOS mobile app in [#9853](https://github.com/logseq/logseq/pull/9853)
- Use flex-col for schedule modal on smaller screens in [#9776](https://github.com/logseq/logseq/pull/9776)
- [[megayu]]
- Enhance cut and copy blocks in [#9094](https://github.com/logseq/logseq/pull/9094)
- [[Johan Penttinen]]
- Add support for Android 13 themed icons in [#9862](https://github.com/logseq/logseq/pull/9862)
- [[phlet]]
- Fix About dialog shows the version number twice (macOS) in [#9786](https://github.com/logseq/logseq/pull/9786)
- [[queeup]]
- Update Turkish translation in [#9773](https://github.com/logseq/logseq/pull/9773), [#9813](https://github.com/logseq/logseq/pull/9813)
- [[ROCKTAKEY]]
- Add additional Japanese translation in [#9792](https://github.com/logseq/logseq/pull/9792)
- [[Fixed issues]]
- Whiteboards
- Blur on empty title and select all on shape labels [#9793](https://github.com/logseq/logseq/pull/9793)
- Fix positioning of swipe-left action bar on iOS mobile app [#9853](https://github.com/logseq/logseq/pull/9853)
- Content overwritten caused by smart merge on mobile platforms [#9856](https://github.com/logseq/logseq/pull/9856)
- Fix header button drag region [#9861](https://github.com/logseq/logseq/pull/9861)
- Fix unable to change theme mode in theme row for zh-cn [#9884](https://github.com/logseq/logseq/pull/9884)
- Fix delete character which has more than one UTF-16 code unit using `Delete` key [#9837](https://github.com/logseq/logseq/pull/9837)
- Mobile startup fixes [#9828](https://github.com/logseq/logseq/pull/9828) [#9795](https://github.com/logseq/logseq/pull/9795)
- Plugin API: hook fenced code renderer for multiple providers [#9847](https://github.com/logseq/logseq/pull/9847)
- Fix sometimes the API server autostart not working [#9878](https://github.com/logseq/logseq/pull/9878)
- Fix smart merge for Logseq Sync [#9840](https://github.com/logseq/logseq/pull/9840) [#9831](https://github.com/logseq/logseq/pull/9831)
- Close context menu when page navigates [#9882](https://github.com/logseq/logseq/pull/9882)
- Fix graph name in dropdown for android [#9704](https://github.com/logseq/logseq/pull/9704)
- Use flex-col for schedule modal on smaller screens [#9776](https://github.com/logseq/logseq/pull/9776)
- [[Enhancement]]
- Enhance cut and copy blocks [#9094](https://github.com/logseq/logseq/pull/9094)
- Android 13 themed icons support [#9862](https://github.com/logseq/logseq/pull/9862)
- I18n: Japanese [#9792](https://github.com/logseq/logseq/pull/9792), Chinese [#9801](https://github.com/logseq/logseq/pull/9801), Norwegian [#9771](https://github.com/logseq/logseq/pull/9771), Turkish [#9773](https://github.com/logseq/logseq/pull/9773) [#9813](https://github.com/logseq/logseq/pull/9813)
- ## Beta 0.9.10 [[Jun 28th, 2023]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.9.10>
- [[Features]]
- Whiteboards: #[[Snap to grid]] [#9654](https://github.com/logseq/logseq/pull/9654)
- [[Thanks]]
- [[Allan Chain]]
- Update KaTeX from 0.13.18 to 0.16.7 in [#9625](https://github.com/logseq/logseq/pull/9625)
- [[Bad3r]]
- Replace 'presentation' with 'view as slides' in [#9681](https://github.com/logseq/logseq/pull/9681)
- Update playwright config in [#9623](https://github.com/logseq/logseq/pull/9623)
- Add tests for selecting codeblock language in [#9557](https://github.com/logseq/logseq/pull/9557)
- Fix test intermediate failure in [#9699](https://github.com/logseq/logseq/pull/9699)
- [[cui fliter]]
- Fix typo in [#9666](https://github.com/logseq/logseq/pull/9666)
- [[Rui Sun]]
- Fix setting title does not use i18n translation in [#9711](https://github.com/logseq/logseq/pull/9711)
- [[Mikhail Smelov]]
- Convert more of the UI to be translatable in [#9658](https://github.com/logseq/logseq/pull/9658) [#9680](https://github.com/logseq/logseq/pull/9680)
- Improve Russian (ru) translations in [#9645](https://github.com/logseq/logseq/pull/9645)
- [[megayu]]
- Fix paste text to link in [#9650](https://github.com/logseq/logseq/pull/9650)
- [[Phil Denhoff]]
- Improve plugin interfaces for IAppProxy, IEditorProxy, BlockEntity and PageEntity in [#9520](https://github.com/logseq/logseq/pull/9520)
- [[queeup]]
- Update Turkish translations in [#9686](https://github.com/logseq/logseq/pull/9686) [#9716](https://github.com/logseq/logseq/pull/9716)
- [[Taylor Hoffmann]]
- Update pt-BR translations in [#9655](https://github.com/logseq/logseq/pull/9655)
- [[Fixed issues]]
- Paste text to link [#9650](https://github.com/logseq/logseq/pull/9650)
- Clicking to edit a block from the right sidebar or a whiteboard can't jump to the correct position [#9657](https://github.com/logseq/logseq/pull/9657)
- Disable content selection when blocks have been selected [#9713](https://github.com/logseq/logseq/pull/9713)
- Fix pasting from HTML for some specific sites [#9739](https://github.com/logseq/logseq/pull/9739)
- Hidden editable block properties showing up when user properties present [#9661](https://github.com/logseq/logseq/pull/9661)
- Reactive queries [#9695](https://github.com/logseq/logseq/pull/9695) #[[minor change]]
- Trim block whitespace for markdown files for a specific case [#9554](https://github.com/logseq/logseq/pull/9554)
- Incorrect behavior for the code editor of file page [#9595](https://github.com/logseq/logseq/pull/9595)
- Polish the plugin settings modal [#9669](https://github.com/logseq/logseq/pull/9669)
- [[Enhancement]]
- Logseq Sync: experimental support for editing conflict handling with diff-merge [#9238](https://github.com/logseq/logseq/pull/9238) #experimental (To enable this, check the Features tab in the Setting menu)
- Add slash command for creating code blocks [#9553](https://github.com/logseq/logseq/pull/9553)
- Replace 'presentation' with 'view as slides' [#9681](https://github.com/logseq/logseq/pull/9681) #[[minor change]]
- More translation for UI elements [#9658](https://github.com/logseq/logseq/pull/9658) [#9680](https://github.com/logseq/logseq/pull/9680) [#9711](https://github.com/logseq/logseq/pull/9711)
- Punctuation usage in translations [#9610](https://github.com/logseq/logseq/pull/9610)
- I18n: Russian [#9645](https://github.com/logseq/logseq/pull/9645), pt-BR [#9655](https://github.com/logseq/logseq/pull/9655), Turkish [#9686](https://github.com/logseq/logseq/pull/9686) [#9716](https://github.com/logseq/logseq/pull/9716), Spanish [#9665](https://github.com/logseq/logseq/pull/9665)
- Polish details for the plugin fenced code block [#9590](https://github.com/logseq/logseq/pull/9590) - [Documentation](https://docs.logseq.com/#/page/code%20block)
- Plugin marketplace enhancements [#9609](https://github.com/logseq/logseq/pull/9609)
- Plugin API:
- Support right sidebar item type as string [#9701](https://github.com/logseq/logseq/pull/9701)
- Improve plugin interfaces for IAppProxy, IEditorProxy, BlockEntity and PageEntity [#9520](https://github.com/logseq/logseq/pull/9520)
- ## Beta 0.9.9 [[Jun 13th, 2023]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.9.9>
- [[Features]]
- Integrated title bar for Windows and Linux [#9442](https://github.com/logseq/logseq/pull/9442). (Now "Developer Tools" is under the `Ctrl+Shift+I` hotkey on Windows and Linux.) #[[minor change]]
- [[Thanks]]
- [[Bad3r]]
- remove false positive translations a.k.a. EN definitions in non EN dicts [#9576](https://github.com/logseq/logseq/pull/9576)
- Enhancements for E2E test: Log and ignore net errors [#9559](https://github.com/logseq/logseq/pull/9559); editor string formatting and symbols auto-pairing tests [#9388](https://github.com/logseq/logseq/pull/9388)
- Fix space in overflow menu [#9521](https://github.com/logseq/logseq/pull/9521)
- Add tooltip hint for `prefered-file-paste` setting [#9564](https://github.com/logseq/logseq/pull/9564)
- Do not print `nil` in quick capture [#9617](https://github.com/logseq/logseq/pull/9617)
- [[Bryan Lee]]
- Fix: shift-clicking on "Pages tagged with" page link doesn't open in sidebar [#9587](https://github.com/logseq/logseq/pull/9587)
- [[Giuseppe D'Andrea]]
- Enhancement for editor: delete selected text when pressing enter key [#9448](https://github.com/logseq/logseq/pull/9448)
- [[Ulices]]
- Update Spanish translation [#9540](https://github.com/logseq/logseq/pull/9540)
- [[ingepettersen]]
- Update Norwegian translation [#9618](https://github.com/logseq/logseq/pull/9618)
- [[Mikhail Smelov]]
- Update Russian translation [#9605](https://github.com/logseq/logseq/pull/9605)
- [[David Laing]]
- Update dugit #9579
- [[necropolina]]
- Menu item for toggling theme mode in published graphs [#9528](https://github.com/logseq/logseq/pull/9528)
- [[John Doe]]
- Improve I18n translations: Convert hardcoded strings in the UI to be translatable in [#9588](https://github.com/logseq/logseq/pull/9588), improve RU translation in [#9465](https://github.com/logseq/logseq/pull/9465), Improve UK (Ukrainian) translation in [#9494](https://github.com/logseq/logseq/pull/9494)
- [[situ2001]]
- Fix page search is not updated after changing the capitalization of the page name [#9583](https://github.com/logseq/logseq/pull/9583)
- Handle backspace when cursor is at beginning of line in embedded page/block [#8421](https://github.com/logseq/logseq/pull/8421)
- [[Steven Allen]]
- Substitute `date`/`text` in mobile quick-capture templates [#9529](https://github.com/logseq/logseq/pull/9529)
- [[Fixed issues]]
- Whiteboard:
- New page or whiteboard named with capital letter crashes app on rename [#9604](https://github.com/logseq/logseq/pull/9604)
- Arrow positions on initialization, undo group delete, hover links jumping and other issues [#9480](https://github.com/logseq/logseq/pull/9480)
- Exporting from context menu [#9596](https://github.com/logseq/logseq/pull/9596)
- Onboarding triggered on existing whiteboard [#9543](https://github.com/logseq/logseq/pull/9543)
- Aliased pages not included in published subgraph [#9600](https://github.com/logseq/logseq/pull/9600)
- Fix for quick-capture: Do not print `nil` in quick capture [#9617](https://github.com/logseq/logseq/pull/9617); Substitute `date`/`text` in mobile quick-capture templates [#9529](https://github.com/logseq/logseq/pull/9529)
- Page renaming issues [#9620](https://github.com/logseq/logseq/pull/9620)
- Page search is not updated after changing the capitalization of the page name [#9583](https://github.com/logseq/logseq/pull/9583)
- Pasted special URLs on selected text don't get wrapped with macros [#9607](https://github.com/logseq/logseq/pull/9607)
- Query functions not working sometimes [#9563](https://github.com/logseq/logseq/pull/9563) - [Documentation](https://docs.logseq.com/#/page/query%20function)
- Remove deprecated `:editor/command-trigger` option [#9550](https://github.com/logseq/logseq/pull/9550) #[[minor change]]
- Resizing of pdf area highlight [#9483](https://github.com/logseq/logseq/pull/9483)
- Shift clicking on "Pages tagged with" page link doesn't open in sidebar [#9587](https://github.com/logseq/logseq/pull/9587)
- Table v2 and view properties not hidden on display [#9499](https://github.com/logseq/logseq/pull/9499)
- Handle backspace when at beginning of line in embed page/block [#8421](https://github.com/logseq/logseq/pull/8421)
- iOS watcher path handling for file events [#9589](https://github.com/logseq/logseq/pull/9589)
- Missing `:block/properties-order` attribute for the custom query blocks [#9525](https://github.com/logseq/logseq/pull/9525)
- Drag and drop assets not working for the right sidebar [#9496](https://github.com/logseq/logseq/pull/9496)
- [[Enhancement]]
- Whiteboards
- Add support for translations [#9567](https://github.com/logseq/logseq/pull/9567)
- Auto pan triggers earlier and works for more platforms [#9573](https://github.com/logseq/logseq/pull/9573)
- Add tooltip hint for prefered-file-paste setting [#9564](https://github.com/logseq/logseq/pull/9564)
- Convert more hardcoded strings in the UI to be translatable [#9588](https://github.com/logseq/logseq/pull/9588)
- I18n Updates: Ukrainian [#9494](https://github.com/logseq/logseq/pull/9494), Russian [#9465](https://github.com/logseq/logseq/pull/9465) [#9605](https://github.com/logseq/logseq/pull/9605), Spanish [#9540](https://github.com/logseq/logseq/pull/9540), Norwegian [#9618](https://github.com/logseq/logseq/pull/9618)
- Menu item for toggling theme mode in published graphs [#9528](https://github.com/logseq/logseq/pull/9528)
- Delete selected text when pressing enter [#9448](https://github.com/logseq/logseq/pull/9448)
- Add more semantic classes to the order-list block element [#9519](https://github.com/logseq/logseq/pull/9519)
- Added keymap manager for plugins [#9430](https://github.com/logseq/logseq/pull/9430)
- ## Beta 0.9.8 [[May 24th, 2023]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.9.8>.
**NOTE**: The previous 0.9.7 version is revoked due to a fatal error caused by third-party library. [#9471](https://github.com/logseq/logseq/issues/9471). If you've upgraded to the broken 0.9.7 version, you might need to replace it with 0.9.8 manually(Download from the release page and install the app). Sorry for the inconvenience.
- [[BREAKING CHANGE]]
- Due to some compatibility issues, we dropped support for iOS 13
- [[Features]]
- New Version 2 [[Tables]] [Document](https://docs.logseq.com/#/page/tables) [#8532](https://github.com/logseq/logseq/pull/8532)
- [[Thanks]]
- [[Avelino]]
- Split language translations into one file per language in [#9383](https://github.com/logseq/logseq/pull/9383)
- [[Bad3r]]
- dev(playwright): Ignore connection refused errors in [#9426](https://github.com/logseq/logseq/pull/9426)
- tweak wrong default `config.edn` values in [#9409](https://github.com/logseq/logseq/pull/9409)
- [[Candide U]]
- Add `custom.js` to Logseq publishing's app in [#9291](https://github.com/logseq/logseq/pull/9291)
- [[Claas Störtenbecker]]
- Update `logseq.api.update_block` API in [#9272](https://github.com/logseq/logseq/pull/9272)
- [[Giuseppe D'Andrea]]
- Fix calculator command on a non-blank line in [#9449](https://github.com/logseq/logseq/pull/9449)
- Fix view scroll position when selecting multiple blocks in [#9444](https://github.com/logseq/logseq/pull/9444)
- [[Ulices]]
- Add more Spanish translations with the new format in [#9438](https://github.com/logseq/logseq/pull/9438)
- [[Michele]]
- Fix Italian translation error in [#9440](https://github.com/logseq/logseq/pull/9440)
- [[Sergey Kolesnik]]
- Update `config.edn` in [#9408](https://github.com/logseq/logseq/pull/9408)
- [[Fixed issues]]
- Whiteboards: fix actions like undo on converted shapes [#9410](https://github.com/logseq/logseq/pull/9410)
- Broken block refs when cutting or deleting blocks [#9406](https://github.com/logseq/logseq/pull/9406)
- Can't jump to the correct position when editing number list [#9401](https://github.com/logseq/logseq/pull/9401)
- Org-mode pages in aliased links not creating pages [#9381](https://github.com/logseq/logseq/pull/9381)
- Tweak default `config.edn` [#9409](https://github.com/logseq/logseq/pull/9409) [#9408](https://github.com/logseq/logseq/pull/9408)
- Calculator command on a non-blank line [#9449](https://github.com/logseq/logseq/pull/9449)
- Cli tool `nbb-logseq` scripts ignoring incorrectly for relative dir [#9443](https://github.com/logseq/logseq/pull/9443)
- Fix blocks losing references and disappearing from references panel [#9389](https://github.com/logseq/logseq/pull/9389)
- Show block bullet when a blank block has children [#9427](https://github.com/logseq/logseq/pull/9427)
- Add Unicode normalization to file watcher on mobile platforms [#9419](https://github.com/logseq/logseq/pull/9419) [#9453](https://github.com/logseq/logseq/pull/9453)
- Pasting fail on iOS [#9463](https://github.com/logseq/logseq/pull/9463), asset sharing fail on iOS [#9462](https://github.com/logseq/logseq/pull/9462)
- Mobile UI tweaks [#9405](https://github.com/logseq/logseq/pull/9405)
- [[Enhancement]]
- Add `custom.js` to Logseq publishing's app(minor behavior change) [#9291](https://github.com/logseq/logseq/pull/9291)
- Refactor iOS sharing [#9456](https://github.com/logseq/logseq/pull/9456)
- I18n: Spanish [#9438](https://github.com/logseq/logseq/pull/9438), Italian [#9440](https://github.com/logseq/logseq/pull/9440)
- Split language translations into one file per language [#9383](https://github.com/logseq/logseq/pull/9383)
- Update version control settings description [#9373](https://github.com/logseq/logseq/pull/9373)
- Plugin API `logseq.api.update_block` can preserve properties [#9272](https://github.com/logseq/logseq/pull/9272)
- Cli tool `nbb-logseq` scripts now have publishing support for all graphs, not just git based ones [#9348](https://github.com/logseq/logseq/pull/9348)
- Restore scroll position new adding newlines in a block [#9404](https://github.com/logseq/logseq/pull/9404)
- Scroll the view when selecting multiple blocks [#9444](https://github.com/logseq/logseq/pull/9444)
- Add missing title to opml-export [#9429](https://github.com/logseq/logseq/pull/9429)
- ## Beta 0.9.6 [[May 12th, 2023]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.9.6>
- [[Thanks]]
- [[Billy Pinheiro]]
- Refine pt-BR translation [#9360](https://github.com/logseq/logseq/pull/9360)
- [[Fixed issues]]
- Plugin API `get current block` fail [#9372](https://github.com/logseq/logseq/pull/9372)
- Minor style tweaks for ordered list [#9370](https://github.com/logseq/logseq/pull/9370)
- Incorrect arrangement of ui items from pagebar [#9375](https://github.com/logseq/logseq/pull/9375)
- Whiteboards: performance of persist [#9358](https://github.com/logseq/logseq/pull/9358)
- Page renaming UI [#9371](https://github.com/logseq/logseq/pull/9371)
- [[Enhancement]]
- React icons for tabler extensions [#9333](https://github.com/logseq/logseq/pull/9333)
- I18n: pt-BR [#9360](https://github.com/logseq/logseq/pull/9360)
- ## Beta 0.9.5 [[May 11th, 2023]]
Desktop app and Android App download link: <https://github.com/logseq/logseq/releases/tag/0.9.5>
- [[Features]]
- Ordered(numbered) block list support [#9235](https://github.com/logseq/logseq/pull/9235) - [Documentation](https://docs.logseq.com/#/page/numbered%20list)
- _Breaking change_: dwim lists are disabled by default since we now have block based lists. To reenable them, add `:dwim/settings {:list? true}` to your config.edn
- [[Thanks]]
- [[Adam Hupp]]
- Fix `yarn install` on Windows in [#9299](https://github.com/logseq/logseq/pull/9299)
- [[Bad3r]]
- Update config.edn template in [#9287](https://github.com/logseq/logseq/pull/9287)
- Improve error handling in `mkdir` function in [#9247](https://github.com/logseq/logseq/pull/9247)
- [[Calum Lind]]
- Fix garbled text in sidebar and dropdown menus on Linux in [#9286](https://github.com/logseq/logseq/pull/9286)
- [[EINDEX]]
- Fix UI port range in [#9211](https://github.com/logseq/logseq/pull/9211)
- [[Zhizhen He]]
- Fix duplicated line in config.edn [#9324](https://github.com/logseq/logseq/pull/9324)
- Add settings for graph view in [#9325](https://github.com/logseq/logseq/pull/9325)
- [[ingepettersen]]
- Norwegian translations in [#9319](https://github.com/logseq/logseq/pull/9319)
- [[melat0nin
gitextract_8azhvacr/
├── .github/
│ └── workflows/
│ ├── gh-pages.yml
│ └── test.yml
├── .gitignore
├── .graph-validator/
│ ├── config.edn
│ └── schema.cljs
├── .rdf-export/
│ └── config.edn
├── CONTRIBUTING.md
├── LICENSE.md
├── README.md
├── assets/
│ └── 192252746-f86ac736-3996-4711-b3b9-449c648eb445_1666117451901_0.webm
├── bb.edn
├── db-version-changes.md
├── db-version.md
├── journals/
│ ├── 2020_05_14.org
│ ├── 2020_05_15.org
│ ├── 2020_05_17.org
│ ├── 2020_05_18.org
│ ├── 2020_05_20.org
│ ├── 2020_05_21.org
│ ├── 2020_05_22.org
│ ├── 2020_05_25.org
│ ├── 2020_05_27.org
│ ├── 2020_05_28.org
│ ├── 2020_05_29.org
│ ├── 2020_05_30.org
│ ├── 2020_05_31.org
│ ├── 2020_06_01.org
│ ├── 2020_09_14.md
│ ├── 2020_09_19.md
│ ├── 2020_09_20.md
│ ├── 2020_09_21.md
│ ├── 2020_09_22.md
│ ├── 2020_09_23.md
│ ├── 2020_09_24.md
│ ├── 2020_09_25.md
│ ├── 2020_09_28.md
│ ├── 2020_09_29.md
│ ├── 2020_10_01.md
│ ├── 2020_10_02.md
│ ├── 2020_10_03.md
│ ├── 2020_10_05.md
│ ├── 2020_10_06.md
│ ├── 2020_10_07.md
│ ├── 2020_10_08.org
│ ├── 2020_10_09.md
│ ├── 2020_10_10.md
│ ├── 2020_10_11.md
│ ├── 2020_10_12.md
│ ├── 2020_10_16.md
│ ├── 2020_10_22.md
│ ├── 2020_10_23.md
│ ├── 2020_10_24.md
│ ├── 2020_10_26.md
│ ├── 2020_10_27.org
│ ├── 2020_10_28.md
│ ├── 2020_11_06.md
│ ├── 2020_11_07.md
│ ├── 2020_11_11.md
│ ├── 2020_11_13.md
│ ├── 2020_11_17.md
│ ├── 2020_11_18.md
│ ├── 2020_11_26.md
│ ├── 2020_11_29.md
│ ├── 2020_12_05.md
│ ├── 2020_12_07.md
│ ├── 2020_12_16.md
│ ├── 2020_12_29.md
│ ├── 2021_01_12.md
│ ├── 2021_01_13.md
│ ├── 2021_01_15.md
│ ├── 2021_01_16.md
│ ├── 2021_01_18.md
│ ├── 2021_01_19.md
│ ├── 2021_01_23.md
│ ├── 2021_01_24.md
│ ├── 2021_01_27.md
│ ├── 2021_01_28.md
│ ├── 2021_01_29.md
│ ├── 2021_01_30.md
│ ├── 2021_01_31.md
│ ├── 2021_02_01.md
│ ├── 2021_02_02.md
│ ├── 2021_02_05.md
│ ├── 2021_02_06.md
│ ├── 2021_02_07.md
│ ├── 2021_02_14.md
│ ├── 2021_02_15.md
│ ├── 2021_02_16.md
│ ├── 2021_02_17.md
│ ├── 2021_02_20.md
│ ├── 2021_02_26.md
│ ├── 2021_02_27.md
│ ├── 2021_03_01.md
│ ├── 2021_03_02.md
│ ├── 2021_03_08.md
│ ├── 2021_03_15.md
│ ├── 2021_03_26.md
│ ├── 2021_03_27.md
│ ├── 2021_04_01.md
│ ├── 2021_04_02.md
│ ├── 2021_04_19.md
│ ├── 2021_04_30.md
│ ├── 2021_07_14.md
│ └── 2021_07_19.md
├── logseq/
│ ├── config.edn
│ ├── custom.css
│ ├── metadata.edn
│ └── srs-of-matrix.edn
├── pages/
│ ├── Academic.md
│ ├── Advanced Queries.md
│ ├── Advanced commands.md
│ ├── Aliases and external links.md
│ ├── All Platforms.md
│ ├── All pages.md
│ ├── Android.md
│ ├── Assets alias.md
│ ├── Basic settings.md
│ ├── Block Reference.md
│ ├── Boolean.md
│ ├── Breaking Changes.md
│ ├── Built-in Properties.md
│ ├── Calculator.md
│ ├── Changelog.md
│ ├── Changelog_07_09.md
│ ├── Changelog_2020.org
│ ├── Class.md
│ ├── ClojureScript Eval in a Block.md
│ ├── Cloze.md
│ ├── Code block.md
│ ├── Command.md
│ ├── Commands.md
│ ├── Community.md
│ ├── Community___Query Learning Sprint (Summer 2022).md
│ ├── Copy and Paste.md
│ ├── Custom theme.md
│ ├── DataType.md
│ ├── Desktop.md
│ ├── Draw.md
│ ├── Embed Media - Audio, Photos, Videos.md
│ ├── Export.md
│ ├── Feature.md
│ ├── FeatureTag.md
│ ├── Features.md
│ ├── Filename format.md
│ ├── Find in page.md
│ ├── Flashcards.md
│ ├── Getting started with the Journals page.md
│ ├── Git Auto-Commit.md
│ ├── Global config.edn.md
│ ├── Global configuration.md
│ ├── Glossary.md
│ ├── Graph Overview.md
│ ├── Handbook.md
│ ├── Headings.md
│ ├── Hiccup.md
│ ├── How to create a Logseq graph using existing Markdown files.md
│ ├── How to create a new graph.md
│ ├── How to create pages in Logseq.md
│ ├── How to filter linked references.md
│ ├── How to sync your Logseq graph across devices.md
│ ├── How to work with the right-hand sidebar.md
│ ├── Import.md
│ ├── Journals page.md
│ ├── Keyboard shortcuts.md
│ ├── Knowledge Graph.md
│ ├── Learn Datalog Today.md
│ ├── Left sidebar.md
│ ├── Linked References.md
│ ├── Local Http server.md
│ ├── Logseq Protocol.md
│ ├── Logseq Sync Encryption.md
│ ├── Logseq Sync.md
│ ├── Logseq file and folder naming rules.md
│ ├── Macros.md
│ ├── Markdown.md
│ ├── Marketplace demo.md
│ ├── Marketplace.md
│ ├── Math Block.md
│ ├── Migrate to Logseq Beta.md
│ ├── Namespaces.md
│ ├── New to Logseq%3F.md
│ ├── Numbered List.md
│ ├── OneStutteringMind.md
│ ├── Org Mode.org
│ ├── PDF highlights.md
│ ├── Page and block references.md
│ ├── Page graph.md
│ ├── Platform.md
│ ├── Plugins 01.md
│ ├── Plugins 02 - Build a mind map plugin.md
│ ├── Plugins 101.md
│ ├── Plugins.md
│ ├── Properties.md
│ ├── Property.md
│ ├── Publish Web.md
│ ├── Publishing (Desktop App Only).md
│ ├── Publishing.md
│ ├── Queries.md
│ ├── Query Builder.md
│ ├── Query function.md
│ ├── Query table.md
│ ├── Query.md
│ ├── Refactoring_of_logseq.md
│ ├── Right sidebar.md
│ ├── Search.md
│ ├── Settings.md
│ ├── Snap to grid.md
│ ├── Spaced Repetition.md
│ ├── Start here.md
│ ├── String.md
│ ├── StringWithRefs.md
│ ├── Tables.md
│ ├── Tags.md
│ ├── Tasks.md
│ ├── Templates___Docs.md
│ ├── The basics of block references.md
│ ├── The difference between block embeds and block references.md
│ ├── The difference between block embeds and page embeds.md
│ ├── Thing.md
│ ├── Tweet___This 1 Tiny Time Managem...___.md
│ ├── UI Element.md
│ ├── Undo and Redo.md
│ ├── Unlinked References.md
│ ├── Uri.md
│ ├── User configuration.md
│ ├── WIP How to work with the left-hand sidebar.md
│ ├── WIP Supercharge search with queries.md
│ ├── Web.md
│ ├── What is indentation and why does it matter%3F.md
│ ├── Whiteboard.md
│ ├── Whiteboard___Action Bar.md
│ ├── Whiteboard___Action Bar___Arrow head toggle.md
│ ├── Whiteboard___Action Bar___Auto resize toggle.md
│ ├── Whiteboard___Action Bar___Bold toggle.md
│ ├── Whiteboard___Action Bar___Collapse toggle.md
│ ├── Whiteboard___Action Bar___Color swatch.md
│ ├── Whiteboard___Action Bar___Edit.md
│ ├── Whiteboard___Action Bar___Fill toggle.md
│ ├── Whiteboard___Action Bar___Italic toggle.md
│ ├── Whiteboard___Action Bar___Link.md
│ ├── Whiteboard___Action Bar___Open embedded url.md
│ ├── Whiteboard___Action Bar___Reload.md
│ ├── Whiteboard___Action Bar___Scale select.md
│ ├── Whiteboard___Action Bar___Shape select.md
│ ├── Whiteboard___Action Bar___Stroke type select.md
│ ├── Whiteboard___Action Bar___Url input.md
│ ├── Whiteboard___Canvas.md
│ ├── Whiteboard___Context Menu.md
│ ├── Whiteboard___Dashboard.md
│ ├── Whiteboard___Element locking.md
│ ├── Whiteboard___Embed.md
│ ├── Whiteboard___Object.md
│ ├── Whiteboard___Object___Image.md
│ ├── Whiteboard___Object___PDF.md
│ ├── Whiteboard___Object___Tweet.md
│ ├── Whiteboard___Object___Youtube.md
│ ├── Whiteboard___Object___iFrame.md
│ ├── Whiteboard___Quick Add.md
│ ├── Whiteboard___Tool.md
│ ├── Whiteboard___Tool___Connector.md
│ ├── Whiteboard___Tool___Eraser.md
│ ├── Whiteboard___Tool___Global color swatch.md
│ ├── Whiteboard___Tool___Global scale select.md
│ ├── Whiteboard___Tool___Highlight.md
│ ├── Whiteboard___Tool___Move.md
│ ├── Whiteboard___Tool___Pencil.md
│ ├── Whiteboard___Tool___Portal.md
│ ├── Whiteboard___Tool___Select.md
│ ├── Whiteboard___Tool___Shape.md
│ ├── Whiteboard___Tool___Shape___Circle.md
│ ├── Whiteboard___Tool___Shape___Rectangle.md
│ ├── Whiteboard___Tool___Shape___Triangle.md
│ ├── Whiteboard___Tool___Text.md
│ ├── Whiteboard___Toolbar.md
│ ├── Why linking matters.md
│ ├── Youtube timestamp.md
│ ├── Zotero.md
│ ├── about.org
│ ├── bensu.md
│ ├── block_embed.md
│ ├── canary changelog.md
│ ├── changelog_06.md
│ ├── config edn file.md
│ ├── contents.md
│ ├── custom.css.md
│ ├── custom.js.md
│ ├── description.md
│ ├── desktop app.md
│ ├── devon.md
│ ├── docs.md
│ ├── domainIncludes.md
│ ├── examples.md
│ ├── export.css.md
│ ├── faq.org
│ ├── favorites.md
│ ├── how_to_take_notes.md
│ ├── iOS.md
│ ├── initial-version.md
│ ├── llcc.md
│ ├── meta.md
│ ├── minor change.md
│ ├── name.md
│ ├── one year in logseq.md
│ ├── page_embed.md
│ ├── parent.md
│ ├── pengx17.md
│ ├── platforms.md
│ ├── plugins.edn.md
│ ├── rangeIncludes.md
│ ├── sameAs.md
│ ├── setting___enable journals.md
│ ├── setting___enable logical outdenting.md
│ ├── setting___enable timetracking.md
│ ├── setting___enable tooltip.md
│ ├── setting___language.md
│ ├── setting___preferred file format.md
│ ├── setting___preferred journal format.md
│ ├── setting___preferred workflow.md
│ ├── setting___send usage data and diagnostics to logseq.md
│ ├── setting___show brackets.md
│ ├── setting___theme modes.md
│ ├── slide.md
│ ├── supports.md
│ ├── templates.md
│ ├── term.page title.md
│ ├── term___alias.md
│ ├── term___backlink.md
│ ├── term___block reference with label.md
│ ├── term___block rendering.md
│ ├── term___block title.md
│ ├── term___block.md
│ ├── term___bullet.md
│ ├── term___editing mode.md
│ ├── term___file link.md
│ ├── term___graph.md
│ ├── term___internal line break.md
│ ├── term___network of connected ideas.md
│ ├── term___page reference with label.md
│ ├── term___page reference.md
│ ├── term___page title.md
│ ├── term___page.md
│ ├── term___web link.md
│ ├── testimonials.md
│ ├── theme.md
│ ├── tips_and_tricks.md
│ ├── tutorial.md
│ ├── type.md
│ ├── unique.md
│ ├── url.md
│ └── videos.md
├── script/
│ ├── .gitignore
│ ├── nbb.edn
│ ├── package.json
│ └── query.cljs
├── typos.toml
└── whiteboards/
└── Test Whiteboard.edn
Condensed preview — 356 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,413K chars).
[
{
"path": ".github/workflows/gh-pages.yml",
"chars": 684,
"preview": "name: Publish\n\non:\n push:\n branches: [ master ]\n # Allows you to run this workflow manually from the Actions tab\n "
},
{
"path": ".github/workflows/test.yml",
"chars": 618,
"preview": "name: Test\n\non:\n push:\n pull_request:\n branches: [master]\n\njobs:\n typos:\n name: Spell Check with Typos\n runs"
},
{
"path": ".gitignore",
"chars": 74,
"preview": ".DS_Store\nbak/\npages-metadata.edn\nlogseq/graphs-txid.edn\nlogseq/.recycle/\n"
},
{
"path": ".graph-validator/config.edn",
"chars": 348,
"preview": "{:exclude [tags-and-page-refs-have-pages]\n :add-namespaces [logseq.graph-validator.validations.class\n l"
},
{
"path": ".graph-validator/schema.cljs",
"chars": 1356,
"preview": "(ns schema\n \"Enforce schema constraints on page types\"\n (:require [clojure.test :refer [deftest is]]\n [logs"
},
{
"path": ".rdf-export/config.edn",
"chars": 117,
"preview": "{:base-url \"https://docs.logseq.com/#/page/\"\n :prefixes {:d \"https://docs.logseq.com/#/page/\"}\n :expand-macros true}\n"
},
{
"path": "CONTRIBUTING.md",
"chars": 3494,
"preview": "Thanks for your interest in contributing! :heart: :man_dancing: :woman_dancing:\n\n## What to contribute\n\nFixes and small "
},
{
"path": "LICENSE.md",
"chars": 1063,
"preview": "MIT License\n\nCopyright (c) 2023 Logseq\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof "
},
{
"path": "README.md",
"chars": 172,
"preview": "# [docs.logseq.com](https://docs.logseq.com)\n\nOfficial reference documentation for [Logseq](https://logseq.com/).\n\n## Co"
},
{
"path": "bb.edn",
"chars": 1307,
"preview": "{:deps\n {logseq/bb-tasks\n #_{:local/root \"../bb-tasks\"}\n {:git/url \"https://github.com/logseq/bb-tasks\"\n :git/sha \"4"
},
{
"path": "db-version-changes.md",
"chars": 12145,
"preview": "## Description\n\nThis page describes changes for existing Logseq features on the [database version](https://github.com/lo"
},
{
"path": "db-version.md",
"chars": 56158,
"preview": "## Description\n\nThis page describes DB (database) graph functionality as of April 28th, 2026. See [here](https://test.lo"
},
{
"path": "journals/2020_05_14.org",
"chars": 900,
"preview": "* Thursday, 05/14/2020\n** [[Changelog 2020]]\n*** [[https://excalidraw.com/][Excalidraw]] Integration. [[Draw]] [[Feature"
},
{
"path": "journals/2020_05_15.org",
"chars": 399,
"preview": "* Friday, 05/15/2020\n** [[Changelog 2020]]\n*** No need to input github person token each time when you login.\n*** Disabl"
},
{
"path": "journals/2020_05_17.org",
"chars": 587,
"preview": "* Sunday, 05/17/2020\n** [[Changelog 2020]]\n*** Add block reference\n:PROPERTIES:\n:id: 60a77d61-fc7d-46e7-b34f-c8eb4f54dce"
},
{
"path": "journals/2020_05_18.org",
"chars": 324,
"preview": "* Monday, 05/18/2020\n** [[Changelog 2020]]\n*** Add a right sidebar.\n You can ~shift~ + ~click~ to open any page, head"
},
{
"path": "journals/2020_05_20.org",
"chars": 332,
"preview": "* Wednesday, 05/20/2020\n** [[Changelog 2020]]\n*** Add [[term/alias][Page alias]] (Only supporting org mode for now).\n***"
},
{
"path": "journals/2020_05_21.org",
"chars": 755,
"preview": "* Thursday, 05/21/2020\n** [[Changelog 2020]]\n*** Add a white theme (dark theme is coming).\n*** Now you can add new pages"
},
{
"path": "journals/2020_05_22.org",
"chars": 411,
"preview": "* Friday, 05/22/2020\n** [[Changelog 2020]]\n*** Add a dark theme, inspired by the famous [[https://ethanschoonover.com/so"
},
{
"path": "journals/2020_05_25.org",
"chars": 735,
"preview": "* Monday, 05/25/2020\n** [[Changelog 2020]]\n*** Add a git status ~dot~ to the heading.\n [[https://cdn.logseq.com/%2F59"
},
{
"path": "journals/2020_05_27.org",
"chars": 161,
"preview": "* Wednesday, 05/27/2020\n** Fixed issues\n*** Fixed issue of login.\n*** Fixed issue of git pull.\n*** Don't re-render the r"
},
{
"path": "journals/2020_05_28.org",
"chars": 158,
"preview": "* Thursday, 05/28/2020\n** Changelog\n*** Add history support.\n | Name | Shortcut |\n |------+----------|\n | Undo "
},
{
"path": "journals/2020_05_29.org",
"chars": 173,
"preview": "* Friday, 05/29/2020\n** Changelog\n*** Add auto pairs, it supports ~(~, ~[~ and ~{~ now.\n** Fixed issues\n*** Selection ar"
},
{
"path": "journals/2020_05_30.org",
"chars": 1399,
"preview": "* Saturday, 05/30/2020\n** Changelog\n*** Add custom datalog query support.\n 1. Add multiple queries to the journals pa"
},
{
"path": "journals/2020_05_31.org",
"chars": 928,
"preview": "* Sunday, 05/31/2020\n** Changelog\n*** Custom journal date format support. [[Features]]\n:PROPERTIES:\n:id: 60acdeb9-aa65-4"
},
{
"path": "journals/2020_06_01.org",
"chars": 577,
"preview": "* Jun 1st, 2020\n** [[Changelog 2020]]\n*** Admonitions, inspired by [[https://asciidoctor.org/docs/user-manual/#admonitio"
},
{
"path": "journals/2020_09_14.md",
"chars": 32,
"preview": "---\ntitle: Sep 14th, 2020\n---\n\n-"
},
{
"path": "journals/2020_09_19.md",
"chars": 32,
"preview": "---\ntitle: Sep 19th, 2020\n---\n\n-"
},
{
"path": "journals/2020_09_20.md",
"chars": 32,
"preview": "---\ntitle: Sep 20th, 2020\n---\n\n-"
},
{
"path": "journals/2020_09_21.md",
"chars": 32,
"preview": "---\ntitle: Sep 21st, 2020\n---\n\n-"
},
{
"path": "journals/2020_09_22.md",
"chars": 32,
"preview": "---\ntitle: Sep 22nd, 2020\n---\n\n-"
},
{
"path": "journals/2020_09_23.md",
"chars": 47,
"preview": "---\ntitle: Sep 23rd, 2020\n---\n\n- Test something"
},
{
"path": "journals/2020_09_24.md",
"chars": 32,
"preview": "---\ntitle: Sep 24th, 2020\n---\n\n-"
},
{
"path": "journals/2020_09_25.md",
"chars": 32,
"preview": "---\ntitle: Sep 25th, 2020\n---\n\n-"
},
{
"path": "journals/2020_09_28.md",
"chars": 32,
"preview": "---\ntitle: Sep 28th, 2020\n---\n\n-"
},
{
"path": "journals/2020_09_29.md",
"chars": 32,
"preview": "---\ntitle: Sep 29th, 2020\n---\n\n-"
},
{
"path": "journals/2020_10_01.md",
"chars": 31,
"preview": "---\ntitle: Oct 1st, 2020\n---\n\n-"
},
{
"path": "journals/2020_10_02.md",
"chars": 53,
"preview": "---\ntitle: Oct 2nd, 2020\n---\n\n- Testing\n Testing\n-\n-"
},
{
"path": "journals/2020_10_03.md",
"chars": 31,
"preview": "---\ntitle: Oct 3rd, 2020\n---\n\n-"
},
{
"path": "journals/2020_10_05.md",
"chars": 31,
"preview": "---\ntitle: Oct 5th, 2020\n---\n\n-"
},
{
"path": "journals/2020_10_06.md",
"chars": 31,
"preview": "---\ntitle: Oct 6th, 2020\n---\n\n-"
},
{
"path": "journals/2020_10_07.md",
"chars": 31,
"preview": "---\ntitle: Oct 7th, 2020\n---\n\n-"
},
{
"path": "journals/2020_10_08.org",
"chars": 27,
"preview": "#+TITLE: Oct 8th, 2020\n\n** "
},
{
"path": "journals/2020_10_09.md",
"chars": 31,
"preview": "---\ntitle: Oct 9th, 2020\n---\n\n-"
},
{
"path": "journals/2020_10_10.md",
"chars": 32,
"preview": "---\ntitle: Oct 10th, 2020\n---\n\n-"
},
{
"path": "journals/2020_10_11.md",
"chars": 32,
"preview": "---\ntitle: Oct 11th, 2020\n---\n\n-"
},
{
"path": "journals/2020_10_12.md",
"chars": 32,
"preview": "---\ntitle: Oct 12th, 2020\n---\n\n-"
},
{
"path": "journals/2020_10_16.md",
"chars": 32,
"preview": "---\ntitle: Oct 16th, 2020\n---\n\n-"
},
{
"path": "journals/2020_10_22.md",
"chars": 32,
"preview": "---\ntitle: Oct 22nd, 2020\n---\n\n-"
},
{
"path": "journals/2020_10_23.md",
"chars": 32,
"preview": "---\ntitle: Oct 23rd, 2020\n---\n\n-"
},
{
"path": "journals/2020_10_24.md",
"chars": 32,
"preview": "---\ntitle: Oct 24th, 2020\n---\n\n-"
},
{
"path": "journals/2020_10_26.md",
"chars": 32,
"preview": "---\ntitle: Oct 26th, 2020\n---\n\n-"
},
{
"path": "journals/2020_10_27.org",
"chars": 28,
"preview": "#+TITLE: Oct 27th, 2020\n\n** "
},
{
"path": "journals/2020_10_28.md",
"chars": 32,
"preview": "---\ntitle: Oct 28th, 2020\n---\n\n-"
},
{
"path": "journals/2020_11_06.md",
"chars": 31,
"preview": "---\ntitle: Nov 6th, 2020\n---\n\n-"
},
{
"path": "journals/2020_11_07.md",
"chars": 31,
"preview": "---\ntitle: Nov 7th, 2020\n---\n\n-"
},
{
"path": "journals/2020_11_11.md",
"chars": 32,
"preview": "---\ntitle: Nov 11th, 2020\n---\n\n-"
},
{
"path": "journals/2020_11_13.md",
"chars": 32,
"preview": "---\ntitle: Nov 13th, 2020\n---\n\n-"
},
{
"path": "journals/2020_11_17.md",
"chars": 32,
"preview": "---\ntitle: Nov 17th, 2020\n---\n\n-"
},
{
"path": "journals/2020_11_18.md",
"chars": 32,
"preview": "---\ntitle: Nov 18th, 2020\n---\n\n-"
},
{
"path": "journals/2020_11_26.md",
"chars": 32,
"preview": "---\ntitle: Nov 26th, 2020\n---\n\n-"
},
{
"path": "journals/2020_11_29.md",
"chars": 32,
"preview": "---\ntitle: Nov 29th, 2020\n---\n\n-"
},
{
"path": "journals/2020_12_05.md",
"chars": 31,
"preview": "---\ntitle: Dec 5th, 2020\n---\n\n-"
},
{
"path": "journals/2020_12_07.md",
"chars": 31,
"preview": "---\ntitle: Dec 7th, 2020\n---\n\n-"
},
{
"path": "journals/2020_12_16.md",
"chars": 32,
"preview": "---\ntitle: Dec 16th, 2020\n---\n\n-"
},
{
"path": "journals/2020_12_29.md",
"chars": 32,
"preview": "---\ntitle: Dec 29th, 2020\n---\n\n-"
},
{
"path": "journals/2021_01_12.md",
"chars": 32,
"preview": "---\ntitle: Jan 12th, 2021\n---\n\n-"
},
{
"path": "journals/2021_01_13.md",
"chars": 32,
"preview": "---\ntitle: Jan 13th, 2021\n---\n\n-"
},
{
"path": "journals/2021_01_15.md",
"chars": 32,
"preview": "---\ntitle: Jan 15th, 2021\n---\n\n-"
},
{
"path": "journals/2021_01_16.md",
"chars": 32,
"preview": "---\ntitle: Jan 16th, 2021\n---\n\n-"
},
{
"path": "journals/2021_01_18.md",
"chars": 32,
"preview": "---\ntitle: Jan 18th, 2021\n---\n\n-"
},
{
"path": "journals/2021_01_19.md",
"chars": 32,
"preview": "---\ntitle: Jan 19th, 2021\n---\n\n-"
},
{
"path": "journals/2021_01_23.md",
"chars": 32,
"preview": "---\ntitle: Jan 23rd, 2021\n---\n\n-"
},
{
"path": "journals/2021_01_24.md",
"chars": 32,
"preview": "---\ntitle: Jan 24th, 2021\n---\n\n-"
},
{
"path": "journals/2021_01_27.md",
"chars": 32,
"preview": "---\ntitle: Jan 27th, 2021\n---\n\n-"
},
{
"path": "journals/2021_01_28.md",
"chars": 32,
"preview": "---\ntitle: Jan 28th, 2021\n---\n\n-"
},
{
"path": "journals/2021_01_29.md",
"chars": 32,
"preview": "---\ntitle: Jan 29th, 2021\n---\n\n-"
},
{
"path": "journals/2021_01_30.md",
"chars": 32,
"preview": "---\ntitle: Jan 30th, 2021\n---\n\n-"
},
{
"path": "journals/2021_01_31.md",
"chars": 32,
"preview": "---\ntitle: Jan 31st, 2021\n---\n\n-"
},
{
"path": "journals/2021_02_01.md",
"chars": 31,
"preview": "---\ntitle: Feb 1st, 2021\n---\n\n-"
},
{
"path": "journals/2021_02_02.md",
"chars": 31,
"preview": "---\ntitle: Feb 2nd, 2021\n---\n\n-"
},
{
"path": "journals/2021_02_05.md",
"chars": 31,
"preview": "---\ntitle: Feb 5th, 2021\n---\n\n-"
},
{
"path": "journals/2021_02_06.md",
"chars": 31,
"preview": "---\ntitle: Feb 6th, 2021\n---\n\n-"
},
{
"path": "journals/2021_02_07.md",
"chars": 31,
"preview": "---\ntitle: Feb 7th, 2021\n---\n\n-"
},
{
"path": "journals/2021_02_14.md",
"chars": 32,
"preview": "---\ntitle: Feb 14th, 2021\n---\n\n-"
},
{
"path": "journals/2021_02_15.md",
"chars": 32,
"preview": "---\ntitle: Feb 15th, 2021\n---\n\n-"
},
{
"path": "journals/2021_02_16.md",
"chars": 32,
"preview": "---\ntitle: Feb 16th, 2021\n---\n\n-"
},
{
"path": "journals/2021_02_17.md",
"chars": 32,
"preview": "---\ntitle: Feb 17th, 2021\n---\n\n-"
},
{
"path": "journals/2021_02_20.md",
"chars": 87,
"preview": "---\ntitle: Feb 20th, 2021\n---\n\n- DONE Write changelog for v0.0.9\n done:: 1614350275750"
},
{
"path": "journals/2021_02_26.md",
"chars": 86,
"preview": "---\ntitle: Feb 26th, 2021\n---\n\n- NOW Write changelog for v0.0.10\n now:: 1614348097567"
},
{
"path": "journals/2021_02_27.md",
"chars": 32,
"preview": "---\ntitle: Feb 27th, 2021\n---\n\n-"
},
{
"path": "journals/2021_03_01.md",
"chars": 31,
"preview": "---\ntitle: Mar 1st, 2021\n---\n\n-"
},
{
"path": "journals/2021_03_02.md",
"chars": 31,
"preview": "---\ntitle: Mar 2nd, 2021\n---\n\n-"
},
{
"path": "journals/2021_03_08.md",
"chars": 31,
"preview": "---\ntitle: Mar 8th, 2021\n---\n\n-"
},
{
"path": "journals/2021_03_15.md",
"chars": 32,
"preview": "---\ntitle: Mar 15th, 2021\n---\n\n-"
},
{
"path": "journals/2021_03_26.md",
"chars": 32,
"preview": "---\ntitle: Mar 26th, 2021\n---\n\n-"
},
{
"path": "journals/2021_03_27.md",
"chars": 32,
"preview": "---\ntitle: Mar 27th, 2021\n---\n\n-"
},
{
"path": "journals/2021_04_01.md",
"chars": 31,
"preview": "---\ntitle: Apr 1st, 2021\n---\n\n-"
},
{
"path": "journals/2021_04_02.md",
"chars": 31,
"preview": "---\ntitle: Apr 2nd, 2021\n---\n\n-"
},
{
"path": "journals/2021_04_19.md",
"chars": 32,
"preview": "---\ntitle: Apr 19th, 2021\n---\n\n-"
},
{
"path": "journals/2021_04_30.md",
"chars": 32,
"preview": "---\ntitle: Apr 30th, 2021\n---\n\n-"
},
{
"path": "journals/2021_07_14.md",
"chars": 2,
"preview": "- "
},
{
"path": "journals/2021_07_19.md",
"chars": 2,
"preview": "-\n"
},
{
"path": "logseq/config.edn",
"chars": 1831,
"preview": "{:text-formats [],\n :all-pages-public? true\n :default-home {:page \"Contents\"}\n\n ;; Currently, we support either \"Markdow"
},
{
"path": "logseq/custom.css",
"chars": 56,
"preview": ".page-property-value .macro {\n display: inline-flex;\n}\n"
},
{
"path": "logseq/metadata.edn",
"chars": 3,
"preview": "()\n"
},
{
"path": "logseq/srs-of-matrix.edn",
"chars": 43,
"preview": "{2 {2.46 2.64}, 1 {2.6 4.14}, 0 {2.5 4.43}}"
},
{
"path": "pages/Academic.md",
"chars": 22,
"preview": "type:: [[FeatureTag]]\n"
},
{
"path": "pages/Advanced Queries.md",
"chars": 19122,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]]\ndescription:: Advanced queries are written with [Datalog](https://en.wi"
},
{
"path": "pages/Advanced commands.md",
"chars": 1530,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]] except [[Publish Web]]\ndescription:: Advanced functionality that can be"
},
{
"path": "pages/Aliases and external links.md",
"chars": 1160,
"preview": "- It's also possible to link to pages outside of Logseq, i.e. websites. To point to a URL, either use the trigger menu b"
},
{
"path": "pages/All Platforms.md",
"chars": 141,
"preview": "type:: [[Platform]]\n\n- We support features on the following platforms:\n\t- [[Desktop]]\n\t- [[iOS]]\n\t- [[Android]]\n\t- [[Web"
},
{
"path": "pages/All pages.md",
"chars": 518,
"preview": "type:: [[Feature]]\ndescription:: Page dedicated to page management - search, delete and sort pages.\nplatforms:: [[All Pl"
},
{
"path": "pages/Android.md",
"chars": 20,
"preview": "type:: [[Platform]]\n"
},
{
"path": "pages/Assets alias.md",
"chars": 1849,
"preview": "type:: [[Feature]]\nplatforms:: [[Desktop]]\ninitial-version:: unreleased\n\n- #+BEGIN_NOTE\n It's not supported yet.\n This"
},
{
"path": "pages/Basic settings.md",
"chars": 373,
"preview": "- [[setting/theme modes]]\n- [[setting/show brackets]]\n- [[setting/language]]\n- [[setting/preferred file format]]\n- [[set"
},
{
"path": "pages/Block Reference.md",
"chars": 934,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]]\nalias:: term/block reference\ndescription:: Clickable link to a particul"
},
{
"path": "pages/Boolean.md",
"chars": 72,
"preview": "type:: [[Class]]\nparent:: [[DataType]]\nurl:: https://schema.org/Boolean\n"
},
{
"path": "pages/Breaking Changes.md",
"chars": 26,
"preview": "alias:: breaking change\n\n-"
},
{
"path": "pages/Built-in Properties.md",
"chars": 2409,
"preview": "description:: There are built-in in properties that control Logseq functionality. Most of the these properties are hidde"
},
{
"path": "pages/Calculator.md",
"chars": 4809,
"preview": "type:: [[Command]]\ndescription:: The calculator supports basic operations like `+ - / * ^` and advanced operations (fac"
},
{
"path": "pages/Changelog.md",
"chars": 194388,
"preview": "## Beta 0.10.15 [[Dec 1st, 2025]]\nid:: 692d8283-7f1d-44cf-81b0-bb25c469a64e\nDesktop app and Android App download link: <"
},
{
"path": "pages/Changelog_07_09.md",
"chars": 30502,
"preview": "- [[Sep 29th, 2021]]\n id:: 3c12d46c-cd46-4225-83d8-9f660d525216\n **Beta 0.4.2**\n Desktop app download link: https://g"
},
{
"path": "pages/Changelog_2020.org",
"chars": 23043,
"preview": "#+TITLE: Changelog 2020\n\n** [[Dec 29th, 2020]]\n:PROPERTIES:\n:created_at: 1609250283049\n:updated-at: 1609250283049\n:END:\n"
},
{
"path": "pages/Class.md",
"chars": 182,
"preview": "type:: [[Class]]\nparent:: [[Thing]]\ndescription:: Defines user defined classes/types in this graph\nurl:: {{docs-base-url"
},
{
"path": "pages/ClojureScript Eval in a Block.md",
"chars": 1320,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]] except [[Publish Web]]\ndescription:: Run ClojureScript in a block using"
},
{
"path": "pages/Cloze.md",
"chars": 809,
"preview": "type:: [[Command]]\ndescription:: Creates collapsible content that is not shown by default. Usually used with [[Flashcard"
},
{
"path": "pages/Code block.md",
"chars": 757,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]]\ndescription:: Renders a block of code with [[Codemirror]] support for a"
},
{
"path": "pages/Command.md",
"chars": 174,
"preview": "type:: [[Class]]\nparent:: [[Feature]]\ndescription:: A command invoked from `/`. All commands work on [[All Platforms]] e"
},
{
"path": "pages/Commands.md",
"chars": 699,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]] except [[Publish Web]] \ndescription:: Functionality that can be invoked"
},
{
"path": "pages/Community.md",
"chars": 86,
"preview": "- # Index\n\t- ## Learning Sprints\n\t\t- [[Community/Query Learning Sprint (Summer 2022)]]"
},
{
"path": "pages/Community___Query Learning Sprint (Summer 2022).md",
"chars": 6081,
"preview": "title:: Community/Query Learning Sprint (Summer 2022)\n\n- title:: Community/Query Learning Sprint (Summer 2022)\n- # About"
},
{
"path": "pages/Copy and Paste.md",
"chars": 1272,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]] except [[Publish Web]]\ndescription:: Describes copy and the difference "
},
{
"path": "pages/Custom theme.md",
"chars": 1572,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]] but some ways are not supported for [[Publish Web]].\n\n- ## Usage\n\t- The"
},
{
"path": "pages/DataType.md",
"chars": 250,
"preview": "type:: [[Class]]\nparent:: [[Class]]\nurl:: https://schema.org/DataType\ndescription:: Provides basic data types such as in"
},
{
"path": "pages/Desktop.md",
"chars": 155,
"preview": "type:: [[Platform]] \ndescription:: Desktop environments we support are osx, linux and windows. We use [Electron](https:/"
},
{
"path": "pages/Draw.md",
"chars": 276,
"preview": "type:: [[Command]]\ndescription:: Draw in blocks using an embedded Excalidraw canvas\n\n- ## Usage\n\t- Type `/draw` command "
},
{
"path": "pages/Embed Media - Audio, Photos, Videos.md",
"chars": 7217,
"preview": "- Logseq lets you embed, preview, and play back a variety of media in a number of ways.\n-\n- For the most part, there are"
},
{
"path": "pages/Export.md",
"chars": 5679,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]]\ndescription:: The Logseq Export feature allows users to export their da"
},
{
"path": "pages/Feature.md",
"chars": 1169,
"preview": "type:: [[Class]]\nparent:: [[Thing]]\ndescription:: A user-facing piece of functionality. This can be a small piece or it "
},
{
"path": "pages/FeatureTag.md",
"chars": 113,
"preview": "type:: [[Class]]\nparent:: [[Thing]]\ndescription:: Tags to categorize features\nurl:: {{docs-base-url FeatureTag}}\n"
},
{
"path": "pages/Features.md",
"chars": 399,
"preview": "- TODO Go through this miscellaneous list of pages to create or revamp #docs\n\t- UI elements\n\t\t- Block context menu\n\t\t- T"
},
{
"path": "pages/Filename format.md",
"chars": 9879,
"preview": "type:: [[Feature]]\nplatforms:: [[Desktop]]\ndescription:: Allow users to migrate the filenames to the latest format\niniti"
},
{
"path": "pages/Find in page.md",
"chars": 600,
"preview": "type:: [[Feature]] \ninitial-version:: 0.8.3\ndescription:: Finds any text that is visible or loaded into the current page"
},
{
"path": "pages/Flashcards.md",
"chars": 2300,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]]\ntags:: #Academic\ndescription:: Cards are blocks that are intended to be"
},
{
"path": "pages/Getting started with the Journals page.md",
"chars": 1258,
"preview": "- #+BEGIN_TIP\n For people familiar with Roam Research: the Journals page in Logseq is the same as the Daily Notes Page "
},
{
"path": "pages/Git Auto-Commit.md",
"chars": 599,
"preview": "type:: [[Feature]]\nplatforms:: [[Desktop]]\ndescription:: Automatically save commit changes to a git repository.\n\n- ## Us"
},
{
"path": "pages/Global config.edn.md",
"chars": 1666,
"preview": "title:: Global config.edn\ntype:: [[Feature]]\nplatforms:: [[Desktop]]\ndescription:: Version of [[config.edn]] that applie"
},
{
"path": "pages/Global configuration.md",
"chars": 472,
"preview": "type:: [[Feature]]\nplatforms:: [[Desktop]]\ndescription:: User configuration directory located in `~/.logseq/config` that"
},
{
"path": "pages/Glossary.md",
"chars": 760,
"preview": "- #+BEGIN_NOTE\n Credits and special thanks to [[Cobblebot]] for this!\n Original source: [forum](https://discuss.logseq"
},
{
"path": "pages/Graph Overview.md",
"chars": 3081,
"preview": "- #+BEGIN_NOTE\n This page describes how this graph and its pages are organized. This is meant to be read by those looki"
},
{
"path": "pages/Handbook.md",
"chars": 724,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]] except [[Publish Web]]\ndescription:: Provides in app documentation in t"
},
{
"path": "pages/Headings.md",
"chars": 1395,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]] \ndescription:: Creating headings on a page\n\n- ## Usage\n\t- There are mul"
},
{
"path": "pages/Hiccup.md",
"chars": 382,
"preview": "- Hiccup is a domain-specific language for generating HTML used mostly in Clojure community.\n- Check out [this](https://"
},
{
"path": "pages/How to create a Logseq graph using existing Markdown files.md",
"chars": 1478,
"preview": "- If you already have a collection of Markdown files you wish to start with instead of [creating a new graph]([[How to c"
},
{
"path": "pages/How to create a new graph.md",
"chars": 1806,
"preview": "- Before we get started, it's first necessary you have the Logseq desktop app installed. While it's possible to use Logs"
},
{
"path": "pages/How to create pages in Logseq.md",
"chars": 2788,
"preview": "- As noted in the introduction, Logseq is a networked thinking tool. Because Logseq lacks a hierarchical structure like "
},
{
"path": "pages/How to filter linked references.md",
"chars": 1495,
"preview": "- In the previous lessons, we looked at why links and indentation matter to retrieve information. But as your Logseq gra"
},
{
"path": "pages/How to sync your Logseq graph across devices.md",
"chars": 739,
"preview": "- [[Logseq Sync]] is our built-in sync feature that we recommend. Read that page for its details.\n- As Logseq saves all "
},
{
"path": "pages/How to work with the right-hand sidebar.md",
"chars": 1354,
"preview": "- By default, the sidebar on the right is hidden. With the keyboard shortcut `t r` you open it. But, you can't write in "
},
{
"path": "pages/Import.md",
"chars": 102,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]] except [[Publish Web]]\n\n- TODO Document feature #docs"
},
{
"path": "pages/Journals page.md",
"chars": 160,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]]\n\n- TODO Document this feature. The getting started page is a good tutor"
},
{
"path": "pages/Keyboard shortcuts.md",
"chars": 2991,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]]\ndescription:: Provides keyboards shortcuts for running core commands an"
},
{
"path": "pages/Knowledge Graph.md",
"chars": 1312,
"preview": "type:: [[Feature]]\nalias:: Graph view\ndescription:: Graph view of your whole graph\nplatforms:: [[All Platforms]]\n\n- ## U"
},
{
"path": "pages/Learn Datalog Today.md",
"chars": 2004,
"preview": "url:: https://www.learndatalogtoday.org/\ndescription:: This page is a static version of https://www.learndatalogtoday.or"
},
{
"path": "pages/Left sidebar.md",
"chars": 22,
"preview": "type:: [[UI Element]]\n"
},
{
"path": "pages/Linked References.md",
"chars": 84,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]]\n\n- TODO Document this feature #docs"
},
{
"path": "pages/Local Http server.md",
"chars": 3909,
"preview": "type:: [[Feature]]\nplatforms:: [[Desktop]]\ndescription:: local HTTP server to access logseq's graph\ninitial-version:: 0."
},
{
"path": "pages/Logseq Protocol.md",
"chars": 2334,
"preview": "- Logseq provides a protocol `logseq://` to allow third party applications to invoke actions within Logseq.\n- The follow"
},
{
"path": "pages/Logseq Sync Encryption.md",
"chars": 1595,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]]\n\n- > This doc describes the #[[Logseq Sync]] encryption scheme.\n- ## Cl"
},
{
"path": "pages/Logseq Sync.md",
"chars": 2713,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]] except [[Web]] and [[Publish Web]] \ndescription:: Paid feature that pro"
},
{
"path": "pages/Logseq file and folder naming rules.md",
"chars": 539,
"preview": "- Don’t use the following characters in file or folder names:\n\t- ```\n\t / (forward slash)\n\t \n\t \\ (backslash)\n\t \n\t < "
},
{
"path": "pages/Macros.md",
"chars": 2150,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]]\ndescription:: Provides a way to write and maintain reusable text. This "
},
{
"path": "pages/Markdown.md",
"chars": 3570,
"preview": "description:: Markdown is a popular markup language with many flavors. Our implementation is parsed by https://github.co"
},
{
"path": "pages/Marketplace demo.md",
"chars": 49,
"preview": "- Firstly, you need to enable the developer mode."
},
{
"path": "pages/Marketplace.md",
"chars": 44,
"preview": "url:: https://github.com/logseq/marketplace\n"
},
{
"path": "pages/Math Block.md",
"chars": 1269,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]]\ndescription:: Write and render math using https://katex.org/ syntax\n\n##"
},
{
"path": "pages/Migrate to Logseq Beta.md",
"chars": 1758,
"preview": "- #+BEGIN_WARNING\n **BACKUP** all your notes somewhere **first** before continue\n #+END_WARNING\n- This migration guide"
},
{
"path": "pages/Namespaces.md",
"chars": 194,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]] \ndescription:: Used to group a set of related pages\n\n- TODO Document th"
},
{
"path": "pages/New to Logseq%3F.md",
"chars": 53,
"preview": "title:: New to Logseq?\n\n- Head over to [[Start here]]"
},
{
"path": "pages/Numbered List.md",
"chars": 1974,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]]\ndescription:: Provides numbered (ordered) lists with each list item bei"
},
{
"path": "pages/OneStutteringMind.md",
"chars": 97,
"preview": "- Discord user @Dario\n- YouTube channel: https://www.youtube.com/channel/UCz7EgrAosr5FRF3IErGV-yQ"
},
{
"path": "pages/Org Mode.org",
"chars": 1676,
"preview": "* description:: Org mode is a markup language popularized by the Emacs editor. Our implementation is parsed by https://g"
},
{
"path": "pages/PDF highlights.md",
"chars": 1501,
"preview": "type:: [[Feature]]\nplatforms:: [[Desktop]]\n\n- TODO [[Ramses]] would like to rename to PDF Reader #docs\n- TODO Organize t"
},
{
"path": "pages/Page and block references.md",
"chars": 806,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]]\n\n- ## Usage\n\t- Type `[[]]` to create or reference any other page. You c"
},
{
"path": "pages/Page graph.md",
"chars": 266,
"preview": "type:: [[Feature]]\ndescription:: Like [[Graph view]] but only for the current page\nplatforms:: [[All Platforms]]\n\n- ## U"
},
{
"path": "pages/Platform.md",
"chars": 128,
"preview": "type:: [[Class]]\nparent:: [[Thing]]\ndescription:: One or more platforms, usually for a feature\nurl:: {{docs-base-url Pla"
},
{
"path": "pages/Plugins 01.md",
"chars": 2894,
"preview": "-\n #+BEGIN_CAUTION\n Logseq plugin system is currently work-in-progress. Use with caution~\n #+END_CAUTION\n- This guide"
},
{
"path": "pages/Plugins 02 - Build a mind map plugin.md",
"chars": 5627,
"preview": "- In [[Plugins 01]] we demonstrated how to get started developing Logseq plugins. To recap, the simple steps are:\n\t- dow"
},
{
"path": "pages/Plugins 101.md",
"chars": 434,
"preview": "description:: This page provides resources for plugin developers.\n\n- ## Tutorials\n\t- [[Plugins 01]]\n\t- [[Plugins 02 - Bu"
},
{
"path": "pages/Plugins.md",
"chars": 852,
"preview": "type:: [[Feature]]\ndescription:: Extends the functionality of logseq with third party tools\nplatforms:: [[Desktop]]\n\n- #"
},
{
"path": "pages/Properties.md",
"chars": 4356,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]]\ndescription:: Annotates any block or page with multiple pairs of values"
},
{
"path": "pages/Property.md",
"chars": 191,
"preview": "type:: [[Class]]\nparent:: [[Thing]]\ndescription:: Defines user defined properties in this graph\nurl:: {{docs-base-url Pr"
},
{
"path": "pages/Publish Web.md",
"chars": 175,
"preview": "type:: [[Platform]] \ndescription:: This refers to the publish version of a graph. This is a read only version of the [[W"
},
{
"path": "pages/Publishing (Desktop App Only).md",
"chars": 1972,
"preview": "title:: Publishing (Desktop App Only)\ntags:: [[Publishing]]\n\n- To provide the best publishing experience, Logseq at this"
},
{
"path": "pages/Publishing.md",
"chars": 5488,
"preview": "type:: [[Feature]]\nplatforms:: [[Desktop]]\ndescription:: This feature publishes a graph as a [[Publish Web]], single pag"
},
{
"path": "pages/Queries.md",
"chars": 6168,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]]\ndescription:: Also known as simple queries\n\n- **What are \"Queries\"?**\n "
},
{
"path": "pages/Query Builder.md",
"chars": 1502,
"preview": "type:: [[Feature]]\nplatforms:: [[All Platforms]]\ndescription:: Build [[Queries]] easily with filters and nested operator"
},
{
"path": "pages/Query function.md",
"chars": 1608,
"preview": "title:: Query function\ntype:: [[Feature]]\nplatforms:: [[All Platforms]]\ndescription:: This runs custom transformations o"
},
{
"path": "pages/Query table.md",
"chars": 899,
"preview": "title:: Query table\ntype:: [[UI Element]]\ndescription:: Table that displays results from [[Queries]] or [[Advanced Queri"
}
]
// ... and 156 more files (download for full content)
About this extraction
This page contains the full source code of the logseq/docs GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 356 files (3.2 MB), approximately 856.5k tokens. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.