`Markdown-Oxide` supports several configuration options. All can be specified in a `~/.config/moxide/settings.toml` or `.moxide.toml` file. Moxide also tries to import some settings from Obsidian directly. ^configurationinfo
> [!note]
> This configuration reference reflects the latest version on the main branch and may include settings not yet available in your installed version. If a setting doesn't seem to work, check that your version of Markdown Oxide is up to date.
# Default Config File
This contains all possible settings with brief descriptions. A bit of elaboration on the settings is included after.
```toml
# Leave blank to try to import from Obsidian Daily Notes
dailynote = "%Y-%m-%d" # this is akin to YYYY-MM-DD from Obsidian
# Fuzzy match file headings in completions
heading_completions = true
# Set true if you title your notes by the first heading
# Right now, if true this will cause completing a file link in the markdown style
# to insert the name of the first heading in the display text area
# [](file) -> [first heading of file.md](file)
# If false, [](file) -> [](file) (for example)
title_headings = true
# Show diagnostics for unresolved links; note that even if this is turned off,
# special semantic tokens will be sent for the unresolved links, allowing you
# to visually identify unresolved links
unresolved_diagnostics = true
semantic_tokens = true
# Resolve tags in code blocks
tags_in_codeblocks = false
# Resolve references in code blocks
references_in_codeblocks = false
# The folder for new files to be created in; this is relevant for the code action that creates
# from an unresolved link. If not specified, it will import from your obsidian config option titled
# "Default Location for new notes" -- which is "" by default too.
new_file_folder_path = ""
# The folder for new daily notes: this is applied for the create file for unresolved link code action
# as well as the Today, Tomorrow, Yesterday, and Daily... lsp commands (including relative directives like prev, next, +N, -N)
#
# This is also imported from obsidian if not specified: specifically the option titled "New file location"
daily_notes_folder = ""
# Whether markdown links should include an extension or not
# for example [File](file.md) or [File](file)
include_md_extension_md_link = false
# Whether wikilinks should include an extension or not (needed for Markor compatibility)
# for example [[File]] or [[File.md]]
include_md_extension_wikilink = false
# Enable hover; this is relevant for VSCode and Zed where hover could be triggered on mouse hover
# and could be annoying
hover = true
# Handle case in fuzzy matches: Ignore | Smart | Respect
case_matching = "Smart"
# Enable inlay hints
inlay_hints = true
# Enable transclusion, in the form of inlay hints, for embedded block links: ![[link]]
# Inlay hints must be enabled
block_transclusion = true
# Full or Partial, for Partial, block_transclusion_length = { partial = 10 }
# block_transclusion must be enabled for this to take effect
block_transclusion_length = "Full"
# Link file names only
# Enables autocompleting by heading but inserting link to filename (instead of filename + heading)
# Useful for unique notes / Zettelkasten users
link_filenames_only = false
# Use GitHub-style heading slugs in completions (spaces replaced with dashes)
# When false (default), completions insert headings with spaces: [[file#My Heading]]
# When true, completions insert headings with dashes: [[file#My-Heading]]
# Note: Go-to-definition and diagnostics always resolve both forms regardless of this setting
heading_slug = false
# Folders to exclude from vault indexing
# Files within excluded folders will not appear in completions, references, diagnostics, or other LSP features
# Matching is by directory name, so excluding "Archive" will skip any directory named Archive at any depth
excluded_folders = []
```
# Daily Note Format Config Option
```toml
dailynote = "{format}"
```
where format is `%Y-%m-%d` by default, unless imported from Obsidian.
From Obsidian, this works as follows ![[#^1862g]]
## Relevance
This is used in the following places
* Generating relative date name completions with predefined relative names (`today`, `tomorrow`, `yesterday`, `next {monday,tuesday,..., sunday}`, `last {monday,tuesday,...}`) such that we get [[Features Index#^implDailyNoteComp|Daily Note Completions]]
* Creating new daily notes in [[Features Index#Opening Daily Notes]]
* [Creating files from unresolved references](<Features Index.md#Code Actions>) when the files match the specified format
## Date Formatting
The date formatting in the config follows the rust library Chrono's formatting.
The full specification can be found here: https://docs.rs/chrono/latest/chrono/format/strftime/index.html
Some examples are:
- Year
* `%Y`: Is the four digit year
* `%y`: Is the two digit year: 1979 -> 79
- Month
* `%m`: Is the two digit month
* `%b`: Is the abbreviated month name; 3 letters
* `%B`: Full moth name or 3 letter abbreviation
- Day
* `%d`: Is the two digit day of month
* `%e`: Is the one or two digit day of month
* `%a`: 3 letter abbreviated weekday name
* `%A`: Abbreviated or full weekday name
Examples:
* (the default) `YYYY-MM-DD` -> `%Y-%m-%d`
* "1 Jan 2024" => `%d %b %Y`
# Settings From Obsidian
- ... ^someobsidiansettings
* Daily Note:
+ `dailynote`: checks if you have the dailynote Obsidian plugin and translates this formatting to Markdown Oxide's date formatting ^1862g
* `new_file_folder_path`: uses the specific folder for new files you set in Obsidian if you have it enabled. This is relevant to the [Create Unresolved File Code Action](<Features Index.md#^implCodeAction>)
* `daily_notes_folder_path`: uses the specific folder for new daily notes you set in the Obsidian Daily Notes plugin, if you have this option enabled. This is relevant to the path for [opening daily notes](<Features Index.md#Opening Daily Notes>) and for [the code action that creates unresolved links](<Features Index.md#^implCodeAction>) if they have the `dailynote` format.