Skip to content

🐛 Bug - Rich text blocks break, duplicate content, and crash when using '=' highlighting #2467

@griffenedge

Description

@griffenedge

Requested by: @griffenedge via YakShaver.ai 🦬
cc: @griffenedge, @isaaclombardssw, @adamcogan, @Marxoz, @PothieuG, @Freego1783

Hi Team!

  🟥  Watch the video (2 min 41 sec)

Pain

In Rules V3 (TinaCMS), rich text blocks behave incorrectly when content containing '=' characters (used for custom highlighting) is added, removed, or edited. The editor shows ghost '=' characters, duplicates entire blocks of content, breaks Markdown parsing (rendering content as code blocks), and can crash with a client-side exception ("Failed to execute 'removeChild' on 'Node'"). This appears to be caused by custom AST manipulation for '=' highlighting interfering with the standard editor flow.

Acceptance Criteria

  1. Editing rich text content that includes '=' characters does not duplicate content.
  2. Removing or re-adding '=' characters updates the editor state correctly with no ghost characters.
  3. Markdown parsing remains valid and does not degrade into unintended code blocks.
  4. The editor does not crash when '=' characters are added, removed, or toggled.
  5. No client-side exceptions (including removeChild errors) occur during rich text editing.
  6. If custom '=' highlighting cannot be made stable, it is disabled until a proper fix is implemented (e.g. in v4 or via TinaCMS).

Reproduce Steps

  1. Open Rules V3 (TinaCMS).
  2. Navigate to a page with rich text blocks (e.g. SSW Rules).
  3. Create a new rich text box.
  4. Paste content that includes '=' characters used for highlighting.
  5. Remove some '=' characters and then add them back.
  6. Observe ghost '=' characters, duplicated content, or broken Markdown rendering.
  7. Continue editing until the editor crashes with a client-side exception (removeChild error).

Screenshot

Screenshot
Figure: Equal-sign markup causes duplicated content in rich text blocks

Metadata

Metadata

Assignees

No one assigned

    Labels

    PO CheckTemporary tag during backlog refinementYakShaver

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions