## 1. Project Overview & Quickstart (elkowar/magic-vars)

# magic-vars

Open-source repository elkowar/magic-vars

### Repository Details
- **Repository:** [elkowar/magic-vars](https://github.com/elkowar/magic-vars)
- **Primary Language:** Code

*Note: High-volume repository documentation is actively indexed and synchronized by YakaAI.*

## 2. Official Technical Reference & Guides (elkowar/docs)

## File: README.md

# Logseq.com docs - [docs.logseq.com](https://docs.logseq.com)

## Contributing

To contribute you will want to see how your changes look in logseq.com. In order to do this you
should:

1. Clone this repo locally
2. Open the repo in Logseq.com
3. Make your edits and submit a PR!

### Alternatively...
Open in [Gitpod](https://gitpod.io/), simply click the button below and contribute directly from your browser.

[](https://gitpod.io/#https://github.com/logseq/docs)

---

## 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_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_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_05_09.md

-

---

## File: journals/2021_06_07.md

-

---

## File: journals/2021_07_14.md

-

---

## File: journals/2021_07_19.md

-

---

## File: journals/2022_01_18.md

[Empty file]

---

## File: pages/Advanced commands.md

- Advanced commands start with `<` and when selected expand 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.
	- `<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.
	-
	  #+BEGIN_COMMENT
	  `<Latex export` - TODO
	  `<Center` - TODO
	  `<Ascii` - TODO
	  `<Export` - TODO
	  #+END_COMMENT

---

## File: pages/Advanced Queries.md

- The database that Logseq use is [Datascript](https://github.com/tonsky/datascript), which is an immutable in-memory database and [Datalog](https://en.wikipedia.org/wiki/Datalog) query engine in Clojure and ClojureScript.
- Logseq's database schema:
  https://github.com/logseq/logseq/blob/master/src/main/frontend/db_schema.cljs
- Please check _Learn Datalog Today_ [^1] and _Datomic query syntax_ [^2] first if you're not familiar with Datalog.
- **Some tips**
  created_at:: 1609244703085
  updated-at:: 1609244703085
  #+BEGIN_TIP
  1. Page names are stored as lower case in the database.
  #+END_TIP
- The query format is something like this:
  created_at:: 1609244764756
  updated-at:: 1609246099894
  #+BEGIN_EXAMPLE
  {:title  [:h2 "Your query title"]
   :query  [:find (pull ?b [*])
          :where ...]
   :inputs [...]
   :view             (fn [query-result] [:div ...])
   :result-transform (fn [query-result] ...)
   :collapsed? true}
  #+END_EXAMPLE

  | Name             | Description                      | Default | Optional |
  |------------------|----------------------------------|---------|----------|
  | title            | query title, supports hiccup     |         | true     |
  | query            | datascript query                 |         | false    |
  | inputs           | query inputs                     |         | true     |
  | view             | (fn [query-result] hiccup)       |         | true     |
  | collapsed?       | Whether to collapse the result   | false   | true     |
  | result-transform | (fn [query-result] do something) |         | true     |
- **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 ?m]
             [(not= ?m "nil")]]}
      #+END_QUERY
      #+END_SRC
    - 2. Get all tasks with a tag "project"
      #+BEGIN_SRC clojure
      #+BEGIN_QUERY
      {:title "All todos with tag project"
       :query [:find (pull ?b [*])
             :where
             [?p :block/name "project"]
             [?b :block/ref-pages ?p]]}
      #+END_QUERY
      #+END_SRC
    - 3. Blocks in 7ds with a page reference of datalog
      #+BEGIN_SRC clojure

      #+BEGIN_QUERY
      {:title "Blocks in 7ds with a page reference of datalog"
       :query [:find (pull ?b [*])
             :in $ ?start ?today ?tag
             :where
             [?b :block/page ?p]
             [?p :page/journal-day ?d]
             [(>= ?d ?start)]
             [(<= ?d ?today)]
             [?b :block/ref-pages ?rp]
             [?rp :block/name ?tag]]
       :inputs [:7d-before :today "datalog"]}
      #+END_QUERY
      #+END_SRC
    - 4. All TODOs
      #+BEGIN_SRC clojure
      #+BEGIN_QUERY
      {:title "TODO"
       :query [:find (pull ?b [*])
             :where
             [?b :block/marker ?marker]
             [(= "TODO" ?marker)]]}
      #+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 :page/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
             [?b :block/properties ?p]
             [(get ?p :type) ?t]
             [(= "programming_lang" ?t)]]
       }
      #+END_QUERY
      #+END_SRC
    - 8. All todos tagged using current page
      #+BEGIN_SRC clojure

      #+BEGIN_QUERY
      {:title "All todos tagged using current page"
       :query [:find (pull ?b [*])
             :in $ ?current-page
             :where
             [?p :block/name ?current-page]
             [?b :block/marker ?marker]
             [?b :block/ref-pages ?p]
             [(= "TODO" ?marker)]]
       :inputs [:current-page]}
      #+END_QUERY
      #+END_SRC
    - 9. Tasks made active in the last 2 weeks
      #+BEGIN_SRC clojure

      #+BEGIN_QUERY
      {:title "🟢 ACTIVE"
        :query [:find (pull ?h [*])
                :in $ ?start ?today
                :where
                [?h :block/marker ?marker]
                [?h :block/page ?p]
                [?p :page/journal? true]
                [?p :page/journal-day ?d]
                [(>= ?d ?start)]
                [(<= ?d ?today)]
                [(contains? #{"NOW" "DOING"} ?marker)]]
        :inputs [:14d :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 ?h [*])
                :in $ ?start ?today
                :where
                [?h :block/marker ?marker]
                [?h :block/ref-pages ?p]
                [?p :page/journal? true]
                [?p :page/journal-day ?d]
                [(>= ?d ?start)]
                [(<= ?d ?today)]
                [(contains? #{"NOW" "LATER" "TODO" "DOING"} ?marker)]]
        :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 ?h [*])
                :in $ ?start ?next
                :where
                [?h :block/marker ?marker]
                [?h :block/ref-pages ?p]
                [?p :page/journal? true]
                [?p :page/journal-day ?d]
                [(> ?d ?start)]
                [(< ?d ?next)]
                [(contains? #{"NOW" "LATER" "DOING" "TODO"} ?marker)]]
        :inputs [:today :10d-after]
        :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 ?h [*])
                :in $ ?start ?today
                :where
                [?h :block/marker ?marker]
                [?h :block/page ?p]
                [?p :page/journal? true]
                [?p :page/journal-day ?d]
                [(>= ?d ?start)]
                [(<= ?d ?today)]
                [(contains? #{"NOW" "LATER" "TODO" "DOING"} ?marker)]]
        :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 ?h [*])
                :in $ ?start ?today
                :where
                [?h :block/marker ?marker]
                [?h :block/page ?p]
                [?p :page/journal? true]
                [?p :page/journal-day ?d]
                [(>= ?d ?start)]
                [(<= ?d ?today)]
                [(contains? #{"NOW" "LATER" "TODO" "DOING"} ?marker)]]
        :inputs [:56d :8d]
        :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-after]
        :collapsed? false}
      #+END_QUERY
      #+END_SRC
- **Resources**
    - [^1]: [Learn Datalog Today](http://www.learndatalogtoday.org/)  is an interactive tutorial designed to teach you the Datomic dialect of Datalog.
    - [^2]: [[https://docs.datomic.com/query.html][Datomic query documentation]]

---

## 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/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/bensu.md

alias:: [[Sebastian Bensusan]]

---

## File: pages/block_embed.md

---
title: Block embed
tags: [[embed]]
---

- Also known as block embedding allows a portion of a page to be displayed within another. Edits made to the embedded content are also made in the referenced content.
    - Create a block embed by :
        - Typing `{{{embed ((block id))}}}`
    - An embed example
      {{{embed ((5fbf4fbf-82c5-4d81-ba82-b66726bda00c)) }}}
-
  #+BEGIN_TIP
  - Block id's can be generated by right-clicking the bullet point next to a block and selecting 'copy block ref'
  - Auto-completion is available for blocks and will automatically generate and insert a block id
  #+END_TIP

---

## File: pages/Calc.md

[Empty file]

---

## File: pages/canary changelog.md

---
title: Canary Changelog
---

- [[Apr 30th, 2021]]
  Canary Version 0.0.1
  Desktop app download link:
  https://github.com/logseq/logseq/releases/tag/0.0.1

  Logseq Canary is for early adopters and developers to test new features and APIs without affecting the stable working environment. It will be installed as a separate app besides the stable one.

  #+BEGIN_WARNING
  To play it safe, we recommend using new content only with the canary app. If you want to try it with existing content, do remember to back up first in case of data loss or corruption.
  #+END_WARNING
    - This is the first canary release, introducing the big refactoring of Logseq. The rationale behind the refactoring is detailed here [[The Refactoring Of Logseq]]. Overall, it makes the code simpler and more robust, fixes some long-standing issues along the way and paves the way for upcoming features.
    - [[Enhancement]]
        - A refactored core that is simpler and more robust.
        - A much better undo/redo experience.
        - Better keyboard navigation:
            - 
            - We've made most of above shortcuts customizable as well. If you don't like arrow keys, you can change it. Also for navigation keys in auto-completion, search, and more.
              Check [[Custom keyboard shortcuts]] for more details!
        - Markdown improvements:
            - The grammar of properties changes as below while staying the same in Org mode:
              #+BEGIN_QUOTE
              title
              property-1:: value-1
              property-2:: value-2
              body
              #+END_QUOTE
            - Support unordered list as headings
            - Support headings as top-level blocks, with convenient /h1 ~ /h6 commands

---

## File: pages/Cards.md

## What's "card"?
	- A card is intended to be used as an aid in memorization. In logseq, it's just a block with either `#card` or `[[card]]`. It can have some [[Clozes]] too.
		- For example, this block is a card:
			- What does "Logseq" mean? #card #logseq
			  card-last-interval:: 28.3
			  card-repeats:: 4
			  card-ease-factor:: 2.66
			  card-next-schedule:: 2021-11-08T17:59:40.382Z
			  card-last-reviewed:: 2021-10-11T10:59:40.382Z
			  card-last-score:: 5
				- You can read it as "Log sequence" or "Logical sequence" (thank you [[Ed]]).
			- If you right click the bullet and select "Preview Card", you'll see something like this:
				- 
## How to create a card?
	- There're two ways to create a card.
		-
		  1. You can add either `#card` or `[[card]]` to any block to make it a card.
		-
		  2. You can right click the bullet to "Make a card", which will add `#card` to the end of the current block.
			- 
## What's a cloze?
	- The content in a cloze is not shown by default. For example, {{cloze something}}, you can click it to reveal its content. You can have multiple {{cloze clozes}} in a block too.
## How to create a cloze?
	- Type `/cloze`.
		- {:height 538, :width 485}
## I've created several cards, how can I review all of my cards?
	- Click the three dots and "View Cards".
		- 
## Can I review parts of my cards instead them all? For example, only those cards related to Logseq?
	- Yes, you can use `/cards` and [[Queries]].
	- `{{cards [[Logseq]]}}` will be displayed as:
	  
	  {{cards [[Logseq]]}}
	- You can also show all cards _except_ those tagged with a certain page. `{{cards (not [[Logseq]])}}` will be displayed as:
	  
	  {{cards (not [[Logseq]]) }}
## TIPs
	- Press `t c` (toggle cards) to review all of your cards
	- You can add your "cards" queries to the "Favorites" page in the right sidebar for quick access.
- [[Resources]]
	- [Augmenting Long-term Memory](http://augmentingcognition.com/ltm.html)
	- [SM5](https://www.supermemo.com/en/archives1990-2015/english/ol/sm5) by supermemo
-

---

## File: pages/Changelog.md

- [[Feb 20th, 2022]]
  Beta 0.6.1
  Desktop app and Android App download link: https://github.com/logseq/logseq/releases/tag/0.6.1
	- [[Thanks]]
		- [[Ben Jaffe]]
			- enhance(ui): add data-ref for items in left sidebar
	- [[Fixed issues]]
		- SRS cards can't be edited during preview or in /cards queries
		- Can't sort by properties in query table
		- Electron context menu
		- When a page name has a word with an accent, it lost data
		- [[Mobile]]
			- Tweet component loading failed
			- Add Excalidraw support
		- [[Plugins]]
			- Return value of `remove_block`
		- Tags not working on org mode
	- [[Enhancement]]
		- `ESC` to cancel renaming page
- [[Feb 18th, 2022]]
  Beta 0.6.0
  Desktop app and Android App download link: https://github.com/logseq/logseq/releases/tag/0.6.0
	- [[Features]]
		- New commands to switch between graphs (Cmd/Ctrl+Shift+G), add a graph, remove a graph and copy current file
		- Shift+click to select multiple blocks
		- Upgrade Excalidraw to 0.10.0
	- [[Thanks]]
		- [[Alexey Korolev]]
			- Fix typo in Russian localization
		- [[Clovis Fabricio Costa]]
			- 🇧🇷  pt-BR translation
		- [[cynial]]
			- Update Chinese translation
		- [[ingepettersen]]
			- Updated Norwegian translation
		- [[Manjusaka]]
			- Add new friendly issue template for bug report
		- [[sawhney17]]
			- Fix bullet lines not fully hidden in document mode
		- [[pedroserigatto]]
			- Translated a few more keywords to pt-BR
		- [[Martin Sauter]]
			- Add missing German translations
		- [[xxchan]]
			- Improve issue template
		- [[Paulo Oliva]]
			- Updated the EU Portuguese translation
	- [[Fixed issues]]
		- Title property is not added when creating or renaming
		- custom.js not works
		- Fix block collapse state not being saved
		- Ignore changes in bak folder
		- Fix property page links
		- Disable blank alias
		- Calc result overlaps with input text when the latter is very long
		- Srs cards shortcuts not working
		- Fix checkbox floats above button
		- Search cache contamination on windows causing missing sanitization
		- Unwanted left padding when pdf viewer active
		- Long page stall loading and collapsed state
		- Fix querying integer properties
	- [[Enhancement]]
		- Performance improvement while saving files
		- Performance improvement via incremental queries
		- Performance improvement of long pages and queries
		- Reduce memory usage
		- Add tag and url support for follow-link-under-cursor cmd
		- Plugin api of `get_block` with shallow children uuid results
		- Add default right click context menu
		- Refine page search autocompletion
		- Refine page title renaming dialog
		- Enhance settings UI of plugins
- [[Jan 20th, 2022]]
  Beta 0.5.9
  Desktop app and Android App download link: https://github.com/logseq/logseq/releases/tag/0.5.9
	- [[Features]]
		- Refactored long page loading logic with lazy loading [#3855](https://github.com/logseq/logseq/pull/3855)
	- [[Thanks]]
		- [[Stian Håklev]]
			- Removing nil orphans in All pages [#3809](https://github.com/logseq/logseq/pull/3809)
		- [[Peng Xiao]]
			- Some style enhancements to block-control [#3742](https://github.com/logseq/logseq/pull/3742)
		- [[Clark Cui ]]
			- UI position of plugin readme page [#3904](https://github.com/logseq/logseq/pull/3904)
	- [[Fixed issues]]
		- Filename encoding and special chars [#3777](https://github.com/logseq/logseq/pull/3777)
		- Missing padding in marker markup [#3776](https://github.com/logseq/logseq/pull/3776)
		- Strategy of scrolling within the left-sidebar [#3651](https://github.com/logseq/logseq/pull/3651)
		- Build deps issue introduced by corlors.js [#3831](https://github.com/logseq/logseq/pull/3831)
		- Backspace and move for emoji char [#3822](https://github.com/logseq/logseq/pull/3822)
		- Misused ctrl and cmd in settings [#3859](https://github.com/logseq/logseq/pull/3859)
		- Open links of external file with default app [#3867](https://github.com/logseq/logseq/pull/3867)
		- Only show "Add to dictionary" when misspelling [#3869](https://github.com/logseq/logseq/pull/3869)
		- Add Uncaught exceptions handler for electron's main process
		- App stuck with loading caused by wrong graph cache [#3889](https://github.com/logseq/logseq/pull/3889)
		- Datascript error when file imported from fs-watcher [#3883](https://github.com/logseq/logseq/pull/3883)
		- Not showing an open button, cannot open graph [#3934](https://github.com/logseq/logseq/pull/3934)
		- Invalid boolean and int properties [#3945](https://github.com/logseq/logseq/pull/3945)
		- Cursor location when clicking start of a second line
		- Flashcards num not update while switching graphs
		- Edge conditions of graph cache handling when App get killed
		- Block height of a non-visible `#`
		- Parsing of multi-value properties, now support space-separated property list
	- [[Enhancement]]
		- Massive enhancement of marketplace [#3686](https://github.com/logseq/logseq/pull/3686) [#3846](https://github.com/logseq/logseq/pull/3846)
		- Notify when journals date format changes
		- Page-name sanity, search term normalization, diacritics support
		- Allow edit markup files with code editor [#3870](https://github.com/logseq/logseq/pull/3870)
		- Refine search normalization
		- Enhance full text search index
		- Reorder auto-complete items of pop-up [#3949](https://github.com/logseq/logseq/pull/3949)
		- Massive enhancement of development process
- [[Jan 6th, 2022]]
  Beta 0.5.8
  Desktop app and Android apk download link: https://github.com/logseq/logseq/releases/tag/0.5.8
	- [[Features]]
		- Add CodeMirror options support [#3699](https://github.com/logseq/logseq/pull/3699)
	- [[Thanks]]
		- [[Stian Håklev]]
			- Removing padding on mark [#3660](https://github.com/logseq/logseq/pull/3660)
		- [[YangKeao]]
			- Allow target attribution in provideUI for plugins [#3661](https://github.com/logseq/logseq/pull/3661)
		- [[Peng Xiao]]
			- Some improvements for development
	- [[Fixed issues]]
		- Nested and query issues and full-text search in nested queries https://github.com/logseq/logseq/pull/3664
		- Fix some UI misplacement, calc result offset, position of new updates tip
		- Avoid notifying destroyed electron window [#3706](https://github.com/logseq/logseq/pull/3706)
		- Multi window check while re-indexing
		- Graph view hang due to duplicated  node/edge [#3758](https://github.com/logseq/logseq/pull/3758)
		- Separate references/queries collapse state from db [#3744](https://github.com/logseq/logseq/issues/3744)
		- Block expand/collapse not working under some scenarios
		- Sometimes a page's name is altered into lower letters [#3691](https://github.com/logseq/logseq/issues/3691)
		- Right sidebar not being cleared upon switching graphs
		- Clicking raw HTML links loads target URL in the desktop app
		- Remove orphaned Pages will delete namespace pages [#3682](https://github.com/logseq/logseq/issues/3682)
		- Youtube timestamp not work
	- [[Enhancement]]
		- Apply text normalization to the whole app [#3612](https://github.com/logseq/logseq/pull/3612)
			- **NOTE**: This is a **BREAKING CHANGE**, requires re-indexing
		- Reload custom.css when file changed
		- DWIM on paste in source block or admonition
- [[Dec 29th, 2021]]
  **Beta 0.5.6**
  Desktop app and Android apk download link: https://github.com/logseq/logseq/releases/tag/0.5.6
	- [[Features]]
		- Add `{{namespace [[page]]}}` macro which can be used as a toc [#3616](https://github.com/logseq/logseq/pull/3616)
		- Docker image for Logseq web app and [Guide Doc](https://github.com/logseq/logseq/blob/master/docs/Docker%20Web%20App%20Guide.md) [#3604](https://github.com/logseq/logseq/pull/3604)
	- [[Thanks]]
		- [[shidenggui]]
			- Enhance block toggle feature [#3559](https://github.com/logseq/logseq/pull/3559)
		- [[Peng Xiao]]
			- Fix empty block children is not clickable issue [#3593](https://github.com/logseq/logseq/pull/3593)
		- [[Yuexun Jiang]]
			- Fix drop into insert mode after using journal shortcut [#3600](https://github.com/logseq/logseq/pull/3600)
	- [[Fixed issues]]
		- Nodes in Graph View is unclickable, caused by wrong pixi.js version introduced in v0.5.5 [#3579](https://github.com/logseq/logseq/issues/3579)
		- Click link and button behaviour [#3599](https://github.com/logseq/logseq/pull/3599) [#3603](https://github.com/logseq/logseq/pull/3603) [#3607](https://github.com/logseq/logseq/pull/3607)
		- Unsynced db between multiple windows, which will cause blank search result pages  [#3640](https://github.com/logseq/logseq/pull/3640)
	- [[Enhancement]]
		- Block expand/collapse toggle [#3585](https://github.com/logseq/logseq/pull/3585)
		- Transition of left sidebar when toggling [#3606](https://github.com/logseq/logseq/pull/3606)
		- Development experience under Linux/Windows [#3575](https://github.com/logseq/logseq/pull/3575) [#3508](https://github.com/logseq/logseq/pull/3608)
- [[Dec 25th, 2021]]
  **Beta 0.5.5**
  Desktop app and Android apk download link: https://github.com/logseq/logseq/releases/tag/0.5.5
	- [[Known Issues]]
		- Graph view pages are not clickable https://github.com/logseq/logseq/issues/3579 (already fixed in nightly build)
	- [[Features]]
		- Multi-window support(New shortcut: `mod+n` to open a new window)
		- Add Android APK build to both Beta release and [Nightly](https://github.com/logseq/logseq/releases/tag/nightly) release
	- [[Thanks]]
		- [[Clark Cui]]
			- Fix some CSS errors
		- [[Bad3r]]
			- Formatting keyboard shortcuts
		- [[Moritz Ulrich]]
			- More fluid Graph scaling on lower-end
	- [[Fixed issues]]
		- Code editor's language label interfere with first line of code
		- Code editor won't switch content while edit config files
		- Some IME doesn't trigger command menu, or have buggy behaviour while inputing
		- Unexpected behaviour caused by abuse of keycode
		- Complex regexp in property parsing
		- Alias is not considered from shortcut / graph / press enter
		- Should not encrypt content of specific file types
	- [[Enhancement]]
		- Add as many language mode to Code editor
		- More precise language highlight in both code editor and presentation mode
		- UI on narrow screens
		- More fluid Graph scaling on lower-end
		- Re-number list items when dwim in an ordered list
		- Pugin APIs, new libs version
		- Massive enhancement on mobile app, both iOS and Android
- [[Dec 14th, 2021]]
  id:: 1df7499f-f3dc-488e-b7c7-05caf07e7505
  **Beta 0.5.4**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.5.4
	- [[Fixed issues]]
		- Today's journal file is not recognized by Logseq when starting
		- Can't embed some IFrame links because of `x-frame-options`
		- Handle code block with non-latin1 chars
		- Modal displaying on narrow screens
	- [[Enhancement]]
		- Graph view forces
			- 
			-
	- [[Nightly]] release!
		- #+BEGIN_WARNING
		  It's unstable compared to the official releases, **use it with caution**!
		  #+END_WARNING
		- https://github.com/logseq/logseq/releases/tag/nightly
- [[Dec 12th, 2021]]
  id:: 6f7ac89f-4a99-426d-8ba9-4a2bf5ef5763
  **Beta 0.5.3**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.5.3
	- [[Fixed issues]]
		- Horizontal line `---` doesn't work
		- Extra newline in code editor
		- Refine saving of code editor and e2e tests
		- Empty blocks are not hidden
		- Can't collapse a block with body
		- Ignore properties when displaying the block's body
		- Search blank
		- High cpu usage introduced by wrong Excalidraw version
- [[Dec 10th, 2021]]
  id:: 14067234-cd43-40d8-9e25-26d2ba75a0a9
  **Beta 0.5.2**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.5.2
	- [[Thanks]]
		- [[Junyi Du]]
			- Enhance WYSIWYG experience of multiline heading
			- fix: DWIM isn't activated at one-line block
			- enhance: only apply DWIM to list item when cursor at EOL
		- [[Devon Zuegel]]
			- Improvements to Settings
			- enhance: improve alert for "a new version has been downloaded"
			- refactor: hard-coded colors -> CSS variables for header tips
			- enhance: tidy up repo dropdown in sidebar
			- fix: handle windows path in shorten-repo-name
			- fix: make Continue? modals more consistent
			- feat: add "add to / remove from favorites" to command palette
				- Shortcut: `Cmd+Shift+F`
			- enhance: color code SRS buttons & extract shortcut to tippy
		- [[Bad3r]]
			- Updated README E2E Testing Instructions
			- Enhance: add waring for clear cache
			- Helping a lot in the community!
		- [[ahonn]]
			- feat: keep indent after copy block refs
		- [[Peng Xiao]]
			- fix: queryElementById type
		- [[Vladimir Sorokin]]
			- Added Russian translation
		- [[Moritz Ulrich]]
			- follow-link-under-cursor!: Add page to 'Recent' list
			- Always add target of `redirect-to-page!` to 'Recent' list.
	- [[Fixed issues]]
		- Code block are not saved
		- Empty block not deleted when there's new file detected from #data-safety
		- Wrong indentation for both templates and copied selections
		- Avoid cyclical refs and deep refs
		- Cut a block doesn't copy its nested children blocks
		- Switching between code block to text editing will cause leading spaces not rendered
		- #tag query doesn't work
		- Handle encryption errors
		- Local graph should popup encryption dialog when re-index
		- Wrong link href for file links #[[Org Mode]]
		- Add .svg to image ext
		- Display user-defined drawer
		- Automatic jump back when click 'prev' in a long page
		- Problem keeping separate graphs separated
		- Logbook disappears when block got embedded
	- [[Enhancement]]
		- Reduce start time from minutes to seconds for large graphs (tested on 10k Markdown files)
		- Type ``` and press Enter to switch to codemirror mode
		- New [[Shortcuts]]
			- `g a` to all pages
			- `g g` to graph view
			- `g f` to open flashcards
		- Move editing into the center of viewport when out of viewport
		- Disable spell check on electron by default
	- [[Breaking Changes]]
		- `:block/title`, `:block/body` and `:block/unordered` are removed from the database schema to reduce both memory usage and start time
			- Re-index is needed!
- [[Nov 25th, 2021]]
  id:: a7a7603c-f4f2-49ab-a9c5-ca78c41b07db
  **Beta 0.5.1**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.5.1
	- [[Fixed issues]]
		- Changes are not saved to files when using Logseq and OneDrive on multiple computers
			- **We strongly encourage you to upgrade to the latest version to avoid any data loss.**
		- Markdown blockquote syntax parsing not backward compatible
		- `Contents` is not considered a "Built-in page" for Graph view
- [[Nov 24th, 2021]]
  id:: 619e5440-72c1-4d04-bf4b-dd911f1c69b3
  **Beta 0.5.0**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.5.0
	- [[Thanks]]
		- [[Gabriel Horner]]
			- Add datalog console extension in dev
			- Fix GitHub CI
		- [[David Whittington]]
			- Support #Arweave URLs for links and images
		- [[Peng Xiao]]
			- Custom macro click issue
	- [[Fixed issues]]
		- [[Windows]] desktop app is finally signed
		- Clean block's referenced old orphaned pages when saving it
		- Can't open a new graph on Linux
		- Git Autocommit not working
		- Can't open external links like Zotero and mail clients
		- Don't create empty pages for alias and tags page properties
		- Auto-complete doesn't vanish after /current time
		- Slow parsing on base64 image link
		- Query filters like `and`, `or` are case sensitive
		- Can't rename pages with nested titles
		- Remove space when showing template popup
		- All Pages view lists all of the images
		- Sometimes shortcuts stopped working
		- `[[` doesn't trigger auto-complete for non-english input methods
	- [[Enhancement]]
		- Convert highlighted word to a link when pasting a URL
		- Save a backup file to `logseq/bak` if writes failed (EBUSY lock)
		- Separate plugins and themes in the marketplace
		- Create today's page when redirect to the home or scrolling to the top of journals
		- Jump to the end of page ref after pressing Enter
		- Avoid press enter at empty page-ref
- [[Nov 19th, 2021]]
  **Beta 0.4.9**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.4.9
	- [[Fixed issues]]
		- Empty graph view
		- Shortcuts can be repeated sometimes
- [[Nov 18th, 2021]]
  id:: 8590ee9b-3f85-40cc-954d-857715503802
  **Beta 0.4.7**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.4.7
	- [[Thanks]]
		- [[Devon Zuegel]]
			- Enhance shortcut tooltips
	- [[Fixed issues]]
		- Rename page references when merging pages
		- Code block indentation
		- Block id not persisted when copy block embed
		- Linked references missing in the right sidebar
		- Make sure blocks have the same format when dragging to another page
		- Check for update
	- [[Enhancement]]
		- Toggle displaying shortcut tooltips on settings
			- 
		- Display a warning if a block's content include multiple lists or headings
	- [[Breaking Changes]]
		- Deprecate both Ctrl/Cmd+u for searching and  `Ctrl/Cmd+Shift+u` for search in page, use `Ctrl/Cmd+k` and `Ctrl/Cmd+Shift+k` instead.
- [[Nov 16th, 2021]]
  id:: 38a7f160-5dbb-4ab0-8556-5e45cd15144a
  **Beta 0.4.6**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.4.6
	- [[Thanks]]
		- [[Devon Zuegel]]
			- Add more content-aware classes to textarea for a more WYSIWYG experience
			- Show default home instead of journals in side bar
			- Polish cards
			- Rename "page emoji" to "page icons"
				- This PR renames the page property `emoji` to `icon`, which is a more typical and more flexible name.
		- [[Peng Xiao]]
			- Add page & block ref to search item
			- Add back haschild attribute
	- [[Fixed issues]]
		- Navigating to a page through search caused Logseq to crash to a blank screen
		- Rename page should delete the old page name from search
		- Graphs disappeared (not data-loss) after restarting the app
		- Backspace can't move to previous block if it's a embed block
		- Cycle todos will not deselect the blocks
		- Git still commits even if it's toggled off on settings
		- Pages with "." in the title do not show Hierarchy at the bottom
		- Line starting with - will be disappear after exit editing
		- Cannot edit deadline/schedule using date picking panel
		- Ordered list can't be shown in reference list
		- Drag and Drop inconsistently not working
		- Alt-dragging a bullet to an indented position will create multiple empty bullet
		- Import JSON from Roam has trouble with certain code block syntax
		- No more auto-complete if the cursor moves back to [[]]
		- Empty path when importing roam's json
		- Renaming namespace page will update all its children's links
		- Page-ref replacement if non-slash in path
	- [[Enhancement]]
		- Merging pages when renaming one page to the name of another page
		- Add copy block embed(s)
		- Delay query for linked references
			- Editing the main page should be fast no matter how many linked references it has
		- Cycle todos support cmd+enter
		- Display a warning if config.edn is invalid
		- Don't add another set of (()) when copy block ref to embed
		- Remove built-in properties from search result
		- When depth level > 3, the breadcrumb displays an ellipsis
- [[Nov 10th, 2021]]
  id:: 45fc2d43-4154-4f20-ad60-c3039e35256d
  **Beta 0.4.5**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.4.5
	- [[Features]]
		- Move selected blocks up/down (Ctrl/Cmd + Shift + UP/DOWN)
		- `All pages` support batch delete, search, journals filter and remove orphaned pages
		  collapsed:: true
			- 
		- Persist right sidebar state
		- [[Shortcuts]]
			- `g t` to go to tomorrow's page
			- `g p` to go to the previous journal
			- `g n` to go to the next journal
		- `custom.js` support
			- See more at https://github.com/logseq/logseq/pull/2943
	- [[Thanks]]
		- [[Devon Zuegel]]
			- Enhance: add hotkeys for open file in directory (`o d`) / default app (`o f`)
			- Emoji page identifiers + sidebar tweaks
			- Custom editor command trigger
				- New configuration option `:editor/command-trigger`
					- e.g. To use `\` instead of `/` for commands trigger, add `:editor/command-trigger "\\"` to `config.edn`.
		- [[Andelf]]
			- Wrong delta pos when change to empty marker
			- fix: pos and space when cycling marker in header
		- [[Seth]]
			- Update readme to include platform specific docker instructions
		- [[GoldinGuy]]
			- Add time wrapper for scheduled/deadline
		- [[Yongqinchuan Du]]
			- Fix code block wide mode toggle
		- [[Peng Xiao]]
			- Fix: notification wrapper blocks user from interacting with the main area
	- [[Fixed issues]]
		- Failed to import roam research's json
		- Both `Copy as` and `Export page` should be fast now
		- Display the below plus button when zoom in
		- Several issues when renaming namespace pages
		- Marking task from "Now" to "Done" lost tracking time duration data
		- Timetracking for now->later on repeated task
		- Timetracking support seconds now
		- Logbook related issues
		- Files not saved when onboarding if canceled the file picker
		- Encrypted page for revert history version by git
		- Decrypt file content when diff
		- Broken image preview in the right sidebar
		- Fix slash command clashes with Org-mode italics
		- Org page reference allows different page-name and label
		- Blank screen on preview card with empty card
		- Clear block content when auto-complete page references
		- Insert page attributes instead of block property when creating and renaming a page
		- Latex can't be displayed in both block and page preview
		- Unexpected behavior of Ctrl + b
		- Black screen when closing window in fullscreen mode on MacOS
	- [[Enhancement]]
		- Click to edit should jump to the end of inline emphasis and links
		- Smooth transition for left sidebar
		- Make [[DWIM]] optional
			- See more at https://github.com/logseq/logseq/issues/2958#issuecomment-945761631
		- Page suggestion will not allow you to deny the suggestion
		- Enable Enter key to rename page
		- Reload commands when toggle plugins (no need to restart the app)
- [[Oct 12th, 2021]]
  id:: 14cbc67d-695a-48b3-8d33-ddf936977d43
  **Beta 0.4.4**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.4.4
	- [[Fixed issues]]
		- Can't open graph on Linux
		- Performance degradation
		- Favorite when renaming page's title
		- Undo need multiple steps (inserting new block)
		- Recent not working
		- Url can include `{` and `}` now
- [[Oct 11th, 2021]]
  id:: 2c01a84b-d944-4755-bed4-6ff079465567
  **Beta 0.4.3**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.4.3
	- [[Features]]
		- Left sidebar!  🌈  🌈
			- 
			-
		- Select multiple blocks to `copy block refs` and `cycle todos`
	- [[Thanks]]
		- [[Ed]]
			- The beautiful https://logseqweekly.com/! Don't forget to subscribe!
				- > With the rapid development of the app and new features/improvements, I created this Weekly Summary to help community members keep up with everything being thought of, created and shared by other fellow Logseq users.
		- [[Mispille]]
			- Awesome proposal to tagging Logseq's issues on GitHub!
				- This proposal is at https://docs.google.com/spreadsheets/d/10-LplNuMo2MUy67lt-WX1z1x50L1pY4bSLPIob1eHRQ/edit?usp=sharing!
		- [[llcc]]
			- [[DWIM]] (do what I mean) for `Enter` key when editing.  
			  Context-awareness of `Enter` key makes editing more easily.
		- [[Devon Zuegel]]
			- Consolidate shortcut docs
		- [[hyrijk]]
			- Fix: plugin api moveBlock not working
		- [[Tomas Vik]]
			- Enhance: pretty print pages-metadata.edn
	- [[Fixed issues]]
		- Data loss when dragging blocks to empty pages
		- Create today's journal when the corresponding file doesn't exist yet
		- Broken block references
			- Remove blank line for some blocks when outputting to md/org
		- Importing from Roam has issues with illegal filenames (Windows)
		- Flashcards wrong number during the review
		- Page rename doesn't work for case-sensitive pages
		- Respect the original page's name in the block content
		- Flashcards don't work when publishing
		- A block can be collapsed only when it has children or its body is not empty
		- Display the edit icon only for the embedded parent block
		- Sanitize html for security (plugins)
		- Disable nested queries (page crash)
		- Support raw path under win32 that includes backslash for local pdf files
		- Goto pdf highlights not working sometimes
		- Markdown footnote definition not working when re-index or refresh
		- preferredThemeMode doesn't work (plugins API)
	- [[Enhancement]]
		- Click title to rename a page
		- Open the first block when opening a new page by Mod+o
		- Many UX enhancements
- [[Changelog_07_09]]
- [[Changelog_06]]
- [[Changelog 2020]]

---

## File: pages/changelog_06.md

- [[Jun 29th, 2021]]
  id:: 60db3824-3728-458b-b7e1-ed359c275d96
  **Beta 0.2.2**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.2.2
	- [[Thanks]]
		- [[Devon Zuegel]]
			- Make block control available via CSS selectors so it can be customized
		- [[Sebastian Bensusan]]
			- Allow numbers to have commas in calc
	- [[Fixed Issues]]
		- Pages set to public not getting published
		- Dragging file may create dulplicated files in /assets
		- Image doesn't show
		- Error when editing config.edn
		- Should align with baseline for multi-line headings
		- Collapse take account of block body
		- Desktop App fails to render images that are on newline
		- Rename a Page without spaces to one with spaces impacts tags
- [[Jun 28th, 2021]]
  **Beta 0.2.1**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.2.1
	- [[Thanks]]
		- [[Devon Zuegel]]
			- Added shortcut setting visual polishing and refactoring
			- Refactor setting page ui code and fix React warnings
		- [[bensu]]
			- Added fix for codemirror click editing issue
			- Enhanced parsing rule for calculator
	- [[Fixed Issues]]
		- Fix link syntax behavior
			- Markdown
				- `` will display pdf preview (desktop app) or image
				- `[label](url)` only display as clickable label
			- Org-mode
				- `[[url][label]]{:show true}`
					- pdf preview (desktop app)
					- image inline display
				- `[[url][label]]{:show false}` just display as clickable label
				- `[[url][label]]` keep same behaviors as before: inline images if its suffix included in `#{:gif :svg :jpeg :ico :png :jpg :bmp}`
		- Exported markdown with spaces and wrong format
		- Expand action does not delete collapsed property issue
	- [[Features]]
		- Namespace pages now display with hierarchy
		- New command `paste-text-in-one-block-at-point` (mod+shift+v) will paste multi paragraph text in clipboard as one block
		  {:height 406, :width 662}
	- [[Enhancement]]
		- Display pdf by default
		- Make it easier to drag files to the editor
- [[Jun 23rd, 2021]]
  id:: 60d3353a-8999-4186-adcc-1f99b0f71560
  **Beta 0.2.0**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.2.0
	- [[Thanks]]
		- [[andrevem]] added Spanish translation
		- [[Devon Zuegel]] added `/calculator` slash command
		- [[Peng Xiao]]
			- Preview block reference with its children
			- Show block breadcrumbs in preview
			- Output custom.css instead of append for publish
			- Do not pass theme to tippy
		- [[bensu]] don't show calc parse errors to the UI
		- [[Nikhil Warke]] fix non ml-doc file links in org syntax
		- [[Michael Schmidt-Korth]] Page rename: Use current title as default
	- [[Fixed Issues]]
		- Remove `collapsed:: false` property (this only works for new pages)
		- Newline after scheduled and deadlines
		- `:hidden` config doesn't work for both nfs and the desktop app
		- Second settings can't be opened
		- Entity not found err when import opml with non-existed block-ref-id
		- Broken slash command registry #plugin
		- Unlinked references search alias as well
		- Copy heading with children
		- Can't drag a block as the first child of a parent block
		- Exported md files includes block children from embed source block
		- ID-links follow the ID when clicked [[Org Mode]]
	- [[Features]]
		- Alt-dragging to create a block reference
	- [[Enhancement]]
		- Open the second level children by default for linked references
			- A new option `:ref/default-open-blocks-level` was added to `config.edn` #settings, the default value is `2`
			  #+BEGIN_EXAMPLE
			  The default level to be opened for the linked references.
			  For example, if we have some example blocks like this:
			  - a [[page]] (level 1)
			    - b        (level 2)
			       - c      (level 3)
			          - d    (level 4)
			  
			  With the default value of level 2, `b` will be collapsed.
			  If we set the level's value to 3, `b` will be opened and `c` will be collapsed.
			  #+END_EXAMPLE
		- Customize shortcuts UI support
		- `Ctrl+Shift+r` to replace a block reference at point with its text (editing mode)
- [[Jun 18th, 2021]]
  id:: 60cb89fb-1518-471d-8ec2-f41a634bea70
  **Beta 0.1.9**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.1.9
	- [[Plugins]]
		- [[Peng Xiao]] created a react template for Logseq plugins
		  https://github.com/pengx17/logseq-plugin-template-react
		- [[Charlie]] made a reddit hot news page! 🎉
		  collapsed:: true
			- Source code: https://github.com/logseq/logseq-plugin-samples/tree/master/logseq-reddit-hot-news
			- 
	- [[Thanks]]
		- [[Nikhil Warke]] added a shortcut to collapse/expand all the blocks `t o`
		- [[Devon Zuegel]] updated the modal so that click on backdrop closes the modal and bump up opacity on icons to increase contrast
		- [[Peng Xiao]] fixed the issue that page title when preview should use its original name
	- [[Fixed issues]]
		- Support nested headings for Markdown
		  collapsed:: true
			- #### Something like this
		- Select blocks sometimes doesn't work
		- Weird behavior when toggling edit mode for long text
		- Writing in new page in sidebar makes new line after each keypress
		- [display name]([[page name]]) is not counted as a page reference
		- Nested queries
	- [[Features]]
		- [[Roam Research]] JSON export
	- [[Enhancement]]
		- Lazy loading page/block previews, reduce CPU usage
		- Add a custom shortcut for escape editing
		- Grouped commands
		  collapsed:: true
			- {:height 305, :width 241}
- [[Jun 15th, 2021]]
  id:: 60c8be46-6179-40c0-ad3a-74ecdeaa595e
  **Beta 0.1.8**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.1.8
	- #+BEGIN_NOTE
	  The draft Plugins API is out! 🚀🚀  Any feedback or suggestions are appreciated!
	  The documentation is at https://logseq.github.io/plugins/
	  We have some short tutorials too, check [[Plugins 101]].
	  #+END_NOTE
		- You can enable the `Developer mode` in the settings page, we only enable it for the desktop app for the time being, we'll add the support to the web app when it's more stable. The plugins are mostly for developers to test, we don't recommend it for daily usage.
	- [[Thanks]]
		- [[Calc]] mode by [[bensu]] 🎉🎉
		  #+BEGIN_EXAMPLE
		  ```calc
		  1 + 1
		  a = 1
		  b = 2
		  a * b + a
		  1.0e3 + 2
		  ```
		  #+END_EXAMPLE
			- ```calc
			  1 + 1
			  a = 1
			  b = 2
			  a * b + a
			  1.0e3 + 2
			  ```
		- Scroll to follow the moving block by [[bensu]]
		- Several minor issues fixed by [[pengx17]]
	- [[Features]]
		- Import from [[OPML]]
	- [[Fixed Issues]]
		- Wrong order when copy/paste or create blocks from a template
		- Nothing found for entity id [:block/uuid nil]
		- Don't create a new file if there's only one block with empty
		- Can't parse and load some files
		- Quick input（）will clear the current block
- [[Jun 11th, 2021]]
  id:: 60c37f16-0fcb-4b0a-8874-c3c3f1a561ca
  **Beta 0.1.7**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.1.7
	- [[Thanks]]
		- [[pengx17]] for adding several plugins and many thoughtful discussions
		- [[tekacs]] for adding both editor/strike-through binding `ctrl/cmd + shift +s` and
		  [toggle formatting of selected area instead of double-wrapping](https://github.com/logseq/logseq/pull/2166)
		- [[Cobblebot]] for the suggestion to have a central place for all the UI/UX suggestions.
			- https://discuss.logseq.com/c/ux-ui-suggestion/13
	- [[Fixed Issues]]
		- Cursor moving in the editor
		- Bring back template support without the parent block
			- 
		- Ctrl-z not working if all the blocks of a page were deleted
		- Code block editing
		- Repeated aliases in page's properties
		- Cursor blinks when editing in zoom mode
		- Import JSON from Roam uses `-` instead of `#`
		- Rename page doesn't work for markdown with front matter
		- Using a #tag in a line followed by a `[[page-link]]` causes line to be erased
		- Marker keywords in bullet content change on ctrl+enter
		- Display normal text size if a heading block has body content (not just a title)
	- [[Enhancement]]
		- Rename "Contents" to **Favorites**
			- You can specify the display name by changing `:name/favorites` in `config.edn`, for example:
			  `:name/favorites "My favorites"`
		- Better UX for the graph switcher
			- 
- [[Jun 8th, 2021]]
  id:: 60bf567e-1aaf-4500-92dd-19dfc5e8cff4
  **Beta 0.1.6**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.1.6
	- [[Fixed issues]]
		- App nonresponsive
		- Error when pressing `Ctrl+UP` or `Ctrl+DOWN`
		- CPU high usage when tooltips are enabled
		- Bump better-sqlite3 to fix glibc issue on Linux
- [[Jun 8th, 2021]]
  id:: 60be49ad-b87f-47cf-946b-5ddbc5a08ead
  **Beta 0.1.5**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.1.5
	- [[Fixed issues]]
		- Linked references don't work if the tag has emojis and other special characters
		- Page reference disappears when clicking outside the editor
		- Extra space and tab characters will be inserted into the file
		- Wrong indentation for paragraphs and lists (in the Markdown file)
		- Fix wrong Alias behaviour
			- An alias page reference will jump to the source page if the alias page is empty
		- Display all the aliases (if any) in the page's properties
		- Page filters doesn't work on block children
		- Can't remove local assets on the web app
		- Search bar can't be scrolled
		- Can't delete multiple blocks if the first one and the last one are not the same level
		- Add `level` back to the dom
	- [[Enhancement]]
		- Tooltips will be hidden quickly now
		- Page searching is more accurate
		- Search jumping to a block will be selected by default, so that you can quickly press `Enter` or Left/Right arrow to edit it.
	- [[Features]]
		- Now you can collapse/expand the whole page by pressing `Command+up` and `Command+down`
			- 
		- JSON and EDN export
		- Both block embeds and references are included when exporting OPML and Markdown
- [[Jun 3rd, 2021]]
  id:: 60b8f68d-1c28-45f8-ab8e-0976163c2116
  **Beta 0.1.4**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.1.4
	- [[Fixed Issues]]
		- Logseq freezes when hovering a page and clicking to edit it later
		- Block refs are difficult to click
		- Can't see the last matched result when searching (DOWN arrow)
		- Sometimes can't paste files into Logseq
		- Add block's page to `:block/path-refs`, `[[page]]` in the query will return all the blocks belong to this page and blocks that mentioned `[[page]]`
		- `:org-mode/insert-file-link? true` not working anymore
		- block-reference a block with heading:: true will display extra `-`
- [[Jun 2nd, 2021]]
  id:: 60b770c6-1e15-4e2b-b6a4-a08de9cde5f8
  **Beta 0.1.3**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.1.3
	- {{embed ((60b3a414-1e93-46c3-96fc-54d3a0760f2c))}}
	- [[Thanks]] 🚀
		- [[bensu]] for a [[Calculator]] mode like numi or soulver (there'll be another PR!)
		  https://discuss.logseq.com/t/calculator-mode-like-numi-or-soulver/1059
		- [[devon]] for adding `resolve-input` for more Datalog queries
		  https://github.com/logseq/logseq/pull/2061
	- [[Fixed Issues]]
		- Linked references could be lost when files have been updated on the disk
			- By another editor or Logseq in another device
		- Can't copy and paste multiple blocks into the first empty block
		- Can't jump to pages on mobile
		- Keep CodeMirror mode as null when language not set
	- [[Features]]
		- Export either the graph or a page as OPML 🎉
- [[May 30th, 2021]]
  id:: 60b3a579-56db-41ed-8940-70c8b54f8e34
  **Beta 0.1.2**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.1.2
	- {{embed ((60b3a414-1e93-46c3-96fc-54d3a0760f2c)) }}
	- [[Thanks]]
		- [[Matt Furden]] for wonderful bug reporting
	- [[Fixed Issues]]
		- All the existing Markdown converter issues
		- Most issues related to copy && paste
		- Sometimes the cursor will jump to the end when editing the first block
		- Weird characters on code blocks
- [[May 29th, 2021]]
  **Beta 0.1.1**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.1.1
  Logseq.com is updated too.
  #+BEGIN_NOTE
  We are launching on Product Hunt next Wednesday, Jun 2. 🚀  If you want to show your support, come stop by, and give us some feedback, we'll be hanging out on Product Hunt all day!
  #+END_NOTE
	- **How to migrate to the new Markdown syntax?**
	  id:: 60b3a414-1e93-46c3-96fc-54d3a0760f2c
		-
		  
		  [:hr]
	- [[Thanks]]
		- [[Matt Furden]] for _Stop scrollbar from causing content shift_
		- [[Hindol Adhya]] for _Scroll to previously saved scroll position_
	- [[Fixed Issues]]
		- Converter choke on filters
		- Convertor doesn't recognize `background_color` and `custom_id`
		- `property` query doesn't work
		- Page alias parsing issue
		- Nested pages references
		- Heading rendering in the right sidebar
		- Code block editing
		- Don't export file paths when publishing
	- [[Enhancement]]
		- Forbid nested page/block preview
		- Better code block style in the dark mode
		- Override block if it's empty when pasting blocks
	- [[Features]]
		- {{embed [[setting/theme modes]] }}
- [[May 25th, 2021]]
  id:: 60abefe4-cc08-440d-a2c3-8632aae6ff34
  **Beta 0.1.0** 🥳🥳🥳
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.1.0
	- [[Thanks]]
		- [[Cobblebot]] for [[Glossary]]
		- [[Dario]] for another amazing video [[Cultivating a 'digital knowledge garden']]
		  collapsed:: true
		  {{youtube https://www.youtube.com/watch?v=SUOdfa3MucE}}
		- [[Nami]] for building [logseq-bonofix-theme](https://github.com/Sansui233/logseq-bonofix-theme)
	- [[Fixed Issues]]
		- Drag files to logseq can be stuck
		- Block marker/priority is not displayed in references
		- Sometimes backspace removes two chars instead of one
		- Content can be lost when auto-complete page references
		- Copy doesn't include collapsed children
		- Page alias with spaces
		- Adding a "#tag" at the front of a block clear the whole block
		- Preserve spaces in the block's content
		- Can't insert a template in the first block
		- Page blank after clearing cache
		- Convert - to * for repeated task states (for markdown)
	- [[Enhancement]]
		- Switch default indentation to tab for markdown users
		- Unlinked references are much faster now
		- Separate page properties from block properties
	- [[Features]]
		- [[Page and block preview]]
			-
			  1. You can edit the blocks directly in the preview tooltip.
			-
			  2. You can disable/enable it on the settings page, it's called `Enable tooltip`
			-
			  3. 
- [[May 19th, 2021]]
  **Canary 0.0.4**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.0.4
  #+BEGIN_NOTE
  This will be our last Canary release, the next one will be back to the Logseq app, and we'll start our beta journey. We believe there's no data corruptions anymore, also undo is very stable now. Enjoy it!
  #+END_NOTE
	- [[Thanks]]
	  collapsed:: true
		- [[ChrisLasar]] for this wonderful user-driven documentation creation for Logseq
		  https://chrislasar.github.io/logseq-doc/
		- [[pengx17]] for the first community plugin - a datascript playground!
		  https://github.com/pengx17/logseq-query-playfround
		- [[lezuber]] for this tool to downloads all images to the local /assets folder.
		- [[Dario]] for this beautiful video series [[How to get started in Logseq]]
		  {{youtube https://www.youtube.com/watch?v=qtN7qqdeTwU&ab_channel=OneStutteringMind}}
	- [[Fixed Issues]]
		- Creating and editing blocks in linked references and unlinked references
		- Copy && paste text can split into multiple block
		- Slow editing when there're many files
		- And tons of bugs
	- [[Enhancement]]
		- **Add our old direct outdenting back and make it default**
			- There's an option "Enable logical outdenting" on the settings page [[setting/enable logical outdenting]]
			- Related thread: https://discuss.logseq.com/t/whats-your-preferred-outdent-behavior-the-direct-one-or-the-logical-one/978
		- Add a "Clear cache" button in the settings page
			- It'll clear both search cache and logseq's database's cache
		- Search in page should be much faster now
		- **Opt-out Sentry.io tracking**
		  You can disable it on the settings page too
- [[Apr 19th, 2021]]
  id:: 605deea9-da6c-41c7-8d0f-1a1084d870ab
  **Version 0.0.20**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.0.20
	- [[Thanks]]
		- [[Testimonials]]
			- ((607d1394-3b32-4613-9acf-9bade8ad7817))
		- [[Fixed Issues]]
			- Don't show assets and block ids in graph view
			- Switching graphs makes the journal page queries disappear
			- Can't exit when there's no graph
			- Block ref should be able to wrap
			- Scroll in the right sidebar doesn't affect the main view
		- [[Enhancement]]
			- A toggle icon for the right sidebar is always on the top right
				- The shortcut is `t r`, notice it only works in non-editing mode
			- Both the main view and the right sidebar have scrollbars now
			- Contents/Recent/Page graph/Help are always on the top of the right sidebar
- [[Apr 12th, 2021]]
  **Version 0.0.19**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.0.19
	- [[Thanks]]
		- [[Testimonials]]
			- {{embed ((607454a1-a6a5-4356-af6d-ae5ed0a2051a))}}
			- {{embed ((607454a1-043d-4beb-b86e-c513a68ad47e)) }}
	- [[Fixed Issues]]
		- Can't drag && drop
		- Can't set repeater for schedule && deadlines
		- Nested page in page properties
	- [[Enhancement]]
		- Search in current page
			- [[Shortcuts]] `Ctrl+Shift+u` or `Cmd+Shift+u` (on Mac)
		- Click `More` to get more search results
		- Add custom date format to the settings page
- [[Apr 10th, 2021]]
  **Version 0.0.18**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.0.18
	- [[Thanks]]
		- [[pengx17]] for fixing an issue when clicking bullets in embedded block/page
		- [[karlicoss]] for adding check for Docker image consistency
		- [[haydenull]] for adding sass/scss/less modes to codemirror and highlight active line
	- [[Fixed Issues]]
		- Can't select blocks in edit mode
		- Can't toggle from NOW to LATER
		- Add icon for linux appimage
		- Re-enable full-text query on the desktop app
	- [[Enhancement]]
		- Full-text search is using SQLite now, which is both fast and more accurate, tested with 10k markdown files
		- Add block breadcrumb to search result
		- `Enter` will jump and highlight the matched block when searching
- [[Apr 1st, 2021]]
  **Version 0.0.17**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.0.17
	- [[Thanks]]
		- [[pengx17]] for support previewing videos and fixing image resize style issue
	- [[Fixed Issues]]
		- PDF embed doesn't work if the page name has blanks
		- Rename page name in raw file view
		- Display page's original name in linked references
		- Blank page for page graph
		- Disable multiple instances at the moment
			- The reason is that in the current system, logseq cached all the graphs locally in IndexedDB, which is impossible to be shared between multiple instances. We also need to handle other situations if we plan to enable multiple instances.
		- When selecting some text, the shortcuts for bold, italics and highlight should jump to a correct position
		- Multiple parser issues
	- [[Features]]
		- Add an option `:scheduled/future-days` for the `Scheduled and Deadline` section, the default value is `0`, which means it only display tasks for `Today`.
			- For example, if you'd like to see all the scheduled tasks && deadlines in 7 days, add `:scheduled/future-days 7` to the file `config.edn`
- [[Mar 31st, 2021]]
  **Version 0.0.16**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.0.16
	- [[Fixed Issues]]
		- Stuck loading on the desktop app
		- Re-index should be faster
		- File corrupts when editing code blocks
		- `/Deadline` sometimes create `/Scheduled`
		- Parsing error for page ref followed by a link
		- Blank page for bad macros
		- Can't change the case of a page name
		- Org mode doesn't support image's file path in link
		- Add to pages for TAGS and other properties inside block properties
	- [[Features]]
		- Initial **PDF** embed on desktop app
			-
			  
			  [:hr]
	- [[Enhancement]]
		- You don't have to go to edit mode first to select words 😂
		- The page graph will auto-refresh when redirecting to a new page
			-
			  
			  [:hr]
		- Rendering is much faster thanks to the hints by [[martinklepsch]]
		- Scheduled && deadline includes tasks in the next 7 days too, we'll make the number configurable soon
		- Auto update on Mac
- [[Mar 28th, 2021]]
  **Version 0.0.15**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.0.15
	- [[Fixed Issues]]
		- Some queries not working anymore
		- Reload stuck on the desktop app
		- `#[[some tag]]` has no references
- [[Mar 27th, 2021]]
  **Version 0.0.14**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.0.14
	- [[Thanks]]
		- [ahonn](https://github.com/ahonn) for adding remember electron windows state enhancement
		- [martinklepsch](https://github.com/martinklepsch) for both react profiling and adding clj-kondo support
		- [pengx17](https://github.com/pengx17) for providing feedback and suggestion on journals loading page
	- [[Features]]
		- [[Export]] graph as markdown files
			- Go to “Export” -> click “Export as Markdown”
			- Add config option ‘:export/heading-to-list?’ to toggle exported-heading to bullet list or not
		- Support [[Export]] single page to markdown
		  
		- New [[Commands]] `/Underline` to support markdown underline
		- [[Block Alias]] support with markdown
		  Syntax: `[alias](((block-id)))`
		- Supports render inline html
	- [[Fixed Issues]]
		- Add custom css when publishing
		- Graph doesn't show on the full page
		- Incorrect journal shortcut in help page
		- Copy paste buffer stay intact after deleting blocks
		- Don't show brackets for tags
		- Roam macro import
		- Remove picture-in-picture from youtube iframe for security reason
		- Many parser issues fixed by [[Zhiyuan]]
	- [[Enhancement]]
		- Better and smooth loading for journals page
		- [[Desktop app]] remembers last window setting when reopened
- [[Mar 17th, 2021]]
  **Version 0.0.13**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.0.13
	- [[Thanks]]
		- [[pengx17]] for adding js/ts/tsx modes to codemirror support
		- [Deta](https://twitter.com/detahq) for becoming the first company sponsor
	- [[Features]]
		- Much better publishing experience!
		  
		  [:hr]
			- The desktop app can export all the public notes and logseq's Javascript and CSS files to a specified directory, then you can deploy it to GitHub pages, Vercel or your hosting service!
			  
			  Read more at [[Publishing (Desktop App Only)]]
		- Initial support for [[namespace pages]], namespace can be used to avoid name conflicts, also, it can be used for building hierarchical relationships later.
		  [[book/how to take dummy notes]] will create the parent page `book`.
			- Discussion thread at https://discuss.logseq.com/t/auto-create-pages-and-assign-page-tags-when-using-namespaces/573
		- [[Export]] graph as an [EDN](https://github.com/edn-format/edn) file, it's mostly for developers who'd like to analysis their graphs using other tools.
		  Logseq uses [Datascript](https://github.com/tonsky/datascript) , which is a database provides datalog queries.
			- Go to "All graphs" -> click "Export as EDN"
	- [[Fixed Issues]] #highlights
		- Search fails for long text
		- Org mode `TITLE` directive after properties
		- graph-view width now limited by the main container width
	- [[Enhancement]]
		- Don't create a journal file until input
		- Redirect to all pages when no default page in publishing mode
		- Display original title when renaming a page
- [[Mar 11th, 2021]]
  **Version 0.0.12**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.0.12
	- [[Thanks]]
		- [[Collin Lefeber]] for adding `/Embed Vimeo video` command
		- [[akhater]] for adding `
		- Desktop app add AppImage format for linux
	- [[Fixed issues]]
		- Linux env titlebar not showing
		- Encryption not works on desktop
		- Desktop app can't quit
	- [[Enhancement]]
		- The block search results should be more precise
		- Undo will open another page in the right sidebar if it's not the same with the current page.
- [[Mar 8th, 2021]]
  **Version 0.0.11**
	- [[Thanks]]
		- [[Sam]] for adding filters
		- [[Piotr]] released the wonderful [clean theme](https://github.com/PiotrSss/logseq-clean-themes)
			- https://cdn.discordapp.com/attachments/756886540038438992/815659579655585802/wanderer.png
			- https://cdn.discordapp.com/attachments/756886540038438992/815659573683683388/night_in_nature.png
		- [[cannibalox]] released a priority matrix
		  https://discuss.logseq.com/t/css-template-eisenhower-matrix/526
			- https://discuss.logseq.com/uploads/default/original/1X/b7b600c4c91c6108e9900f093dc69c7e91b4038e.gif
		- [[Westofer]] made an archlinux aur package [logseq-desktop-bin](https://aur.archlinux.org/packages/logseq-desktop-bin/)
		- [[Bryan Jenks]] made a #gruvbox #theme
			- https://user-images.githubusercontent.com/479169/110302289-0b3af500-8034-11eb-8232-93c3c459f715.jpeg
	- [[Features]]
		- Linked references [[Filters]] by [[Sam]] 🥳
		  https://github.com/samfundev
			- https://user-images.githubusercontent.com/6759716/98471636-c2754b80-21bb-11eb-856c-425af4f97ce0.gif
	- [[Fixed issues]] #highlights
		- Both schedule and deadlines including today's blocks
		- Can't click and jump to the embed block
		- Allow `.` in tag names
		- Don't remember preferred workflows
		- Can't open local files on Mac && Windows
		- Display block's content if it doesn't have a title, e.g. code block, image, etc.
		- Tags autocomplete doesn't work in raw file mode (you can type `s` to switch between the outliner mode and raw file mode)
		- Many parser, UI and query issues
	- [[Performance]] improvements
		- It doesn't feel laggy anymore when working with 10k notes
		- Logseq can parse [10000 markdown files](https://github.com/Zettelkasten-Method/10000-markdown-files) in 3 minutes on Mac M1 chip
	- [[Enhancement]]
		- Press `t s` to toggle settings
		- Display search button by default
		- Better search results
		- UI improvements
- [[Feb 26th, 2021]]
  **Version 0.0.10**
	- [[Features]]
		- [[Encryption]] support contributed by [[kanru]] 🔒 #experiment
		  Both git repos and local directories support encryption!
		  You need to enable the encryption feature on the settings page, and then re-index your graph to make it works.
		- Resizable right sidebar!
		- [[Queries]] support the [[Dynamic Variables]] too
		  For example:
		  {{query (and (page <% today %>) (todo now))}}
		  {{query (and (between <% 7 days ago %> <% today %>) (todo now done))}}
		- [[Templates]] support multiple blocks in the same level
	- [[Fixed issues]] #highlights
		- Don't overwrite the file on disk when it's newer than the file cache in logseq
		- Can't [[Search]] block body
		- Can't delete files on desktop
		- Change title in the page property doesn't delete the old file
		- Page graph doesn't work for block page
		- Custom date configuration not working
	- [[Enhancement]]
		- `Ctrl+Shift+z` or `Command+Shift+z` on Mac to redo
		- `t c` to toggle Contents in the right sidebar
		- Lots of UI and performance improvements
	- [[Thanks]]
		- [[Kanru]] for encryption support
		- [[Piotr]] released [logseq-tools](https://piotrsss.github.io/logseq-tools/public/#/mini-calendar)
		- [[Lupin]] supports encryption too
		- [[Santi Younger]] add a [Cobra](https://discuss.logseq.com/t/cobra-theme-black-and-yellow-awesome-dark-mode/440/10) theme #theme
		- [[Handuo]] add a [Forest night theme](https://discuss.logseq.com/t/forest-night-theme-for-dark-mode/447) #theme
- [[Feb 20th, 2021]]
  **Version 0.0.9**
	- [[Features]]
		- Add the ability to delete your account on the settings page
		- [[Custom keyboard shortcuts]] support
		- [[Templates]] support [[Dynamic Variables]] now
		  {{embed ((60311eda-b6f7-4779-8187-8830545b3a64)) }}
		- **Smarter** [[queries]]
		  Previously, `(and [[Project 1]] (todo now))` will only query those blocks that have both the `Project 1` reference and a `NOW` marker. Now it works as long as if the block parents have the `Project 1` reference and the block has a `NOW` marker.
		  #+BEGIN_NOTE
		  Make sure to unlink your graph first and import your data to make it works!
		  #+END_NOTE
			- For example:
			  {{query (and [[Project 1]] (todo now))}}
			- [[Project 1]]
				- NOW Do something
				  now:: 1613831559033
		- Add `data-refs-self` for css mods
	- [[Fixed issues]]
		- Duplicated blocks when editing
		- Don't append image width/height metadata when not dragging
		- Images from github repos can't be displayed
		- `Tab` to collapse not working
		- Can't `Enter` to create a block after undo
		- Use `Command` instead of `Alt` on Mac
	- [[Enhancement]]
		- Up/Down to navigate to the first/last block
		- The parser is much faster now
	- [[Thanks]]
		- [Trigger columns/kanban view with tags](https://discuss.logseq.com/t/css-trigger-columns-kanban-view-with-tags/390) (by [[cannibalox]] )
		- [[Piotr]] built a calendar in the "Contents" page!
		  https://dynalist.io/d/ao7N0QbfJfDiZ_dNRnW4PI9_
		- [[Lupin]] can generate the calendars (by [[akhater]])
		- Fix missing update properties when the marker changes (by [[rainmote]])
- [[Feb 14th, 2021]]
  **Version 0.0.8**
	- [[Thanks]]
		- [[Lupin]] support both Images and [[Time Spaced  Repetition]] (by [[akhater]])
		  https://github.com/akhater/Lupin
		- Fix of bug "TODO mobile bar shortcut only works when called in the beginning of the line" (#1283) (by [[akhater]])
		- Continue improvements on encryption (by [[kanru]])
		- Using Logseq with Todoist and Google Calendar (by [[WilliamDurin]])
		  https://github.com/WilliamDurin/todoist2logseq
		  https://github.com/WilliamDurin/gcal2logseq
	- [[Fixed issues]]
		- Fix block references count not working
		- Fix block references auto-complete not working
		- Fix wrong prompts when the file is only edited by logseq
		- Allow ~-~ inside file name
		- Fix relative asset path
		- Fix fuzzy search causing freezes/lag
		- Display the main menu dots on mobile
		- Importing roam's code blocks
		- Don't jump to new journal when in editing mode
		- And other fixes
	- [[Enhancement]]
		- Better Undo && Redo
		- Faster full-text search
		- Add built-in pages such as TODO keywords and priorities
- [[Feb 5th, 2021]]
  **Version 0.0.7**
  [[Desktop app]] download link:
  https://github.com/logseq/logseq/releases/tag/0.0.7
	- [[Features]]
		- 1. Auto-update support for desktop app #experiment
		- 2. Add both `data-refs` and `data-href` attributes to [make css more power](https://discuss.logseq.com/t/propositions-to-empower-css-mods/289/1)
	- [[Thanks]]
		- German translation by [[rcvd]]
		- A forked cljs-time by [[rainmote]]
		- Add TODO and "/" shortcuts to mobile bar, by [[akhater]]
		- [Create Build LogSeq Desktop for windows on Ubuntu](https://github.com/logseq/logseq/blob/master/docs/Build%20LogSeq%20Desktop%20for%20windows%20on%20Ubuntu.md), by [[akhater]] #doc
		- [CSS mod colorful indentation lines](https://discuss.logseq.com/t/css-mod-colorful-indentation-lines/229), by [[cannibalox]] #css
		- [CSS mod custom columns/cards view (kanban)](https://discuss.logseq.com/t/css-mod-custom-columns-cards-view-kanban/228), by [[cannibalox]] #css
		- [Glossary - draft work in progress](https://discuss.logseq.com/t/glossary-draft-work-in-progress/196), by [[Cobblebot]] #doc
		- Awesome video by [[Santi Younger]] [[Videos]]
		  {{youtube https://www.youtube.com/watch?v=jovMt17_Vd4&ab_channel=SantiYounger}}
	- [[Fixed Issues]]
	  Some highlights:
		- Relative file path issue, local images should be displayed well on GitHub now
		- Don't display properties in the block breadcrumbs
		- Head's background color is not rendered
		- `/draw` not working well with GitHub repos
	- [[Enhancement]]
		- Display a loading button when importing files from the disk
		- Display a warning box if there're multiple files with the same `title` attribute
		- UI improvements
- [[Feb 2nd, 2021]]
  **Version 0.0.6**
  [[Desktop app]] download link:
  https://github.com/logseq/logseq/releases/tag/0.0.6
	- [[Fixed Issues]]
		- Fix assets can't be opened if there're non-ascii chars
		- Add slide support to desktop app
		- Fix footnotes not working
		  For example:
		  Here's a simple footnote,[^1] and here's a longer one.[^bignote]
		  
		  [^1]: This is the first footnote.
		  
		  [^bignote]: Here's one with multiple paragraphs and code.
		- Fix both preferred workflow and preferred format settings not working
		- Fix `/` commands list is empty
		- Add windows menubar
- [[Jan 31st, 2021]]
  **Version 0.0.5.3**
  [[Desktop app]] download link: https://github.com/logseq/logseq/releases/tag/0.0.5.3
	- [[Fixed issues]]
		- Fix daily journals can't be created automatically
		- Fix Inline tags can't be clickable
		- Fix recent pages can't be open in the main view
		- Fix block references not updated when the source text changed
		- Fix can't found code-editor.js on desktop by [[rainmote]]
- [[Jan 29th, 2021]]
  **Version 0.0.5.2**
	- [[Desktop app]] 🥳🥳🥳
	  Some highlights:
		- 1. Logseq will load new files automatically, no need to reload yourself anymore
		- 2. There's no need to always asking for the directory write permission every time when you open the app
		- 3. Drag && drop any files (in editing mode), you can click the link to open the file with the system default app
- [[Jan 12th, 2021]]
  **Version 0.0.5.1**
	- [[Features]]
		- 1. **Local images support!**
		  `Notice:` it only supports local file storage.
		  You can copy and paste any pictures to a page, those pictures will be stored in the folder `assets/`.
			- We'll support more kinds of files soon, e.g. pdf, epub, mp3, etc.
		- 2. Added `page` query.
		  For example: (page "Page Alias"):
		  {{query (page "Page Alias")}}
		- [main.js](/assets/pages_changelog_1611805815460_0.js)
		-
	- [[Enhancement]]
		- 1. **Much stable Undo && Redo**
		  `Notice`: It could be slow with page that has many blocks.
		  There's a bug with block timestamps enabled, so we disabled it temporally.
		- 2. `Ctrl+s` to save and push to GitHub
		- 3. Add `git-auto-push` to settings page, you can disable the auto push and type `Ctrl+s` to push yourself :)
		- 4. Add page title when searching blocks
		- 5. Add an option to disable the journals and set a default home page
	- [[Fixed Issues]]
		- 1. Remove duplicate blocks in references
		- 2. Properties not working well when enter at the start
		- 3. Can't enter to create a new block at the end of code
		- 4. Fixed `Scheduled` not working sometime
		- 5. Unique constraint issue when loading files
		- 6. Fix `all-page-tags` query
		- 7. Page refs in properties should be counted too
		- 8. Codemirror not working well with block timestamps
		- 9. Do not push local repo when switching repos
		- 10. Many other bugs on GitHub.
	- [[Thanks]]
		- 1. [kanru](https://github.com/logseq/logseq/pull/1073) is adding encryption support for GitHub Repos.
		- 2. [karlicoss](https://github.com/logseq/logseq/pull/1076) add filetags support for org mode and fixed some issues.
		- 3. [kailes](https://github.com/logseq/logseq/pull/1074) found and fixed a tricky issue when upgrading to latest shadow-cljs.

---

## File: pages/Changelog_07_09.md

- [[Sep 29th, 2021]]
  id:: 3c12d46c-cd46-4225-83d8-9f660d525216
  **Beta 0.4.2**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.4.2
	- [[Features]]
		- Add a shortcut `Cmd+Shift+y` to insert youtube timestamp
		- Add `(sample n)` to pick random query results
			- For example:
			  query-table:: false
			  {{query (and [[card]] (sample 2))}}
	- [[Thanks]]
		- [[Alexander Wang]]
			- Some YouTube videos cannot be played without referer
		- [[clark-cui]]
			- Javascript code enhancement
	- [[Fixed issues]]
		- Broken advanced commands triggered by `<`
		- Can't edit embed blocks
		- Remove `:` from bak file names (windows reserved chars)
		- Highlight not working in org mode
		- Don't trigger commands auto-complete when paste
		- Two of the same query with mixed syntax causes hanging
		- Correct position of query command hint
		- Cloze not shown
	- [[Enhancement]]
		- Smooth transition for the right sidebar
		- Unify both block and page export
		- Better bottom actions on Web mobile
- [[Sep 23rd, 2021]]
  id:: 3f1db344-81af-4f15-8fe2-36e03e0cf279
  **Beta 0.4.1**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.4.1
	- [[Thanks]]
		- [[llcc]]
			- fix(logbook): Adjust orders of timestamps and logbook
			- enhance: start a newline to insert src, properties, etc.
			- fix: extra empty line if SCHEDULED and DEADLINE exist
		- [[angusiguess]]
			- Emit image links as image embeds rather than as html links
	- [[Fixed issues]]
		- Can't edit code block #Codemirror
		- Review cards button not working
		- Search not working when publishing
		- Smooth auto-complete for `/` commands
		- Cards command not working in commands palette
		- `Ctrl/Cmd+l` (insert link) doesn't work on Web
		- block reference with a deadline has a redundant new line
	- [[Enhancement]]
		- Display query examples when invoking /query
		- Don't group by pages if there's `:result-transform`
	- New [[Configuration]] option `:shortcut/doc-mode-enter-for-new-block?`
		- By default, pressing `Enter` in the document mode will create a new line.
		  Set this to `true` so that it's the same behaviour as the usual outliner mode.
- [[Sep 22nd, 2021]]
  id:: 614b36ce-adeb-423d-8b04-3aaac9086268
  **Beta 0.4.0**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.4.0
	- [[Features]]
		- Fullscreen image support
			- 
	- [[Thanks]]
		- [[Devon Zuegel]]
			- A bunch of tiny tweaks like making capitalization consistent, making a dropdown slightly more readable, and refactoring the code that adds the Help links to the sidebar.
			- Button styles for spaced repetition cards
		- [[ranfdev]]
			- Animate editor modals
		- [[woodwm]]
			- Update the version of KaTex from `0.11.1` to `0.13.8`
				- Which supports more environments like `split` and `equation `
		- [[Alex]]
			- Document mod-c/copy current block ref
	- [[Fixed issues]]
		- Can't parse encrypted graphs
		- Open the last block when inserting template blocks
		- Open the previous block when deleting selected blocks
		- App crashes with segment fault
		- Clear text selection when blocks are selected
		- Wrong GitHub release url for some plugins
	- [[Enhancement]]
		- Search UX improvement
			-
			  
			-
		- Performance improvement for pages with a lot of linked references.
		  A new option `:ref/linked-references-collapsed-threshold` was added to control when to collapse all the linked references. The default value is `50`.
		- Save database cached files to a new directory called `logseq/bak` when logseq detect file modifications from the disk
			- This fixed some issues when using Logseq with other editors like Emacs, Obsidian, etc.
		- Disable git auto commit by default
		  `Git` caused some trouble when using with some sync services like iCloud/OneDrive/Dropbox, if you encountered any issues related to Git, you're encouraged to disable the git auto commit on `Settings > Version Control`.
			- 
		- Support hh:mm:ss youtube timestamp format
		- Use `Ctrl(Cmd)+k` for searching and `Ctrl(Cmd)+l` for inserting a link
		-
- [[Sep 15th, 2021]]
  id:: c66501ed-6d79-4a12-83d2-040da508697b
  **Beta 0.3.9**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.3.9
	- [[Features]]
		- [[Plugins]] Marketplace for testing!
			-
			  
			-
			- Notice it's only enabled in developer mode.
			- 
		- [[Youtube timestamp]] support
			- https://user-images.githubusercontent.com/9002575/133096658-67e3d6da-4444-4c06-b904-823e2206fd71.gif
			- How to use it?
			-
			  1. Embed a youtube video using `/Embed Youtube Video`
				- E.g. {{youtube https://www.youtube.com/watch?v=Ja78yU_xSkk&ab_channel=ShuOmi}}
			-
			  2. Watch the video and type `/Embed Youtube Timestamp`.
				- e.g. You can click the timestamp to jump to the corresponding position in the video.
					- Youtube timestamp:
					  #+BEGIN_EXAMPLE
					  {{youtube-timestamp 113}} Alias
					  #+END_EXAMPLE
					- {{youtube-timestamp 113}} Alias
					- {{youtube-timestamp 173}} PDF highlights
					- {{youtube-timestamp 206}} SRS cards
		- [[Queries]] add `namespace` support
			- {{query (namespace [[term]])}}
	- [[Thanks]]
		- [[Gustavo Santos]]
			- Set aria-checked to "true" if toggle is on
	- [[Debugging]]
		- Add instruments for changes that can't be saved to disk
	- [[Fixed issues]]
		- Code block not saved
		- Commands palette not work
		- Can't change the case of a page name
		- Edit icon should open the current block instead of the embedded block
		- Don't add new space when embedding a page or a block
		- Latex export block command shortcut gives error because of missing space
		- Git not included on Windows
		- Link title not working when copy as html
		- Don't overwrite today's journal page if synced file is empty or its content equals to the default journal template
			- To avoid file overwritten.
	- [[Enhancement]]
		- Auto focus the input box after typing /link
		- Remove the plus icon for switching graphs
		- Add both Cmd+! and Cmd+Shift+p to configurable shortcuts
- [[Sep 11th, 2021]]
  id:: cd5be27c-e2d6-4145-8c06-ed6ace8171df
  **Beta 0.3.8**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.3.8
	- [[Features]]
		- Page history support reverting back
		  collapsed:: true
			-
			  
			-
	- [[Thanks]]
		- [[llcc]]
			- more consistent with orgmode style
			- support recording in repeated block // cleanup unused namespaces
			- remove empty properties drawer
			- fix(clock): duplicate clock-in log twice
			- fix(timestamp): remove old SCHEDULED/DEADLINE timestamp
			- fix: org-styled link embedded-page rendering
			- fix: src block with header arguments
			- enhance: jump out of the ending curly brackets when embedding page or block
		- [[Sebastian Bensusan]]
			- calc: understand percentages
				- ```calc
				  100 * 20%
				  ```
		- [[Jiang Hailong]]
			- Linked reference is not refresh after file altering
		- [[Tiago Devezas]]
			- Translated both shortcuts and settings to pt-PT
		- [[DarshanSudhakar]]
			- Fixing typo  for the tooltip 'Block reference'
	- [[Fixed issues]]
		- dragging blocks to update notes does not synchronize updates to the notes file in real time
		- disable cut selections for blocks in the query result
		- data-refs / data-refs-self regression
		- local asset image can't be rendered with web nfs
		- wrong signature for Mac M1
		- git config core.safecrlf false on windows
		- add ignore-files to avoid repeated notifications
		- spent hours for logbook
		- display logbook for scheduled tasks
		- disable page/block auto-complete once the cursor went outside
		- commands panel aren't accessible sometimes
		- failed to remove invalid .git file
		- don't add new space when embedding a page or a block
		- click the edit icon should open the block which has the embedded block or page
	- [[Enhancement]]
		- detect file changes when starting the desktop app
		- add alerts before both refresh and re-index
- [[Sep 1st, 2021]]
  **Beta 0.3.7**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.3.7
	- [[Features]]
		- `cmd(ctrl)+shift+p` for command palette
		  
		- Better workflow to resolve "The file has been modified on your local disk" alert.
		  When Logseq detects filed modified on your disk and diverged from your actual Logseq page content, it'll prompt you to choose which one would you like to keep.
		  
		- Better task management & timetracking with logbook [[Clocking]] support for both org-mode and markdown [[Thanks]] to [[llcc]]
			- Automatic clock in when you switch task status to [[NOW]] or [[DOING]]
			- Automatic clock out when tasked is marked as [[DONE]] or [[LATER]]
			- Minimal interval for clocking is one minute
			- 
			- DONE demo task 1
			  :LOGBOOK:
			  CLOCK: [2021-09-01 Wed 15:15]--[2021-09-01 Wed 15:15] =>  00:00
			  CLOCK: [2021-09-01 Wed 15:16]--[2021-09-01 Wed 15:17] =>  00:01
			  CLOCK: [2021-09-01 Wed 15:35]--[2021-09-01 Wed 15:36] =>  00:01
			  :END:
		- [[Zotero]] adds overwrite mode which will **delete** and recreate existing Zotero page instead of append duplicate item to same page. Do **backup** first! Make sure it's OK to delete and recreate the page!
	- [[Enhancement]]
		- Drawer logbook display & ui, hide logbook by default
		- Better time tracking with logbook history
		- Display loading when invoking commands like git push
		- Display orphan pages by default
	- [[Fixed Issues]]
		- Tag with brackets but without spaces creates an extra page
		- Base64 image link not displayed
		- [[Zotero]] page with attachment filename with comma caused blank screen
		- Up/down key jump cursor incorrectly from sidebar to main panel
		- Setting panel not closed properly and reopen after other commands
- [[Aug 27th, 2021]]
  id:: fd6a5fdc-3e47-4399-aaeb-6297be9f2285
  **Beta 0.3.6**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.3.6
	- [[Features]]
		- Page version history support, your notes are much safer now!
			-
			  
			  [:div.mb-4]
			- Automatic backup with Git
				- You can disable the auto git commit on the settings page
				- Type `c` to commit with your custom message
			- Ability to run any raw Git commands like `git push`
				- The shortcut is `Cmd+!` or `Alt+!`
		- Replace block reference with either text or block embed
		- `Cmd+c Cmd+c` to clear the right sidebar
		- `Alt+shift+j` to open today in sidebar
		- `g h` to go to home
	- [[Thanks]]
		- [[llcc]]
			- Drawers support
				- Document: https://orgmode.org/manual/Drawers.html
				- 
			- Remove extra line between title and body
			- Remove extra line when deadline or scheduled added
		- [[AlexRoar]]
			- Graph antialiasing and labels dark style
		- [[Peng Xiao]]
			- [[Codemirror]] add `protobuf` mode
		- [[raphaelporsche]]
			- Remove extra whitespace in src-block-command
	- [[Fixed issues]]
		- File changes from the disk are not refreshed immediately in logseq
		  id:: 6128c366-714f-4be9-90b5-e959b35c136f
		- Avoid false alert of "the file has been modified from the disk..."
		- Cards preview crash
		- Advanced query went error after editing with block properties
		- Block being referenced has no indication of it being a block ref
		- /scheduled doesn't work well if the content has extra spaces
		- [[Parser]]
			- Fix markdown link label
				- 
			- Fix org mode `:tag:` issue
		- [[PDF]]
			- Incorrect url of pdf asset
		- [[Zotero]]
			- Imported url attachment open link
	- [[Enhancement]]
		- Add breadcrumbs for srs cards
			- 
		- Persistent "Copy As" options
		- Display a warning for the demo graph
- [[Aug 20th, 2021]]
  **Beta 0.3.5**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.3.5
	- [[Fixed issues]]
		- Fix app crashes on Mac
	- [[Features]]
		- Codemirror support both sparql and turtle modes
- [[Aug 19th, 2021]]
  id:: 611e698b-c30b-4b51-be56-703524d963a6
  **Beta 0.3.4**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.3.4
	- [[Thanks]]
		- [[Peng Xiao]]
			- Several UI issues
			- Make new block button more easily clickable
		- [[Michael Schmidt-Korth]]
			- Improve UI and make button & toggle interactivity on hover
			- UI fix for setting windows
		- [[Tiago Devezas]]
			- Add Portuguese translation
	- [[Fixed Issues]]
		- Export textarea background for dark theme
		- Zotero export format issues
		- Several pdf UX issues
		- Disabling journals in setting not working
		- Fail to load when refreshing with invalid block refs
		- Block id loss for references by file altering
		- Markdown links without extension does not work
	- [[Enhancement]]
		- Parsing speed up by leveraging web workers. Adding or reindexing large graph is now much faster!
		- Ability to edit SRS cards during the review
		- Add disable spellcheck option setting for desktop app.
		- Make local pdf asset file as relative path in pdf hls annotation file
		- Add [[Zotero]] `Linked Attachment Base Directory` setting for users with Zotfile workflow and using relative attachment links
		- Improved `open` button to open [[Zotero]] attachment file using relative link instead of absolute link. This needs user to setup `Zotero data directory` for imported attachment or `Linked Attachment Base Directory` for linked attachment and re-import the [[Zotero]] item.
	- [[Features]]
		- Support markdown url link format `[Link caption]()`. Note in this format, url can contain white spaces without the need of encoding
		- [[Zotero]] setting profile support. In a multi-device or multi-user scenario, user can add different [[Zotero]] setting profile for each without overriding existing [[Zotero]] settings.
- [[Aug 11th, 2021]]
  id:: 5473b972-e358-46eb-ae13-fa2ae1dd41bb
  **Beta 0.3.3**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.3.3
	- [[Thanks]]
		- [[ingepettersen]]
			- Add Norwegian (bokmål) translation
		- [[Michael Schmidt-Korth]]
			- CSS-changeable max-width in wide mode
		- [[Peng Xiao]]
			- Fixed several UI issues
	- [[Fixed issues]]
		- Serious bug in naming the journal md files
		- Page auto-complete search can clear the editing block
		- Inconsistent timestamps on pages
		- Failed to drag or paste images
		- Page blank with invalid block ids
		- PDF links can't be opened
		- Can't jump to highlights when enlarging the pdf viewer
		- `<Center` command
		  collapsed:: true
			- #+BEGIN_CENTER
			  Center text
			  #+END_CENTER
		- Widen mode width is too large
		- Blank white screen after updating to 0.3.2
		- Resize image
		- Simple queries not working in config.edn
		- Rename page case only
	- [[Enhancement]]
		- Copy selected blocks as text/HTML/OPML
			- 
		- Add spellcheck toggle in Settings/editor
		- [[PDF highlights]] (works only on the desktop app at the moment)
			- Linked references for highlights
				- 
			- Direct Zotero(including zotfile) attachments support! No need to copy the PDFs into Logseq
				- 
			- Support external PDFs outside `/assets`
			- Support external PDFs with http links
				- For example, ``
				- 
		- A `+` button at the end of the page to quick insert a block
		- Settings options are separated into groups
			- 
- [[Aug 6th, 2021]]
  id:: f3b8092e-ab5c-42c9-883c-81ae055b051d
  **Beta 0.3.2**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.3.2
	- [[Features]]
		- 📚 [[PDF highlights]]
			- Brought to you by [[Charlie]]!
			- Demo GIF
				- 
			- {{embed [[PDF highlights]] }}
	- [[Thanks]]
		- [gombiuda](https://github.com/gombiuda)
			- Hide specific block properties [[Configuration]]
				- **How to use it?**
					- Add something like `:block-hidden-properties #{:created-at :updated-at}` to your config.edn.
		- [[Peng Xiao]]
			- Hide the bullet when the block content is hr (default mode)
	- [[Fixed issues]]
		- Templates nesting not working
		- Date format crashes when reindex
		- Markdown produced even when set to org-mode
		- Don't treat hex colors as pages
		- Alias parsing
		- Markdown image link
		- Daily Notes Loading & Scrolling Issue with New Blank Daily Note
		- block ref style issue
	- [[Enhancement]]
		- [[Zotero]]
			- Add always use citekey as page title option
			- Allow extra tags for imported pages
- [[Aug 3rd, 2021]]
  id:: 5522d7d5-2c1a-4d97-9c0d-5d4a74d29bd4
  **Beta 0.3.1**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.3.1
	- The existing backend code is open sourced on GitHub, it's mostly for people who'd like to host the GitHub integration themselves.
	  collapsed:: true
	  https://github.com/logseq/deprecated-github-backend
		- Notice that we have no plan to open source the future backend for both data safety and business considerations.
	- [[Configuration]]
		- `default-templates` support named template for new journal pages
			- For example, you can create a template named `my-template`, and change the `default-template` part in`config.edn` to:
			  collapsed:: true
			  `:default-templates {:journals "my-template"}`
			- [[Breaking Changes]]
				- #+BEGIN_WARNING
				  The jounnals `default-templates` only supports the template name now. 
				  #+END_WARNING
		- `:ui/show-empty-bullets?`
		  collapsed:: true
			- If you want to show the empty bullets in the default mode (instead of document mode), add this to `config.edn`:
			  `:ui/show-empty-bullets? true`
	- [[Thanks]]
		- [[Michael Schmidt-Korth]]
			- Incredible unofficial Logseq documentation https://mschmidtkorth.github.io/logseq-msk-docs/
			  collapsed:: true
				- 
	- [[Fixed issues]]
		- Block gets removed on new line when preview (only for the new generated journal page)
		- Page blank when clicking page name in the query result
		- Add page title property when renaming a page that include Windows reserved chars
		- [[Zotero]]
			- Remove key from page title
			- PDF attachment link not working
		- [[Query/table]]
			- Click shouldn't open the page in the right sidebar (shift need to be pressed too)
		- [[Parser]]
			- Some files might have wrong indentation at the beginning
		- [[Publishing]]
			- Static export fails silently if asset is missing
	- [[Enhancement]]
		- Performance should be much better when editing long pages
		- Jump to alias's source page when searching
		- [[Zotero]]
			- Separate abstract note into another block
- [[Jul 30th, 2021]]
  id:: f65e2408-643d-43af-9320-57f1076847d5
  **Beta 0.3.0**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.3.0
	- [[Features]]
		- [[Zotero]] integration! 🎉 🎉 #Academic
			- By [[Weihua]] and [[Junyu]]
			- {{embed ((6103e488-22d4-4751-b27a-69b278067c26))}}
		- Support `==` for highlight in Markdown
	- [[Thanks]]
		- [[Peng Xiao]]
			- `/Embed Twitter` support!
				- E.g. `{{tweet https://twitter.com/logseq/status/1420968129987969026}} ` will displayed as:
					- {{tweet https://twitter.com/logseq/status/1420968129987969026}}
		- [[Julio Navarro]]
			- fix: after renaming a page, going back should not goto the original page
	- [[Fixed issues]]
		- Broken block references after refreshing
		- Page references not working as linked ref in page's properties
		- Backspace will remove the whole block when block timestamps was enabled
		- Can't load files named with `x.y.z.md` as namespace pages
			- This bug can result in page corruption! You're encouraged to upgrade to the latest release or use any releases before `0.2.8`
		- Some javascript files can't be loaded for subpath publishing
		- Block reference count doesn't work properly when zoom-in
		- Can't copy && paste multiple blocks
		- URL in page metadata should not be treated as page reference
		- Alias can't be redirected after deleting the page
		- Images support `webp` format
		- Right Click 'Make a Card' on Windows App does not work
		- Home page blank with some custom date formats
		- Block references no longer show the references element
		- Redirect to the new page when page property title changed
	- [[Enhancement]]
		- Group blocks query result by same path
		- [[Query/table]] persists sort options (sort-by, desc/asc)
		- "Copy as" support both `remove [[]]` and `remove emphasis`
		- Don't parse quoted string as page references for properties
		- Property value wrapped by `""` will not be treated as page references
		- Add a `:breadcrumb-show?` option for custom queries to hide breadcrumbs. #option
			- The value should be `false`
	- [[Deprecated]]
		- Block timestamps was deleted to avoid countless rare cases
- [[Jul 26th, 2021]]
  id:: 4d0c3c40-a21d-41f2-8c89-091aec2a416a
  **Beta 0.2.10**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.2.10
	- [[Features]]
		- Block level html export
			- You can right click the left bullet, click `Export` and select `HTML`
				- {:height 522, :width 401}
	- [[Thanks]]
		- [[Sebastian Bensusan]]
			- fix(calc): don't show errors for empty lines
		- [[ruffnex]]
			- add mhchem plugin #latex
	- [[Fixed issues]]
		- App crashing when auto-complete some page references
		- Display an error when the file or graph directory was deleted
		- `.recycle` pages should be ignored
		- Copy && paste not working well on Windows
		- Org-mode id links
	- [[Enhancement]]
		- Long pages should be loading faster
		- Query results support both nested children and breadcrumbs
		- File watcher is more efficient, it also reduces CPU usage
		- Both `^^` and `__` can be autopaired when there's selected text
		- Jump to the end of `[[page reference]]` if chose to not show double brackets
- [[Jul 23rd, 2021]]
  id:: 48e76d46-3419-455c-84a0-349b80e369b8
  **Beta 0.2.8**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.2.8
	- [[Fixed issues]]
		- Query table properties are not displayed
		- Can't edit code block
		- App frozen when export a block to either Markdown or OPML
		- Wrong blocks order in presentation mode
		- App crashes for some pages due to wrong parsing
	- [[Enhancement]]
		- Don't hide both the first and the last empty bullets
- [[Jul 22nd, 2021]]
  id:: 2397b650-2828-48f9-b51e-320565c847fb
  **Beta 0.2.7**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.2.7
	- [[Features]]
		- **Cards**  🎉 🎉  #Academic
			- By [[Zhiyuan]]
			- [[Demo]]
				- 
				- You can use `/cards` to create specific collections instead of all of the cards
					- 
			- {{embed [[Cards]]}}
	- [[Thanks]]
		- [[Peng Xiao]]
			- Fix cursor state sometimes not cleared correctly
		- [[Michael Schmidt-Korth]]
			- Add additional date formats (Europe/India)
	- [[Fixed issues]]
		- Org mode title not parsed if file-level property block exist in file
		- Deleted page shall not show up in search
		- Query: sum supports float string
		- Click outside doesn't clear selections
		- Can't select Up using shortcut
	- [[Enhancement]]
		- Hide bullets when the block is empty (non-editing mode)
		- Copy includes block references and embeds
- [[Jul 19th, 2021]]
  id:: 60f57103-7fe8-4b83-b497-f3576672d30b
  **Beta 0.2.6**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.2.6
	- [[Demo]] on query tables
	  #+BEGIN_TIP
	  You can press `t w` to adjust the width so that it's easy to see the Gif as below.
	  #+END_TIP
		- 
	- [[Thanks]]
		- [[Sebastian Bensusan]]
			- [[Calculator]] supports negative numbers 🪄
	- [[Fixed issues]]
		- Can't drag the desktop app when scrolling down a bit
		- Can't go back to global search after searching in a specific page
		- Catch error when rendering image with wrong metadata
		- Don't show properties in block references
		- Don't show built-in properties in search results
		- Autocomplete shortcut config
		- Block timestamps in the code block
	- [[Features]]
		- [[Query/table/function]]
			- How to create a function below the query table? #card
			  card-last-interval:: 11.2
			  card-repeats:: 3
			  card-ease-factor:: 2.8
			  card-next-schedule:: 2021-10-22T16:19:30.719Z
			  card-last-reviewed:: 2021-10-11T12:19:30.719Z
			  card-last-score:: 5
				- Firstly, you have a query like this:
				  query-table:: true
				  query-properties:: [:block :author :publication-date :price :qty :updated-at]
				  {{query (property type book)}}
				  Then, you can create functions (by trigger `/function`) as this query block's children.
				  
				  For example:
					- How many books? `{{function (sum :qty)}}`
						- Answer: {{function (sum :qty)}}
					- What's the average price? `{{function (average :price)}}`
						- Answer: {{function (average :price)}}
					- How much does it cost to buy all of them? `{{function (sum (map (fn [x] (* (:price x) (:qty x))) result))}}`
						- Answer: {{function (sum (map (fn [x] (* (:price x) (:qty x))) result))}}
			- What features does it support?
				- #+BEGIN_NOTE
				  The property to be used in the function must be a keyword, a keyword has a `:` at the beginning.
				  For example, `:price` is a keyword while `price` is not.
				  #+END_NOTE
				- Aggregations including sum/average/min/max/total
					- `{{function (sum :property)}}`
					- `{{function (average :property)}}`
					- `{{function (min :property)}}`
					- `{{function (max :property)}}`
					- `{{function (total :property)}}`
				- [[Clojure]] function!
				  The function takes the query result and bind it to the symbol `result` for usage.
					- `{{function (sum (map (fn [x] (* (:price x) (:qty x))) result))}}`
	- [[Enhancement]]
		- [[Queries/table]]
			- Click to open a block in the right sidebar
			- Human-readable block timestamps
			- Add sorts by any property
			- Add custom properties support
- [[Jul 14th, 2021]]
  **Beta 0.2.5**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.2.5
	- [[Thanks]]
		- [[Devon Zuegel]]
			- WYSIWYG headers + CSS cleanup
		- [[Peng Xiao]]
			- Clear data-active-keystroke when blur
		- [[Michael Schmidt-Korth]]
			- Updates to keyboard shortcut wording
	- [[Fixed issues]]
		- Pages or even the whole graph can be deleted when re-index
			- Introduced by the release `0.2.4` which was deleted to avoid more data loss
		- Block reference gets lost on alt-dragged blocks after re-index
		- Bring block timestamps back, you can enable it in the settings page
			- It'll add both `created-at` and `updated-at` properties.
		- Preserve the block properties order
		- Publishing supports subpath now
		- Previous page are not removed in the graph view
		- Can't delete selected blocks when zoom in
		- Don't show the collapse arrow when there's no block title or children blocks
		- Fix light theme colors
		- Hide :collapsed property when editing
		- Org mode image rendering
	- [[Features]]
		- Finally, we can render queries as tables! 🎉 [[Queries/table]]
			- {{query (property type book)}}
			  query-table:: true
			- {{query (page-property tags)}}
	- [[Enhancement]]
		- [[Publishing]]
			- Disable edit-mode
			- Remove access to settings on the exported site
			- Do not export pages with "public:: false" option when all pages are set public from the config
			- You can set all pages as public in the settings page
		- [[All pages]] support sorted by page's name, links, created at and updated at
			- 
- [[Jul 9th, 2021]]
  **Beta 0.2.3**
  Desktop app download link: https://github.com/logseq/logseq/releases/tag/0.2.3
	- [[Thanks]]
		- [[Peng Xiao]]
			- Various UI improvements & refactoring
			- Improve cursor style with block reference
			- New page preview for page autocomplete
			  collapsed:: true
			  
			- `shift+enter` to open autocomplete item in sidebar
			- Fix sidebar not able to resize and draggle issue
			- Fix custom css not work when switching graphs
		- [[Michael Schmidt-Korth]]
			- Fix privacy term links not working for electron
		- [[bensu]]
			- Enhance scrolling into moving blocks behavior
	- [[Fixed Issues]]
		- Fix open file externally with relative paths
	- [[Features]]
		- Graph display is completely revamped
			- Webgl rendering thousands of nodes instantly for large repo
			- Better nodes filtering and searching
			- Various UX improvements
			- demo
			  collapsed:: true
			  
		- New block level export (export to plain text or opml)
		  collapsed:: true
		  
	- [[Enhancement]]
		- Enhanced document mode experience (`t d` to toggle, use `shift+enter` to create new block inside document mode)
		  collapsed:: true
		  
		- New frameless design and UI polish for mac desktop app on Mac
		- Enhance Mldoc ast types for link reference
		- Bundle assets for desktop app to eliminate outbound network requests
		- Add global shortcuts for moving backward`ctrl/cmd [` and forward`ctrl/cmd ]`
		  id:: 60e80f8d-f130-4925-ad22-474977a1f56d

---

## File: pages/Commands.md

- Type `/` to show all the commands and explore.

---

## File: pages/config edn file.md

title:: config.edn

- Most of the `Settings` you've toggled in UI will be stored in `logseq/config.edn` file inside your graph folder
- Some of the advanced or experimental setting options can also be set in this file directly.
- A clean raw version of `config.edn` can be found [here](https://raw.githubusercontent.com/logseq/logseq/master/templates/config.edn)

---

## File: pages/contents.md

- 🌟 [[New to Logseq?]]
	- [[Start here]]
	- [[How to create a new graph]]
	- [[How to create a Logseq graph using existing Markdown files]]
	- [[Getting started with the Journals page]]
	- [[How to create pages in Logseq]]
	- [[Why linking matters]]
	- [[Aliases and external links]]
	- [[What is indentation and why does it matter?]]
	- [[How to filter linked references]]
	- [[The basics of block references]]
	- [[The difference between block embeds and block references]]
	- [[The difference between block embeds and page embeds]]
	- [[How to work with the right-hand sidebar]]
	- [[How to sync your Logseq graph across devices]]
- Miscellaneous
	- [Roadmap](https://trello.com/b/8txSM12G/logseq-roadmap)
	- [[Changelog]]
	- [[Videos]]
	- [[FAQ]]
	- [[Glossary]]
	- [[Testimonials]]
		- ((6071c223-b0ed-4235-80b2-f5e44d3679b9))
	- [Awesome Logseq](https://github.com/logseq/awesome-logseq) (community contributions)
- [[Features]]
	- [Backlink]([[term/backlink]])
	- [[Knowledge Graph]]
	- [[Page and block references]]
	- [[Page and block embeds]]
	- [[Tasks & Todos]]
	- [[Commands]]
	- [[Advanced commands]]
	- [[Templates]]
	- [Page alias]([[term/alias]])
	- [Block properties]([[term/properties]])
	- [[Publishing (Desktop App Only)]]
	- [[PDF highlights]]
	- SRS [[Cards]]
	- [[Draw]]
	- [[Slide]]
	- [[Custom theme]]
	- [[Zotero]] integration
	- [[Embed Media - Audio, Photos, Videos]]
- [[Logseq School]]
	- {{embed [[Plugins 101]] }}
- [[Document syntax]]
	- [[Markdown]]
	- [[Org Mode]]
- 👤 [[Settings]]
- ✨ [[Tips and Tricks]]
- [[Advanced Logseq]]
	- [[Custom keyboard shortcuts]]
	- [[Queries]]
	- [[Advanced Queries]]
	- [[Hiccup]]
	- [[Custom views]]
	- [Self Hosting Logseq](https://github.com/dustinlacewell/logseq-guide)
	- [[Migrate to Logseq Beta]]
- [[Contribute]]
	- Make a [Feature Request](https://discuss.logseq.com/)
	- [Check us out on Github](https://github.com/logseq/logseq)
	- [Contribute to Our Docs](https://github.com/logseq/docs)
- 💬
	- Message us on [Discord](https://discord.gg/KpN4eHY) (We love feedback!)
	- Tweet us [https://twitter.com/logseq](@logseq)

---

## File: pages/Custom keyboard shortcuts.md

-
  > People come to Logseq from different operating systems, use different keyboard layouts and languages, and have different preferences. Customizable keyboard shortcuts is the only way to make everybody happy. - [[Cobblebot]] [discussion](https://discuss.logseq.com/t/customizable-keyboard-shortcuts/146)
- **How to setup custom keyboard shortcuts?**
  To add custom shortcuts, you can add/modify the `:shortcuts` section in [[config.edn]], for example, then restart Logseq.
  #+BEGIN_EXAMPLE
  :shortcuts {:ui/toggle-theme "mod+c mod+t"}
  #+END_EXAMPLE
- **Which shortcuts could be customized?**
  The default shortcuts are [here](https://github.com/logseq/logseq/blob/master/src/main/frontend/modules/shortcut/config.cljs)
  Click `Learn more` of the help page to see full list of shortcuts by categories.
  
- Syntax:
	- `+` means keys pressing simultaneously eg: `ctrl+shift+a`
	- ` ` empty space between keys means key chords
		- eg: `t t`
		- eg: `mod+c mod+t`
	- `mod` means
		- `ctrl` for Linux and Windows
		- `cmd` for Macos
	- you can define multiple bindings for one action
		- eg: `:editor/down ["ctrl+j" "down"]`
- Example of a vim-like shortcut setup:
	-
	  ``` clojure
	  :shortcuts
	   {:editor/new-block "enter"
	   :editor/new-line "shift+enter"
	   ;; remap insert-link to something else to avoid conflicts
	   :editor/insert-link "ctrl+shift+k"
	   :editor/up ["ctrl+k" "up"]
	   :editor/down ["ctrl+j" "down"]
	   :editor/left ["ctrl+h" "left"]
	   :editor/right ["ctrl+l" "right"]
	   :editor/open-edit ["i" "enter"]
	   :editor/backspace ["ctrl+d" "backspace"] 
	   :date-picker/complete ["enter"]
	   :date-picker/prev-day ["ctrl+h" "left"]
	   :date-picker/next-day ["ctrl+l" "right"]
	   :date-picker/prev-week ["ctrl+k" "up"]
	   :date-picker/next-week ["ctrl+j" "down"] 
	   :auto-complete/prev ["ctrl+k" "up"]
	   :auto-complete/next ["ctrl+j" "down"]
	   :auto-complete/complete ["ctrl+l" "enter"]}
	  ```

---

## File: pages/Custom theme.md

- There are two methods for installing custom themes:
	- 1. Add a css file "logseq/custom.css".
	-
	  2. Specify a `:custom-css-url` in "logseq/config.edn". [[config.edn]]
- a list of community made `custom.css` files can be found [here](https://github.com/logseq/awesome-logseq#css-themes)

---

## File: pages/desktop app.md

---
title: Desktop app
---

- Installation
    - Windows & Mac users can get our latest installation file from [latest release](https://github.com/logseq/logseq/releases/latest)
    - We provide [AppImage](https://appimage.org/) from [latest release](https://github.com/logseq/logseq/releases/latest) for Linux users
        - Arch Linux users can leverage below AURs maintained by community
            - [logseq-desktop-bin](https://aur.archlinux.org/packages/logseq-desktop-bin/)
            - [logseq-desktop-git](https://aur.archlinux.org/packages/logseq-desktop-git/)
        - NixOS users
            - logseq is available in nixpkgs unstable channel
            - install with `nix-env -i logseq`

---

## File: pages/devon.md

alias:: [[Devon Zuegel]]

---

## File: pages/Document syntax.md

- Logseq currently supports [[Markdown]] and [[Org Mode]] syntaxes.

---

## File: pages/Draw.md

- Logseq has [[Excalidraw]] integration built-in, type `/draw` command to start drawing.
- {{embed ((60acbe13-f12d-451a-9793-56201f858074))}}

---

## File: pages/Embed Media - Audio, Photos, Videos.md

- ## Audio
	- Using [[Hiccup]], it is possible to embed audio to your page and play it back.
		- [:audio {:controls true :src "https://www.kozco.com/tech/piano2-CoolEdit.mp3"}]
	- ### Embedding an audio file
		- To preview audio saved on your computer, type or copy-paste the following Hiccup ClojureScript, replacing the source `src` in "quotation marks" with the filepath and file name:
		  ```
		  [:audio {:controls true :src "file:C://Users/USERNAME/Folder/audio.ogg"}]
		  ``` 
		  #+BEGIN_TIP
		  Make sure to include the `file:` at the start and to use forward slashes `/`
		  #+END_TIP
	- ### Embedding audio from a URL
		- To preview audio stored online, type or copy-paste the following Hiccup ClojureScript, replacing the source `src` in "quotation marks" with the actual URL:
		  ```
		  [:audio {:controls true :src "https://www.website.com/audio-file.wav"}]
		  ```
			- Example: 
			  ```
			  [:audio {:controls true :src "https://www.kozco.com/tech/piano2-CoolEdit.mp3"}]
			  ``` 
			  [:audio {:controls true :src "https://www.kozco.com/tech/piano2-CoolEdit.mp3"}]
- ## Photos, Images, GIFs
	- To embed images, you can either:
		- Copy-paste them into Logseq (which will duplicate the file into your Logseq's graph's folder in the `Assets` on your PC), OR
		- Point the photos to a particular path on your computer storage or online storage.
	- ### Embedding Images
		- To preview an image saved on your computer in Logseq, type or copy-paste the following, replacing the filepath in (parenthesis) with the appropriate one: 
		  ```Markdown
		  ![optional: add a name](C://Users/USERNAME/Folder/image.gif)
		  `` 
		  #+BEGIN_TIP
		  Make sure to include the `!` at the start.
		  #+END_TIP
	- #+BEGIN_TIP
	  You can specify the image size using 
	  `{:height --, :width --}`
	    ```
	    {:height 418, :width 699}
	    ```
	  #+END_TIP
	- ### Embedding images from a URL
		- To preview am image from the internet, copy its link (with the file name and filepath) and paste it into Logseq. The image should automatically appear when you hit Enter.
			- For example: `https://logseq.github.io/screenshots/1.png` 
			  https://logseq.github.io/screenshots/1.png
- ## Videos
	- Using [[Hiccup]] and certain slash commands, it is possible to embed video to your page and play it back.
	- ### Embedding a video file
		- To preview a video saved on your computer, type or copy-paste the following Hiccup ClojureScript, replacing the source `src` in "quotation marks" with the filepath and file name: 
		  ```
		  [:video {:controls true :src "file:C://Users/USERNAME/Folder/video.mp4"}]
		  ``` 
		  #+BEGIN_TIP
		  Make sure to include the `file:` at the start and to use forward slashes
		  #+END_TIP
	- ### Embedding a videos from a URL
		- To preview videos stored online, type or copy-paste the following Hiccup ClojureScript, replacing the source `src` in "quotation marks" with the actual URL:
		  ```
		  [:video {:controls true :src "https://www.website.com/video-file.webm"}]
		  ```
			- Example: 
			  ```
			  [:video {:controls true :src "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4"}]
			  ```
			  [:video {:controls true :src "http://commondatastorage.googleapis.com/gtv-videos-bucket/sample/BigBuckBunny.mp4"}]
	- ### Embedding videos from YouTube
	  collapsed:: true
		- Type the slash `/` command and type `Embed YouTube Video`
		- Select the command and paste the URL inside the `{{youtube }}` command
			- Example: 
			  ```
			  {{youtube https://www.youtube.com/watch?v=SUOdfa3MucE}}
			  ```
			  {{youtube https://www.youtube.com/watch?v=SUOdfa3MucE}}
		- To add timestamps, play the video, pause, create a new line. Type the slash `/` command and type `Embed YouTube timestamp`
			- See the timestamps embed in action here (skip to 0:42 seconds): 
			  <div style="position: relative; padding-bottom: 80.35714285714286%; height: 0;"><iframe src="https://www.loom.com/embed/995d6755b29c48c6b610646736aa5049" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"></iframe></div>
	- ### Embedding videos from Vimeo
		- Type the slash `/` command and type `Embed Vimeo Video`
		- Select the command and paste the URL inside the `{{vimeo }}` command.
			- Example: {{}}
			  ```
			  {{vimeo https://player.vimeo.com/video/535982936}}
			  ```
			  {{vimeo https://player.vimeo.com/video/535982936}}

---

## File: pages/examples.md

---
title: examples
---

- Project management
  created-at:: 1609233475967
  updated-at:: 1609233475967
    - [[Project 1]]
      created-at:: 1609233477494
      updated-at:: 1609242318919
        - NOW fix some bugs #tag1 #tag2
          created-at:: 1609233363167
          updated-at:: 1609233700536
        - LATER chat with friends
          created-at:: 1609233394316
          updated-at:: 1609234724742
    - [[Project 2]]
      created-at:: 1609233487212
      updated-at:: 1609233487212
        - DONE finish the demo #tag1
          created-at:: 1609233518468
          updated-at:: 1609233678857
        - CANCELED dance with a bear #tag2
          created-at:: 1609233523981
          updated-at:: 1609234730471

---

## File: pages/favorites.md

-

---

## File: pages/Features.md

- R

---

## File: pages/Getting started with the Journals page.md

- #+BEGIN_TIP
  For people familiar with Roam Research: the Journals page in Logseq is the same as the Daily Notes Page in Roam.
  #+END_TIP
- Every time you open Logseq, you start on the Journals page.
- The Journals page is the ideal place to enter information in your graph. Every day at midnight a new Journals page is created with that day's date, making it easy to see when you've added what information.
- The Journals page also functions as a resurfacing area; in the linked references of each day's Journals page you'll see the mentions of that day's date. This is handy for when you want to send your future self reminders or TODOs.
- When it's your first time using an outliner tool like Logseq, we recommend you write everything on the Journals page of that day. Avoid creating pages for everything and scattering your information over unconnected islands. Until you know how to link pages and blocks—and even after—it's best to use your Journals pages for everything.
- Once you feel more comfortable with Logseq, [continue with the lesson on how to create pages.]([[How to create pages in Logseq]])
- If you first want to know more about linking in Logseq, [continue with the lesson on why linking matters.]([[Why linking matters]])

---

## File: pages/Glossary.md

-
  #+BEGIN_NOTE
  Credits and special thanks to [[Cobblebot]] for this!
  Original source: [forum](https://discuss.logseq.com/t/glossary-draft-work-in-progress/196)
  #+END_NOTE
## Basic terms
	- [[term/graph]]
	- [[term/block]]
	- [[term/page]]
	- [[term/page title]]
	- [[term/block title]]
	- [[term/bullet]]
	- [[term/internal line break]]
	- [[term/alias]]
## References + IDs
	- [[term/page reference]] (equivalent to page title)
	- [[term/block reference]]
	- [[term/block ID or page ID]]
## Links
	- [[term/page link]]
	- [[term/block link]]
	- [[term/page link with label]]
	- [[term/block link with label]]
	- [[term/web link]]
	- [[term/file link]]
	- [[term/backlink]]
## Concepts and Modes
	- [[term/properties]]
	- [[term/block rendering]]
	- [[term/editing mode]]
	- [[term/network of connected ideas]]
## Embeds
	- [[term/embedded page]]
	- [[term/embedded block]]

---

## File: pages/Hiccup.md

- Hiccup is a domain-specific language for generating HTML used mostly in Clojure community.
- Check out [this](https://medium.com/makimo-tech-blog/hiccup-lightning-tutorial-6494e477f3a5) tutorial for a quick introduction.
- You can embed Hiccup inside block same as if you want to embed HTML.
- Example:
	- [:h2 {:style {:color "red"}} "h2 title"]
	    [:p "Hello " [:em "World!"]]

---

## File: pages/How to create a Logseq graph using existing Markdown files.md

- If you already have a collection of Markdown files you wish to start with instead of [creating a new graph]([[How to create a new graph]]), Logseq allows you to import those files—even if they were created with another tool.
- To start using Logseq with your existing Markdown files, all you have to do is create a new graph and select a directory that contains Markdown files. Logseq will automatically create the following folders:
	- `journals` (in which each day a new file is created for that day)
	- `pages` (where new files are created when you create a new page in Logseq)
	- `assets` (where all (media) files you upload in Logseq are stored)
- Logseq has the ability to find files in subfolders, so it's not necessary to move all of your Markdown files to the pages folder. When you open a directory with files that were created by the Obsidian _Daily notes_ core plugin, Logseq will automatically locate them. However, Logseq will create a new file for every day onward in the `journals` folder.
- If you want to use Logseq in combination with Obsidian (for example, to make use of Obsidian's massive plugin ecosystem), have a look at the following Twitter thread by Logseq team member Ramses. In it, he shows exactly what settings you need to change in both tools to make them play nice together.
	- {{tweet https://twitter.com/rroudt/status/1443546448675573760?s=20}}
- [>> Continue by getting to know the Journals page]([[Getting started with the Journals page]])

---

## File: pages/How to create a new graph.md

- Before we get started, it's first necessary you have the Logseq desktop app installed. While it's possible to use Logseq in a browser, we recommend the desktop app for a variety of reasons—speed being the main one. In the rest of this guide we'll assume you're using the app.
- To install the Logseq desktop app, head over to [Logseq.com](https://logseq.com/) and click the blue button that says Download desktop app:
	- 
- The site will automatically determine what Operating System you're using and download the appropriate installation file.
- After you've downloaded the installation file, install it as you would do any other app. Once that's done, start Logseq.
- Opening Logseq for the first time, you'll see the following screen telling you to open a local directory:
	- 
- If you already have Markdown files you wish to use, look at the next section titled [[How to create a Logseq graph using existing Markdown files]].
- For now, let's assume you'll start a new graph. Select a folder where you wish to store everything you do in Logseq. Once done, Logseq will open a page with today's date; the Journals page. We'll get back to this special type of page later.
- Keep in mind that Logseq does not synchronize your data; it'll be only stored on your local machine. In case you want an extra safeguard for your data, you can create your graph in a folder that's synced via services like Dropbox or Google Drive. You can read more about this in the section [[How to sync your Logseq graph across devices]].
- Now you're ready for the fun part!
- [>> Continue by getting to know the Journals page]([[Getting started with the Journals page]])

---

## File: pages/How to create pages in Logseq.md

- As noted in the introduction, Logseq is a networked thinking tool. Because Logseq lacks a hierarchical structure like folders, you may find organizing your notes confusing at first. After all, how are you going to find back what you put into this app? That's where links enter.
- Links are entry points into your web of notes. What makes Logseq unique is that you can also point to individual paragraphs (blocks) instead of pages. In fact, pages are nothing more than a collection of blocks (paragraphs). Whereas most note-taking tools make linking to other notes a hassle, Logseq has a keyboard-first approach.
- Let's first look at how to create and link pages before diving into linking blocks in the next lesson.
- ## How to link to pages in Logseq
	- Creating links to pages is simple in Logseq; you just type them! No need to use your mouse, create a page, and then point to it. If you link to a page that doesn't exist yet, Logseq creates it for you.
	- There are two main ways to link to a page:
		- `[[Brackets]]`
			- Logseq uses wiki-style links, which means that you can type double opening brackets to create a link (`[[` — Logseq will autocomplete the closing brackets):
				- 
			- When a page doesn't exist yet, typing the link will create the page with that name. If the page already exists, you can select it from the dropdown menu that appears by typing the name.
		- `#Hashtags`
			- Another way to type links in Logseq is to use the hashtag symbol (`#`):
				- 
			- The difference between bracket links and hashtags is purely cosmetic as they function the same. However, many people use them in different situations; brackets are often used for inline links, whereas hashtags are often used for metadata.
			- Hashtags can only contain one word, otherwise you need to `#[[wrap them between brackets]]`.
- ## How to create pages with the search bar (without linking)
	- For completeness, let's also have a look at how to create pages using the search bar, although we don't recommend it (see the next page on bidirectional linking for why).
	- To create a page using the search bar, start typing a page name in it (use the `Cmd-k` (macOS)/`Ctrl-k` (Windows) shortcut to focus the cursor on the search bar without using your mouse). Then, select the option that starts with `New Page:` to create the page and open it:
		- 
- These are the ways to create pages in Logseq. We recommend creating pages using links, as this will ensure an entry point to them. Nothing is worse than having no links in a networked note-taking tool, so default to linking pages.
	-

---

## File: pages/How to filter linked references.md

- In the previous lessons, we looked at why links and indentation matter to retrieve information. But as your Logseq graph grows, you might want to see less information so you're left with what's relevant. That's where filters come in.
- Logseq filters can be found next to linked references, recognizable by the funnel symbol. When you click the filter button, you see the following pop-up. The shown values are any links (using brackets or hashtags) that are are in the linked references:
	- 
- By clicking a filter value, you include it, meaning that only the block with the value you selected will _show_ on the page. When you `Shift-Click` a filter value, you _exclude_ it from the page, meaning that any block that contains that value is _hidden_.
- Logseq will remember what filters you've set; whenever you return to the page, the filter is still applied.
- You can recognize an active filter by it's color; when the filter is set to _include_ links it'll turn green:
	- 
- When a filter is set to _exclude_ links, it'll turn red:
	- 
- Filters are handy for easy access to specific values. But if you want to easily access frequently used pages from anywhere in your graph, it's best to add them to your favorites. In the next lesson we'll see how to add them to the left-hand sidebar.

---

## File: pages/How to sync your Logseq graph across devices.md

- As Logseq saves all of your notes and settings in plain text files (in Markdown format), any file sync service will enable you to synchronize your Logseq graph across several devices. However, we're working hard on building our own sync service so you have a one-stop-shop for all of your Logseq needs.
- One *current* caveat when working with several devices on the same Logseq data is that you can only have one device use the data per time. So, if you use the Logseq mobile app and want to continue working on your desktop, you first need to make sure the data was synced from your mobile device. Only then should you open the Logseq app on your desktop. It maybe necessary to re-index your graph on desktop to make sure all recent changes are loaded in.

---

## File: pages/How to work with the right-hand sidebar.md

- By default, the sidebar on the right is hidden. With the keyboard shortcut `t r` you open it. But, you can't write in the sidebar nor drag blocks to it in this state, so what's the use?
- In the right-hand sidebar, you can open (branches of) blocks, pages, and references. Any internal link can be opened in the sidebar by holding the `Shift` key when clicking the link with your left mouse button (this also works to open a result from the search bar in the sidebar):
	- 
- Here, I `Shift-Click`'ed  on the **Parent A** link, opening it in the sidebar. In this case, the page is empty so we only see a bullet without text. However, from the sidebar we can start typing directly on the page or drag blocks onto it from the main window.
- Furthermore, we get the option to close the page in the sidebar (1) and to filter the linked references (2).
- To open a _block_ in the sidebar, `Shift-Click` on a bullet. You can easily add child blocks to the opened block by placing your cursor in it and hitting `Enter`:
	- 
- And those are the basics of the right-hand sidebar! In the next lesson, will expand on the usefulness of the sidebar by adding another power tool to our arsenal: _block references_.

---

## File: pages/how_to_take_notes.md

---
title: How to Take Notes
---

- Hello, I'm a block! Reference me! Embed me!
  id:: 6018cc98-67a8-4eb2-bfd7-2affe517a7c7
    - I'm a child block!
    - I'm another child block!
- Hey, I'm another block!

---

## File: pages/Knowledge Graph.md

- As you add ideas and thoughts into Logseq and connect them, your knowledge graph grows. Just as your brain generates and connects new neurons to form new knowledge and ideas.
- These connections are what makes Logseq so powerful as a second brain, we generate and synthesize information much like your own brain does, but better.
- In Logseq, you can filter and even "remember" loose connections by checking out your linked references. You can see all the times you thought about [[Productivity]] and [[Habit Creation]] in their separate nodes and areas of your graph, but you never thought to connect the two. But since you wrote [[Productivity]] and happened to mention [[Habit Creation]] 4 months ago (in some random journal or essay), that proximity and connection live with you forever, even if you never drew the lines in your own head:
  {:height 338, :width 468}
- Watch your knowledge graph grow by going to your main menu (click your profile picture) -> select "Graph"
	- Here is the [Documentation Graph ->](https://logseq.github.io/graph)
- related terms:
  {{embed [[term/network of connected ideas]]}}

---

## File: pages/llcc.md

Alias:: Lei Zhe

---

## File: pages/Markdown.md

- Logseq support most [[Markdown]] syntaxes, and includes some extended syntaxes.
### **Standard** syntax
	- what's logseq? #card
	  card-last-interval:: 28.3
	  card-repeats:: 4
	  card-ease-factor:: 2.66
	  card-next-schedule:: 2021-11-08T19:18:29.363Z
	  card-last-reviewed:: 2021-10-11T12:18:29.363Z
	  card-last-score:: 5
		- knowledge base
	- `**Bold**`   -> **Bold**
	- `_Italics_ ` -> _Italics_
	- `~~Strikethrough~~` -> ~~Strikethrough~~
	- `^^Highlight^^` -> ^^Highlight^^
	-
	  [:div [:code  "`Code`"]  "-> " [:code "Code"]]
	- `[label](https://example.com)` -> [label](https://example.com)
	  id:: 60ab7486-8119-4c9a-888c-1e6213fd28e0
	- `` -> {:height 53, :width 42}
	  id:: 60aba887-96f4-461f-a9f0-d205d766d78b
	- and so on...
### **Extended** syntax
id:: 60a78b6b-a0ff-49fe-822f-87216fbf79ff
	- [[term/page link]]
	  id:: 60ab4582-5a6e-4f3a-84a2-71ae056455a0
		- syntax: `[[page name]]`
		  id:: 60a78b6b-688c-4ced-9104-60784597daf9
	- [[term/block link]]
	  id:: 60ab3eb7-c1e8-47ad-8a18-770896a10c5c
		- syntax: `((block-uuid))`
		- How can I get a _block-uuid_ ?
		  done:: 1621594005775
		  now:: 1621585437721
		  later:: 1621585438918
		  id:: 60a78b6b-b74f-4496-a7b7-dc0d454ca4f3
			- Copy a block-reference using shortcut
			  collapsed:: true
				- {:height 354, :width 437}
			- Select a block when auto-completing
			  collapsed:: true
				- {:height 352, :width 442}
	- [[term/embedded page]]
	  id:: 60ab3eb7-2fb1-4148-af2b-9ba2319ef5b6
		- syntax: `{{embed [[page name]]}}`
		- It will embed whole page content into current editing block.
		  id:: 60a78b6b-b43d-4328-a1dc-934f0d3dbff7
	- [[term/embedded block]]
	  id:: 60ab3eb7-5a6b-4e6a-90e0-80dd11e47c48
		- syntax: `{{embed ((block-uuid))}}`
		- It will embed whole block content into current editing block.
		  id:: 60a78b6b-70c6-4209-bb26-045395458a04
	- [[term/properties]]
		- syntax: `property:: value`
		  id:: 60ab6f5b-4bdc-4ef0-a0f8-6cad9dcad2b2
		- some examples
			- [[Templates]] related properties
			  id:: 60aca587-77bd-4d4e-afcd-c475b52cb754
				-
				  [:code "template:: template-name"]
				-
				  [:code "template-including-parent:: false"]
				- {{embed ((60a790f8-d187-499a-b2e2-73bf137356dd))}}
		- see also: [[Block properties]]
	- [[term/page link with label]]
		- syntax: `[display text]([[page name]])`
		  id:: 60ab6d72-e70c-4eb4-a60a-3802f12874c4
	- [[term/block link with label]]
		- syntax: `[display text](((block-uuid)))`
		  id:: 60ab6f5b-a01f-44eb-8d4a-fb8ca1893dcf
	- [[Tasks & Todos]] marker
		- syntax: `TODO` `DOING` `DONE` `LATER` `NOW`
		- These markers can be set with commands(`/TODO`) 
		  or shortcut(default `ctrl/cmd+enter`)
	- Priority
	  id:: 60ab4582-b191-496a-be39-0a865f9ecece
		- syntax: `[#A]` `[#B]` `[#C]`
		- Priorities can be set with commands(`/A`, `/B`, `/C`)
		  id:: 60ac5b08-d4bb-49de-b415-e63fcf29c59f
	- [[Hiccup]]
	  id:: 60ab5bc7-f196-4f87-91aa-164ac71184ed
		- Sometimes you want to express more complex text structure, you can embed Hiccup in blocks.
		- example
			- `[:p "Hello " [:em "World!"]]`
			  ->[:p "Hello " [:em "World!"]]
		- [Hiccup syntax here](https://github.com/weavejester/hiccup/wiki/Syntax)
	- inline latex
	  id:: 60ab5bc7-f08f-4e7d-a293-add673533700
		- `$$E = mc^2$$` -> $$E = mc^2$$

---

## File: pages/Marketplace demo.md

- Firstly, you need to enable the developer mode.

---

## File: pages/Migrate to Logseq Beta.md

-
  #+BEGIN_WARNING
  **BACKUP** all your notes somewhere **first** before continue
  #+END_WARNING
- This migration guide is mainly targeted for Logseq users of pre-beta version with Markdown notes
- **Backup(make an extra copy)** of all your old notes first, then:
	-
	  1. Download the release https://github.com/logseq/logseq/releases/tag/0.1.2
	-
	  2. Load and open your old graph folder in this new Beta app
	-
	  3. Click the right three dots menu, go to `Export` and select `Convert Markdown headings to unordered lists (# -> -)`
	-
	  4. Above will create a zip file of all your converted new notes under `/journals` and `/pages` folder, extract the zip to your desired location.
	-
	  5. Copy and replace all pages under `/journals` and `/pages` folder back to that same graph folder
	-
	  6. Finally, click the right three dots menu, go to `All graphs` and unlink the graph and open it again to reload the graph
- Tutorial:
  
- Why & underneath the hood:
	- Previously Logseq use `#` markdown heading as outliner bullets, since beta, we've changed to use more standard `-` unordered list as outliner bullets
	- The converter essentially converts all Markdown headings to unordered lists (`#` -> `-`)
- Further steps you may need:
	- Since Logseq is using `-` unordered list for bullets, `-` will not work as a list item anymore, replace `-` with `*` or `+` if you need it. The converter doesn't convert it automatically because it might break your contents.
- Other noticeable changes:
	- Old syntax of adding property for Markdown is no longer recommanded
	  ``` Markdown
	  ---
	  key: value
	  ---
	  ```
	  Use below new [[term/properties]] syntax instead
	  {{embed ((60ab6f5b-4bdc-4ef0-a0f8-6cad9dcad2b2))}}

---

## File: pages/New to Logseq_.md

title:: New to Logseq?

- Head over to [[Start here]]

---

## File: pages/one year in logseq.md

---
title: One year in Logseq
---

- **Hello, everyone!**
- **A little about the team**
	- **Michael** 
	  {:height 560, :width 960}
	- **Charlie**  
	- **Zhiyuan**
	  
	- **Weihua**
	  
	- **Junyu** 
	  {:height 379, :width 279}
	- I'm Tienson from Hangzhou, thanks to my wife we have a beautiful daughter.
		- {:height 557, :width 518}
- **What's logseq?**
	- At present, it's a note-taking app
		- It's also a community for knowledge sharing and collaboration, yes, our discord group and forum!
	- In the future, we hope Logseq can be more helpful for everyone around the world.
- **Why the name?**
  later:: 1616236181947
  I know `log` is for daily notes, what `seq` means?
	- It's a sequence of our notes, ideas and thoughts. To me it's all the things I want to remember in my life.
- **Why building logseq?**
	- I started a side project called `putchar.org` back in 2018, which is Medium for programmers, a place to publish and discuss tech articles.
		- Unfortunately, it's deprecated after more than 1 year working on it because for me It's hard to build a community and I have some contracts at that time so that I can't focus on it.
		- But I still want to make it better for general knowledge publishing and collaboration.
		- Also, many code, especially the parser for logseq are from some of my previous side projects, so failures are not that bad :)
	- I was using both Org-mode and TiddlyWiki for my notes, I want to read my notes and capture some links on mobile, also, I want a better outliner UI on web  compared to text editors like Emacs and Vim.
	- So, when my last contract ended at the end of 2020, I knew it's the time to build something! 😎
- **What's the difference between logseq and other tools?**
  id:: 61110543-a71f-458d-b42e-b78a4d22f0c0
	- **The user is the king of the data. ** [[local-first]]
	  Simply put, I don't trust putting my notes and my life on any cloud services without End-to-End encryption support.
	- **Logseq doesn't lock the data.**
		- Even though logseq is an outliner tool, it works directly with plain-text like Markdown and Org mode. We believe in plain-text for data longevity, we believe in standard syntaxes and open protocols for better collaboration with the existing ecosystem.
		- Shameless plug, logseq might be the **_first_** app that have two-way sync between plain-text and outliner, yay!
	- **Everyone can build their own workflows**
	  Slip box? GTD? Hierarchical tags? With [[Queries]], [[Advanced Queries]] and coming [[Plugins]], nothing is impossible!
	- **Open Source**
	  As developers, we believe the ultimate fun is to fork the code and do nasty tweaks!
	- **Being different instead of a clone**
		- Bring org mode's task management and many other features to Markdown
		- The first(might be) note-taking app with Git sync on Web (Thanks to [[Isomorphic-git]])
		- The first(might be) note-taking app can work with your local files on Web
		- ` /Page Embed`
		- `/Draw` integration with [[Excalidraw]]
		- `Now Later workflow`
		- Custom queries on journals page
		- Publishing the whole web app to your own website
- **The future**
	- More stable and more performant
	- Better undo/redo #undotree
	- End-to-End encryption storage
	- Mobile apps
	- Real-time collaboration
	- Exploring more ways to help for thoughts
	- Who knows?
- **Thank you everyone for your time, have a great weekend!** 🙏

---

## File: pages/OneStutteringMind.md

- Discord user @Dario
- YouTube channel: https://www.youtube.com/channel/UCz7EgrAosr5FRF3IErGV-yQ

---

## File: pages/Page and block embeds.md

- {{embed [[term/embedded page]] }}
- {{embed [[term/embedded block]] }}

---

## File: pages/Page and block references.md

- Type `[[]]` to create or reference any other page. You can also make a new page in the search bar.
- Type `(())` to reference a block on any page.
- If you want to reference a page or block with custom display label, check out [[term/page link with label]] or [[term/block link with label]]
- related terms:
	- {{embed [[term/page link]]}}
	- {{embed [[term/block link]] }}
	- {{embed [[term/page link with label]] }}
	- {{embed [[term/block link with label]] }}

---

## File: pages/page_embed.md

---
title: Page embed
related: [[Block embed]]
tags: [[embed]]
---

- Also commonly known as transclusion, page embedding allows an entire page to be displayed within another.
- Create a page embed by:
    - Typing `{{{embed [[page name]]}}}`
-
  #+BEGIN_TIP
  - Edits made to the embedded content are also made to the referenced content.
  - Embedding does not contribute to a page's [[Linked References]]
   #+END_TIP

---

## File: pages/PDF highlights.md

-
  #+BEGIN_NOTE
  This only works on the desktop app at the moment.
  #+END_NOTE
- **How to add a PDF file?**
	- There're two ways to add PDF files to your graph:
		-
		  1. Create a new block in any page, drag your PDF file to the new block.
		-
		  2. Type '/upload an asset' and choose your PDF file.
- **How to highlight text?**
	- Click to select some text and choose your favorite color.
		- 
	- Paste (`Cmd/Ctrl + v`) your highlighted reference to any block if you need.
- **How to highlight area?**
	- Press either `Cmd` or `Alt`, click to select an area and choose your favorite color.
		- 
	- Paste (`Cmd/Ctrl + v`) your highlighted reference to any block if you need.
- **Do you have a dark theme for the PDF viewer?**
	- Yes, there're **three** themes.
- **Do you support outline?**
	- Yes.
	  {:height 563, :width 325}

---

## File: pages/pengx17.md

alias:: [[Peng Xiao]]

---

## File: pages/Plugins 01.md

-
  #+BEGIN_CAUTION
  Logseq plugin system is currently work-in-progress. Use with caution~
  #+END_CAUTION
- This guide will walk you through creating a simple Hello World plugin for Logseq.
## Preparations
	- Right now plugin development needs the Logseq desktop app, get the latest one here: https://github.com/logseq/logseq/releases.
	- Click the three-dots menu, go to `Settings` and turn on `Developer Mode`. After that, there will be a `plugins` button inside the menu. Click it to go to the plugin list page.
## Project Bootstrap
	- Create a folder called `logseq-hello-world` and a `package.json` inside.
	- There are three required fields: `name`, `main`, and `logseq`. Leave `name` to `logseq-hello-world` and change `main` to `index.html`. The `logseq` is for plugin configuration. For now just set it to an empty object `{}`. It will look like this:
	-
	  ```json
	  {
	    "name": "logseq-hello-world",
	    "version": "1.0.0",
	    "main": "index.html",
	    "logseq": {}
	  }
	  ```
	- Create an `index.html` as the entry point for our plugin. Usually you'd like to use some front-end build tool to bundle assets for you. For simplicity's reason we just use a single html file in this guide.
## Build the Exciting Plugin!
	- Copy the code below to your index.html:
	-
	  ``` html 
	  <!DOCTYPE html>
	  <html lang="en">
	    <head>
	      <meta charset="UTF-8" />
	      <meta http-equiv="X-UA-Compatible" content="IE=edge" />
	      <meta name="viewport" content="width=device-width, initial-scale=1.0" />
	      <title>Logseq Hello World</title>
	      <script src="https://cdn.jsdelivr.net/npm/@logseq/libs/dist/lsplugin.user.min.js"></script>
	    </head>
	    <body>
	      <script>
	        // Write our code here!
	      </script>
	    </body>
	  </html>
	  ```
	- For a *real* project you'd better install the plugin sdk by running `npm install @logseq/libs`. For our purpose a script tag will do, which will load a global `logseq` object.
	- Replace the comment will the code below:
	-
	  ```javascript
	  logseq.ready(() => {
	    logseq.App.showMsg("Hello World Logseq!");
	  }).catch(console.error);
	  ```
	- The code should be self-explanatory: It registers a callback function to show a message when the Logseq app is ready.
## Run the Plugin
	- In the plugin list page, click `Load unpacked plugin` and choose the `logseq-hello-world` folder. A "Hello World Logseq!" message will show immediately and every time the app launches. Congratulations on writing your first Logseq plugin!
## Next Steps
	- Learn from many plugin samples:
	  https://github.com/logseq/logseq-plugin-samples
	- Ask questions and discuss on Discord: https://discord.com/channels/725182569297215569/752845167030960141
	- The plugin architecture:
	  https://whimsical.com/logseq-plugins-draft-wip-B2iSbFBuWx1S4E4CkJed9y
	- Read the Plugin API documentation: TODO

---

## File: pages/Plugins 02 - Build a mind map plugin.md

- In [[Plugins 01]] we demonstrated how to get started developing Logseq plugins. To recap, the simple steps are:
	- download the latest Logseq app
	- turn on developer mode
	- build a normal web app with JavaScript, HTML & CSS, plus the Logseq plugin sdks: @logseq/libs
	- install the app on the plugins page
- In this guide, we will dive deeper by building a more *real-world* plugin - a mind map app that turns your Logseq page into a beautiful mind map graph.
- The finished code is at https://github.com/logseq/logseq-plugin-samples/tree/master/logseq-mind-mapping. The simplify, in this guide we will only show the most essential part of the code.
## Some Background
	- To build more sophisticated plugins for Logseq, it's better for us to understand a little bit how it works. Currently, each plugin runs in an iframe separate from the main Logseq app. The main app provides some APIs (such as operations on the block, getting app settings) through the SDK to the plugins. The iframe serves as the plugin's UI and can be shown or hidden through related APIs. What's more, the main Logseq app provides ways to *inject* UI elements such as icons or buttons to some specific positions in the main app.
	- That's all, let's get started!
## Preparations
	- As we do in [[Plugins 01]], create a project folder contains a package.json, which contains three required fields: `name`, `main` and `logseq`.
	- In our `index.html` we need to add the scripts that we need:
	-
	  ```html 
	    <script src="https://cdn.jsdelivr.net/npm/@logseq/libs/dist/lsplugin.user.min.js"></script>
	    <script src="https://cdn.jsdelivr.net/npm/regenerator-runtime"></script>
	    <script src="https://cdn.jsdelivr.net/npm/mind-elixir/dist/mind-elixir.js"></script
	  ```
	- The `@logseq/libs` should be obvious. We will use async/await in our JavaScript, hence the regenerator-runtime is needed. Finally, we load the wonderful mind-elixir library to actually draw our mind map.
## Build the Map
	- The first line should be familiar now:
	-
	  ```js
	  logseq.ready(createModel(), main).catch(console.error)
	  ```
	- We register a function `main` to run when the main app is ready. But what's the `createModel` function? Let's see its content:
	-
	  ```js
	  function createModel() {
	    return {
	      openMindMap() {
	        logseq.showMainUI();
	      },
	    };
	  }
	  ```
	- It just returns an object, which contains a method to open the plugin's UI (main UI). *Model* is an important concept in Logseq plugin development. We will later inject a button (or some other UI) into the main app as a template string. Because functions like event handlers can not be passed through string, we need a place for them. And that's what *model* is for. Besides creating them on ready, we can also add the model using the`logseq.provideModel` API.
	- Let's add to the `main` function:
	-
	  ``` js
	    logseq.App.onPageHeadActionsSlotted(({ slot }) => {
	      logseq.provideUI({
	        key: "hook-ui-page-file-mounted",
	        slot,
	        template: `
	            <a data-on-click="openMindMap" 
	               style="opacity: .5; position: relative; top: -3px; padding-right: 8px;"
	               title="Open Mind Mapping Canvas">
	              <i class="iconfont icon-mind-map" style="font-size: 17px;"></i>
	            </a>
	          `,
	      });
	    });
	  
	  ```
	- This code just adds a button in the page head to open our mind map. Notice the `openMindMap` will be called on our `model`.
	- Next, let's build up the UI:
	-
	  ``` js
	    const root = document.querySelector("#app");
	    const displayMap = document.createElement("div");
	    displayMap.classList.add("mind-display", "hidden");
	    root.append(displayMap);
	  ```
	- Because the plugin's UI runs in a separate iframe, we can do anything we want here, without affecting the main APP's UI. Because the map hasn't been built, we will hide it first.
	- Next, we'd like to get all the blocks from the current page. But here's a problem: we don't know if the page is visible or not! Luckily the `logseq.on(ui:visible:changed)` API call will let us register a callback when the visibility of the page has changed.
	-
	  ``` js
	   logseq.on("ui:visible:changed", async ({ visible }) => {
	      if (!visible) {
	        displayMap.classList.add("hidden");
	        displayMap.innerHTML = "";
	        return;
	      }
	  
	    // TODO: build the map! 
	  })
	  ```
	- If the page is hidden, we will hide the map too. If it's visible, we shall build the map:
	-
	  ``` js
	   const blocks = await logseq.Editor.getCurrentPageBlocksTree();
	   initMindMap(displayMap, blocks);
	  ```
	- `logseq.Editor` includes APIs to interact with the Logseq editor and `getCurrentPageBlocksTree` is a powerful one to get back all the blocks of the current page as a tree structure. The tree of blocks is a fundamental data structure of Logseq, with which you can do many powerful things in your plugin.
	- After we get back the blocks tree, we just walk the whole tree and use the elixir-mind APIs to build a connected mind map. The details are not relevant here and are therefore left out. Feel free to check the finished code. Also, load the plugin in your Logseq app and enjoy the beautiful mind map generating from your pages!
## Conclusion
	- In this guide, we walk through building a simple but powerful mind map plugin for Logseq. While the plugin APIs are still work-in-progress, they can already do many powerful things. We invite you to hack them with your imagination. Feedbacks are super welcomed - we will improve the plugin APIs through listening to your voices!

---

## File: pages/Plugins 101.md

- The draft plugins documentation is at https://logseq.github.io/plugins/, any feedback or suggestions are appreciated!
- [[Plugins 01]]
- [[Plugins 02 - Build a mind map plugin]]

---

## File: pages/Publishing (Desktop App Only).md

---
title: Publishing (Desktop App Only)
---

- To provide the best publishing experience, Logseq at this moment only supports publishing on the desktop app.
- How to publish?
	-
	  1. Click the page titles that you wish to publish, select "Make it public for publishing" in the right pop-up menu.
		- 
		- You can also choose to make all the pages public by navigating to [[Settings]] -> Editor and enabling the option "All pages public when publishing."
			- 
	-
	  2. Click the top-right three-dots and select `Export graph`. Then select a folder, and Logseq will export all the files needed for publishing there.
		- 
	- 3. The exported assets basically make up a web application, when runs Logseq with your public pages, in read-only mode. After exporting, if you are on Linux-like environment, you can `cd` into the export folder and run `python -m SimpleHTTPServer`. Voilà🎉, you can now visit the published graph at `localhost:8000` in your browser.
	- 4. Of course publishing your beautiful graph on localhost only is not that fun. Since we have all the assets now, publish them on platforms like [Github Pages](https://docs.github.com/en/pages/getting-started-with-github-pages/creating-a-github-pages-site) and [Vercel](https://vercel.com/docs) is straightforward. Below is a video tutorial on how to publish Logseq pages to Github Pages.
		- {{youtube https://www.youtube.com/watch?v=nf9MyWRratI}}
	- Here're some links might be useful:
		- 1. [Creating a GitHub Pages site](https://docs.github.com/en/github/working-with-github-pages/creating-a-github-pages-site)
		- 2. [Introduction to Vercel](https://vercel.com/docs)

---

## File: pages/queries.md

- **What are "Queries"?**
  created_at:: 1609230242742
  updated-at:: 1609247076654
    - Queries are for asking questions from your knowledge base and the outside world (in the coming weeks).
      updated-at:: 1609231528688
      created_at:: 1609230243642
      [:div [:img {:src "https://cdn.logseq.com/%2F5ff0a01d-47d4-487d-b346-4a43ded21ad02020_12_29_photo-1444703686981-a3abbc4d4fe3.jpeg?Expires=4762830816&Signature=h~yT-Tq1VtBtEm09Z78eT5kkEbQGUVG-VBEDuGLgykW8vb~AkZNuoRNmwL-fcHgnG8HdYBhqXeJowN9q3my4UN1bxiJtAXl0dAEjmWAqpbedH9PPdyz2tZXcuPxwdk5wICFLrB~0VWMwV02LFZEKkgPYGhkUU8oakBphifgvTdYPKLQG95FTJh9kg7GhV5ZCc1Q3JrOlLGG2fuUObf1opScwbNbEdsQStO8Ou12AaTPccAmpxAJVuut-jZ9pRvdsa00X962QD9c67BEw1SfhKEcChNIbdp~44ltuRj1Bvc1Bs2ezKupQ1sWFD5BG97UEA7GuOyANjPC331ShW8aHSQ__&Key-Pair-Id=APKAJE5CCD6X7MP6PTEA"}]]
      [:div.text-sm "By " [:a {:href "https://unsplash.com/photos/oMpAz-DN-9I" :target "_blank"} "Greg Rakozy"]]
- **How to write queries?**
  created_at:: 1609231967174
  updated-at:: 1609251558592
  id:: 5feb30e3-fedc-4c2a-aa03-b44020c21c68
    - There're two kinds of queries:
      created_at:: 1609237373442
      updated-at:: 1609244684831
      1. Simple queries by using `{{query }}`, the format is something like this:
       #+BEGIN_EXAMPLE
       {{query Something you're looking for}}
       #+END_EXAMPLE
       You can type `/query` to create a simple query.
      2. [[Advanced Queries]]
- **Simple Queries filters**
  created_at:: 1609237391135
  updated-at:: 1609237391135
    - **and**
      created_at:: 1609237410438
      updated-at:: 1609242191381
      Examples:
      #+BEGIN_EXAMPLE
      (and [[page 1]] [[page 2]])
      #+END_EXAMPLE

      #+BEGIN_EXAMPLE
      (and (todo now later done) [[page]])
      #+END_EXAMPLE
    - **or**
      created_at:: 1609237412110
      updated-at:: 1609242378334
      Examples:
      #+BEGIN_EXAMPLE
      (or [[page 1]] [[page 2]])
      #+END_EXAMPLE
    - **not**
      created_at:: 1609237413167
      updated-at:: 1609243244686
      Examples:
      #+BEGIN_EXAMPLE
      (not [[page 1]] [[page 2]])
      #+END_EXAMPLE
    - **between**
      updated-at:: 1609243879053
      created-at:: 1609237415572
      The format `(between start end)` will only support blocks on the journal pages.

      There're several built-in symbols:
       1. `today|yesterday|tomorrow|now`
       2. `+|-` number `y|m|w|d|h|min`

      Examples:
      #+BEGIN_EXAMPLE
      (between -7d +7d)
      (between -2w today)

      #+END_EXAMPLE
    - **Page**
      Examples: [[questions]]
      {{query (and (page "Page Alias"))}}
    - **property** [[Block properties]]
      created_at:: 1609237428110
      updated-at:: 1609247365218
      Examples:
      {{query (property type book)}}
    - **Full-text query**
      #+BEGIN_NOTE
      It's only enabled on the desktop app at the moment.
      #+END_NOTE
      Examples:
      {{query "alias"}}
    - **todo**
      created_at:: 1609237429937
      updated-at:: 1609242962513
      Examples:
      #+BEGIN_EXAMPLE
      (todo now)
      (todo now later)
      #+END_EXAMPLE
    - **priority**
      created_at:: 1609237434982
      updated-at:: 1609242958502
      Examples:
      #+BEGIN_EXAMPLE
      (priority a)
      (priority a b c)
      #+END_EXAMPLE
    - **page-property**
      created_at:: 1609237443550
      updated-at:: 1609243687213
      Example:
      {{query (page-property related "Block embed")}}
    - **page-tags**
      created_at:: 1609237445606
      updated-at:: 1609243746666
      Example:
      {{query (page-tags embed)}}
    - **all-page-tags**
      created_at:: 1609237447926
      updated-at:: 1609243762970
      Example:
      {{query (all-page-tags)}}
    - **sort-by**
      updated-at:: 1609243222016
      created-at:: 1609237456009
      Format: `(sort-by key order)` or `(sort-by key)`
      `key`: `created-at`  | `updated-at`
      `order`: `desc` or `asc`, omit means `desc`.
      #+BEGIN_EXAMPLE
      (and (todo now later) (sort-by created-at desc))
      #+END_EXAMPLE
- **More query examples**
  created-at:: 1609232210837
  updated-at:: 1609243310412
    - 1. Find the blocks containing page "tag1"
      created-at:: 1609232870139
      updated-at:: 1609233755992
      #+BEGIN_EXAMPLE
      {{query [[tag1]]}}
      #+END_EXAMPLE
      {{query [[tag1]]}}
    - 2. Find the blocks containing both `tag1` and `tag2`
      created-at:: 1609233702047
      updated-at:: 1609233790865
      #+BEGIN_EXAMPLE
      {{query (and [[tag1]] [[tag2]])}}
      #+END_EXAMPLE
      {{query (and [[tag1]] [[tag2]])}}
    - 3. Find the blocks containing either `tag1` or `tag2`
      created-at:: 1609233864422
      updated-at:: 1609233864422
      #+BEGIN_EXAMPLE
      {{query (or [[tag1]] [[tag2]])}}
      #+END_EXAMPLE
      {{query (or [[tag1]] [[tag2]])}}
    - 4. Find the blocks containing `tag2` but not `tag1`
      created-at:: 1609234732407
      updated-at:: 1609236840152
      {{query (and [[tag2]] (not [[tag1]]))}}
    - 5. Find journal blocks created between [[Dec 5th, 2020]] to [[Dec 7th, 2020]]
      created-at:: 1609242222695
      updated-at:: 1609242323029
      {{query (between [[Dec 5th, 2020]] [[Dec 7th, 2020]] )}}
    - 6. Find all the blocks created today (you need to enable [[block timestamps]] before using this query)
      created-at:: 1609235122723
      updated-at:: 1609249085047
      #+BEGIN_EXAMPLE
      {{query (between created-at today tomorrow)}}
      #+END_EXAMPLE

---

## File: pages/Refactoring_of_logseq.md

---
title: The Refactoring Of Logseq
---

- We have been worked the refactoring of Logseq since about two months ago. Below I am going to talk bit about it.
- Why does Logseq need refactoring?
  
  Logseq was a side project for providing outliner features on org-mode and markdown files by @tiensonqin. Since it was released, many people like it a lot.  With the needs grew,  @Tiensonqin add many new features with happiness .  Compared to other outliner note-taking apps, Logseq has a lot of manipulation around files, characters, and bytes. It led to that codebase quickly grew into such situation -- many functions operate directly on raw string, as the design was easy to implement. With the increasing features, we encountered our problems.
  
  Most operations are around strings and their positions. When you create, update, delete a block, Logseq had to calculate the start-and-end positions, levels and updating the following blocks' positions and levels. In the beginning, we could make it correct by being careful. However, the software complexity grows incredibly fast. When we indent or outdent the blocks in batches,  drag a block tree, drop it into another position, or undo and redo the previous operations,  we still had to calculate the block's position and level, same as the children blocks' and the following blocks'. Even worse, we need to deal with Unicode characters, like CJK characters, which may occupy 3 or 4 bytes and hardly be calculated right at sometimes. Calculation based on raw strings was the main problem at that time.
  
  With the daily growth complexity, some other problems also need to solve, or these things will be another technical debt. A severe problem, I think, is that there are no apparent boundaries between modules, or say, the granularity of the modules is too coarse. It led that there was no mechanism to isolate errors when other modules failed. When a user filed a bug, it may lay in a wide range, which was very difficult to find out, and some minor bugs also might cause a dead error.
  
  The complexity and no boundaries pulled the developer's legs. To my surprise, I found that supporting Markdown & org-mode might already be our limit that Logseq can support. 
  
  Now it's time to do something to improve, which I think they are reducing complexity, distinguishing the module boundary clearly, and improving stability and scalability.
  
  Below is the architecture before refactoring.
  
  
- What have we done?
  
  Let me post a new architecture first.
  
  
    - Extract a Logseq Core
      
      Logseq team is going to keep a small team for a long time. It requires us to focus on a minimal scope to achieve out goals----high quality, stable and scalability, rather than implementing all the features. The small scope is what we call Logseq core. For the other features, we will utilize the plugin system to satisfy.
      
      The most critical component in Logseq Core is the outliner. Let's take some more time to talks about it.
        - Outliner
          
          If taking the previous design, we'll continuously have to deal with the headache strings and bytes and hardly optimize it. So, we need to seek another solution. We should move all the string and byte calculations out of the outliner logic in the first step. So we had moved the logic of serialization and deserialization of a block into plugins. Doing this brings another significant benefit: we can easily implement multiple persistent storages such as markdown files, org-mode files, AsciiDoc files, or SQLite, etc., by just writing different serialize & deserialize adaptors. The outliner module, which is the main component of Logseq Core, only receives and sends meaningful structured data that have been deserialized or will be serialized. Then, we need to decide how to organize the relationship between blocks. Assuming that we have some blocks:
          
           
          
          The relations in Logseq looks like a tree in the picture below (the picture below is from the Internet) :
          
           [](/refactoring-of-logseq/tree.png)
          
          At the very beginning, I proposed a data structure to organize the block relations. After a long discussion (about costs & benefits & whether it fit us and ...), other workmates confirmed its feasibility. Then it became the most fundamental part of outliner operation in Logseq until now, and it's straightforward.
          
          Relations:
          
          |    Node id   | parent_id | left_id |...|
          | ----------- | ----------- | ----------- |-----------|
          | 1      | nil       | nil |...|
          | 2   | 1        | 1 |...|
          | 7   | 1 | 2 |...|
          
          Let's dive into the outliner operation. We briefly show how to make block CRUD here.
          
          * Create a new block
          
          We will create a block record when adding a block. We assume the block's ID is 13 and between 2 and 7.
          
          Logseq should set 13's parent_id as 1, and left_id as 2, then update 7's left_id to 13.
          
          * Update block's content
          
          We only need to update the block record—no need to update relations.
          
          * Delete a block
          
          Assuming we want to delete block 7, we need to delete the block record and update 8's left as 2.
          
          * Move a subtree
          
          Assuming we want to move subtree (3,4, 5) to a position where is between 2, 7. We only need to update 3's parent_id as 1, 3's left_id as 2, then update 7's left_id as 3.
          
          The other day, somebody told me that some of others use `children` and `order` (abbr: order-solution for convenience) rather than `parent_id` and `left_id`(abbr: left-solution for convenience) to process the relation of blocks, and I might think about it. (PS: Datascript can only save look-refs as `set` rather than `vector`.)
          
          I thought that left-solution is still simpler and more efficient in our case. When inserting a block in the middle of sibling nodes, order-solution needs to update the whole following siblings' order number; And when moving a subtree as a child to another parent, order-solution needs to update the following order numbers on both sides. If a block has a large number of children, the calculation will be very impressive.
        - Concepts
          
          Logseq has three main concepts, which are graph, page, and block. A page maps to a single file on the file system. After refactoring, page becomes one type of block. It brings some benefits.  It won't necessarily be related to a file or other thing inside storage. It becomes more abstract and general. It is just the root of a block tree. The whole graph is a big tree of blocks,  and the page is a normal node in it representing a specific collection of blocks. Moving a block or some blocks from a page into another page is a natural moving-subtree operation.
        - Hooks
          
          The outliner is very simple, so we should find a way to enhance the ability of Logseq to meet various demands. Hook is our final choice. Hooks can plug in the whole lifecycle of outliner operations. For example, we have provided a hook point for reading the block data when a new block inserts or block changes and a hook point to save block when it receives valid block data. These two hooks could provide the ability to connect arbitrary persistent storage,  which including but not limited to Markdown, Org-mode, SQLite, Elasticsearch, and so on.  Another example is, we have provided a hook that is invoked when the Logseq on load. The Logseq plugin authors can utilize the hook to design widgets, custom the themes, or whatever the user has been privileged. 
          
          The hook is a middle layer between outliner and plugins. There will be many hooks,  I hope they will make Logseq more powerful.
    - Build Logseq Plugin Core and Official Plugins
      
      I think Official Plugins and Developer Plugins almost have the same ability. Only under these two conditions, Logseq team might provide the plugin: 
      
       * The plugin might be related to user data security. 
       * The plugin could provide a more complete user experience out of the box. For example, we provide the Markdown, org-mode storage plugin.
      
      Logseq Plugin Core is an abstract layer for Developer Plugins. The related API details are also coming soon.
- Conclusion
  
  Logseq team is going to refocus on Logseq Core and nail the foundation. I hope we can build a reliable, flexible, and minimal core and bring us a new experience.  The outliner's implementation is side-effect-free and straightforward, and we'll add more tests to make it more robust; The plugin system will bring us more possibilities to meet our needs. We hope you like it.

---

## File: pages/setting.enable journals.md

- An empty journal file is created by default each day.
- You can disable that with this setting toggled off.

---

## File: pages/setting.enable logical outdenting.md

- Logseq supports two styles of outdenting behaviors, you can toggle between those in `Enable logical outdenting` setting of the `Settings` page
	- traditional outdenting (default) (mostly used in Google docs, MS Word, etc)
	  [traditional](https://discuss.logseq.com/uploads/default/original/1X/6a19eaeb09a6fc7a70244fdc823d5048690d6756.gif)
	- logical outdenting (mostly used in Roam)
	  [logical](https://discuss.logseq.com/uploads/default/original/1X/512ddff020e729cf0e48c999abaac6dc3650fe9c.gif)
- More discussion of this is [here](https://discuss.logseq.com/t/whats-your-preferred-outdent-behavior-the-direct-one-or-the-logical-one/978)

---

## File: pages/setting.enable timetracking.md

- Logseq has built in ((60af74c1-62f8-434a-827c-abc6d2a71734)) enabled by default, and you can disable it from `Settings` page

---

## File: pages/setting.enable tooltip.md

- Logseq has built-in **editable hover preview** feature **enabled** by default.
  If you'd like to disable the preview popup, toggle this setting via `Settings` page

---

## File: pages/setting.language.md

- You can set your language preference via `Settings`
- Logseq currently supports:
	- English
	- French
	- German
	- Afrikaans
	- Simplified Chinese
	- Traditional Chinese
- Related:
	- [[Internationalization]]
	- {{embed ((60acdebb-9142-431f-907c-3ad0e6fc0148)) }}

---

## File: pages/setting.preferred file format.md

- You can set your preferred file format for creating new page.
- This setting in `Settings` page works globally across different graphs.
- If you'd like to override this setting on a per graph level, check out `:perferred-format` in [[config.edn]]
- Options:
	- `Markdown`
	- `Org` for org-mode

---

## File: pages/setting.preferred journal format.md

- You can set your preferred daily journal date format via `Settings` page
- Alternatively, you can add it in [[config.edn]]
	- {{embed ((60acdeb9-aa65-492b-8398-d4d65c1631c1))}}
	- Add your favorite date-formatter to [[config.edn]]:
	  #+BEGIN_SRC clojure
	  :date-formatter "yyyy-MM-dd"
	  #+END_SRC
	  Currently, logseq support:
	  #+BEGIN_SRC clojure
	       "MMM do, yyyy"
	       "E, MM/dd/yyyy"
	       "E, yyyy/MM/dd"
	       "EEE, MM/dd/yyyy"
	       "EEE, yyyy/MM/dd"
	       "EEEE, MM/dd/yyyy"
	       "EEEE, yyyy/MM/dd"
	       "MM/dd/yyyy"
	       "MM-dd-yyyy"
	       "MM_dd_yyyy"
	       "yyyy/MM/dd"
	       "yyyy-MM-dd"
	       "yyyy_MM_dd"
	       "yyyy年MM月dd日"
	  #+END_SRC

---

## File: pages/setting.preferred workflow.md

- this setting allows you to toggle between workflow style:
	- `NOW/LATER` (default)
	- `TODO/DOING`
- check [[Tasks & Todos]] to learn more

---

## File: pages/setting.send usage data and diagnostics to logseq.md

- Logseq neither collect your local graph data nor sell your usage data.
- However Logseq do use third part services like [Sentry](https://sentry.io/) for error collecting and product analytics purpose. The data is masked without any personal information that can trace back to you. And would help us tremendously for debugging existing product issues.
- If you'd like to opt out, you can leverage this option to toggle it off in `Settings` page.

---

## File: pages/setting.show brackets.md

- You can leverage `show brackets` setting to toggle whether display brackets or not
- Alternatively press `Ctrl-c Ctrl-b` (Cmd for mac) to toggle this setting when not in text editing
- demo:
    - [[example1]]
    - [[example2]]
    - 
      id:: 60af5ad1-4f48-4102-a879-baa65b45a10d

---

## File: pages/setting.theme modes.md

- Logseq comes with three default theme modes:
	- `light` mode
	- `dark` mode
	- `system` mode will choose between `light` and `dark` mode based on your operating system's theme mode
- You can toggle between `light` or `dark` mode with command `t t` when not in text editing
-

---

## File: pages/Settings.md

- How to open settings?
	- Click the top-right three-dots button to expand menu list and select `Settings`
	- Or type `t s` command to toggle the `Settings` menu when not in text editing
- {{embed [[Basic settings]] }}
- [[config.edn]]

---

## File: pages/slide.md

---
title: slide
---

- Logseq's slide feature is powered by the awesome [Reveal.js](https://revealjs.com/).
  background-image:: https://images.unsplash.com/photo-1498855926480-d98e83099315
- **How to use it?**
    - 1. Go to a specific non-journal page, click the slide icon right next to the file link.
      It'll open the current page's slide in the right sidebar.
    - 2. Press `f` to open the slide in _fullscreen_ mode.
- **Questions**
    - 1. How to add a background image for a block?
        - Add a `background-image` property #[[Block properties]] 
          #+BEGIN_EXAMPLE
          background-image:: https://images.unsplash.com/photo-1498855926480-d98e83099315
          #+END_EXAMPLE
    - How do I set other attributes?
        - Replace the attribute name `data-xyz` with `xyz`.

---

## File: pages/Spaced Repetition.md

-
  #+BEGIN_QUOTE
  Spaced repetition is an evidence-based learning technique that is usually performed with flashcards. Newly introduced and more difficult flashcards are shown more frequently, while older and less difficult flashcards are shown less frequently in order to exploit the psychological spacing effect. The use of spaced repetition has been proven to increase rate of learning.
  #+END_QUOTE
	- From https://en.wikipedia.org/wiki/Spaced_repetition.

---

## File: pages/Start here.md

- ## Introduction
	- Logseq looks simple on the surface and is extremely powerful under the hood. Much like the famed Microsoft Excel, Logseq aims to be an environment for thinking. Excel's fuel are blocks of numbers, **Logseq's fuel are blocks of words**.
	- It takes time to master this tool, as Logseq doesn't impose a way of working. But once you figure out how to get your desired end results, **Logseq will help you become a much more effective thinker.**
	- To help you get started figuring out the workflows that work for you,  we will take you through all of Logseq's core features. See them as tools in your toolbox; individually a tool will do little, but once you learn to use them in combination you can become an artist. **Aim to be a knowledge artist.**
	- Before we dive into the overview of Logseq's functionality, let's first dig a bit deeper into what makes Logseq special. As we said before; Logseq looks simple on the surface. But looks can be deceptive.
- ## What makes Logseq special?
	- **Logseq is an outliner.** Each bullet is a block, which you can best compare to a paragraph. Because Logseq is an outliner, every paragraph in Logseq is preceded by a bullet. Need more than a single paragraph? Create _branches_ by grouping related blocks.
	- **Logseq is a _networked_ outliner.** You can connect any block, from anywhere in your notes collection. Creating copies of blocks is as easy as dragging your mouse. Remix your ideas in new outlines in minutes. Everything in Logseq is about the block; throughout this guide we'll see the opportunities of this concept.
	- Logseq is different compared to traditional note-taking apps. Most notes tools try to emulate paper and folders, meaning that each note is located in precisely one folder. This makes remixing your notes difficult, and often leads to having several copies of slightly different notes. Logseq aims to solve this so you can focus on doing your best thinking.
	- In the coming lessons we’ll dive deep into what this freedom of information enables us to do. For now it’s enough to understand that **every bullet is a block** and that it can connect to any other block or collection of blocks (pages).
	- 
- ## Common use cases for Logseq
	- **Logseq does not impose a way of working.** Structure the tool in a way that matches _your_ way of thinking. By writing, grouping, and linking blocks, you create your own information structures. But if you just start out, you shouldn't worry too much about structure. **In Logseq, structure can _emerge_.**
	- Before you move your entire personal knowledge management system to Logseq, let's see what are some use cases to get started. We recommend you start small to see if you can shape Logseq to your way of thinking. As you become more proficient, you'll start to see the possibilities to use Logseq more.
	- Two common ways to get started with Logseq are note-taking and task management. With these core workflows and Logseq's features, you can support any other workflow for research, writing, or even running entire projects:
	- ### Note-taking
		- The absolute best way to get started with Logseq is by writing everything on the daily Journals page. Not only does this take away the decision on where to store a note, you can easily go back in time to revisit your notes.
		- Because it's so easy to link in Logseq using the `[[double brackets]]` or the `/` menu, it doesn't matter where your notes are stored. You can easily link to anywhere in your notes collection, which is why proficient Logseq users write 99% of the time on their journals page. This is not the only way to use Logseq (remember: you can shape it any way you want), but it definitely is the best way when you just get started.
		- By using Logseq as a daily log, you quickly collect notes on a variety of topics. Most users start out by taking notes during meetings, to track tasks, or even manage entire projects. Logseq is also popular among researchers and writers. Synthesizing information is a joy as collecting and remixing blocks is easy.
	- ### Task management
		- As you write in Logseq, you might think of tasks you need to do later.  While you may use a dedicated tasks tool, a common use case for Logseq is task management.
		- **Combining your notes and tasks is a breeze in Logseq.** Not only can you create tasks, you can also track how much time you spend on them, and even create automated workflows using priorities or other tags.
		- Are your tasks mixed with your notes? No problem! [[Queries]] are a powerful way to resurface tasks and other information. But even as a beginning Logseq user can you benefit from tasks as you write on your daily Journals. To send a task to your future self, simply add a date link to quickly offload things from your mind (hint: type `/date picker` and hit `Enter` to easily add a future date to a task).
		- Once tasks start to cluster around projects, Logseq also has you covered. With the block-based approach, creating pages for projects is as easy as stacking blocks. And when you learn to use Logseq's powerful queries, you can effortlessly create dynamic indexes or task dashboards.
	- After seeing how others leverage Logseq's feature, you've hopefully started thinking of some of your own use cases. We recommend you continue following the rest of this starter guide to learn the core 20% functionality that will provide you with 80% of your wanted returns.
	- If you get stuck at any moment or if you just want to connect with fellow Logseq enthusiasts, [**join the Logseq Discord server**](https://discord.gg/sVsJdzJghp). There you'll always find someone friendly who's willing to help you better understand a Logseq feature or workflow. We look forward to getting to know you!
	- For now, let's get started by creating a graph.
- ## Create a graph
	- In Logseq, a collection of notes is called a _graph_. No need to worry if you don't know what a graph is or if you're not familiar with databases in general. All you need to know is that a graph is a collection of notes that are connected, i.e. there are links pointing between the notes.
	- As you progress through this starter guide, you'll see the power of the different ways of linking in Logseq. Through the links between your notes, you create a network. Not only does this network make finding notes easy, but the connections between different notes will provide a lot of value in themselves. More on that later.
	- For now, decide how you want to start using Logseq:
		- [>> Start by creating a new Logseq graph]([[How to create a new graph]])
		- [>> Start by creating a Logseq graph using existing Markdown files]([[How to create a Logseq graph using existing Markdown files]])

---

## File: pages/Tasks & Todos.md

- Logseq comes with two built-in flavors to mark your block with built-in workflow mark keywords and manage your tasks:
  + `LATER` -> `NOW` -> `DONE` flavor (default)
  + `TODO` -> `DOING` -> `DONE` flavor 
  + You can toggle between those two flavors in setting page
- There're two ways to attach workflow mark to your task(block)
	- when editing the block, press `Ctrl/Cmd+enter` to cycle through the workflow mark
	- type these mark as command directly, eg `/LATER` `/NOW` `/DONE` `/TODO` etc..
	- Some examples:
	  todo:: 1621908710666
		- LATER do grocery
		- NOW play with Logseq
		- DONE watch Doctor Who
- Logseq also comes with three built-in priority mark to help you manage with task priorities
	- {{embed ((60ac5b08-d4bb-49de-b415-e63fcf29c59f)) }}
	- Example:
		- LATER [#A] research balalah is a top priority
		- LATER [#C] do grocery has lowest priority
- Deadline and Scheduled
	- You can leverage command `/Deadline` to setup a deadline for your task
		- eg: finish reading 1984 by 29th of May
		  DEADLINE: <2021-05-29 Sat>
	- You can leverage command `/Scheduled` to setup a scheduled task
		- eg: send John a birthday card Monday
		  SCHEDULED: <2021-05-31 Mon>
	- Both of above commands support to mark the task as repeated:
	  after typing the command and click `Add repeater` in the date picker
		- eg: daily exercise routine at 7am
		  SCHEDULED: <2021-05-26 Wed 7:00 .+1d>
- Time tracker
  id:: 60af74c1-62f8-434a-827c-abc6d2a71734
	- {{embed ((60acdeba-b3fd-4f90-ab54-3093caa4d5fa))}}
	- you can toggle this off by [[setting/enable timetracking]]

---

## File: pages/Templates.Docs.md

title:: Templates/Docs

- <% today %>
  template:: Changelog
	- [[Features]]
		-
	- [[Thanks]]
		-
	- [[Fixed issues]]
		-
	- [[Enhancement]]
		-
-

---

## File: pages/templates.md

- You can make a block and its children as template for reuse purpose.
- For example, let's create a meeting note template block as below for reuse:
	- MEETING TITLE
	  author:: logseq
	  project:: to-be-filled
	  tag:: to-be-filled
	  template:: meeting
		- <%today%>
		- [[Meeting Tasks]]
			-
			-
			-
		- discussion
		- related notes of same project
		  {{query (property project change-me-later)}}
- There're two ways to make above block and its children as template:
	-
	  1. You can right click the block dot and click "Make template" to give it a name:
	  
	-
	  2. Or you can add [[term/properties]] of `template` with its name directly:
	  
- To use the template, simply type `/Template` command and choose the name of template:
  
- other resources to learn how to template:
	- [[Cobblebot]] contributed this wonderful [tutorial from forum](https://discuss.logseq.com/t/templates-how-to-create-edit-and-insert/200)
	- this great video from [[OneStutteringMind]] also shows how to use templates (note the property syntax in this video is no longer used, check [[term/properties]] for latest syntax)
	  {{youtube https://www.youtube.com/watch?v=l4keRsRFnuc}}
- [[Dynamic Variables]] support
  id:: 60311eda-b6f7-4779-8187-8830545b3a64
	- **Notice:** [[Macros]] support dynamic variables too
	- **Syntax:** `<% something %>`
	- **Supported variables:**
		- `today` => `[[Today's journal page]]`
		- `yesterday` => `[[Yesterday's journal page]]`
		- `tomorrow` => `[[Tomorrow's journal page]]`
		- `time` => `Current time`, e.g. 22:44
		- `current page` => `[[Current page]]`
		- [Natural language date](https://github.com/wanasit/chrono)
		  id:: 60312078-ae36-4395-bdfb-747304b80c03
		  `Last Friday` => `[[Feb 12th, 2021]]`
			-
			  #+BEGIN_QUOTE
			  - Today, Tomorrow, Yesterday, Last Friday, etc
			  - 17 August 2013 - 19 August 2013
			  - This Friday from 13:00 - 16.00
			  - 5 days ago
			  - 2 weeks from now
			  - Sat Aug 17 2013 18:40:39 GMT+0900 (JST)
			  - 2014-11-30T08:15:30-05:30
			  #+END_QUOTE
			  Examples from https://github.com/wanasit/chrono
- [:code "template-including-parent:: false"] is a template property to indicate whether to include the top level content of selected block template
	- example:
	  id:: 60a790f8-d187-499a-b2e2-73bf137356dd
		- i'm included by default in template-example-1
		  id:: 60a79104-bd2b-486c-bb9e-9d264650ce1f
		  template:: template-example-1
			- line1
				- line2
		- i'm not included because of template-including-parent setting
		  template:: template-example-2
		  template-including-parent:: false
			- line1
				- line2

---

## File: pages/term.alias.md

alias:: page alias
example:: above is markdown example

- description:
  - an alternate page ID or page title
  - page references with the alias will automatically redirect to the original page
- produced by:
  - a page title can be given aliases by adding frontmatter(aka `first block of any page`) to the page properties
    - Markdown:
      ``` markdown
      alias:: page1, page2
      ```
    - org-mode:
      ``` org-mode
      #+ALIAS: page1, page2
      ```

---

## File: pages/term.backlink.md

- description:
	- A Logseq page link for a page that links to a currently displayed page, whether it has focus or not.
	- A list of backlinks are presented in a particular location or frame, and “backlinks” refers to the page links in this area only.
- produced by:
	- Automatically created by Logseq.
	- Create a backlink by  surrounding a word or sentence with a pair of square brackets e.g `[[logseq]]`. Typing `[[` will initiate page auto-completion.
- example:
	- this is a backlink to [[Glossary]]
-
  #+BEGIN_TIP 
  * Clicking a backlink will open the linked page in the main window
  * Shift + clicking a backlink will open the linked page in the sidebar
  * Opening a backlink to a page which does not currently exist will create a new page with the backlink text as its title
  * The [[Unlinked References]] list located below [[Linked References]] on a page displays potential backlinks, files which refer to the page but do not have a relevant backlink present.
   #+END_TIP

---

## File: pages/term.block ID or page ID.md

- Logseq will **always** generate a unique UUID for both your block or page, so that you can manually embed it or navigate to it (by copying and pasting the ID yourself).

---

## File: pages/term.block link with label.md

- description:
	- a clickable link that will take you to a particular Logseq block
- produced by:
	- putting a block link inside markdown link syntax like this: 
	  {{embed ((60ab6f5b-a01f-44eb-8d4a-fb8ca1893dcf))}}
	- putting a block link inside org-mode link syntax like this:
	  {{embed ((60ab6f5b-eb43-422b-9e89-0969670af709))}}
- example:
	- this is a markdown block link with display alias:
	  [apple](((60a78e9e-59dc-40ab-9a01-5317dc09365f)))

---

## File: pages/term.block link.md

- description:
	- a clickable link that will take you to a particular Logseq block
- produced by:
	- putting a [block reference]([[term/block reference]]) `60a7bce1-7124-49d6-ad6a-29da1ef64f6f` inside double brackets `(())`

---

## File: pages/term.block reference.md

- description:
	- a unique [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier) code assigned to each block with 32 hexadecimal characters and 4 hyphens, eg: `123e4567-e89b-12d3-a456-426614174000`
	  id:: 60a7bce1-7124-49d6-ad6a-29da1ef64f6f
- produced by:
	- automatically produced by Logseq
	-
	  #+BEGIN_NOTE
	  do not edit those UUIDs manually
	  #+END_NOTE

---

## File: pages/term.block rendering.md

- description:
  - blocks in editing mode are shown in plain text while in that mode but are “rendered” to show different styling for ease of use when not in editing mode
- produced by:
  - block rendering occurs automatically when not in editing mode
  - press `Esc` to quit editing mode

---

## File: pages/term.block title.md

- description:
  id:: 60a77d63-7340-4c1d-8bbc-68bd4e49fc6c
  - the text content in a block that comes before the first line break in the block (if there is no line break in the block, the full block content counts as the title)
- produced by:
  - entering any content into a block
- example:
  - i'm the block title as i'm in first line
    id:: 60a77275-b9e5-42ee-9152-bdb04567d1e4
    i'm not block title, i'm block content
    i'm not block title, i'm block content
    i'm not block title, i'm block content
  - ((60a77275-b9e5-42ee-9152-bdb04567d1e4))
    block reference default display the block title as you can see

---

## File: pages/term.block.md

- description:
  - the smallest unit of content in Logseq that you can link to
- produced by:
  - new pages are created with one block
  - additional blocks are created by typing either Enter or Shift+Enter (user-configurable setting) while editing an existing block

---

## File: pages/term.bullet.md

- description:
  - small circle to the left of text or other content, bullets are put to the left of block and embeds, but can also be entered within blocks using appropriate text syntax
- produced by:
  - bullets for blocks and embeds are created automatically by Logseq
  - bullets within blocks are produced by starting any text following an internal line break with a +, or * followed by a space
- example:
  -
    + bullet within blocks +
    * bullet within blocks *

---

## File: pages/term.editing mode.md

- description:
  - Unlike WYSIWYG editors, Logseq offers two modes to display text: editing mode and non-editing mode.
  - Editing mode differs from non-editing mode in these ways:
    - Users can only add or edit text to a block when a block is in editing mode (exception: some operations such as copy and paste allow adding or editing text in non-editing mode).
    - Block text is not rendered when in editing mode.
    - Some information, such as block references and link syntax, are shown only in editing mode.
- produced by:
  - enter editing mode by putting the cursor in a block,
    - either by clicking with the mouse, navigating using the keyboard, or hitting `enter` while a block is highlighted and selected

---

## File: pages/term.embedded block.md

- description:
	- shows a block from one Logseq page within a block of a different page and is marked by a different colored background.
- produced by:
	- an embedded block is produced by typing /embed, selecting Block embed, and pasting the block ref at the default cursor location. The result, in editing mode, will be something like this: `{{embed ((60011009-ddd9-4a8c-8925-37249791f525))}}`
- example:
	- type `/Block Embed`
	- {{embed ((60a77d63-7340-4c1d-8bbc-68bd4e49fc6c)) }}

---

## File: pages/term.embedded page.md

- description:
  - shows one Logseq page within a block of a different page and is marked by a different colored background
- produced by:
  - an embedded page is produced by typing /embed, selecting Page embed, and pasting the page reference at the default cursor location. The result, in editing mode, will be something like this: `{{embed [[term/page]]}}`
- example:
  - type `/Page Embed`
  - {{embed [[term/page]]}}

---

## File: pages/term.file link.md

- description:
	- a clickable link that will take you to a file outside Logseq (or render image)
- produced by:
	- putting a file path inside markdown syntax like this: `[link text](file://filepath/myfile)`
	- alternative markdown image link syntax (will render image upon block rendering)
	  {{embed ((60aba887-96f4-461f-a9f0-d205d766d78b))}}
	- putting a file path inside org-mode syntax like this:
	  {{embed ((60aba888-5cf4-4cb0-94df-1e4a07b3af34))}}

---

## File: pages/term.graph.md

- description:
  - a discrete collection of notes and other content. Logseq repositories contain individual files, a database that relates those files.
- produced by:
  - Logseq graphs are created by connecting Logseq with an existing folder or online repository.

---

## File: pages/term.internal line break.md

- description: a line break within a block
- produced by:
  - users can set Logseq to either of the following behaviors:
    - (default) `Enter` creates a new block and `Shift-Enter` creates an internal line break
    - `Shift-Enter` creates a new block and `Enter` creates an internal line break
    - In non editing state, user can press `t e` to toggle between those two behavior

---

## File: pages/term.network of connected ideas.md

- description:
  - Your Logseq repository contains content (ideas, facts, references, etc.) that are linked together. You can think of the network as a a connection of blocks and pages that act as network “nodes” that are linked together using certain text markers (such as `[[ ]]` and `(( ))` and `{{embed}}` much like the network of linked neurons in your brain.

---

## File: pages/term.page link with label.md

- description:
	- a clickable link that will take you to a particular Logseq page
- produced by:
	- putting a block link inside markdown link syntax like this: 
	  {{embed ((60ab6d72-e70c-4eb4-a60a-3802f12874c4))}}
	- putting a block link inside org-mode link syntax like this:
	  {{embed ((60ab6d72-9ad0-429f-8673-d13e81a93f23))}}
- example:
	- i'm a markdown page link [[mallard]] with custom display text:
	  [i quack like a duck]([[mallard]])

---

## File: pages/term.page link.md

- description:
	- a clickable link that will take you to a particular Logseq page
- produced by:
	- putting a [page reference]([[term/page reference]])  (i.e. the page title) inside double square brackets `[[ ]]`

---

## File: pages/term.page reference.md

- description:
  - a Logseq page title
- produced by:
  - entering a new page title in the Search or Create Page field , typing a page link with a new page title

---

## File: pages/term.page title.md

title:: custom page title
sample:: click me

- description:
	- the content displayed at the top of a page, used to uniquely identify the page
- produced by:
	- a page is automatically generated with a particular page title when a new page title is either
	- 1) entered into the Search or Create Page box at the upper-left of the Logseq window
	- 2) typed into a block within double brackets—[[new page]]—which makes it into a page reference.
- A page title is a property identified at the top of a file with the following syntax:
	- Markdown: **put as the first block of page**
		-
		  ``` markdown
		  title:: sample page title
		  
		  ```
	- Org mode:
		-
		  ``` org-mode
		  #+TITLE: sample page title
		  ```

---

## File: pages/term.page.md

- description:
  id:: 60a77d63-f73f-4cd4-9e65-8c4e30cbc752
  - a page that is part of your Logseq database
  - pages are composed of one or more blocks
- produced by:
  - entering a new page title in the Search or Create Page field or typing a [[page link]] with a new page title
-
  #+BEGIN_NOTE
  unless otherwise indicated, in these documents “page” means “Logseq page” rather than “web page”
  #+END_NOTE

---

## File: pages/term.properties.md

id:: 60a78c12-4e12-4d81-a33f-9f63695aaf32
type:: term
name:: i'm a page property
alias:: Block properties
click:: click me to edit

- **Description**
	- Properties are key-value pairs that allow you to annotate a block or page
	- _Page properties_ are defined by putting them into the first block of the page (_frontmatter_)
	- _Block properties_ are defined by puttin them into any other block
	- When a property value matches an existing page title, Logseq will automatically create a link to that page
	- When a property contains commas (`,`), any values are going to be automatically linked:
	  ```
	  parts:: motor, steering wheel, tyres
	  ```
	- When a property contains references, (`[]`), any values are going to be automatically linked:
	  ```
	  parts:: [[motor]], steering wheel, tyres
	  ```
	-
	  #+BEGIN_TIP
	  To prevent values from being auto-linked, wrap _all_ values within quotes (`"`) - for example, `parts:: "[[motor]], steering wheel, tyres"`
	  You cannot quote (unlink) _parts_ (items) of a list property, e.g. `parts:: [[motor]], "steering wheel, tyres"` is not going to prevent values from being linked.
	  #+END_TIP
- **Usage**
	- A page can have many pairs of properties (the collection is a user-defined dictionary) as long as they are in first block of that page
	- Each block can also have many pairs of properties (except for the first block, which will be served as page properties)
	- Markdown:
	  {{embed ((60ab6f5b-4bdc-4ef0-a0f8-6cad9dcad2b2))}}
	- org-mode:
	  {{embed ((60ab7357-2744-42bc-a8fd-a9c8db3051df))}}
- **Examples**
	- I'm an apple block with below custom properties
	  id:: 60a78e9e-59dc-40ab-9a01-5317dc09365f
	  color:: red
	  origin:: Spain
	- this **first block** of this page serves an example for **page property**
	- let's add two more books:
		- [[How to take smart notes]]
		  updated-at:: 1609337624066
		  created-at:: 1609233078964
		  type:: [[book]]
		  author:: [[sönke ahrens]]
		  publication_date:: [[february 21, 2017]]
		  price:: 10
		  qty:: 1
		- [[How to solve it]]
		  updated-at:: 1609337985298
		  created-at:: 1609233053383
		  type:: [[book]]
		  author:: [[george polya]]
		  price:: 20
		  qty:: 2
- **Properties** have two use cases
	- Selecting (querying) specific pages/blocks:
		- For example, let's query all the blocks with the property `type` and the value `book`: #examples #books
		  collapsed:: true
		  {{query (property type book)}}
		- Or we can use [[Advanced Queries]]:
			-
			  #+BEGIN_SRC clojure
			   #+BEGIN_QUERY
			   {:title [:h2 "My books"]
			    :query [:find (pull ?b [*])
			   :where
			   [?b :block/properties ?p]
			   [(get ?p :type) ?t]
			   [(= "[[book]]" ?t)]]}
			   #+END_QUERY
			   #+END_SRC
			-
			  #+BEGIN_QUERY
			  {:title [:h2 "My books"]
			   :query [:find (pull ?b [*])
			  :where
			  [?b :block/properties ?p]
			  [(get ?p :type) ?t]
			  [(= "[[book]]" ?t)]]}
			  #+END_QUERY
		- Providing common attributes to your pages/block - for example, you could have a template `Book` and a list of attributes you want to define for each book:
		  ```
		  author: [[george polya]]
		  title: Mathematics and Plausible Reasoning
		  published: 2009
		  ```
- **Special Properties**
	- There are special properties that control Logseq functionality (the number in brackets indicates how many values you may define):
	- `tags` (N) get listed in their own section "Pages tagged with X" below a page.
	- `template` (1) designates a page as a template.
	- `template-including-parent` (1) (in previous versions `include-parent`) specifies whether the parent level content of the selected block should be included when using a template.
	- `collapsed` (1) specifies whether a block is collapsed.
	- `alias` (N) define synonyms for a page.
	- `id` (1) specifies an Id for org mode.
	- `title` (1) overrides the title of a page to be different from the file name.
	- `created-at` (1) and `updated-at` (in previous versions `last-modified-at`) (1) define the date/time stamps in [Unix time](https://en.wikipedia.org/wiki/Unix_time); block-level only.
	- `parent` (1) references the parent block (could be a page).
	- `query-table` (1) will mark a query to be shown as the table view.
	- `query-properties` (N) stores a user's custom properties to be shown for a query table.
	- `filters` (N, object with booleans) store selected filters for linked references on page-level.
	- `public` (boolean) defines whether a page should be included in an export.

---

## File: pages/term.web link.md

- description:
	- a clickable link that will take you to a webpage outside Logseq
- produced by:
	- putting a web page URL inside markdown syntax like this:
	  {{embed ((60ab7486-8119-4c9a-888c-1e6213fd28e0))}}
	- putting a web page URL inside org-mode syntax like this:
	  {{embed ((60ab7486-1318-48cc-85bc-02561429e331))}}
	- or use command `/Link` to insert link
- example: [link to logseq github](https://github.com/logseq/logseq)

---

## File: pages/testimonials.md

---
title: Testimonials
---

- id:: 6071c223-b0ed-4235-80b2-f5e44d3679b9
  #+BEGIN_NOTE
  This page lists generous things that our community have said about Logseq. Feel free to [add](https://github.com/logseq/docs/edit/master/pages/testimonials.md) yours or messaging tienson at <tienson@logseq.com>
  #+END_NOTE
- [Siavash Sakhavi](https://github.com/ssakhavi)
  id:: 607454a1-a6a5-4356-af6d-ae5ed0a2051a
  #+BEGIN_QUOTE
  Since I started my new job as a software manager, I realized I have to take more and more notes. Initially, I started out with notion but I just couldn't. Too much clutter.
  After Notion, I found Logseq and I felt this is for me. I started taking notes and as a person that didn't take notes before, I saw that how much the structure of Logseq was and is helping me.
  After finding Logseq, I tries different note-taking apps: Dynalist, Workflowy, Remnote, Obsidian, Foam, Dendron, Zettlr,... But at the end, I would always find my way back to Logseq. I've never used Roam before, I don't know how it is and I don't think I have to try it because I see how good Logseq is.
  Great job Logseq team and all the best. Please make the app stable and I hope with the help of the community, you can get rid of the bugs and catch up with your technical debt.
  #+END_QUOTE
- Luke {{cloze @white999 on Discord}} 
  id:: 607454a1-043d-4beb-b86e-c513a68ad47e
  #+BEGIN_QUOTE
  I stumbled upon Logseq just this week. Initially I had seen Athens Research getting some attention on Twitter so I gave it a try. It was pretty cool but still rather buggy and maybe shallow of me but I dont like the branding too much. So in watching some videos on Athens, I saw the word Logseq being thrown around as an app doing a similar thing in taking the best ideas from Roam but putting a more open source, privacy spin on it. So decided to YouTube it... There really is'nt much content yet (hope this gets the attention it deserves soon) but what I did see looked super interesting. Over the past 6 months I have been trying loads of note-taking apps to see what I am needing for my personal workflow. I started with Notion, then moved onto Obsidian after Notion was going offline a lot and generally being super slow. Obsidian was and is great. I really value that the files are stored locally and my own, portable. Privacy at the core is super valuable as we move into this age of mass data collection. My files are not locked in some proprietary app on the cloud that could disappear and leave us in the dust. Then I tried Amplenote as I wanted to incorporate tasks and todos more into my workflow. I was really missing markdown and a more outliner format though in Amplenote. Now I am on Logseq and I have to say, this is the most simple app that is ticking all the boxes for me.
  - [[Privacy]] - local storage
  - Longevity - .md files
  - Outliner format
  - Templates
  - Graph - build notes bottom up and link together organically
  - Todos - that can be queried across notes
  - Online and desktop apps - portable
  - Super lightweight and responsive
  
  Of course I am sure what most people say will tip this over the edge will be the ability to access the app and my notes on mobile. Fully appreciate though this is still in Alpha and quickly developing. 
  Thanks so much for making such a brilliant app. Looking forward to see where this goes in the future.
  #+END_QUOTE
- [Pi-Yueh Chuang](https://github.com/piyueh)
  id:: 607d1394-3b32-4613-9acf-9bade8ad7817
  #+BEGIN_QUOTE
  I jumped the boat from Roam Research to Logseq because I wanted something that
  - is open-source,
  - uses local filesystem without a paywall,
  - does not need an account, and
  - provides a seamless transition from Roam Research.
  Logseq has them all. I believe most Roam Research users will agree that Logseq is a fantastic alternative.
  
  I had also tried some other alternatives, but they don't fit my need. They provide fancy user interfaces that distract me from simply taking notes. I just want a desktop app that helps take notes of my random thoughts and ***links*** these snippets of thoughts. But don't get me wrong: Logseq is very powerful. It's just that Logseq hides advanced functions in the user interface and keeps the look clean. Whenever a user needs an advanced feature that other alternatives have, he/she can still find it in Logseq. And when a user can't find the needed feature, she/he will be impressed by how responsive/accessible Logseq's development team is!
  #+END_QUOTE

---

## File: pages/The basics of block references.md

- ## What are block references?
	- Because everything is a block in Logseq, our notes become extremely versatile. Not only can we link to pages, we can also link to blocks and even show their contents directly when linking to them. How? Using block references.
	- Block references are like windows to other parts of your graph. In Logseq, blocks are floating around freely, not bound by any folders. To link together content, every block in Logseq has an address—and this address lets us do lots of cool stuff.
	- Just like we can reference a page by placing its name between [[double brackets]], we can reference a block by using ((double parenthesis)) and placing its address in between. The main difference between a page reference (link) and a block reference is that block references show the contents of the block directly. You can recognize a block reference the underline*:
		- 
		  _* Depending on the Logseq theme you're using, block references may show differently._
	- Why would you bother referencing blocks instead of copying over their contents? The reason is simple: to reduce duplicate content. Many people use block references to quickly reuse content from their graph.
	- Whenever you reference a block, the counter to the right of the original block will run up. This number indicates how many times the block has been referenced in the graph:
		- 
	- By clicking on a block reference counter, the block and all of its references will open in the sidebar:
		- 
	- Now that you know the basics of block references, let's see how to create them.
- ## How to reference blocks
	- There are four ways to reference blocks:
		- Copying their address
		- Click-dragging them
		- Searching for them
		- In an alias
	- Let's have a look at each separately.
	- ### Copy the block ref
		- The easiest way to reference a block is by having it in front of you. Simply `Right-Click` on the bullet of the block you want to reference, and click `Copy block ref` to copy its address (including double parentheses) to your clipboard:
			- 
		- You can also select multiple blocks and copy all of their addresses (again, including double parentheses) to your clipboard:
			- 
	- ### Click-drag blocks
		- A second way to reference a block when it's in front of you is by clicking and holding the bullet of a block with your mouse. Then, holding the `Option` key (macOS) or `Alt` key (Windows/Linux), you'll see a green icon with a + sign appears under your cursor. This means you're referencing the block.
		- Now, drag the block (while still holding `Option` or `Alt`) to the position where you want to drop the reference:
			- 
	- ### Search for the block
	  collapsed:: true
		- Searching for a block is possible in a two ways: using the top search bar or with inline search.
		- **Using the search bar**
		  collapsed:: true
			- Whenever you type something in the top search bar (shortcut: `Cmd-k` on Mac and `Ctrl-k` on Windows/Linux), Logseq will search both for pages and blocks. You can recognize the blocks in the search results by the letter `B` (for **B**lock) in front of it:
				- 
		- **Using inline search**
		  collapsed:: true
			- Whenever you type `((` and text, you start searching your entire graph. By typing words that are mentioned in the block you're looking for, you refine your search. Hit `Enter` when you've found the block to pull its address between the parentheses. Tada! You've just done the fastest block search possible in Logseq:
				- 
	- ### Link to blocks using an alias
		- Finally, we can use good ol' links to target a specific block. But, instead of using `[[double brackets]]`, we need to use the alias/external link (see the article [[Aliases and external links]] for more info):
			- `[link text](((block-address)))`
		- Between the single `[brackets]` you place the label text for the link. Between the `(single parentheses)`, you put the block address (including `((double parentheses))`). Now, by clicking the link you're taken to the block (zoomed in view).

---

## File: pages/The difference between block embeds and block references.md

- If a block reference is a window to another part of your database, a block embed is a portal. Embeds allow you to edit the source directly, which comes in handy when building dashboards and pulling difference parts of your graph together.
- When [referencing a block]([[The basics of block references]]), you always reference a single block:
	- 
- Embeds always show the complete context; the child blocks of the embedded block, and all of _their_ child blocks:
	- 
- Now that you know how embeds are different from block references, let's have a look at the two types of embeds: [the difference between block and page embeds]([[The difference between block embeds and page embeds]]).

---

## File: pages/The difference between block embeds and page embeds.md

- In Logseq there are two ways to embed blocks:
	- 1. By embedding a block and its children
	  2. By embedding an entire page with all of its blocks
- ## Block embeds
	- The easiest way to embed a block is by calling the block embed shortcode using the trigger menu. Type `/block embed`, press the `Down` key, and hit `Enter` to select the option in the trigger menu:
		- 
	- Now, you get the following shortcode:
		- 
		- Between the `((double parentheses))`, you place the address of the block you'd like to embed. Alternatively, you can start typing words here to search for a block.
- ## Page embeds
	- Apart from (branches of) blocks, we can also embed entire pages. To do so, use the `/page embed` trigger to call the page embed shortcode:
		- 
	- Now, you get the following shortcode:
		- 
	- Inside the `[[double brackets]]`, type the name of the page you wish to embed. Click outside the block and the page's contents will show.
	- Not sure if you've embedded a block or a page? Page embeds always show the page name on top of the embed (in this example the page **Parent A**):
		-

---

## File: pages/tips_and_tricks.md

---
title: Tips and Tricks
---

- **How to escape formatting?** #card
  id:: 5fc3be83-7f22-4488-b3ec-cfabb0639b3b
  card-last-interval:: 4
  card-repeats:: 2
  card-ease-factor:: 2.7
  card-next-schedule:: 2021-10-15T12:21:18.187Z
  card-last-reviewed:: 2021-10-11T12:21:18.188Z
  card-last-score:: 5
	- `snake_case_text` will be displayed as snake_case_text by default, to display it as `snake_case_text`, you can escape some string using `\`, for example `snake\_case\_text` will be displayed as snake\_case\_text.
- **How to review a page instead of a block using SRS [[Cards]] ?** #card
  card-last-interval:: 4.14
  card-repeats:: 1
  card-ease-factor:: 2.6
  card-next-schedule:: 2021-10-03T18:35:04.144Z
  card-last-reviewed:: 2021-09-29T15:35:04.144Z
  card-last-score:: 5
	- You can embed a page in a #card block. For example:
	  card-last-interval:: 4.14
	  card-repeats:: 1
	  card-ease-factor:: 2.6
	  card-next-schedule:: 2021-10-03T18:35:23.173Z
	  card-last-reviewed:: 2021-09-29T15:35:23.173Z
	  card-last-score:: 5
	  `{{embed [[term/alias]]}}`
	  {{embed [[term/alias]]}}

---

## File: pages/tutorial.md

- Hi, welcome to Logseq!
  heading:: true
- > Logseq is a _privacy-first_, _open-source_ platform for _knowledge_ sharing and management.
- Here are some tips that might be useful:
  id:: 60293d41-1351-40ed-aa00-0e0c12be1175
	- Click to edit any block.
	  Type `Enter` to start a new block.
	  Type `Shift+Enter` to create a new line in the current block.
	  Type `/` to show all the commands.
	  Type `[[` to reference or create a new page.
	  Type `((` to reference a block on any page.
	  Type `Tab` to indent and `Shift+Tab` to unindent a block.
	  Type `/Draw` for free drawing. 
	  Type `<` for more formatting commands (like quotes and tips!)
	  Click the help button at the bottom right to see more keybindings.
- Getting Started
  heading:: true
- **1. Let's create a page** - called [[How to Take Notes]]. Type `[[]]` to create or reference any other page. You can also make a new page in the search bar.
	- You can click it to actually go to that page, or you can `Shift+Click` to open it in the right sidebar! At the bottom, you'll see both _Linked References_ and _Unlinked References_ - every single other time you thought about it inside Logseq.
- **2. Let's reference some blocks** - In [[How to Take Notes]] , you can `Shift+Click` any page or block reference to open it in the right sidebar. Try making some changes on the right sidebar, those referenced blocks will be changed too!
	- ((60293d41-1351-40ed-aa00-0e0c12be1175)) : This is a block reference.
	- ((60293d41-2c37-43f2-aa0e-4e0ad8e38531)) : This is another block reference.
- **3. Embed a Block** - References aren't enough! I wan't to see and edit any block in my entire Graph! You can embed entire blocks and their children by typing `/` and selecting `Block Embed` :
	- {{embed ((6018cc98-67a8-4eb2-bfd7-2affe517a7c7)) }}
- **4. Embed a Page** - What if I want to embed the whole page? The `/` menu has a option for that - `Page Embed` :
	- {{{embed [[How to Take Notes]] }}}
- **5. Use Tags** - Use tags to categorize any page or block, then click on it to see every single time you used it!
	- Check out this #dummy tag.
	  id:: 60293d41-2c37-43f2-aa0e-4e0ad8e38531
- **6. Manage your Tasks + Todos** - Do you support tasks like todo/doing/done and priorities?
	- Yes, type press `Ctrl/Cmd + Enter` inside a block to cycle through different TODO statuses or `/` and pick your favorite todo keyword or priority (A/B/C).
	- NOW [#A] A dummy tutorial on "How to Take Notes"
	- DONE Create Logseq Getting Started
	  todo:: 1612237041309
	  done:: 1612237041727
	- CANCELED [#C] Write a page with more than 1000 blocks
- **7. Step back and admire your growing second brain** - After you've created and connected some pages and ideas, check out your digital brain growing!
	- Click on the Graph in the left sidebar!
- Need more?
  heading:: true
	- Check out this awesome video by [:a {:href "https://twitter.com/EdTravelling" :target "_blank"} "@EdTravelling"], which shows you how to install Logseq app on your GitHub repo and other cool features like graph view.
	  
	  [:div.videoWrapper.mb-4
	        [:iframe
	         {:allowFullScreen "allowfullscreen"
	          :allow
	          "accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture"
	        :frameBorder "0"
	        :src "https://www.youtube.com/embed/Vw-x7yTTO0s"
	        :height "367"
	        :width "653"}]]
	- this carefully crafted [[Glossary]] might be helpful
	- Check out the full documentation in the Right Sidebar ->

---

## File: pages/videos.md

- How to install logseq app on your GitHub repo?
  {{{youtube Vw-x7yTTO0s}}}
- How I use Logseq Daily?
  {{{youtube JCIdJBZGQLQ}}}
- First video on Logseq, also by [[Ed]]
  {{{youtube _BPlbNr6hzY}}}
- A great series of videos by [[OneStutteringMind]] from basic introduction tutorials to advanced PKM techniques using Logseq 
  [More at his YouTube channel](https://www.youtube.com/channel/UCz7EgrAosr5FRF3IErGV-yQ) 
  {{youtube https://www.youtube.com/watch?v=qtN7qqdeTwU}}
  {{youtube https://www.youtube.com/watch?v=8cZdHIgwPro}}

---

## File: pages/What is indentation and why does it matter_.md

title:: What is indentation and why does it matter?

- Indentation is one of the fundamental concept in Logseq (and outliners in general). It's the feature that allows block references and queries to work. In other words: indentation helps you to find stuff in Logseq.
- The idea of indentation is simple: anytime you hit the `Tab` key, the block your cursor is in moves to the right. Indenting a block _nests_ it under the block above, creating a parent-child relationship:
	- 
- Let's walk through the example step-by-step:
	- Block **A** is a parent block; **B** and **C** are _children_ of **A**; block **D** is a _grandchild_ of **A**.
	- Block **B** is a _child_ of **A** and it's in the same _branch_ as blocks **C** and **D**.
	- Block **C** is a _child_ of **A** and the _parent_ of **D**.
- Why is this important? As we've discussed in the previous lessons, Logseq is a networked note-taking tool that works with links. We also discussed that Logseq has no hierarchy, which is actually nuanced. As you've probably deduced by now, hierarchy in Logseq happens at the block level.
- By associating blocks, you create a branch that you can navigate. Let's turn the example above into links and navigate to the linked references of block **D,** which we'll name _Child **D**_:
	- 
- By going to the page of _Child **D**_, we can see this hierarchy it's in: first up is _Parent and child **C**_ and then _Parent **A**_.
- By clicking on one of the parents, the whole branch becomes visible:
	- 
- That's the basics of indentation! It's not much more complex than this, but it opens up a world of possibilities.

---

## File: pages/Why linking matters.md

- If your database is made up of blocks—the atomic unit in Logseq—why would you bother linking to _pages_?
- As said, Logseq pages are nothing more than collection of blocks. In that sense, they're the perfect place to write (short) articles about topics for yourself. The cool thing about Logseq is that you can populate a page from anywhere, thanks to the powers of **bidirectional links**.
- Whenever you link to a page in Logseq, you actually create _two_ links; one that you write, and one that automatically appears in the **_Linked references_** section of the page you link to. Each page has this _Linked references_ section, showing all the blocks that point to that page:
	- 
- If you didn't link to a page but did use its name in the text, you can see all mentions in the **_Unlinked references_** section:
	- 
- It's not just linking to pages that creates bidirectional links; linking to an individual block will also create a link in two directions. We'll see later in this guide how links show when referencing (linking) blocks.

---

## File: pages/WIP How to work with the left-hand sidebar.md

title:: WIP How to work with the left-hand sidebar

-

---

## File: pages/WIP Supercharge search with queries.md

title:: WIP Supercharge search with queries

- ## Introduction
	- The easiest way to search your Logseq graph is by using the search bar at the top (shortcut: `Cmd-k` on macOS and `Ctrl-k` on Windows/Linux). Then, using filters you can refine what's visible on the page.
	- But what if you want to see results from several pages or want to be very precise about what you're searching for? That's when you need queries.
	- In this lesson, we'll first dive into boolean logic before digging into how to use it in queries. Queries are one of the most complex things in Logseq, but don't you worry; once you understand boolean logic, writing queries will be a breeze.
- ## Queries are like a saved search
	- Why would you go through the trouble of writing queries when you can search and filter? First, queries allow for much more precise searching. Second, queries are like a saved search.
	- Every time a block meets the requirements to be included in a query, it automatically appears in the query results. That's the reason many Logseq users write queries to handle their TODO lists or use it to build pipelines based on statuses.
- ## Boolean logic and query operators
	- A good start is to first make sure you understand boolean logic. If you're already familiar with programming logic, you can skip this section (although a refresher is never a bad thing).
	- Boolean logic is a basic form of algebra that fully functions with three so-called _operators_: **and**, **or**, **not**. Each operator is used in combination with one or more _arguments_, which are values that are searched for. When using these operators and arguments in a _statement_ (a search formula), only one of two results are possible: True or False.
	- It's best to explain this using a visual (blue = True, green = False):
		- 
		  _Source: [What is Boolean Logic?](https://www.lotame.com/what-is-boolean-logic) by Lotame_
	- In Logseq queries, only the blocks that return the result True are shown. By using the operators in combination, you can come to very precise search results. But, to keep things simple, we'll only focus on the basics now.
	- Let's have a look at how the three operators are used in Logseq.
- ## How to create queries in Logseq
	-

---

## File: pages/Zotero.md

- [Zotero](https://www.zotero.org/) is a free, easy-to-use tool to help you collect, organize, cite, and share research. Logseq has built in Zotero integration that can help you to import your Zotero items as Logseq pages seamlessly.
	- Currently it only works for users who have enabled Zotero [Syncing](https://www.zotero.org/support/sync)
	- If you don't have Zotero Syncing enabled, you might want to checkout [this](https://github.com/aljedaxi/logseq-zotero/) third-party plugin. Or [zotero-mdnotes](https://argentinaos.com/zotero-mdnotes/), a Zotero plugin to export item metadata and notes as markdown files.
- Prerequisites:
	- Create a Zotero account and enable [Syncing](https://www.zotero.org/support/sync)
	- Create a new API key [here](https://www.zotero.org/settings/keys), also note down your userID from that same page
	  id:: 61024cd6-1951-47cc-8050-25f68960d729
	  At least `Allow library access` permission is required
	  If you want to include notes, make sure `Allow notes access` permission is selected
	- Optional: 
	  If you've got [BETTER BIBTEX FOR ZOTERO](https://retorque.re/zotero-better-bibtex/installation) installed, Logseq will use citation key as your page name, otherwise, it'll just use default item title as your page name.
	  Make sure to check [here](https://alix-lahuec.gitbook.io/zotero-roam/getting-started/prereqs) and follow the setup checklist to enable autoPinDelay and pin your existing citekeys.
- Basic settings:
	- Goto [[Settings]] , then click `Zotero settings`, fill in your API key and User ID mentioned in ((61024cd6-1951-47cc-8050-25f68960d729))
	  id:: 61024ec1-fd51-4b84-905e-8443a9204ae9
		-
		  #+BEGIN_WARNING
		  User ID is different from your username, it's a number of digits
		  #+END_WARNING
	- The same for group usage, your just put your group id, api key and choose group.
- Usage:
	- You can either type `/Zotero` command, search individual zotero item (title, author, text, anything), select and add as a Logseq page.
	  id:: 6103e488-22d4-4751-b27a-69b278067c26
	  
	- Or if you wish to import and create all pages at once, goto `Zotero settings`, and click `Add all` to import all Zotero items and add them as Logseq pages
	  
	- If you add same item twice, Logseq will append data to same page instead of overwrite existing meta data. If you know what you're doing, delete that page first and re-import.
- Other Zotero settings:
	- Whether to include children items of attachment links and notes
	- You can customize your Zotero imported page's prefix, default is `@`, that is all Zotero pages added will begin with `@` for easy of searching. If you'd like some hierarchy, for example you can set it to a namespace prefix like `zotero/`
- [[Thanks]]
	- This plugin took the idea and inspiration from the great [zotero-roam](https://alix-lahuec.gitbook.io/zotero-roam/) made by [[@Alix Lahuec ]]. Special thanks to [[@Alix Lahuec]] for providing all kinds of ideas and useful suggestions!
	-

---

## 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@v2

      - name: Logseq Publish
        uses: pengx17/logseq-publish@0.1.5
        with:
          dest: www

      - name: Add .nojekyll file
        run: touch www/.nojekyll

      - name: Deploy to gh-pages
        uses: JamesIves/github-pages-deploy-action@4.1.9
        with:
          branch: gh-pages
          folder: www
          clean: true
          clean-exclude: |
            CNAME
            .nojekyll