Open
Description
I have some HTML that Firefox renders like this:
If I "round-trip" this in FSharp.Data
, then the output renders like this:
Here is the HTML:
<pre class="shiki vitesse-light" style="background-color:#ffffff;color:#393a34" tabindex="0"><code><span class="line"><span style="color:#1E754F">let</span><span style="color:#B07D48"> input</span><span style="color:#1E754F"> =</span><span style="color:#B5695999"> "</span><span style="color:#B56959">123</span><span style="color:#B5695999">"</span></span>
<span class="line"></span>
<span class="line"><span style="color:#1E754F">let</span><span style="color:#B07D48"> intOfDigit </span><span style="color:#1E754F">(</span><span style="color:#B07D48">x </span><span style="color:#1E754F">:</span><span style="color:#2E8F82"> char</span><span style="color:#1E754F">)</span><span style="color:#1E754F"> =</span></span>
<span class="line"><span style="color:#393A34"> int x </span><span style="color:#1E754F">-</span><span style="color:#393A34"> int </span><span style="color:#B56959">'0'</span></span>
<span class="line"></span>
<span class="line"><span style="color:#1E754F">let</span><span style="color:#B07D48"> number</span><span style="color:#1E754F"> =</span></span>
<span class="line"><span style="color:#393A34"> input</span></span>
<span class="line"><span style="color:#1E754F"> |></span><span style="color:#393A34"> Seq.fold</span></span>
<span class="line"><span style="color:#1E754F"> (fun</span><span style="color:#B07D48"> state next </span><span style="color:#1E754F">-></span><span style="color:#393A34"> state </span><span style="color:#1E754F">*</span><span style="color:#2F798A"> 10</span><span style="color:#1E754F"> +</span><span style="color:#393A34"> intOfDigit next</span><span style="color:#1E754F">)</span></span>
<span class="line"><span style="color:#2F798A"> 0</span></span>
<span class="line"></span>
<span class="line"><span style="color:#393A34">printfn $</span><span style="color:#B5695999">"</span><span style="color:#1E754F">%i</span><span style="color:#B56959">{number}</span><span style="color:#B5695999">"</span><span style="color:#A0ADA0"> // 123</span></span>
<span class="line"></span></code></pre>
Here is a repro script:
#r "nuget: FSharp.Data, 6.4.0"
open FSharp.Data
let inputHtml = """<pre class="shiki vitesse-light" style="background-color:#ffffff;color:#393a34" tabindex="0"><code><span class="line"><span style="color:#1E754F">let</span><span style="color:#B07D48"> input</span><span style="color:#1E754F"> =</span><span style="color:#B5695999"> "</span><span style="color:#B56959">123</span><span style="color:#B5695999">"</span></span>
<span class="line"></span>
<span class="line"><span style="color:#1E754F">let</span><span style="color:#B07D48"> intOfDigit </span><span style="color:#1E754F">(</span><span style="color:#B07D48">x </span><span style="color:#1E754F">:</span><span style="color:#2E8F82"> char</span><span style="color:#1E754F">)</span><span style="color:#1E754F"> =</span></span>
<span class="line"><span style="color:#393A34"> int x </span><span style="color:#1E754F">-</span><span style="color:#393A34"> int </span><span style="color:#B56959">'0'</span></span>
<span class="line"></span>
<span class="line"><span style="color:#1E754F">let</span><span style="color:#B07D48"> number</span><span style="color:#1E754F"> =</span></span>
<span class="line"><span style="color:#393A34"> input</span></span>
<span class="line"><span style="color:#1E754F"> |></span><span style="color:#393A34"> Seq.fold</span></span>
<span class="line"><span style="color:#1E754F"> (fun</span><span style="color:#B07D48"> state next </span><span style="color:#1E754F">-></span><span style="color:#393A34"> state </span><span style="color:#1E754F">*</span><span style="color:#2F798A"> 10</span><span style="color:#1E754F"> +</span><span style="color:#393A34"> intOfDigit next</span><span style="color:#1E754F">)</span></span>
<span class="line"><span style="color:#2F798A"> 0</span></span>
<span class="line"></span>
<span class="line"><span style="color:#393A34">printfn $</span><span style="color:#B5695999">"</span><span style="color:#1E754F">%i</span><span style="color:#B56959">{number}</span><span style="color:#B5695999">"</span><span style="color:#A0ADA0"> // 123</span></span>
<span class="line"></span></code></pre>
"""
let node = HtmlNode.Parse(inputHtml) |> List.exactlyOne
let outputHtml = node.ToString()
printfn "%s" outputHtml
Maybe I have missed something?