{:meta/version 1

 ;; Currently, we support either "Markdown" or "Org".
 ;; This can overwrite your global preference so that
 ;; maybe your personal preferred format is Org but you'd
 ;; need to use Markdown for some projects.
 ;; :preferred-format ""

 ;; Preferred workflow style.
 ;; Value is either ":now" for NOW/LATER style,
 ;; or ":todo" for TODO/DOING style.
 :preferred-workflow :now

 ;; The app will ignore those directories or files.
 ;; E.g. :hidden ["/archived" "/test.md" "../assets/archived"]
 :hidden []

 ;; When creating the new journal page, the app will use your template if there is one.
 ;; You only need to input your template name here.
 :default-templates
 {:journals ""}

 ;; Set a custom date format for journal page title
 ;; Example:
 ;; :journal/page-title-format "EEE, do MMM yyyy"

 ;; Whether to enable hover on tooltip preview feature
 ;; Default is true, you can also toggle this via setting page
 :ui/enable-tooltip? true

 ;; Show brackets around page references
 ;; :ui/show-brackets? true

 ;; Enable showing the body of blocks when referencing them.
 :ui/show-full-blocks? false

 ;; Enable Block timestamp
 :feature/enable-block-timestamps? false

 ;; Enable remove accents when searching.
 ;; After toggle this option, please remember to rebuild your search index by press (cmd+c cmd+s).
 :feature/enable-search-remove-accents? true

 ;; Enable journals
 ;; :feature/enable-journals? true

 ;; Enable flashcards
 ;; :feature/enable-flashcards? true

 ;; Enable Whiteboards
 ;; :feature/enable-whiteboards? true

 ;; Disable the built-in Scheduled tasks and deadlines query
 ;; :feature/disable-scheduled-and-deadline-query? true

 ;; Specify the number of days in the future to display in the
 ;; scheduled tasks and deadlines query, with a default value of 0 which
 ;; only displays tasks for today.
 ;; Example usage:
 ;; Display all scheduled tasks and deadlines in the next 7 days
:scheduled/future-days 0

 ;; Specify the date on which the week starts.
 ;; Goes from 0 to 6 (Monday to Sunday), default to 6
 :start-of-week 6

 ;; Specify a custom CSS import
 ;; This option take precedence over your local `logseq/custom.css` file
 ;; You may find a list of awesome logseq themes here:
 ;; https://github.com/logseq/awesome-logseq#css-themes
 ;; Example:
 ;; :custom-css-url "@import url('https://cdn.jsdelivr.net/gh/dracula/logseq@master/custom.css');"

 ;; Specify a custom js import
 ;; This option take precedence over your local `logseq/custom.js` file
 ;; :custom-js-url ""

 ;; Set a custom Arweave gateway
 ;; Default gateway: https://arweave.net
 ;; :arweave/gateway ""

 ;; Set Bullet indentation when exporting
 ;; default option: tab
 ;; Possible options are for `:sidebar` are
 ;; 1. `:eight-spaces` as eight spaces
 ;; 2. `:four-spaces` as four spaces
 ;; 3. `:two-spaces` as two spaces
 ;; :export/bullet-indentation :tab

 ;; When :all-pages-public? true, export repo would export all pages within that repo.
 ;; Regardless of whether you've set any page to public or not.
 ;; Example:
 ;; :publishing/all-pages-public? true

 ;; Specify default home page and sidebar status for Logseq
 ;; If not specified, Logseq default opens journals page on startup
 ;; value for `:page` is name of page
 ;; Possible options for `:sidebar` are
 ;; 1. `"Contents"` to open up `Contents` in sidebar by default
 ;; 2. `page name` to open up some page in sidebar
 ;; 3. Or multiple pages in an array ["Contents" "Page A" "Page B"]
 ;; If `:sidebar` is not set, sidebar will be hidden
 ;; Example:
 ;; 1. Setup page "Changelog" as home page and "Contents" in sidebar
 ;; :default-home {:page "Changelog", :sidebar "Contents"}
 ;; 2. Setup page "Jun 3rd, 2021" as home page without sidebar
 ;; :default-home {:page "Jun 3rd, 2021"}
 ;; 3. Setup page "home" as home page with multiple pages in sidebar
 ;; :default-home {:page "home" :sidebar ["page a" "page b"]}

 ;; Tell logseq to use a specific folder in the repo as a default location for notes
 ;; if not specified, notes are stored in `pages` directory
 ;; :pages-directory "your-directory"

 ;; Tell logseq to use a specific folder in the repo as a default location for journals
 ;; if not specified, journals are stored in `journals` directory
 ;; :journals-directory "your-directory"

 ;; Set this to true will convert
 ;; `[[Grant Ideas]]` to `[[file:./grant_ideas.org][Grant Ideas]]` for org-mode
 ;; For more, see https://github.com/logseq/logseq/issues/672
 ;; :org-mode/insert-file-link? true

 ;; Setup custom shortcuts under `:shortcuts` key
 ;; Syntax:
 ;; 1. `+` means keys pressing simultaneously. eg: `ctrl+shift+a`
 ;; 2. ` ` empty space between keys represents key chords. eg: `t s` means press `t` followed by `s`
 ;; 3. `mod` means `Ctrl` for Windows/Linux  and `Command` for Mac
 ;; 4. use `false` to disable particular shortcut
 ;; 5. you can define multiple bindings for one action, eg `["ctrl+j" "down"]`
 ;; full list of configurable shortcuts are available below:
 ;; 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 {}

 ;; 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.
 :shortcut/doc-mode-enter-for-new-block? false

 ;; Block content larger than `block/content-max-length` will not be searchable
 ;; or editable for performance.
 :block/content-max-length 10000

 ;; Whether to show command doc on hover
 :ui/show-command-doc? true

 ;; Whether to show empty bullets for non-document mode (the default mode)
 :ui/show-empty-bullets? false

 ;; Pre-defined :view function to use with advanced queries
 :query/views
 {:pprint
  (fn [r] [:pre.code (pprint r)])}

 ;; Pre-defined :result-transform function for use with advanced queries
 :query/result-transforms
 {:sort-by-priority
  (fn [result] (sort-by (fn [h] (get h :block/priority "Z")) result))}

 ;; The app will show those queries in today's journal page,
 ;; the "NOW" query asks the tasks which need to be finished "now",
 ;; the "NEXT" query asks the future tasks.
 :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))
    :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]
    :collapsed? false}
{:title "⚠️ OVERDUE" 
    :query [:find (pull ?block [*])
          :in $ ?start ?next
          :where
          (task ?block #{"NOW" "LATER" "TODO" "DOING"})
          (or
            [?block :block/scheduled ?d]
            [?block :block/deadline ?d])
          [(> ?d ?start)]
          [(<= ?d ?next)]]
    :inputs [:56d :today]
    :collapsed? false}
   ]}

 ;; Add your own commands to slash menu to speedup.
 ;; E.g.
 ;; :commands
 ;; [
 ;; ["js" "Javascript"]
 ;; ["md" "Markdown"]
 ;; ]
 :commands
 []

 ;; By default, a block can only be collapsed if it has some children.
 ;; `:outliner/block-title-collapse-enabled? true` enables a block with a title
 ;; (multiple lines) can be collapsed too. For example:
 ;; - block title
 ;;   block content
 :outliner/block-title-collapse-enabled? false

 ;; Macros replace texts and will make you more productive.
 ;; For example:
 ;; 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 {}

 ;; 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.
 :ref/default-open-blocks-level 2

 :ref/linked-references-collapsed-threshold 50

 ;; Favorites to list on the left sidebar
 :favorites []

 ;; any number between 0 and 1 (the greater it is the faster the changes of the next-interval of card reviews) (default 0.5)
 ;; :srs/learning-fraction 0.5

 ;; the initial interval after the first successful review of a card (default 4)
 ;; :srs/initial-interval 4

 ;; hide specific properties for blocks
 ;; E.g. :block-hidden-properties #{:created-at :updated-at}
 ;; :block-hidden-properties #{}

 ;; Enable all your properties to have corresponding pages
 :property-pages/enabled? true

 ;; Properties to exclude from having property pages
 ;; E.g.:property-pages/excludelist #{:duration :author}
 ;; :property-pages/excludelist

 ;; By default, property value separated by commas will not be treated as
 ;; page references. You can add properties to enable it.
 ;; E.g. :property/separated-by-commas #{:alias :tags}
 ;; :property/separated-by-commas #{}

 ;; Properties that are ignored when parsing property values for references
 ;; :ignored-page-references-keywords #{"author" "startup"}

 ;; logbook setup
 ;; :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 uploading setup
 ;; :mobile/photo
 ;; {:allow-editing? true
 ;;  :quality          80}

 ;; Mobile features options
 ;; Gestures
 ;; :mobile
 ;; {:gestures/disabled-in-block-with-tags ["kanban"]}

 ;; Extra CodeMirror options
 ;; See https://codemirror.net/5/doc/manual.html#config for possible options
 ;; :editor/extra-codemirror-options {:keyMap "emacs" :lineWrapping true}

 ;; Enable logical outdenting
 ;; :editor/logical-outdenting? true

 ;; When both text and a file are in the clipboard, paste the file
 ;; :editor/preferred-pasting-file? true

 ;; Quick capture templates for receiving contents from other apps.
 ;; Each template contains three elements {time}, {text} and {url}, which can be auto-expanded
 ;; by received contents 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 even only use 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
 ;; :quick-capture-options {:insert-today? false :redirect-page? false :default-page "my page"}

 ;; File sync options
 ;; Ignore these files when syncing, regexp is supported.
 ;; :file-sync/ignore-files []

 ;; dwim (do what I mean) for Enter key when editing.
 ;; Context-awareness of Enter key makes editing more easily
 ; :dwim/settings {
 ;   :admonition&src?  true
 ;   :markup?          false
 ;   :block-ref?       true
 ;   :page-ref?        true
 ;   :properties?      true
 ;   :list?            true
 ; }

 ;; Decide the way to escape the special characters in the page title.
 ;; Warning:
 ;;   This is a dangerous operation. If you want to change the setting,
 ;;   should access the setting `Filename format` and follow the instructions.
 ;;   Or you have to rename all the affected files manually then re-index on all
 ;;   clients after the files are synced. Wrong handling may cause page titles
 ;;   containing special characters to be messy.
 ;; Available values:
 ;;   :file/name-format :triple-lowbar
 ;;     ;use triple underscore `___` for slash `/` in page title
 ;;     ;use Percent-encoding for other invalid characters
 :file/name-format :triple-lowbar
 :graph/settings {:journal? true, :orphan-pages? false, :excluded-pages? false, :builtin-pages? true}
 :publishing/all-pages-public? false
 :feature/enable-flashcards? false
 :feature/enable-whiteboards? true

 ;; specify the format of the filename for journal files
 ;; :journal/file-name-format "yyyy_MM_dd"

 }
