Back to Explore

markedjs/marked

GitHub
9 updates · last 90 daysOpen source

Last release:

Marked is a fast markdown parser and compiler that turns Markdown into HTML, designed to be lightweight and implement many markdown features. It can be used in browsers, on servers, or via a command line interface (CLI), and it supports customization through options and extensibility. It also provides documentation and a demo site rendered using Marked.

Project status

  • Actively maintained, with an upstream push and update on November 2, 2026.
  • Updates have been frequent, roughly weekly to biweekly from August through early November.

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v18.1.3

    Marked v18.1.3 fixes a range of Markdown parsing edge cases, including link labels, escaped link delimiters, lists, blockquotes, setext headings, and autolinks. It also fixes asynchronous walkTokens handling, CLI token output options, and renderer results, while reducing pathological scanning and regex backtracking.

  • v18.1.2

    Marked v18.1.2 fixes Markdown parsing edge cases across emphasis, lists, blockquotes, HTML blocks, links, and image alt text, along with CLI handling and async hook behavior. It also includes a parsing performance improvement and developer-tooling dependency updates.

    Breaking
  • v18.1.1

    v18.1.1 is a bug fix and performance-focused release for Marked. It includes fixes around CLI empty-string input handling, code span backslash masking, numeric character reference decoding safety, correct blockquote lazy continuation boundaries, and list indentation tab stop behavior.

  • v18.1.0

    Marked v18.1.0 focuses on performance and correctness fixes around link parsing, especially avoiding expensive backtracking and properly rejecting unbalanced parentheses in link destinations. It also improves the CLI config loader to support config modules that rely on top-level await.

    Features
  • v18.0.14

    v18.0.14 contains multiple markdown parsing bug fixes centered around edge-case tokenization and inline parsing. The release notes enumerate fixes for setext heading indentation, numeric character references, nested blockquote handling, tab preservation in list content, link reference label whitespace normalization, and GFM protocol autolinks.

  • v18.0.13

    v18.0.13 is a bug fix release focused on Markdown parsing edge cases, including better handling of tabs in thematic breaks and indented code blocks, trimming whitespace after hard line breaks, and improved HTML block detection when closing lists. It also fixes link label matching (Unicode case folding) and adds a performance safeguard to prevent quadratic behavior in reflink label searching.

  • v18.0.12

    Marked v18.0.12 primarily ships Markdown parsing bug fixes around ATX heading closing sequences, nested link label parsing, code fence indentation stripping, HTML tag name validation, and GFM email autolink rules. Code changes also adjust how autolink destinations, and potentially the rendered autolink text, escape character references.

  • v18.0.11

    v18.0.11 contains targeted bug fixes around link handling, specifically preventing nested links and preserving emphasis when link text is rejected according to CommonMark rules. The changes also adjust how reflink masking is performed during lexing, aiming to avoid incorrect flattening of nested structures and reduce repeated work.

  • v18.0.10

    v18.0.10 includes a set of parsing bug fixes related to escaped emphasis masking, task checkbox placement in loose lists, and fence handling when a closing fence occurs at EOF. The code changes also include updates to the parsing regexes that affect both backtick and tilde fences, plus test updates and dependency bumps.

  • v18.0.9

    v18.0.9 contains several markdown parsing bug fixes, focused on emphasis delimiter edge cases and nested blockquote continuation handling. It also includes TypeScript/public API declaration refinements around how `marked.use` and `marked.parseInline` are exposed.

  • v18.0.8

    v18.0.8 mainly fixes how marked handles checkbox renderer extensions when the extension returns false. The parser logic was updated to treat checkbox tokens like other tokens that should fall back to the built-in checkbox renderer, and unit tests were added to cover both normal and loose list cases.

  • v18.0.7

    v18.0.7 contains several markdown parsing bug fixes focused on eliminating O(n^2) backtracking hotspots (HTML block close, tilde interrupt regexes, and inline masking). It also adjusts block/paragraph recognition rules for edge cases like tabs-only blank lines, setext headings starting with '#', preserving code spans adjacent to tildes, and keeping empty lists after blockquotes as sibling blocks.

  • v18.0.6

    v18.0.6 is a small patch release focused on three parsing-related bug fixes. The main library changes address link href regex performance, ordered list parsing after blockquotes, and preserving trailing text on closing lines for certain HTML blocks.

  • v18.0.5

    v18.0.5 is a small release focused on a markdown parsing bug fix related to empty list items that include trailing spaces. The code changes are concentrated in the core parsing regex rules and add a regression test and documentation snippet, along with minor dev dependency updates.

  • v18.0.4

    v18.0.4 contains two documented fixes: improving caching for list indentation related regexes, and fixing the CLI behavior when stdin is used. The code diff also shows additional CLI argument handling changes and several dependency bumps for the project itself.

  • v18.0.3

    v18.0.3 contains a targeted bug fix for task list checkbox parsing when the checkbox-like syntax is followed by setext heading markers. The code change refines how the tokenizer decides whether a list item should remain a task, and adds regression tests for tight, unchecked, and loose setext heading scenarios.

  • v18.0.2

    Release v18.0.2 is described as a single bug fix for an infinite loop involving indented code blank lines. The code changes in this release not only refactor the lexer infinite loop handling, they also adjust blank-line trimming behavior in helpers, plus update test coverage for a vertical-tab input case.

  • v18.0.1

    v18.0.1 contains a targeted fix for how lookbehind support detection regexes are handled when bundlers or minifiers optimize the code. The code changes are localized to rule support detection plus minor dependency bumps for dev tooling.

  • v18.0.0

    marked v18.0.0 updates tokenization to trim trailing blank lines from block-level tokens and adjusts how whitespace is captured around block elements like code, headings, HTML blocks, definitions, and tables. The release notes explicitly call out trailing blank line trimming and a TypeScript toolchain bump, but the code diff also shows additional dependency bumps and more nuanced tokenizer behavior changes.

    Breaking
  • v17.0.6

    v17.0.6 primarily fixes hook-related concurrency issues when using async parsing concurrently via parse and parseInline. It also updates the CLI to better handle positional input files and to import config files using proper file URLs. The code diff additionally includes a few small internal logic tweaks and dev dependency bumps.