19 KiB
Change Log
0.32.0
Minor Changes
-
(#41113) Adds support for horizontal rules (thematic breaks) in the message parser. A line of 3 or more contiguous dashes (
---, with nothing else on the line) is parsed into a newHORIZONTAL_RULEblock node and rendered with Fuselage'sDivider. The node carries an optionalfallback— a[start, end]offset span into the original source — so renderers without horizontal-rule support can slice the source to show the raw markup instead of dropping it, without duplicating the text into the AST. Only-is accepted: CommonMark also allows*and_, but those collide with emphasis and with censored words (bad-words masks a term as a run of*), so a bare***/_______line stays text/emphasis instead of becoming a divider. -
(#41109) Adds GFM-style table support to the message parser and renders it in gazzodown.
Parser: tables require a leading and trailing pipe on every row, support column alignment via the delimiter row (
:---,:--:,---:), and allow inline markup inside cells (a literal pipe must be escaped as\|). NewTABLE,TABLE_ROW, andTABLE_CELLAST nodes are emitted. TheTABLEnode also carries an optionalfallback— a[start, end]offset span into the original source — so renderers without table support can slice the source to show the raw markup instead of dropping it, without duplicating the text into the AST.Rendering: gazzodown renders these tables using Fuselage's
Tablecomponents with per-column alignment, and shows a compact single-row preview of the table header in message previews. -
(#41110) Normalizes the
Timestampnode'sfallbackto the same[start, end]source-offset span used by other blocks, instead of a reconstructed plain-text node. The type still allows the previousPlainform so already-persisted data keeps type-checking and is safely ignored at render time.
Patch Changes
-
(#41312) Fixes code fences failing to render when a line inside them ends with an inline-code backtick (e.g.
- **Node**: `22.22.3`). A trailing backtick immediately before a line break could not be consumed as content, causing the whole```block to fall back to markdown parsing and split apart. Trailing 1-2 backticks before a line end (or EOF) are now treated as code content. -
(#41441) Fixes an issue in which some combined emojis like 😶🌫️, 😮💨 and 😵💫 were being displayed as two separate emojis, and the flags of some countries like England 🏴, Scotland 🏴 and Wales 🏴 were being displayed as a plain black flag
0.32.0-rc.0
Minor Changes
-
(#41113) Adds support for horizontal rules (thematic breaks) in the message parser. A line of 3 or more contiguous dashes (
---, with nothing else on the line) is parsed into a newHORIZONTAL_RULEblock node and rendered with Fuselage'sDivider. The node carries an optionalfallback— a[start, end]offset span into the original source — so renderers without horizontal-rule support can slice the source to show the raw markup instead of dropping it, without duplicating the text into the AST. Only-is accepted: CommonMark also allows*and_, but those collide with emphasis and with censored words (bad-words masks a term as a run of*), so a bare***/_______line stays text/emphasis instead of becoming a divider. -
(#41109) Adds GFM-style table support to the message parser and renders it in gazzodown.
Parser: tables require a leading and trailing pipe on every row, support column alignment via the delimiter row (
:---,:--:,---:), and allow inline markup inside cells (a literal pipe must be escaped as\|). NewTABLE,TABLE_ROW, andTABLE_CELLAST nodes are emitted. TheTABLEnode also carries an optionalfallback— a[start, end]offset span into the original source — so renderers without table support can slice the source to show the raw markup instead of dropping it, without duplicating the text into the AST.Rendering: gazzodown renders these tables using Fuselage's
Tablecomponents with per-column alignment, and shows a compact single-row preview of the table header in message previews. -
(#41110) Normalizes the
Timestampnode'sfallbackto the same[start, end]source-offset span used by other blocks, instead of a reconstructed plain-text node. The type still allows the previousPlainform so already-persisted data keeps type-checking and is safely ignored at render time.
Patch Changes
-
(#41312) Fixes code fences failing to render when a line inside them ends with an inline-code backtick (e.g.
- **Node**: `22.22.3`). A trailing backtick immediately before a line break could not be consumed as content, causing the whole```block to fall back to markdown parsing and split apart. Trailing 1-2 backticks before a line end (or EOF) are now treated as code content. -
(#41441) Fixes an issue in which some combined emojis like 😶🌫️, 😮💨 and 😵💫 were being displayed as two separate emojis, and the flags of some countries like England 🏴, Scotland 🏴 and Wales 🏴 were being displayed as a plain black flag
0.31.36
Patch Changes
-
(#39853) Add property-based fuzz testing using
fast-checkto continuously evaluate memory limits, structural boundaries, and backtracking behavior against heavily randomized markdown arrays. -
(#39853) feat(message-parser): implement BlockSplitter PoC (Layer 1)
-
(#39853) Add test coverage for isNodeOfType guard bringing branch coverage to 100%
-
(#39853) Add test coverage for joinEmoji behavior through reducePlainTexts
0.31.36-rc.0
Patch Changes
-
(#39853) Add property-based fuzz testing using
fast-checkto continuously evaluate memory limits, structural boundaries, and backtracking behavior against heavily randomized markdown arrays. -
(#39853) feat(message-parser): implement BlockSplitter PoC (Layer 1)
-
(#39853) Add test coverage for isNodeOfType guard bringing branch coverage to 100%
-
(#39853) Add test coverage for joinEmoji behavior through reducePlainTexts
0.31.35
Patch Changes
-
(#39062 by @copilot-swe-agent) Fixed blockquotes with empty lines between paragraphs not rendering as a single blockquote. Lines like
>or>(empty quote lines) are now treated as part of the surrounding blockquote rather than breaking it into separate quotes. -
(#39046 by @smirk-dev) Replaces wasteful
filter().shift()withfind(Boolean)inextractFirstResultto avoid allocating an intermediate filtered array just to get the first truthy element. -
(#39069 by @copilot-swe-agent) Fixes trailing punctuation (e.g. periods, exclamation marks) being incorrectly included in parsed URLs when they appear at the end of a message. For example,
go to https://www.google.com.now correctly parses the URL ashttps://www.google.comwithout the trailing period. -
(#38989) chore(eslint): Upgrades ESLint and its configuration
-
(#39052 by @Shreyas2004wagh) Fixes ordered list AST generation to preserve
number: 0for list items that start at index0.
0.31.35-rc.0
Patch Changes
-
(#39062 by @copilot-swe-agent) Fixed blockquotes with empty lines between paragraphs not rendering as a single blockquote. Lines like
>or>(empty quote lines) are now treated as part of the surrounding blockquote rather than breaking it into separate quotes. -
(#39046 by @smirk-dev) Replaces wasteful
filter().shift()withfind(Boolean)inextractFirstResultto avoid allocating an intermediate filtered array just to get the first truthy element. -
(#39069 by @copilot-swe-agent) Fixes trailing punctuation (e.g. periods, exclamation marks) being incorrectly included in parsed URLs when they appear at the end of a message. For example,
go to https://www.google.com.now correctly parses the URL ashttps://www.google.comwithout the trailing period. -
(#38989) chore(eslint): Upgrades ESLint and its configuration
-
(#39052 by @Shreyas2004wagh) Fixes ordered list AST generation to preserve
number: 0for list items that start at index0.
0.31.34
Patch Changes
-
(#38629 by @copilot-swe-agent) Fixes markdown breaking when text in square brackets appears between hyperlinks. This resolves issues #31418 and #31766 where typing
[text]between links would incorrectly parse the markdown structure. -
(#38779 by @copilot-swe-agent) fixes an issues where markdown link parser to was not handling parentheses in URLs
0.31.34-rc.0
Patch Changes
-
(#38629 by @copilot-swe-agent) Fixes markdown breaking when text in square brackets appears between hyperlinks. This resolves issues #31418 and #31766 where typing
[text]between links would incorrectly parse the markdown structure. -
(#38779 by @copilot-swe-agent) fixes an issues where markdown link parser to was not handling parentheses in URLs
0.31.33
Patch Changes
- (#38509) Added support for parsing ISO-format timestamps in timestamp markdown
0.31.33-rc.0
Patch Changes
- (#38509) Added support for parsing ISO-format timestamps in timestamp markdown
0.31.32
Patch Changes
- (#35172) fixes an issue where the message parser was not properly parsing bold and italic when the symbols would also match an emoticon
0.31.32-rc.0
Patch Changes
- (#35172) fixes an issue where the message parser was not properly parsing bold and italic when the symbols would also match an emoticon
0.31.31
Patch Changes
- (#33227) Improved the performance of the message parser
0.31.31-rc.0
Patch Changes
- (#33227) Improved the performance of the message parser
0.31.30
Patch Changes
- (#33254 by @dionisio-bot) Improved the performance of the message parser
0.31.29
Patch Changes
-
(#31810) feat(message-parser): add timestamps pattern
Usage
Pattern: <t:{timestamp}:?{format}>
- {timestamp} is a Unix timestamp
- {format} is an optional parameter that can be used to customize the date and time format.
Formats
Format Description Example tShort time 12:00 AM TLong time 12:00:00 AM dShort date 12/31/2020 DLong date Thursday, December 31, 2020 fFull date and time Thursday, December 31, 2020 12:00 AM FFull date and time (long) Thursday, December 31, 2020 12:00:00 AM RRelative time 1 year ago
0.31.29-rc.0
Patch Changes
-
(#31810) feat(message-parser): add timestamps pattern
Usage
Pattern: <t:{timestamp}:?{format}>
- {timestamp} is a Unix timestamp
- {format} is an optional parameter that can be used to customize the date and time format.
Formats
Format Description Example tShort time 12:00 AM TLong time 12:00:00 AM dShort date 12/31/2020 DLong date Thursday, December 31, 2020 fFull date and time Thursday, December 31, 2020 12:00 AM FFull date and time (long) Thursday, December 31, 2020 12:00:00 AM RRelative time 1 year ago
0.31.28
Patch Changes
7fdfdb1b7Thanks @dougfabris! - fix(message-parser): Made changes in grammar.pegjs for the strikedown approach
0.31.27
Patch Changes
a029dce78Thanks @yash-rajpal! - Stop accepting[in link titles
0.31.26
Patch Changes
All notable changes to this project will be documented in this file. See Conventional Commits for commit guidelines.
0.31.0 (2021-12-28)
Features
0.30.0 (2021-10-06)
Bug Fixes
- jest: Adjust jest and ts-jest dependencies (#547) (91a4fa1)
- message-parser: https://domain.com|Test (#546) (faca16f)
- message-parser: Fix Url and Escaped Markdown (#537) (bc0cbce)
0.29.0 (2021-08-31)
Note: Version bump only for package @rocket.chat/message-parser
0.28.0 (2021-07-30)
Features
- onboarding-ui: Administrator information form and Organization information form (#489) (b289f68)
- styled API; monorepo grooming (#482) (1b6b70c)
0.27.0 (2021-06-28)
Bug Fixes
0.26.0 (2021-05-28)
Note: Version bump only for package @rocket.chat/message-parser
0.25.0 (2021-05-19)
Bug Fixes
- fuselage: fix duplicated values on paginated multi select (#456) (4518a4e)
- message-parser: Big emoji (#451) (6d65343)
- message-parser: URL issues (#448) (8ce6b91)
- message-parser Unordered List definition (#445) (6c659b8)