Packages

@dprint/markdown

0.26.0MIT
  • 0.26.0 is the latest, published 3 October 2026.
  • No known security advisory.
  • 0.x: 55 releases since 19 June 2021, 7 in the last 90 days.

Releases in the last 90 days

Feed of releases and advisories

Every stable release, newest first. Notes are quoted as the maintainers published them.

  1. 0.26.0

    3 October 2026
    Support range formatting

    Changes

    • feat: support range formatting

    Install

    Install and setup dprint.

    Then in your project's dprint configuration file:

    1. Specify the plugin url in the "plugins" array or run dprint config add markdown.

    2. Add a "markdown" configuration property if desired.

      {
        // ...etc...
        "markdown": {
          // markdown config goes here
        },
        "plugins": [
          "npm:@dprint/markdown@0.26.0"
        ]
      }

    JS Formatting API

  2. 0.25.0

    2 October 2026
    Add table.minColumnWidth config option

    Changes

    • feat: add table.minColumnWidth config option

    Install

    Install and setup dprint.

    Then in your project's dprint configuration file:

    1. Specify the plugin url in the "plugins" array or run dprint config add markdown.

    2. Add a "markdown" configuration property if desired.

      {
        // ...etc...
        "markdown": {
          // markdown config goes here
        },
        "plugins": [
          "npm:@dprint/markdown@0.25.0"
        ]
      }

    JS Formatting API

  3. 0.24.0

    10 September 2026
    Add wrapCodeSpans config option, on by default

    Changes

    • feat: add wrapCodeSpans config option, on by default

    Install

    Install and setup dprint.

    Then in your project's dprint configuration file:

    1. Specify the plugin url in the "plugins" array or run dprint config add markdown.

    2. Add a "markdown" configuration property if desired.

      {
        // ...etc...
        "markdown": {
          // markdown config goes here
        },
        "plugins": [
          "npm:@dprint/markdown@0.24.0"
        ]
      }

    JS Formatting API

  4. 0.23.3

    3 September 2026
    Bound the search for an emphasis opener by where a closer was rather than its index

    Changes

    • fix: bound the search for an emphasis opener by where a closer was rather than its index

    • fix: don't write three bullets of one character alone on a line, which read as a thematic break

    • fix: end a raw text html block at the close tag of any raw text element

    • fix: escape a backslash written before the whitespace that ends a line

    • fix: keep a line that only reads as text because of where it is from being moved where it starts a block

    • fix: only read a destination whose parentheses are balanced

    • fix: read a setext underline as one before taking it as the destination of a definition

    • fix: read the decorations of a block back out of what it is written as

    • fix: write a code span with backticks that no run written before it would pair with

    • fix: write a decoration read out of a longer delimiter run with the configured kind

    • fix: write emphasis around strong as one run of the configured character

    Install

    Install and setup dprint.

    Then in your project's dprint configuration file:

    1. Specify the plugin url in the "plugins" array or run dprint config add markdown.

    2. Add a "markdown" configuration property if desired.

      {
        // ...etc...
        "markdown": {
          // markdown config goes here
        },
        "plugins": [
          "npm:@dprint/markdown@0.23.3"
        ]
      }

    JS Formatting API

  5. 0.23.2

    29 August 2026
    Only write an opening delimiter run that reads one way

    Changes

    • fix: only write an opening delimiter run that reads one way

    • fix: read a continued line without the indentation it is written with

    Install

    Install and setup dprint.

    Then in your project's dprint configuration file:

    1. Specify the plugin url in the "plugins" array or run dprint config add markdown.

    2. Add a "markdown" configuration property if desired.

      {
        // ...etc...
        "markdown": {
          // markdown config goes here
        },
        "plugins": [
          "npm:@dprint/markdown@0.23.2"
        ]
      }

    JS Formatting API

  6. 0.23.1

    27 August 2026
    Keep _ emphasis beside punctuation that is not ascii

    Changes

    • fix: keep _ emphasis beside punctuation that is not ascii

    Install

    Install and setup dprint.

    Then in your project's dprint configuration file:

    1. Specify the plugin url in the "plugins" array or run dprint config add markdown.

    2. Add a "markdown" configuration property if desired.

      {
        // ...etc...
        "markdown": {
          // markdown config goes here
        },
        "plugins": [
          "npm:@dprint/markdown@0.23.1"
        ]
      }

    JS Formatting API

  7. 0.23.0

    26 August 2026
    A markdown parser written for formatting (#224, #260). The plugin no longer goes through pulldown-cmark. The new parser keeps what a formatter needs and a renderer throws away — exact delimiters, indentation, line breaks, link reference definitions — which is what makes most of the fixes below possible.

    Changes

    • A markdown parser written for formatting (#224, #260). The plugin no longer goes through pulldown-cmark. The new parser keeps what a formatter needs and a renderer throws away — exact delimiters, indentation, line breaks, link reference definitions — which is what makes most of the fixes below possible.

    • Html is formatted now (#255, #257, #260). Tags, attributes, and their content get laid out rather than passed through untouched, with a set of html.* options to control it, including html.skipFormat to turn it back off.

    • Definition lists are supported (#211).

    • Options moved under namespaces — heading., list., codeBlock., and table. (#225, #250, #260).

    Performance

    Measured over a corpus of 3,532 real-world markdown files (21.8 MB), code block formatting disabled, best of three runs on the same machine:

    0.22.10.23.0
    Time964 ms347 ms2.8x faster
    Allocations10.4M1.2M8.7x fewer
    Bytes allocated6.5 GB0.8 GB8.4x less
    Throughput23 MB/s63 MB/s

    That is with 0.23.0 doing strictly more work, since it also parses and formats every piece of html in those files, which 0.22.1 didn't do at all. 0.22.1 also failed outright on 22 of the 3,532 files; 0.23.0 formats all of them (#254).

    Breaking changes

    Options moved under namespaces

    The old names still work, and dprint config update will now rewrite them for you (#225, #250, #260):

    OldNew
    headingKindheading.kind
    unorderedListKindlist.unorderedMarker
    listIndentKindlist.indentKind

    The old names will continue to work for the foreseeable future.

    Html

    • html.skipFormat (default false) — leave the html written in the file as it was rather than laying out its tags and their content (#255).

    • html.useTabs (default: the global useTabs, else false) and html.indentWidth (default: the global indentWidth, else 2) — how the html inside the file is indented (#255).

    • html.selfClosingSpace (default true) — whether to write a space before the /> of a self-closing tag, so <br /> rather than <br/> (#255).

    • html.preferSingleLine (default false) — whether to pull an element's content, or a tag's attributes, onto one line when they fit. Off by default, so content written across lines stays across lines and is only reindented (#259).

    • The indentation of an html block's first line is maintained (#218), and an html block that formatting would otherwise cut short is kept whole (#257).

    New configuration

    Text wrapping

    • textWrap: "sentence" (#239) — one sentence per line, ignoring the line width. This is the mechanical half of semantic line breaks: a break goes where a sentence ends and nowhere else, so a diff stays scoped to the sentences you actually edited.

    • textWrap: "maintainAndWrap" (#251) — keeps the line breaks that were written but breaks up any line running past the line width. No line is ever pulled up into the one above it.

    • wrapUnspacedScripts (default false) — whether to break a line between the characters of a script written without spaces between its words, such as Chinese or Japanese. Off by default, because Chromium and WebKit render such a break as a space (Firefox doesn't), so a break the formatter wrote would show up in the rendered text for most readers (#231, #258).

    Blank lines

    • maxBlankLines (default 1) — the maximum number of consecutive blank lines to keep between blocks (#236).

    • heading.blankLinesAbove (default: unset) — the number of blank lines to write above a heading, written even where maxBlankLines is lower. A heading drawn up against the block above it inside a list is left there, which keeps the list tight (#249).

    Hard breaks

    • hardBreakKind (default "backslash") — write hard line breaks as a trailing backslash or as two trailing spaces ("doubleSpace"). Note that plenty of tools strip trailing whitespace, which would silently delete double-space breaks. Those two spaces don't count toward the line width (#217, #229).

All 55 releases

Quality and security signals

What npm and deps.dev say about the latest release. Signals, not a verdict.

Reading npm and deps.dev…

Registry facts last checked 15 October 2026. Releases and advisories last read 15 October 2026.

Know when your own dependencies move

Inlinr tracks your coding time automatically. Switch dependency tracking on for a project and it reads that repository's manifest to show what is behind and what has been deprecated — off by default, one project at a time.