{:meta/version 1
;; Set the preferred format.
;; Available options:
;; - Markdown (default)
;; - Org
;; :preferred-format "Markdown"
;; Set the preferred workflow style.
;; Available options:
;; - :now for NOW/LATER style (default)
;; - :todo for TODO/DOING style
:preferred-workflow :now
;; Exclude directories/files.
;; Example usage:
;; :hidden ["/archived" "/test.md" "../assets/archived"]
:hidden []
;; Define the default journal page template.
;; Enter the template name between the quotes.
:default-templates
{:journals ""}
;; Set a custom date format for the journal page title.
;; Default value: "MMM do, yyyy"
;; e.g., "Jan 19th, 2038"
;; Example usage e.g., "Tue 19th, Jan 2038"
;; :journal/page-title-format "EEE do, MMM yyyy"
;; Specify the journal filename format using a valid date format string.
;; !Warning:
;; This configuration is not retroactive and affects only new journals.
;; To show old journal files in the app, manually rename the files in the
;; journal directory to match the new format.
;; Default value: "yyyy_MM_dd"
;; :journal/file-name-format "yyyy_MM_dd"
;; Enable tooltip preview on hover.
;; Default value: true
:ui/enable-tooltip? true
;; Display brackets [[]] around page references.
;; Default value: true
;; :ui/show-brackets? true
;; Display all lines of a block when referencing ((block)).
;; Default value: false
:ui/show-full-blocks? false
;; Automatically expand block references when zooming in.
;; Default value: true
:ui/auto-expand-block-refs? true
;; Enable Block timestamps.
;; Default value: false
:feature/enable-block-timestamps? false
;; Disable accent marks when searching.
;; After changing this setting, rebuild the search index by pressing (^C ^S).
;; Default value: true
:feature/enable-search-remove-accents? true
;; Enable journals.
;; Default value: true
;; :feature/enable-journals? true
;; Enable flashcards.
;; Default value: true
;; :feature/enable-flashcards? true
;; Enable whiteboards.
;; Default value: true
;; :feature/enable-whiteboards? true
;; Disable the journal's built-in 'Scheduled tasks and deadlines' query.
;; Default value: false
;; :feature/disable-scheduled-and-deadline-query? false
;; Specify the number of days displayed in the future for
;; the 'scheduled tasks and deadlines' query.
;; Example usage:
;; Display all scheduled and deadline blocks for the next 14 days:
;; :scheduled/future-days 14
;; Default value: 7
;; :scheduled/future-days 7
;; Specify the first day of the week.
;; Available options:
;; - integer from 0 to 6 (Monday to Sunday)
;; Default value: 6 (Sunday)
:start-of-week 6
;; Specify a custom CSS import.
;; This option takes precedence over the local `logseq/custom.css` file.
;; Example usage:
;; :custom-css-url "@import url('https://cdn.jsdelivr.net/gh/dracula/logseq@master/custom.css');"
;; Specify a custom JS import.
;; This option takes precedence over the local `logseq/custom.js` file.
;; Example usage:
;; :custom-js-url "https://cdn.logseq.com/custom.js"
;; Set a custom Arweave gateway
;; Default gateway: https://arweave.net
;; :arweave/gateway "https://arweave.net"
;; Set bullet indentation when exporting
;; Available options:
;; - `:eight-spaces` as eight spaces
;; - `:four-spaces` as four spaces
;; - `:two-spaces` as two spaces
;; - `:tab` as a tab character (default)
;; :export/bullet-indentation :tab
;; Publish all pages within the Graph
;; Regardless of whether individual pages have been marked as public.
;; Default value: false
;; :publishing/all-pages-public? false
;; Define the default home page and sidebar status.
;; If unspecified, the journal page will be loaded on startup and the right sidebar will stay hidden.
;; The `:page` value represents the name of the page displayed at startup.
;; Available options for `:sidebar` are:
;; - "Contents" to display the Contents page in the right sidebar.
;; - A specific page name to display in the right sidebar.
;; - An array of multiple pages, e.g., ["Contents" "Page A" "Page B"].
;; If `:sidebar` remains unset, the right sidebar will stay hidden.
;; Examples:
;; 1. Set "Changelog" as the home page and display "Contents" in the right sidebar:
;; :default-home {:page "Changelog", :sidebar "Contents"}
;; 2. Set "Jun 3rd, 2021" as the home page without the right sidebar:
;; :default-home {:page "Jun 3rd, 2021"}
;; 3. Set "home" as the home page and display multiple pages in the right sidebar:
;; :default-home {:page "home", :sidebar ["Page A" "Page B"]}
;; Set the default location for storing notes.
;; Default value: "pages"
;; :pages-directory "pages"
;; Set the default location for storing journals.
;; Default value: "journals"
;; :journals-directory "journals"
;; Set the default location for storing whiteboards.
;; Default value: "whiteboards"
;; :whiteboards-directory "whiteboards"
;; Enabling this option converts
;; [[Grant Ideas]] to [[file:./grant_ideas.org][Grant Ideas]] for org-mode.
;; For more information, visit https://github.com/logseq/logseq/issues/672
;; :org-mode/insert-file-link? false
;; Configure custom shortcuts.
;; Syntax:
;; 1. + indicates simultaneous key presses, e.g., `Ctrl+Shift+a`.
;; 2. A space between keys represents key chords, e.g., `t s` means
;; pressing `t` followed by `s`.
;; 3. mod refers to `Ctrl` for Windows/Linux and `Command` for Mac.
;; 4. Use false to disable a specific shortcut.
;; 5. You can define multiple bindings for a single action, e.g., ["ctrl+j" "down"].
;; The full list of configurable shortcuts is available at:
;; https://github.com/logseq/logseq/blob/master/src/main/frontend/modules/shortcut/config.cljs
;; Example:
;; :shortcuts
;; {:editor/new-block "enter"
;; :editor/new-line "shift+enter"
;; :editor/insert-link "mod+shift+k"
;; :editor/highlight false
;; :ui/toggle-settings "t s"
;; :editor/up ["ctrl+k" "up"]
;; :editor/down ["ctrl+j" "down"]
;; :editor/left ["ctrl+h" "left"]
;; :editor/right ["ctrl+l" "right"]}
:shortcuts {}
;; Configure the behavior of pressing Enter in document mode.
;; if set to true, pressing Enter will create a new block.
;; Default value: false
:shortcut/doc-mode-enter-for-new-block? false
;; Block content larger than `block/content-max-length` will not be searchable
;; or editable for performance.
;; Default value: 10000
:block/content-max-length 10000
;; Display command documentation on hover.
;; Default value: true
:ui/show-command-doc? true
;; Display empty bullet points.
;; Default value: false
:ui/show-empty-bullets? false
;; Pre-defined :view function to use with advanced queries.
:query/views
{:pprint
(fn [r] [:pre.code (pprint r)])}
;; Advanced queries `:result-transform` function.
;; Transform the query result before displaying it.
:query/result-transforms
{:sort-by-priority
(fn [result] (sort-by (fn [h] (get h :block/priority "Z")) result))}
;; The following queries will be displayed at the bottom of today's journal page.
;; The "NOW" query returns tasks with "NOW" or "DOING" status.
;; The "NEXT" query returns tasks with "NOW", "LATER", or "TODO" status.
:default-queries
{:journals
[{:title "🔨 NOW"
:query [:find (pull ?h [*])
:in $ ?start ?today
:where
[?h :block/marker ?marker]
[(contains? #{"NOW" "DOING"} ?marker)]
[?h :block/page ?p]
[?p :block/journal? true]
[?p :block/journal-day ?d]
[(>= ?d ?start)]
[(<= ?d ?today)]]
:inputs [:14d :today]
:result-transform (fn [result]
(sort-by (fn [h]
(get h :block/priority "Z")) result))
:group-by-page? false
:collapsed? false}
{:title "📅 NEXT"
:query [:find (pull ?h [*])
:in $ ?start ?next
:where
[?h :block/marker ?marker]
[(contains? #{"NOW" "LATER" "TODO"} ?marker)]
[?h :block/page ?p]
[?p :block/journal? true]
[?p :block/journal-day ?d]
[(> ?d ?start)]
[(< ?d ?next)]]
:inputs [:today :7d-after]
:group-by-page? false
:collapsed? false}]}
;; Add custom commands to the command palette
;; Example usage:
;; :commands
;; [
;; ["js" "Javascript"]
;; ["md" "Markdown"]
;; ]
:commands []
;; Enable collapsing blocks with titles but no children.
;; By default, only blocks with children can be collapsed.
;; Setting `:outliner/block-title-collapse-enabled?` to true allows collapsing
;; blocks with titles (multiple lines) and content. For example:
;; - block title
;; block content
;; Default value: false
:outliner/block-title-collapse-enabled? false
;; Macros replace texts and will make you more productive.
;; Example usage:
;; Change the :macros value below to:
;; {"poem" "Rose is $1, violet's $2. Life's ordered: Org assists you."}
;; input "{{poem red,blue}}"
;; becomes
;; Rose is red, violet's blue. Life's ordered: Org assists you.
:macros {}
;; Configure the default expansion level for linked references.
;; For example, consider the following block hierarchy:
;; - a [[page]] (level 1)
;; - b (level 2)
;; - c (level 3)
;; - d (level 4)
;;
;; With the default value of level 2, block b will be collapsed.
;; If the level's value is set to 3, block c will be collapsed.
;; Default value: 2
:ref/default-open-blocks-level 2
;; Configure the threshold for linked references before collapsing.
;; Default value: 100
:ref/linked-references-collapsed-threshold 50
;; Graph view configuration.
;; Example usage:
;; :graph/settings
;; {:orphan-pages? true ; Default value: true
;; :builtin-pages? false ; Default value: false
;; :excluded-pages? false ; Default value: false
;; :journal? false} ; Default value: false
;; Favorites to list on the left sidebar
:favorites []
;; Set flashcards interval.
;; Expected value:
;; - Float between 0 and 1
;; higher values result in faster changes to the next review interval.
;; Default value: 0.5
;; :srs/learning-fraction 0.5
;; Set the initial interval after the first successful review of a card.
;; Default value: 4
;; :srs/initial-interval 4
;; Hide specific block properties.
;; Example usage:
;; :block-hidden-properties #{:public :icon}
;; Create a page for all properties.
;; Default value: true
:property-pages/enabled? true
;; Properties to exclude from having property pages
;; Example usage:
;; :property-pages/excludelist #{:duration :author}
;; By default, property value separated by commas will not be treated as
;; page references. You can add properties to enable it.
;; Example usage:
;; :property/separated-by-commas #{:alias :tags}
;; Properties that are ignored when parsing property values for references
;; Example usage:
;; :ignored-page-references-keywords #{:author :website}
;; logbook configuration.
;; :logbook/settings
;; {:with-second-support? false ;limit logbook to minutes, seconds will be eliminated
;; :enabled-in-all-blocks true ;display logbook in all blocks after timetracking
;; :enabled-in-timestamped-blocks false ;don't display logbook at all
;; }
;; Mobile photo upload configuration.
;; :mobile/photo
;; {:allow-editing? true
;; :quality 80}
;; Mobile features options
;; Gestures
;; Example usage:
;; :mobile
;; {:gestures/disabled-in-block-with-tags ["kanban"]}
;; Extra CodeMirror options
;; See https://codemirror.net/5/doc/manual.html#config for possible options
;; Example usage:
;; :editor/extra-codemirror-options
;; {:lineWrapping false ; Default value: false
;; :lineNumbers true ; Default value: true
;; :readOnly false} ; Default value: false
;; Enable logical outdenting
;; Default value: false
;; :editor/logical-outdenting? false
;; Prefer pasting the file when text and a file are in the clipboard.
;; Default value: false
;; :editor/preferred-pasting-file? false
;; Quick capture templates for receiving content from other apps.
;; Each template contains three elements {time}, {text} and {url}, which can be auto-expanded
;; by receiving content from other apps. Note: the {} cannot be omitted.
;; - {time}: capture time
;; - {date}: capture date using current date format, use `[[{date}]]` to get a page reference
;; - {text}: text that users selected before sharing.
;; - {url}: URL or assets path for media files stored in Logseq.
;; You can also reorder them or use only one or two of them in the template.
;; You can also insert or format any text in the template, as shown in the following examples.
;; :quick-capture-templates
;; {:text "[[quick capture]] **{time}**: {text} from {url}"
;; :media "[[quick capture]] **{time}**: {url}"}
;; Quick capture options.
;; - insert-today? Insert the capture at the end of today's journal page (boolean).
;; - redirect-page? Redirect to the quick capture page after capturing (boolean).
;; - default-page The default page to capture to if insert-today? is false (string).
;; :quick-capture-options
;; {:insert-today? false ;; Default value: true
;; :redirect-page? false ;; Default value: false
;; :default-page "quick capture"} ;; Default page: "quick capture"
;; File sync options
;; Ignore these files when syncing, regexp is supported.
;; :file-sync/ignore-files []
;; Configure the Enter key behavior for
;; context-aware editing with DWIM (Do What I Mean).
;; context-aware Enter key behavior implies that pressing Enter will
;; have different outcomes based on the context.
;; For instance, pressing Enter within a list generates a new list item,
;; whereas pressing Enter in a block reference opens the referenced block.
;; :dwim/settings
;; {:admonition&src? true ;; Default value: true
;; :markup? false ;; Default value: false
;; :block-ref? true ;; Default value: true
;; :page-ref? true ;; Default value: true
;; :properties? true ;; Default value: true
;; :list? false} ;; Default value: false
;; Configure the escaping method for special characters in page titles.
;; Warning:
;; This is a dangerous operation. To modify the setting,
;; access the 'Filename format' setting and follow the instructions.
;; Otherwise, You may need to manually rename all affected files and
;; re-index them on all clients after synchronization.
;; Incorrect handling may result in messy page titles.
;; Available options:
;; - :triple-lowbar (default)
;; ;use triple underscore `___` for slash `/` in page title
;; ;use Percent-encoding for other invalid characters
:file/name-format :triple-lowbar}