Nested inline code, emoji and mentions disappear inside bold, italic and strikethrough
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 75/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- javascript
- Domain
- frontend
Research direction
Start in the markups package at BoldSpan.js, ItalicSpan.js and StrikeSpan.js; read how each maps AST child types and where it returns null for unhandled children. Reproduce with the parser output for *run yarn build first*, then add the missing INLINE_CODE, EMOJI and MENTION cases, plus timestamps in StrikeSpan.js, with regression tests. Done means the nested content renders and existing markup tests pass; links inside italic/strikethrough and nested-emphasis crashes are out of scope.
Written by the indexing model from the issue text.
Description
Description
Nested inline code, emoji and mentions are silently dropped by the markup renderer inside bold, italic and strikethrough.
For example, this message:
*run `yarn build` first*
renders as "run first", with the inline code missing.
Steps to reproduce
- Use EmbeddedChat develop at commit 1cb7bb38.
- Parse the example above using @rocket.chat/message-parser 0.31.29.
- Render the resulting AST through the markups package.
- Observe that the parser includes an INLINE_CODE child inside BOLD, but the rendered output drops it.
I also reproduced missing inline code, emoji and mentions inside italic and strikethrough using a local rendering harness.
Expected behaviour
Supported nested inline content should remain visible inside the formatting wrapper.
Environment
- EmbeddedChat: develop at 1cb7bb38
- Node.js: 24.0.0
- Yarn: 3.6.4
- @rocket.chat/message-parser: 0.31.29
Additional context
BoldSpan.js, ItalicSpan.js and StrikeSpan.js return null for child types they do not explicitly handle.
I have a local fix with regression tests for inline code, emoji and mentions inside these wrappers, plus timestamps inside strikethrough. Links inside italic/strikethrough and the pre-existing CommonJS nested-emphasis crashes remain outside this fix.
Related PRs #1044 and #1139 overlap with some files but address different behaviour.
Verification so far uses local package rendering, not a live Rocket.Chat server or the real chat UI.
Is this a fix you'd welcome a PR for?
- Dominant language
- JavaScript
- Stars
- 170
- Forks
- 397
- Avg merge
- 12d 14h
- Merged PRs (30d)
- 6
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from RocketChat/EmbeddedChat
-
docs: README says Node 22 is required, but .nvmrc pins v24 and preinstall enforces itPossibly taken @Veerpratapgupta claimed this 29 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
RocketChat/EmbeddedChat#1377 · 1 comment ·
Maintainers usually reply within 1 day
-
test: isMessageSequential in layout_editor has no coverageMay be free again A pull request for this issue was closed without being merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
RocketChat/EmbeddedChat#1373 ·
Maintainers usually reply within 1 day
-
Permissions change-detection in useFetchChatData is dead — applyPermissions re-runs on every callPossibly taken @yash113gadia claimed this 166 days ago. Open
Difficulty 1/5 Under an hour Newbie friendliness 85/100
RocketChat/EmbeddedChat#1317 ·
Maintainers usually reply within 1 day
-
Only the last emoji shortname in a message is converted to unicodePossibly taken @yash113gadia claimed this 166 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
RocketChat/EmbeddedChat#1315 ·
Maintainers usually reply within 1 day
-
bug: "Last login" shows ambiguous weekday with no date for logins older than todayPossibly taken @yash113gadia claimed this 167 days ago. Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
RocketChat/EmbeddedChat#1313 ·
Maintainers usually reply within 1 day
All issues in RocketChat/EmbeddedChat
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Bug: Table layout and date column are cut off on mobile screens on the Tournaments -> History pageOpenbug
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
hexlet-codebattle/codebattle#2375 ·
-
intake mcp-intake needs-human-review priority:high
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
Ikalus1988/MisakaNet#5041 · 3 comments ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
nicobailon/pi-web-access#682 ·
Maintainers usually reply within 1 day
-
nip27: long hashtag swallows the rest of the content, lone # gives an empty hashtagPossibly taken @bardrop claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
nbd-wtf/nostr-tools#578 ·