default: true

# Use specific styles, to be consistent accross all documents.
# Default is to accept any as long as it is consistent within the same document.
heading-style: # MD003
  style: atx
ul-style: # MD004
  style: dash
hr-style: # MD035
  style: ---
code-block-style: # MD046
  style: fenced
code-fence-style: # MD048
  style: backtick
emphasis-style: # MD049
  style: asterisk
strong-style: # MD050
  style: asterisk

# Allow multiple headers with same text as long as they are not siblings.
no-duplicate-heading: # MD024
  siblings_only: true

# Allow long lines in code blocks and tables.
line-length: # MD013
  code_blocks: false
  tables: false

# The Markdown files used to generated docs with Hugo contain a top level
# header, even though the YAML front matter has a title property (which is
# used for the HTML document title only). Suppress Markdownlint warning:
# Multiple top-level headings in the same document.
single-title: # MD025
  level: 1
  front_matter_title:

# The HTML docs generated by Hugo from Markdown files may have slightly
# different header anchors than GitHub rendered Markdown, e.g. Hugo trims
# leading dashes so "--config string" becomes "#config-string" while it is
# "#--config-string" in GitHub preview. When writing links to headers in the
# Markdown files we must use whatever works in the final HTML generated docs.
# Suppress Markdownlint warning: Link fragments should be valid.
link-fragments: false # MD051

# Restrict the languages and language identifiers to use for code blocks.
# We only want those supported by both Hugo and GitHub. These are documented
# here:
#   https://gohugo.io/content-management/syntax-highlighting/#languages
#   https://docs.github.com//get-started/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks#syntax-highlighting
# In addition, we only want to allow identifiers (aliases) that correspond to
# the same language in Hugo and GitHub, and preferrably also VSCode and other
# commonly used tools, to avoid confusion. An example of this is that "shell"
# by some are considered an identifier for shell scripts, i.e. an alias for
# "sh", while others consider it an identifier for shell sessions, i.e. an
# alias for "console". Although Hugo and GitHub in this case are consistent and
# have choosen the former, using "sh" instead, and not allowing use of "shell",
# avoids the confusion entirely.
fenced-code-language: # MD040
  allowed_languages:
    - text
    - console
    - sh
    - bat
    - ini
    - json
    - yaml
    - go
    - python
    - c++
    - c#
    - java
    - powershell
