# mdl changelog > Ruby markdown linter enforcing style rules, run as the `mdl` command. - Vendor: markdownlint - Category: Developer Tools - Official site: https://github.com/markdownlint/markdownlint - Tracked by: What's New (https://whatsnew.fyi/product/mdl) - Harvested from: Registry (rubygems: mdl) - Entries below: 15 (newest first) What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. ## Releases ### 0.17.0 - Date: 2026-06-03 - Version: 0.17.0 - Original notes: https://rubygems.org/gems/mdl/versions/0.17.0 - Permalink: https://whatsnew.fyi/product/mdl/releases/0.17.0 ###### Added * Added `treat_links_as_single_word` option to MD013 [#580](https://github.com/markdownlint/markdownlint/pull/580/) ###### Fixed * MD013 - Do not trigger on a single long word in backticks [#580](https://github.com/markdownlint/markdownlint/pull/580/) * MD013 - Do not trigger on a single long word alone on a line continuation [#580](https://github.com/markdownlint/markdownlint/pull/580/) * MD013 - Do not trigger on a list item with a single long word [#580](https://github.com/markdownlint/markdownlint/pull/580/) * Docker - Use latest alphine so mdl version is correct ### 0.16.0 - Date: 2026-05-29 - Version: 0.16.0 - Original notes: https://rubygems.org/gems/mdl/versions/0.16.0 - Permalink: https://whatsnew.fyi/product/mdl/releases/0.16.0 ###### Added * Add autocorrecting [#519](https://github.com/markdownlint/markdownlint/pull/559/) ###### Changed * Added extra documentation around excluding rules [#516](https://github.com/markdownlint/markdownlint/pull/516/) * Update Kramdown [#539](https://github.com/markdownlint/markdownlint/pull/539/) * Start from all rules when style only contains exclusions [#551](https://github.com/markdownlint/markdownlint/pull/551/) * Give error when explicitly specified config file is not found [#554](https://github.com/markdownlint/markdownlint/pull/554/) * Skip docs footer for rules without a docs URL [#556](https://github.com/markdownlint/markdownlint/pull/556/) * Fix "bulletd" typo in test file names [#557](https://github.com/markdownlint/markdownlint/pull/557/) * Accept string values for symbol params in style files [#561](https://github.com/markdownlint/markdownlint/pull/561/) * Bump bundler version [#569](https://github.com/markdownlint/markdownlint/pull/569/) ###### Fixed * MD005 - Fixed inconsistent UL/OL ordering [#539](https://github.com/markdownlint/markdownlint/pull/539/) * MD013 - Fixed line length detection [#539](https://github.com/markdownlint/markdownlint/pull/539/) * Fix fenced code blocks not detected without preceding blank line [#541](https://github.com/markdownlint/markdownlint/pull/541/) * Fix front matter offset when blank line follows closing --- [#542](https://github.com/markdownlint/markdownlint/pull/542/) * MD029 - Fix false positive for ordered lists inside blockquotes [#543](https://github.com/markdownlint/markdownlint/pull/543/) * MD026 - Fix false positive on emoji shortcodes in headers [#543](https://github.com/markdownlint/markdownlint/pull/544/) * MD011 - Fix false positive on footnote references [#545](https://github.com/markdownlint/markdownlint/pull/545/) * Fix crash on files with invalid UTF-8 byte sequences [#546](https://github.com/markdownlint/markdownlint/pull/546/) * MD034 - FIx not detecting bare URLs inside tables [#547](https://github.com/markdownlint/markdownlint/pull/547/) * Fix front matter regex matching --- inside code blocks [#548](https://github.com/markdownlint/markdownlint/pull/548/) * MD037 - Fix false positive on escaped emphasis markers [#549](https://github.com/markdownlint/markdownlint/pull/549/) * MD014 - Fix false positive on code blocks with only blank lines [#550](https://github.com/markdownlint/markdownlint/pull/550/) * MD040 - Fix false positive on tab-indented code blocks [#552](https://github.com/markdownlint/markdownlint/pull/552/) * MD034 - Fix false positive for URLs inside HTML elements [#553](https://github.com/markdownlint/markdownlint/pull/553/) * Fix double slashes in file paths when directory has trailing slash [#555](https://github.com/markdownlint/markdownlint/pull/555/) * MD031 - Fix false positive on inline backtick code spans [#558](https://github.com/markdownlint/markdownlint/pull/558/) * MD013 - Detect table-like lines even when kramdown parses them as paragraphs [#560](https://github.com/markdownlint/markdownlint/pull/560/) * MD007 - Fix false positive on unrelated lists at different indent levels [#562](https://github.com/markdownlint/markdownlint/pull/562/) * MD034 - Fix false positive when link text contains pipe character [#564](https://github.com/markdownlint/markdownlint/pull/564/) * MD032 - Fix false positive on HTML comments adjacent to lists [#565](https://github.com/markdownlint/markdownlint/pull/565/) * MD027 - Fix false positive on blockquotes with soft line breaks [#566](https://github.com/markdownlint/markdownlint/pull/566/) * MD013 - Add :headings parameter to exclude headings from line length [#563](https://github.com/markdownlint/markdownlint/pull/563/) * MD013 - Don't flag lines that are single-words [#572](https://github.com/markdownlint/markdownlint/pull/572/) ### 0.15.0 - Date: 2025-11-26 - Version: 0.15.0 - Original notes: https://rubygems.org/gems/mdl/versions/0.15.0 - Permalink: https://whatsnew.fyi/product/mdl/releases/0.15.0 ###### Changed * Bumped minum ruby version to 3.2 [#531](https://github.com/markdownlint/markdownlint/pull/531), and associated changes ### 0.14.0 - Date: 2025-11-26 - Version: 0.14.0 - Original notes: https://rubygems.org/gems/mdl/versions/0.14.0 - Permalink: https://whatsnew.fyi/product/mdl/releases/0.14.0 ###### Fixed * Fix Markdown lint version in SARIF output test [#469](https://github.com/markdownlint/markdownlint/pull/469) * Fix example for rulesets flag in configuration docs [#473](https://github.com/markdownlint/markdownlint/pull/473) * Require ruby-3.3.0 for standalone pre-commit hook [#528](https://github.com/markdownlint/markdownlint/pull/528) ###### Rules Removed * Removed MD055, MD056, MD057 - These rules for tables caused regressions and were removed (see [#472](https://github.com/markdownlint/markdownlint/issues/472) for details) ### 0.13.0 - Date: 2023-10-02 - Version: 0.13.0 - Original notes: https://rubygems.org/gems/mdl/versions/0.13.0 - Permalink: https://whatsnew.fyi/product/mdl/releases/0.13.0 ###### Rules Added * MD055 - Tables: Each row must start and end with a `|` [#464](https://github.com/markdownlint/markdownlint/pull/464) * MD056 - Tables: Number of columns is the same for all rows [#464](https://github.com/markdownlint/markdownlint/pull/464) * MD057 - Tables: In the second row every column must have at least `---`, possibly surrounded with alignment `:` chars [#464](https://github.com/markdownlint/markdownlint/pull/464) ###### Added * Add SARIF output [#459](https://github.com/markdownlint/markdownlint/pull/459) * Document DCO process better [#448](https://github.com/markdownlint/markdownlint/pull/448) and [#449](https://github.com/markdownlint/markdownlint/pull/449) ###### Changed * MD009 - Allow exactly 2 trailing spaces by default [#452](https://github.com/markdownlint/markdownlint/pull/452) * MD033 - Add `allowed_elements` parameter [#450](https://github.com/markdownlint/markdownlint/pull/450) * Updated build instructions [#431](https://github.com/markdownlint/markdownlint/pull/431) ###### Fixed * MD027 - handle anchor elements correctly [#463](https://github.com/markdownlint/markdownlint/pull/463) * Fix examples for RULES.md for MD007 [#462](https://github.com/markdownlint/markdownlint/pull/462) * Fix links to use https instead of http [#447](https://github.com/markdownlint/markdownlint/pull/447) * Make RULES.md comply with our own rules [#439](https://github.com/markdownlint/markdownlint/pull/439) * Fix docker builds [#429](https://github.com/markdownlint/markdownlint/pull/429) ### 0.12.0 - Date: 2022-10-18 - Version: 0.12.0 - Original notes: https://rubygems.org/gems/mdl/versions/0.12.0 - Permalink: https://whatsnew.fyi/product/mdl/releases/0.12.0 ###### Rules Added * MD047 - File should end with a blank line ###### Added * New 'docs' method on rules to provide a URL and longer description * `docker_image`-based pre-commit ###### Changed * Changed the default for MD007 to 3 spaces to match minimum spaces for ordered lists * Added option `:ignore_code_blocks` to rule MD010. If set to true, hard tabs in code blocks will be ignored. * Added option `:ignore_code_blocks` to rule MD013. If set to true, hard tabs in code blocks will be ignored. The option `:code_blocks` has been marked as deprecated in the documentation. If `:code_blocks` is set to false in the configuration, a deprecation warning is printed. * Improved documentation on custom rules and rulesets * Handle non-printable characters gracefully * Support configurable sublist styles for MD004 ###### Fixed * Fixed directory argument with `--git-recurse` * Preserve empty lines at the end of a file ### 0.11.0 - Date: 2020-08-23 - Version: 0.11.0 - Original notes: https://rubygems.org/gems/mdl/versions/0.11.0 - Permalink: https://whatsnew.fyi/product/mdl/releases/0.11.0 ###### Fixed * Fixed crash when using `-g` * Fixed missing dependencies in docker image ### 0.10.0 - Date: 2020-08-08 - Version: 0.10.0 - Original notes: https://rubygems.org/gems/mdl/versions/0.10.0 - Permalink: https://whatsnew.fyi/product/mdl/releases/0.10.0 ###### Added * More examples of mdlrc and style files * Added CI for Rubocop and Markdownlint on our own repo ###### Fixed * Update Dockerfile to work with modern mdl * Update minimum version of kramdown for security advisory * Update minimum version of rubocop for security advisory ### 0.9.0 - Date: 2020-02-21 - Version: 0.9.0 - Original notes: https://rubygems.org/gems/mdl/versions/0.9.0 - Permalink: https://whatsnew.fyi/product/mdl/releases/0.9.0 ###### Changed * Better error messages on missing styles [#302](https://github.com/markdownlint/markdownlint/pull/302) * Use require_relative to speed up requires [#297](https://github.com/markdownlint/markdownlint/pull/297) * Bumped alpine version in the Dockerfile [#155](https://github.com/markdownlint/markdownlint/pull/155) ###### Fixed * Fix crash in --json [#286](https://github.com/markdownlint/markdownlint/pull/286) * Handle codeblocks that are nested [#293](https://github.com/markdownlint/markdownlint/pull/293) * Fix handling of blockquoted list items [#284](https://github.com/markdownlint/markdownlint/pull/284) ### 0.8.0 - Date: 2019-11-09 - Version: 0.8.0 - Original notes: https://rubygems.org/gems/mdl/versions/0.8.0 - Permalink: https://whatsnew.fyi/product/mdl/releases/0.8.0 ###### Changed * Don't ship test / example files in the gem artifact [#282](https://github.com/markdownlint/markdownlint/pull/282) ###### Fixed * Handle newlines on Windows better [#238](https://github.com/markdownlint/markdownlint/pull/238) ### 0.7.0 - Date: 2019-10-25 - Version: 0.7.0 - Original notes: https://rubygems.org/gems/mdl/versions/0.7.0 - Permalink: https://whatsnew.fyi/product/mdl/releases/0.7.0 ###### Added * Pull request and issue templates for users and contributors * Move to kramdown 2 * Handle Kramdown TOC * Loosen various dependencies and move minimum ruby version to 2.4 ### 0.6.0 - Date: 2019-10-20 - Version: 0.6.0 - Original notes: https://rubygems.org/gems/mdl/versions/0.6.0 - Permalink: https://whatsnew.fyi/product/mdl/releases/0.6.0 ###### Added * There are now CONTRIBUTING.md and MAINTAINERS.md docs * There is now a `.pre-commit-hooks.yaml` for those who want to use pre-commit.com ###### Changed * Ignore blank line after front matter [#248](https://github.com/markdownlint/markdownlint/pull/248) * Only import JSON when necessary [#231](https://github.com/markdownlint/markdownlint/pull/231) * Use newere mixlib-cli [#265](https://github.com/markdownlint/markdownlint/pull/265) * Nicer error message when activating nonexistent rule [#246](https://github.com/markdownlint/markdownlint/pull/246) * Fix documentation on `ignore_front_matter` [#241](https://github.com/markdownlint/markdownlint/pull/241) * Update docs to use "MY" prefix for custom rule example [#245](https://github.com/markdownlint/markdownlint/pull/245) * Fix crash in MD039 when the link text is empty [#256](https://github.com/markdownlint/markdownlint/pull/256) * Reference Node.js markdownlint [#229](https://github.com/markdownlint/markdownlint/pull/229) * Added table of contents to RULES.md for easier navigation [#232](https://github.com/markdownlint/markdownlint/pull/232) * Fix typos in MD046 docs [#219](https://github.com/markdownlint/markdownlint/pull/219) * Fixed MD036 crash [#222](https://github.com/markdownlint/markdownlint/pull/222) ###### Removed ### 0.5.0 - Date: 2018-07-02 - Version: 0.5.0 - Original notes: https://rubygems.org/gems/mdl/versions/0.5.0 - Permalink: https://whatsnew.fyi/product/mdl/releases/0.5.0 ###### Added * Add md042 to enforce code block style * JSON formatter/output ###### Changed * Allow different nesting on headers duplication check [#200](https://github.com/markdownlint/markdownlint/pull/200) * MD036 - Ignore multi-line emphasized paragraphs, and emphasized paragraphs that end in punctuation [#140](https://github.com/markdownlint/markdownlint/pull/140) ###### Fixed * Fix issue numbers false positives [#168](https://github.com/markdownlint/markdownlint/pull/168) * Lint MD039 checking for nodes inside link text [#102](https://github.com/markdownlint/markdownlint/issues/102) ### 0.4.0 - Date: 2016-08-22 - Version: 0.4.0 - Original notes: https://rubygems.org/gems/mdl/versions/0.4.0 - Permalink: https://whatsnew.fyi/product/mdl/releases/0.4.0 ###### Added * Ignore yaml front matter option [#130](https://github.com/markdownlint/markdownlint/pull/130) and [#143](https://github.com/markdownlint/markdownlint/pull/143) ###### Changed * Allow top level header rules (MD002, MD025, MD041) to be configurable [#142](https://github.com/markdownlint/markdownlint/pull/142) ###### Fixed * Read UTF-8 files correctly even if locale is set to C [#135](https://github.com/markdownlint/markdownlint/pull/135), [#146](https://github.com/markdownlint/markdownlint/pull/146), [#147](https://github.com/markdownlint/markdownlint/pull/147) and [#148](https://github.com/markdownlint/markdownlint/pull/148) * Fix issues loading .mdlrc file [#126](https://github.com/markdownlint/markdownlint/pull/126), [#129](https://github.com/markdownlint/markdownlint/pull/129), [#133](https://github.com/markdownlint/markdownlint/pull/133) and [#148](https://github.com/markdownlint/markdownlint/pull/148) * Fix erroneous triggering of MD022/MD023 in some cases [#144](https://github.com/markdownlint/markdownlint/pull/144) * Detect codeblock lines correctly when ignoring them [#141](https://github.com/markdownlint/markdownlint/pull/141) ### 0.3.1 - Date: 2016-03-20 - Version: 0.3.1 - Original notes: https://rubygems.org/gems/mdl/versions/0.3.1 - Permalink: https://whatsnew.fyi/product/mdl/releases/0.3.1 ###### Fixed * Fix error on starting mdl