Closed as not planned
Description
Initial checklist
- I read the support docs
- I read the contributing guide
- I agree to follow the code of conduct
- I searched issues and couldn’t find anything (or linked relevant results below)
Affected packages and versions
9.0.4
Link to runnable example
No response
Steps to reproduce
> mkdir repro && cd repro
> npm init
> npm i "hast-util-from-html" "hast-util-raw" "hast-util-to-html"
> editor index.mjs # Paste contents from below
> node index.mjs
// index.mjs
import { fromHtml } from "hast-util-from-html";
import { raw } from "hast-util-raw";
import { toHtml } from "hast-util-to-html";
const contents = `<table>
<thead>
<tr><th>Column</th></tr>
</thead>
<tbody>
<tr><td>foo</td></tr>
<tr><td>bar</td></tr>
</tbody>
</table>`;
const hast = fromHtml(contents, { fragment: true });
const reformatted = raw(hast);
console.log("Without util-raw:");
console.log(toHtml(hast));
console.log("With util-raw:");
console.log(toHtml(reformatted));
Expected behavior
hast-util-raw shouldn't add whitespace lines at the start.
This was discussed in rehypejs/rehype-raw#22 and they decided it wasn't a bug since ordinarily browsers parse it the same, however, when using non-default values of the CSS property white-space
(such as pre
or pre-wrap
) this issue appears.
Actual behavior
A text node with whitespace is added:
{
// ...,
{
type: 'text',
value: '\n \n \n \n \n \n \n \n '
},
// ...
}
Affected runtime and version
node@22.5.1
Affected package manager and version
pnpm@9.5.0
Affected OS and version
Arch Linux (Rolling)
Build and bundle tools
No response