feat: markdown 增量解析

This commit is contained in:
07akioni
2026-08-06 13:56:43 +08:00
parent e88bace07e
commit 8d6824a84b
62 changed files with 3090 additions and 573 deletions

View File

@@ -0,0 +1,12 @@
<div class="_markdown_404681">
<blockquote>
<p>
#text "level one\nstill one"
<blockquote>
<p>
#text "nested"
<ul>
<li>
#text "quoted list"
<p>
#text "after"

View File

@@ -0,0 +1,12 @@
<div class="_markdown_404681">
<blockquote>
<p>
#text "level one\nstill one"
<blockquote>
<p>
#text "nested"
<ul>
<li>
#text "quoted list"
<p>
#text "after"

View File

@@ -0,0 +1,78 @@
<div class="_markdown_404681">
<div class="_block_9aea57 md-code-block">
<div class="_bannerWrap_9aea57">
<div class="_banner_9aea57">
<div class="_infostring_9aea57">
#text "ts"
<div class="_action_9aea57">
<button class="_copyButton_9aea57" type="button">
#text "复制"
<div>
<pre class="shiki css-variables" style="background-color:var(--shiki-background);color:var(--shiki-foreground)" tabindex="0">
<code>
<span class="line">
<span style="color:var(--shiki-token-keyword)">
#text "const"
<span style="color:var(--shiki-token-constant)">
#text " answer"
<span style="color:var(--shiki-token-keyword)">
#text ":"
<span style="color:var(--shiki-token-constant)">
#text " number"
<span style="color:var(--shiki-token-keyword)">
#text " ="
<span style="color:var(--shiki-token-constant)">
#text " 42"
<div class="_block_9aea57 md-code-block">
<div class="_bannerWrap_9aea57">
<div class="_banner_9aea57">
<div class="_infostring_9aea57">
<div class="_action_9aea57">
<button class="_copyButton_9aea57" type="button">
#text "复制"
<pre class="_plain_9aea57">
<code>
#text "no language"
<div class="_block_9aea57 md-code-block">
<div class="_bannerWrap_9aea57">
<div class="_banner_9aea57">
<div class="_infostring_9aea57">
#text "unknown-lang"
<div class="_action_9aea57">
<button class="_copyButton_9aea57" type="button">
#text "复制"
<pre class="_plain_9aea57">
<code>
#text "plain fallback"
<div class="_block_9aea57 md-code-block">
<div class="_bannerWrap_9aea57">
<div class="_banner_9aea57">
<div class="_infostring_9aea57">
#text "ts"
<div class="_action_9aea57">
<button class="_copyButton_9aea57" type="button">
#text "复制"
<div>
<pre class="shiki css-variables" style="background-color:var(--shiki-background);color:var(--shiki-foreground)" tabindex="0">
<code>
<span class="line">
<span style="color:var(--shiki-token-keyword)">
#text "const"
<span style="color:var(--shiki-token-constant)">
#text " withMeta"
<span style="color:var(--shiki-token-keyword)">
#text " ="
<span style="color:var(--shiki-token-constant)">
#text " true"
<pre>
<code>
<div class="_block_9aea57 md-code-block">
<div class="_bannerWrap_9aea57">
<div class="_banner_9aea57">
<div class="_infostring_9aea57">
<div class="_action_9aea57">
<button class="_copyButton_9aea57" type="button">
#text "复制"
<pre class="_plain_9aea57">
<code>
#text "indented code block\nsecond line"

View File

@@ -0,0 +1,53 @@
<div class="_markdown_404681">
<div class="_block_9aea57 md-code-block">
<div class="_bannerWrap_9aea57">
<div class="_banner_9aea57">
<div class="_infostring_9aea57">
<div class="_action_9aea57">
<button class="_copyButton_9aea57" type="button">
#text "复制"
<pre class="_plain_9aea57">
<code>
#text "const answer: number = 42"
<div class="_block_9aea57 md-code-block">
<div class="_bannerWrap_9aea57">
<div class="_banner_9aea57">
<div class="_infostring_9aea57">
<div class="_action_9aea57">
<button class="_copyButton_9aea57" type="button">
#text "复制"
<pre class="_plain_9aea57">
<code>
#text "no language"
<div class="_block_9aea57 md-code-block">
<div class="_bannerWrap_9aea57">
<div class="_banner_9aea57">
<div class="_infostring_9aea57">
<div class="_action_9aea57">
<button class="_copyButton_9aea57" type="button">
#text "复制"
<pre class="_plain_9aea57">
<code>
#text "plain fallback"
<div class="_block_9aea57 md-code-block">
<div class="_bannerWrap_9aea57">
<div class="_banner_9aea57">
<div class="_infostring_9aea57">
<div class="_action_9aea57">
<button class="_copyButton_9aea57" type="button">
#text "复制"
<pre class="_plain_9aea57">
<code>
#text "const withMeta = true"
<pre>
<code>
<div class="_block_9aea57 md-code-block">
<div class="_bannerWrap_9aea57">
<div class="_banner_9aea57">
<div class="_infostring_9aea57">
<div class="_action_9aea57">
<button class="_copyButton_9aea57" type="button">
#text "复制"
<pre class="_plain_9aea57">
<code>
#text "indented code block\nsecond line"

View File

@@ -0,0 +1 @@
<div class="_markdown_404681">

View File

@@ -0,0 +1 @@
<div class="_markdown_404681">

View File

@@ -0,0 +1,3 @@
<div class="_markdown_404681">
<p>
#text "AT&T, 3 < 4, *not em*, backslash \\ literal, © entity."

View File

@@ -0,0 +1,3 @@
<div class="_markdown_404681">
<p>
#text "AT&T, 3 < 4, *not em*, backslash \\ literal, © entity."

View File

@@ -0,0 +1,29 @@
<div class="_markdown_404681">
<p>
#text "First use"
<sup>
#text "1"
#text " and reuse"
<sup>
#text "1"
#text " and another"
<sup>
#text "2"
#text "."
<section class="footnotes" data-footnotes="true">
<h2 class="sr-only" id="footnote-label">
#text "Footnotes"
<ol>
<li id="user-content-fn-a">
<p>
#text "Footnote a body with "
<a href="https://example.com" rel="noopener noreferrer" target="_blank">
#text "link"
#text ". ↩ ↩"
<sup>
#text "2"
<li id="user-content-fn-b">
<p>
#text "Footnote b first paragraph."
<p>
#text "Second paragraph of b. ↩"

View File

@@ -0,0 +1,29 @@
<div class="_markdown_404681">
<p>
#text "First use"
<sup>
#text "1"
#text " and reuse"
<sup>
#text "1"
#text " and another"
<sup>
#text "2"
#text "."
<section class="footnotes" data-footnotes="true">
<h2 class="sr-only" id="footnote-label">
#text "Footnotes"
<ol>
<li id="user-content-fn-a">
<p>
#text "Footnote a body with "
<a href="https://example.com" rel="noopener noreferrer" target="_blank">
#text "link"
#text ". ↩ ↩"
<sup>
#text "2"
<li id="user-content-fn-b">
<p>
#text "Footnote b first paragraph."
<p>
#text "Second paragraph of b. ↩"

View File

@@ -0,0 +1,12 @@
<div class="_markdown_404681">
<p>
#text "Mixed "
<del>
#text "gone"
#text " text with "
<a href="http://www.example.com" rel="noopener noreferrer" target="_blank">
#text "www.example.com"
#text " literal and "
<a href="mailto:user@example.com">
#text "user@example.com"
#text " email."

View File

@@ -0,0 +1,12 @@
<div class="_markdown_404681">
<p>
#text "Mixed "
<del>
#text "gone"
#text " text with "
<a href="http://www.example.com" rel="noopener noreferrer" target="_blank">
#text "www.example.com"
#text " literal and "
<a href="mailto:user@example.com">
#text "user@example.com"
#text " email."

View File

@@ -0,0 +1,12 @@
<div class="_markdown_404681">
<p>
#text "two-space break"
<br>
#text "\nafter break"
<p>
#text "backslash break"
<br>
#text "\nafter backslash"
<hr>
<p>
#text "tail"

View File

@@ -0,0 +1,12 @@
<div class="_markdown_404681">
<p>
#text "two-space break"
<br>
#text "\nafter break"
<p>
#text "backslash break"
<br>
#text "\nafter backslash"
<hr>
<p>
#text "tail"

View File

@@ -0,0 +1,15 @@
<div class="_markdown_404681">
<h4>
#text "Small heading"
<ul>
<li>
#text "one"
<li>
#text "two"
<h5>
#text "Next"
<ol>
<li>
#text "a"
<li>
#text "b"

View File

@@ -0,0 +1,15 @@
<div class="_markdown_404681">
<h4>
#text "Small heading"
<ul>
<li>
#text "one"
<li>
#text "two"
<h5>
#text "Next"
<ol>
<li>
#text "a"
<li>
#text "b"

View File

@@ -0,0 +1,33 @@
<div class="_markdown_404681">
<h1>
#text "H1 with "
<code>
#text "code"
<h2>
#text "H2"
<h3>
#text "H3"
<h4>
#text "H4"
<h5>
#text "H5"
<h6>
#text "H6"
<p>
#text "Paragraph one with "
<strong>
#text "strong"
#text ", "
<em>
#text "emphasis"
#text ", "
<del>
#text "strike"
#text ", and "
<code>
#text "inline"
#text "."
<h1>
#text "Setext title"
<h2>
#text "Second setext"

View File

@@ -0,0 +1,33 @@
<div class="_markdown_404681">
<h1>
#text "H1 with "
<code>
#text "code"
<h2>
#text "H2"
<h3>
#text "H3"
<h4>
#text "H4"
<h5>
#text "H5"
<h6>
#text "H6"
<p>
#text "Paragraph one with "
<strong>
#text "strong"
#text ", "
<em>
#text "emphasis"
#text ", "
<del>
#text "strike"
#text ", and "
<code>
#text "inline"
#text "."
<h1>
#text "Setext title"
<h2>
#text "Second setext"

View File

@@ -0,0 +1,14 @@
<div class="_markdown_404681">
<p>
<img alt="https image" class="_image_404681" decoding="async" loading="lazy" referrerpolicy="no-referrer" src="https://example.com/secure.png">
<p>
<img alt="http image" class="_image_404681" decoding="async" loading="lazy" referrerpolicy="no-referrer" src="http://example.com/plain.png">
<p>
<span class="_imageAlt_404681">
#text "relative dropped"
#text " and inline "
<span class="_imageAlt_404681">
#text "bad scheme"
#text " end."
<p>
<img alt="" class="_image_404681" decoding="async" loading="lazy" referrerpolicy="no-referrer" src="https://example.com/empty-alt.png">

View File

@@ -0,0 +1,14 @@
<div class="_markdown_404681">
<p>
<img alt="https image" class="_image_404681" decoding="async" loading="lazy" referrerpolicy="no-referrer" src="https://example.com/secure.png">
<p>
<img alt="http image" class="_image_404681" decoding="async" loading="lazy" referrerpolicy="no-referrer" src="http://example.com/plain.png">
<p>
<span class="_imageAlt_404681">
#text "relative dropped"
#text " and inline "
<span class="_imageAlt_404681">
#text "bad scheme"
#text " end."
<p>
<img alt="" class="_image_404681" decoding="async" loading="lazy" referrerpolicy="no-referrer" src="https://example.com/empty-alt.png">

View File

@@ -0,0 +1,6 @@
<div class="_markdown_404681">
<p>
#text "Spans "
<code>
#text "a b"
#text " across a line."

View File

@@ -0,0 +1,6 @@
<div class="_markdown_404681">
<p>
#text "Spans "
<code>
#text "a b"
#text " across a line."

View File

@@ -0,0 +1,25 @@
<div class="_markdown_404681">
<p>
<a href="https://example.com" rel="noopener noreferrer" target="_blank">
#text "https ok"
#text " and "
<a href="mailto:dev@example.com">
#text "mailto ok"
#text "."
<p>
#text "relative dropped and js dropped and "
<a href="HTTPS://example.com" rel="noopener noreferrer" target="_blank">
#text "upper kept"
#text "."
<p>
<a href="https://deepseek.com" rel="noopener noreferrer" target="_blank">
#text "https://deepseek.com"
#text " and bare autolink "
<a href="https://autolink.example.com" rel="noopener noreferrer" target="_blank">
#text "https://autolink.example.com"
#text " literal."
<p>
#text "[spaces encoded]("
<a href="https://example.com/a" rel="noopener noreferrer" target="_blank">
#text "https://example.com/a"
#text " b)"

View File

@@ -0,0 +1,25 @@
<div class="_markdown_404681">
<p>
<a href="https://example.com" rel="noopener noreferrer" target="_blank">
#text "https ok"
#text " and "
<a href="mailto:dev@example.com">
#text "mailto ok"
#text "."
<p>
#text "relative dropped and js dropped and "
<a href="HTTPS://example.com" rel="noopener noreferrer" target="_blank">
#text "upper kept"
#text "."
<p>
<a href="https://deepseek.com" rel="noopener noreferrer" target="_blank">
#text "https://deepseek.com"
#text " and bare autolink "
<a href="https://autolink.example.com" rel="noopener noreferrer" target="_blank">
#text "https://autolink.example.com"
#text " literal."
<p>
#text "[spaces encoded]("
<a href="https://example.com/a" rel="noopener noreferrer" target="_blank">
#text "https://example.com/a"
#text " b)"

View File

@@ -0,0 +1,44 @@
<div class="_markdown_404681">
<ul>
<li>
#text "tight one"
<li>
#text "tight two\n"
<ul>
<li>
#text "child"
<ol>
<li>
<p>
#text "first"
<li>
<p>
#text "second"
<li>
<p>
#text "ordered with start"
<li>
<p>
#text "next"
<ul>
<li>
<p>
#text "loose item one"
<li>
<p>
#text "loose item two"
<p>
#text "second paragraph of loose item"
<li>
<p>
#text "item with nested blocks"
<div class="_block_9aea57 md-code-block">
<div class="_bannerWrap_9aea57">
<div class="_banner_9aea57">
<div class="_infostring_9aea57">
<div class="_action_9aea57">
<button class="_copyButton_9aea57" type="button">
#text "复制"
<pre class="_plain_9aea57">
<code>
#text "fenced inside list"

View File

@@ -0,0 +1,44 @@
<div class="_markdown_404681">
<ul>
<li>
#text "tight one"
<li>
#text "tight two\n"
<ul>
<li>
#text "child"
<ol>
<li>
<p>
#text "first"
<li>
<p>
#text "second"
<li>
<p>
#text "ordered with start"
<li>
<p>
#text "next"
<ul>
<li>
<p>
#text "loose item one"
<li>
<p>
#text "loose item two"
<p>
#text "second paragraph of loose item"
<li>
<p>
#text "item with nested blocks"
<div class="_block_9aea57 md-code-block">
<div class="_bannerWrap_9aea57">
<div class="_banner_9aea57">
<div class="_infostring_9aea57">
<div class="_action_9aea57">
<button class="_copyButton_9aea57" type="button">
#text "复制"
<pre class="_plain_9aea57">
<code>
#text "fenced inside list"

View File

@@ -0,0 +1,125 @@
<div class="_markdown_404681">
<p>
#text "Trusted commands stay off: "
<span class="katex">
<span class="katex-mathml">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<mrow>
<mstyle mathcolor="#cc0000">
<mtext>
#text "\\href"
<annotation encoding="application/x-tex">
#text "\\href{javascript:alert(1)}{unsafe}"
<span aria-hidden="true" class="katex-html">
<span class="base">
<span class="strut" style="height: 1em; vertical-align: -0.25em;">
<span class="mord text" style="color: rgb(204, 0, 0);">
<span class="mord" style="color: rgb(204, 0, 0);">
#text "\\href"
#text "."
<p>
#text "Unbalanced errors render the error arm: "
<span class="katex-error" style="color: rgb(204, 0, 0);" title="ParseError: KaTeX parse error: Unexpected end of input in a macro argument, expected '}' at end of input: \\frac{">
#text "\\frac{"
<div class="_tableScroll_404681">
<table>
<thead>
<tr>
<th>
#text "Symbol"
<th>
#text "Value"
<tbody>
<tr>
<td>
<span class="katex">
<span class="katex-mathml">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<mrow>
<mi>
#text "θ"
<annotation encoding="application/x-tex">
#text "\\theta"
<span aria-hidden="true" class="katex-html">
<span class="base">
<span class="strut" style="height: 0.6944em;">
<span class="mord mathnormal" style="margin-right: 0.0278em;">
#text "θ"
<td>
<span class="katex">
<span class="katex-mathml">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<mrow>
<mfrac>
<mn>
#text "1"
<mn>
#text "5"
<annotation encoding="application/x-tex">
#text "\\frac{1}{5}"
<span aria-hidden="true" class="katex-html">
<span class="base">
<span class="strut" style="height: 1.1901em; vertical-align: -0.345em;">
<span class="mord">
<span class="mopen nulldelimiter">
<span class="mfrac">
<span class="vlist-t vlist-t2">
<span class="vlist-r">
<span class="vlist" style="height: 0.8451em;">
<span style="top: -2.655em;">
<span class="pstrut" style="height: 3em;">
<span class="sizing reset-size6 size3 mtight">
<span class="mord mtight">
<span class="mord mtight">
#text "5"
<span style="top: -3.23em;">
<span class="pstrut" style="height: 3em;">
<span class="frac-line" style="border-bottom-width: 0.04em;">
<span style="top: -3.394em;">
<span class="pstrut" style="height: 3em;">
<span class="sizing reset-size6 size3 mtight">
<span class="mord mtight">
<span class="mord mtight">
#text "1"
<span class="vlist-s">
#text "​"
<span class="vlist-r">
<span class="vlist" style="height: 0.345em;">
<span>
<span class="mclose nulldelimiter">
<span class="katex-display">
<span class="katex">
<span class="katex-mathml">
<math display="block" xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<mrow>
<msqrt>
<mn>
#text "2"
<annotation encoding="application/x-tex">
#text "\\sqrt{2}\n"
<span aria-hidden="true" class="katex-html">
<span class="base">
<span class="strut" style="height: 1.04em; vertical-align: -0.0839em;">
<span class="mord sqrt">
<span class="vlist-t vlist-t2">
<span class="vlist-r">
<span class="vlist" style="height: 0.9561em;">
<span class="svg-align" style="top: -3em;">
<span class="pstrut" style="height: 3em;">
<span class="mord" style="padding-left: 0.833em;">
<span class="mord">
#text "2"
<span style="top: -2.9161em;">
<span class="pstrut" style="height: 3em;">
<span class="hide-tail" style="min-width: 0.853em; height: 1.08em;">
<svg height="1.08em" preserveAspectRatio="xMinYMin slice" viewBox="0 0 400000 1080" width="400em" xmlns="http://www.w3.org/2000/svg">
<path d="M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z">
<span class="vlist-s">
#text "​"
<span class="vlist-r">
<span class="vlist" style="height: 0.0839em;">
<span>

View File

@@ -0,0 +1,29 @@
<div class="_markdown_404681">
<p>
#text "Trusted commands stay off: $\\href{javascript:alert(1)}{unsafe}$."
<p>
#text "Unbalanced errors render the error arm: $\\frac{$"
<div class="_tableScroll_404681">
<table>
<thead>
<tr>
<th>
#text "Symbol"
<th>
#text "Value"
<tbody>
<tr>
<td>
#text "$\\theta$"
<td>
#text "(\\frac{1}{5})"
<div class="_block_9aea57 md-code-block">
<div class="_bannerWrap_9aea57">
<div class="_banner_9aea57">
<div class="_infostring_9aea57">
<div class="_action_9aea57">
<button class="_copyButton_9aea57" type="button">
#text "复制"
<pre class="_plain_9aea57">
<code>
#text "\\sqrt{2}"

View File

@@ -0,0 +1,320 @@
<div class="_markdown_404681">
<p>
#text "Einstein wrote "
<span class="katex">
<span class="katex-mathml">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<mrow>
<mi>
#text "E"
<mo>
#text "="
<mi>
#text "m"
<msup>
<mi>
#text "c"
<mn>
#text "2"
<annotation encoding="application/x-tex">
#text "E = mc^2"
<span aria-hidden="true" class="katex-html">
<span class="base">
<span class="strut" style="height: 0.6833em;">
<span class="mord mathnormal" style="margin-right: 0.0576em;">
#text "E"
<span class="mspace" style="margin-right: 0.2778em;">
<span class="mrel">
#text "="
<span class="mspace" style="margin-right: 0.2778em;">
<span class="base">
<span class="strut" style="height: 0.8141em;">
<span class="mord mathnormal">
#text "m"
<span class="mord">
<span class="mord mathnormal">
#text "c"
<span class="msupsub">
<span class="vlist-t">
<span class="vlist-r">
<span class="vlist" style="height: 0.8141em;">
<span style="top: -3.063em; margin-right: 0.05em;">
<span class="pstrut" style="height: 2.7em;">
<span class="sizing reset-size6 size3 mtight">
<span class="mord mtight">
#text "2"
#text " inline."
<span class="katex-display">
<span class="katex">
<span class="katex-mathml">
<math display="block" xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<mrow>
<mfrac>
<mrow>
<mi mathvariant="normal">
#text "∂"
<mi mathvariant="bold">
#text "u"
<mrow>
<mi mathvariant="normal">
#text "∂"
<mi>
#text "t"
<mo>
#text "+"
<mo stretchy="false">
#text "("
<mi mathvariant="bold">
#text "u"
<mo>
#text "⋅"
<mi mathvariant="normal">
#text "∇"
<mo stretchy="false">
#text ")"
<mi mathvariant="bold">
#text "u"
<mo>
#text "="
<mo>
#text "−"
<mfrac>
<mn>
#text "1"
<mi>
#text "ρ"
<mi mathvariant="normal">
#text "∇"
<mi>
#text "p"
<annotation encoding="application/x-tex">
#text "\\frac{\\partial \\mathbf{u}}{\\partial t} + (\\mathbf{u} \\cdot \\nabla)\\mathbf{u} = -\\frac{1}{\\rho}\\nabla p"
<span aria-hidden="true" class="katex-html">
<span class="base">
<span class="strut" style="height: 2.0574em; vertical-align: -0.686em;">
<span class="mord">
<span class="mopen nulldelimiter">
<span class="mfrac">
<span class="vlist-t vlist-t2">
<span class="vlist-r">
<span class="vlist" style="height: 1.3714em;">
<span style="top: -2.314em;">
<span class="pstrut" style="height: 3em;">
<span class="mord">
<span class="mord" style="margin-right: 0.0556em;">
#text "∂"
<span class="mord mathnormal">
#text "t"
<span style="top: -3.23em;">
<span class="pstrut" style="height: 3em;">
<span class="frac-line" style="border-bottom-width: 0.04em;">
<span style="top: -3.677em;">
<span class="pstrut" style="height: 3em;">
<span class="mord">
<span class="mord" style="margin-right: 0.0556em;">
#text "∂"
<span class="mord mathbf">
#text "u"
<span class="vlist-s">
#text "​"
<span class="vlist-r">
<span class="vlist" style="height: 0.686em;">
<span>
<span class="mclose nulldelimiter">
<span class="mspace" style="margin-right: 0.2222em;">
<span class="mbin">
#text "+"
<span class="mspace" style="margin-right: 0.2222em;">
<span class="base">
<span class="strut" style="height: 1em; vertical-align: -0.25em;">
<span class="mopen">
#text "("
<span class="mord mathbf">
#text "u"
<span class="mspace" style="margin-right: 0.2222em;">
<span class="mbin">
#text "⋅"
<span class="mspace" style="margin-right: 0.2222em;">
<span class="base">
<span class="strut" style="height: 1em; vertical-align: -0.25em;">
<span class="mord">
#text "∇"
<span class="mclose">
#text ")"
<span class="mord mathbf">
#text "u"
<span class="mspace" style="margin-right: 0.2778em;">
<span class="mrel">
#text "="
<span class="mspace" style="margin-right: 0.2778em;">
<span class="base">
<span class="strut" style="height: 2.2019em; vertical-align: -0.8804em;">
<span class="mord">
#text "−"
<span class="mord">
<span class="mopen nulldelimiter">
<span class="mfrac">
<span class="vlist-t vlist-t2">
<span class="vlist-r">
<span class="vlist" style="height: 1.3214em;">
<span style="top: -2.314em;">
<span class="pstrut" style="height: 3em;">
<span class="mord">
<span class="mord mathnormal">
#text "ρ"
<span style="top: -3.23em;">
<span class="pstrut" style="height: 3em;">
<span class="frac-line" style="border-bottom-width: 0.04em;">
<span style="top: -3.677em;">
<span class="pstrut" style="height: 3em;">
<span class="mord">
<span class="mord">
#text "1"
<span class="vlist-s">
#text "​"
<span class="vlist-r">
<span class="vlist" style="height: 0.8804em;">
<span>
<span class="mclose nulldelimiter">
<span class="mord">
#text "∇"
<span class="mord mathnormal">
#text "p"
<p>
#text "Backslash inline "
<span class="katex">
<span class="katex-mathml">
<math xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<mrow>
<mfrac>
<mn>
#text "1"
<mn>
#text "5"
<annotation encoding="application/x-tex">
#text "\\frac{1}{5}"
<span aria-hidden="true" class="katex-html">
<span class="base">
<span class="strut" style="height: 1.1901em; vertical-align: -0.345em;">
<span class="mord">
<span class="mopen nulldelimiter">
<span class="mfrac">
<span class="vlist-t vlist-t2">
<span class="vlist-r">
<span class="vlist" style="height: 0.8451em;">
<span style="top: -2.655em;">
<span class="pstrut" style="height: 3em;">
<span class="sizing reset-size6 size3 mtight">
<span class="mord mtight">
<span class="mord mtight">
#text "5"
<span style="top: -3.23em;">
<span class="pstrut" style="height: 3em;">
<span class="frac-line" style="border-bottom-width: 0.04em;">
<span style="top: -3.394em;">
<span class="pstrut" style="height: 3em;">
<span class="sizing reset-size6 size3 mtight">
<span class="mord mtight">
<span class="mord mtight">
#text "1"
<span class="vlist-s">
#text "​"
<span class="vlist-r">
<span class="vlist" style="height: 0.345em;">
<span>
<span class="mclose nulldelimiter">
#text " and display:"
<span class="katex-display">
<span class="katex">
<span class="katex-mathml">
<math display="block" xmlns="http://www.w3.org/1998/Math/MathML">
<semantics>
<mrow>
<mfrac>
<mi>
#text "π"
<mn>
#text "4"
<mo>
#text "<"
<mi>
#text "θ"
<mo>
#text "<"
<mfrac>
<mi>
#text "π"
<mn>
#text "2"
<annotation encoding="application/x-tex">
#text "\\frac{\\pi}{4} < \\theta < \\frac{\\pi}{2}"
<span aria-hidden="true" class="katex-html">
<span class="base">
<span class="strut" style="height: 1.7936em; vertical-align: -0.686em;">
<span class="mord">
<span class="mopen nulldelimiter">
<span class="mfrac">
<span class="vlist-t vlist-t2">
<span class="vlist-r">
<span class="vlist" style="height: 1.1076em;">
<span style="top: -2.314em;">
<span class="pstrut" style="height: 3em;">
<span class="mord">
<span class="mord">
#text "4"
<span style="top: -3.23em;">
<span class="pstrut" style="height: 3em;">
<span class="frac-line" style="border-bottom-width: 0.04em;">
<span style="top: -3.677em;">
<span class="pstrut" style="height: 3em;">
<span class="mord">
<span class="mord mathnormal" style="margin-right: 0.0359em;">
#text "π"
<span class="vlist-s">
#text "​"
<span class="vlist-r">
<span class="vlist" style="height: 0.686em;">
<span>
<span class="mclose nulldelimiter">
<span class="mspace" style="margin-right: 0.2778em;">
<span class="mrel">
#text "<"
<span class="mspace" style="margin-right: 0.2778em;">
<span class="base">
<span class="strut" style="height: 0.7335em; vertical-align: -0.0391em;">
<span class="mord mathnormal" style="margin-right: 0.0278em;">
#text "θ"
<span class="mspace" style="margin-right: 0.2778em;">
<span class="mrel">
#text "<"
<span class="mspace" style="margin-right: 0.2778em;">
<span class="base">
<span class="strut" style="height: 1.7936em; vertical-align: -0.686em;">
<span class="mord">
<span class="mopen nulldelimiter">
<span class="mfrac">
<span class="vlist-t vlist-t2">
<span class="vlist-r">
<span class="vlist" style="height: 1.1076em;">
<span style="top: -2.314em;">
<span class="pstrut" style="height: 3em;">
<span class="mord">
<span class="mord">
#text "2"
<span style="top: -3.23em;">
<span class="pstrut" style="height: 3em;">
<span class="frac-line" style="border-bottom-width: 0.04em;">
<span style="top: -3.677em;">
<span class="pstrut" style="height: 3em;">
<span class="mord">
<span class="mord mathnormal" style="margin-right: 0.0359em;">
#text "π"
<span class="vlist-s">
#text "​"
<span class="vlist-r">
<span class="vlist" style="height: 0.686em;">
<span>
<span class="mclose nulldelimiter">

View File

@@ -0,0 +1,9 @@
<div class="_markdown_404681">
<p>
#text "Einstein wrote $E = mc^2$ inline."
<p>
#text "$$\n\\frac{\\partial \\mathbf{u}}{\\partial t} + (\\mathbf{u} \\cdot \\nabla)\\mathbf{u} = -\\frac{1}{\\rho}\\nabla p\n$$"
<p>
#text "Backslash inline (\\frac{1}{5}) and display:"
<p>
#text "[\\frac{\\pi}{4} < \\theta < \\frac{\\pi}{2}]"

View File

@@ -0,0 +1,7 @@
<div class="_markdown_404681">
#text "<script>globalThis.compromised = true</script>\n"
<p>
#text "Paragraph with inline <img src=\"x\" onerror=\"boom\"> html and <b>bold tag</b> kept literal?"
#text "\n<div class=\"x\">\nhtml block content\n</div>\n"
<p>
#text "after"

View File

@@ -0,0 +1,7 @@
<div class="_markdown_404681">
#text "<script>globalThis.compromised = true</script>\n"
<p>
#text "Paragraph with inline <img src=\"x\" onerror=\"boom\"> html and <b>bold tag</b> kept literal?"
#text "\n<div class=\"x\">\nhtml block content\n</div>\n"
<p>
#text "after"

View File

@@ -0,0 +1,16 @@
<div class="_markdown_404681">
<p>
#text "A "
<a href="https://example.com/ref" rel="noopener noreferrer" target="_blank">
#text "full"
#text " reference, a "
<a href="https://example.com/collapsed" rel="noopener noreferrer" target="_blank">
#text "collapsed"
#text " one, and a "
<a href="https://example.com/shortcut" rel="noopener noreferrer" target="_blank">
#text "shortcut"
#text " one."
<p>
#text "[missing full][nope], [missing collapsed][], ![missing image][gone]."
<p>
<img alt="ref image" class="_image_404681" decoding="async" loading="lazy" referrerpolicy="no-referrer" src="https://example.com/ref.png">

View File

@@ -0,0 +1,16 @@
<div class="_markdown_404681">
<p>
#text "A "
<a href="https://example.com/ref" rel="noopener noreferrer" target="_blank">
#text "full"
#text " reference, a "
<a href="https://example.com/collapsed" rel="noopener noreferrer" target="_blank">
#text "collapsed"
#text " one, and a "
<a href="https://example.com/shortcut" rel="noopener noreferrer" target="_blank">
#text "shortcut"
#text " one."
<p>
#text "[missing full][nope], [missing collapsed][], ![missing image][gone]."
<p>
<img alt="ref image" class="_image_404681" decoding="async" loading="lazy" referrerpolicy="no-referrer" src="https://example.com/ref.png">

View File

@@ -0,0 +1,8 @@
<div class="_markdown_404681">
<h2>
#text "Streaming"
<ul>
<li>
#text "first"
<li>
#text "**unfinished"

View File

@@ -0,0 +1,8 @@
<div class="_markdown_404681">
<h2>
#text "Streaming"
<ul>
<li>
#text "first"
<li>
#text "**unfinished"

View File

@@ -0,0 +1,35 @@
<div class="_markdown_404681">
<div class="_tableScroll_404681">
<table>
<thead>
<tr>
<th style="text-align: left;">
#text "Left"
<th style="text-align: center;">
#text "Center"
<th style="text-align: right;">
#text "Right"
<th>
#text "None"
<tbody>
<tr>
<td style="text-align: left;">
#text "a"
<td style="text-align: center;">
#text "b"
<td style="text-align: right;">
#text "c"
<td>
<code>
#text "code"
<tr>
<td style="text-align: left;">
<a href="https://example.com" rel="noopener noreferrer" target="_blank">
#text "link"
<td style="text-align: center;">
<em>
#text "em"
<td style="text-align: right;">
#text "1"
<td>
#text "2"

View File

@@ -0,0 +1,35 @@
<div class="_markdown_404681">
<div class="_tableScroll_404681">
<table>
<thead>
<tr>
<th style="text-align: left;">
#text "Left"
<th style="text-align: center;">
#text "Center"
<th style="text-align: right;">
#text "Right"
<th>
#text "None"
<tbody>
<tr>
<td style="text-align: left;">
#text "a"
<td style="text-align: center;">
#text "b"
<td style="text-align: right;">
#text "c"
<td>
<code>
#text "code"
<tr>
<td style="text-align: left;">
<a href="https://example.com" rel="noopener noreferrer" target="_blank">
#text "link"
<td style="text-align: center;">
<em>
#text "em"
<td style="text-align: right;">
#text "1"
<td>
#text "2"

View File

@@ -0,0 +1,19 @@
<div class="_markdown_404681">
<ul class="contains-task-list">
<li class="task-list-item">
<input checked="" disabled="" type="checkbox">
#text " done with "
<strong>
#text "strong"
<li class="task-list-item">
<input disabled="" type="checkbox">
#text " pending"
<li>
#text "plain sibling"
<ol class="contains-task-list">
<li class="task-list-item">
<input checked="" disabled="" type="checkbox">
#text " ordered done"
<li class="task-list-item">
<input disabled="" type="checkbox">
#text " ordered pending"

View File

@@ -0,0 +1,19 @@
<div class="_markdown_404681">
<ul class="contains-task-list">
<li class="task-list-item">
<input checked="" disabled="" type="checkbox">
#text " done with "
<strong>
#text "strong"
<li class="task-list-item">
<input disabled="" type="checkbox">
#text " pending"
<li>
#text "plain sibling"
<ol class="contains-task-list">
<li class="task-list-item">
<input checked="" disabled="" type="checkbox">
#text " ordered done"
<li class="task-list-item">
<input disabled="" type="checkbox">
#text " ordered pending"