# zk configuration file # # Uncomment the properties you want to customize. # NOTEBOOK SETTINGS [notebook] dir = "~/Notes" # NOTE SETTINGS # # Defines the default options used when generating new notes. [note] # Language used when writing notes. # This is used to generate slugs or with date formats. language = "fr" # The default title used for new note, if no `--title` flag is provided. default-title = "Untitled" # Template used to generate a note's filename, without extension. #filename = "{{id}}" filename = "{{slug title}}" # filename = "{{format-date now}}-{{slug title}}" # The file extension used for the notes. extension = "md" # Template used to generate a note's content. # If not an absolute path, it is relative to .zk/templates/ template = "default.md" # Path globs ignored while indexing existing notes. ignore = [ "drafts/*", "log.md" ] # Configure random ID generation. # The charset used for random IDs. You can use: # * letters: only letters from a to z. # * numbers: 0 to 9 # * alphanum: letters + numbers # * hex: hexadecimal, from a to f and 0 to 9 # * custom string: will use any character from the provided value id-charset = "alphanum" # Length of the generated IDs. id-length = 4 # Letter case for the random IDs, among lower, upper or mixed. id-case = "lower" # EXTRA VARIABLES # # A dictionary of variables you can use for any custom values when generating # new notes. They are accessible in templates with {{extra.}} [extra] author = "Jeff Lance" mail = "email@jefflance.me" # GROUP OVERRIDES # # You can override global settings from [note] and [extra] for a particular # group of notes by declaring a [group.""] section. # # Specify the list of directories which will automatically belong to the group # with the optional `paths` property. # # Omitting `paths` is equivalent to providing a single path equal to the name of # the group. This can be useful to quickly declare a group by the name of the # directory it applies to. [group."journal"] paths = ["journal/daily"] filename = "{{format-date now}}" extension = "md" template = "daily.md" [group."travail"] filename = "{{slug title}}_{{format-date now}}" [group."wiki"] filename = "{{format-date now}}_{{slug title}}" # MARKDOWN SETTINGS [format.markdown] # Format used to generate links between notes. # Either "wiki", "markdown" or a custom template. Default is "markdown". #link-format = "wiki" # Indicates whether a link's path will be percent-encoded. # Defaults to true for "markdown" format and false for "wiki" format. #link-encode-path = true # Indicates whether a link's path file extension will be removed. # Defaults to true. #link-drop-extension = true # Enable support for #hashtags. hashtags = true # Enable support for :colon:separated:tags:. colon-tags = true # Enable support for Bear's #multi-word tags# # Hashtags must be enabled for multi-word tags to work. multiword-tags = true # EXTERNAL TOOLS [tool] # Default editor used to open notes. When not set, the EDITOR or VISUAL # environment variables are used. editor = "lvim" # Pager used to scroll through long output. If you want to disable paging # altogether, set it to an empty string "". pager = "less -FIRX" # Command used to preview a note during interactive fzf mode. # Set it to an empty string "" to disable preview. # bat is a great tool to render Markdown document with syntax highlighting. #https://github.com/sharkdp/bat fzf-preview = "bat -p --color always {-1}" # LSP # # Configure basic editor integration for LSP-compatible editors. # See https://github.com/mickael-menu/zk/blob/main/docs/editors-integration.md # [lsp] [lsp.diagnostics] # Each diagnostic can have for value: none, hint, info, warning, error # Report titles of wiki-links as hints. #wiki-title = "hint" # Warn for dead links between notes. dead-link = "error" [lsp.completion] # Customize the completion pop-up of your LSP client. # Show the note title in the completion pop-up, or fallback on its path if empty. #note-label = "" # Filter out the completion pop-up using the note title or its path. #note-filter-text = " " # Show the note filename without extension as detail. #note-detail = "" # NAMED FILTERS # # A named filter is a set of note filtering options used frequently together. # [filter] # Matches the notes created the last two weeks. For example: # $ zk list recents --limit 15 # $ zk edit recents --interactive recents = "--sort created- --created-after 'last two weeks'" # COMMAND ALIASES # # Aliases are user commands called with `zk [] []`. # # The alias will be executed with `$SHELL -c`, please refer to your shell's # man page to see the available syntax. In most shells: # * $@ can be used to expand all the provided flags and arguments # * you can pipe commands together with the usual | character # [alias] # Here are a few aliases to get you started. # Shortcut to a command. l = "zk list $@" c = "zk conf $@" e = "zk edit $@" el = "zk editlast $@" h = "zk hist $@" n = "zk new $@" nt = 'zk new --title "$*"' r = "zk recent $@" # Default flags for an existing command. list = "zk list --quiet $@" # Edit the last modified note. editlast = "zk edit --limit 1 --sort modified- $@" # Edit the notes selected interactively among the notes created the last two weeks. # This alias doesn't take any argument, so we don't use $@. recent = "zk edit --sort created- --created-after 'last two weeks' --interactive" # Print paths separated with colons for the notes found with the given # arguments. This can be useful to expand a complex search query into a flag # taking only paths. For example: # zk list --link-to "`zk path -m potatoe`" path = "zk list --quiet --format {{path}} --delimiter , $@" # Show a random note. lucky = "zk list --quiet --format full --sort random --limit 1" # Returns the Git history for the notes found with the given arguments. # Note the use of a pipe and the location of $@. hist = "zk list --format path --delimiter0 --quiet $@ | xargs -t -0 git log --patch --" # Edit this configuration file. conf = '$EDITOR "${HOME}/.config/zk/config.toml"' # Create a new daily journal note. jour = 'zk new -g journal --no-input "$ZK_NOTEBOOK_DIR/journal/daily"' # Create a new work note. trav = 'zk new -g travail -t "$*" "$ZK_NOTEBOOK_DIR/travail"' # Create a new wiki note. wiki = 'zk new -g wiki -t "$*" "$ZK_NOTEBOOK_DIR/wiki"'