Problem
read drops highlights. Confluence's editor can give a run of text a background colour. It is stored as <span style="background-color: rgb(…)"> and becomes an ADF backgroundColor mark. read writes only the text, so a read → edit → update cycle removes every highlight from the page. (Verified 2026-09-26 on a scratch page.)
- There is no way to write a highlight in Markdown.
==text== is not GFM and stays literal. A raw <mark> passes through, but Confluence drops the tag and keeps only the text. Only a raw <span style="background-color: …"> works, and nobody would guess that.
What Confluence did with each spelling (storage read back, then ADF):
| written |
stored |
takes effect (ADF) |
<span style="background-color: #fff0b3;"> |
kept, rewritten as rgb(255,240,179) |
yes, backgroundColor |
the same in rgb() |
kept |
yes |
<mark> |
tag dropped, text kept |
no |
<span data-highlight-colour="…"> (the table-cell attribute) |
attribute dropped |
no |
<span style="color: …"> (text colour, for comparison) |
kept |
yes, textColor |
Proposal
Use <mark>, which GitHub renders:
| Markdown |
published as |
<mark>some text</mark> |
<span style="background-color: #fff0b3;">some text</span> (a default colour) |
<mark style="background-color: #ffbbbb;">some text</mark> |
<span style="background-color: #ffbbbb;">some text</span> |
read writes a highlighted span back as <mark> (the default colour) or <mark style="background-color: …"> (any other colour), so the page survives a round trip. Markdown inside a <mark> is still converted.
The attribute is background-color, not color, because in CSS color is the text colour.
Open questions
- Default colour.
#fff0b3 is the table-cell palette's yellow. The editor's text-highlight palette may differ; read back a highlight made in the editor to find out.
- Names or only hex? Cell colours accept swatch names. A name is not valid in a CSS
background-color, so either hex only, or names in another attribute.
- An unrecognised colour. Publish with a warning, as an unknown cell colour does, and have
check report it?
- Text colour.
read probably drops <span style="color: …"> the same way. Handle it here, or in a separate issue?
Problem
readdrops highlights. Confluence's editor can give a run of text a background colour. It is stored as<span style="background-color: rgb(…)">and becomes an ADFbackgroundColormark.readwrites only the text, so a read → edit → update cycle removes every highlight from the page. (Verified 2026-09-26 on a scratch page.)==text==is not GFM and stays literal. A raw<mark>passes through, but Confluence drops the tag and keeps only the text. Only a raw<span style="background-color: …">works, and nobody would guess that.What Confluence did with each spelling (storage read back, then ADF):
<span style="background-color: #fff0b3;">rgb(255,240,179)backgroundColorrgb()<mark><span data-highlight-colour="…">(the table-cell attribute)<span style="color: …">(text colour, for comparison)textColorProposal
Use
<mark>, which GitHub renders:<mark>some text</mark><span style="background-color: #fff0b3;">some text</span>(a default colour)<mark style="background-color: #ffbbbb;">some text</mark><span style="background-color: #ffbbbb;">some text</span>readwrites a highlighted span back as<mark>(the default colour) or<mark style="background-color: …">(any other colour), so the page survives a round trip. Markdown inside a<mark>is still converted.The attribute is
background-color, notcolor, because in CSScoloris the text colour.Open questions
#fff0b3is the table-cell palette's yellow. The editor's text-highlight palette may differ; read back a highlight made in the editor to find out.background-color, so either hex only, or names in another attribute.checkreport it?readprobably drops<span style="color: …">the same way. Handle it here, or in a separate issue?