<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Astro-Theme-Live_Flow - undefined</title><description>Power by Github Discussions &amp; Astro</description><link>https://live-flow.iiv.workers.dev/</link><language>zh-cn</language><item><title>Github markdown-alert</title><link>https://live-flow.iiv.workers.dev/blog1/p/9</link><guid isPermaLink="true">https://live-flow.iiv.workers.dev/blog1/p/9</guid><pubDate>Sat, 04 Apr 2026 06:01:14 GMT</pubDate><content:encoded>&lt;div class=&quot;markdown-alert markdown-alert-note&quot; dir=&quot;auto&quot;&gt;&lt;p class=&quot;markdown-alert-title&quot; dir=&quot;auto&quot;&gt;&lt;svg class=&quot;octicon octicon-info mr-2&quot; viewBox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Note&lt;/p&gt;&lt;p dir=&quot;auto&quot;&gt;I am NOTE&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;markdown-alert markdown-alert-tip&quot; dir=&quot;auto&quot;&gt;&lt;p class=&quot;markdown-alert-title&quot; dir=&quot;auto&quot;&gt;&lt;svg class=&quot;octicon octicon-light-bulb mr-2&quot; viewBox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Tip&lt;/p&gt;&lt;p dir=&quot;auto&quot;&gt;I am TIP&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;markdown-alert markdown-alert-important&quot; dir=&quot;auto&quot;&gt;&lt;p class=&quot;markdown-alert-title&quot; dir=&quot;auto&quot;&gt;&lt;svg class=&quot;octicon octicon-report mr-2&quot; viewBox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Important&lt;/p&gt;&lt;p dir=&quot;auto&quot;&gt;I am IMPORTANT&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;markdown-alert markdown-alert-warning&quot; dir=&quot;auto&quot;&gt;&lt;p class=&quot;markdown-alert-title&quot; dir=&quot;auto&quot;&gt;&lt;svg class=&quot;octicon octicon-alert mr-2&quot; viewBox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Warning&lt;/p&gt;&lt;p dir=&quot;auto&quot;&gt;I am WARNING&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;markdown-alert markdown-alert-caution&quot; dir=&quot;auto&quot;&gt;&lt;p class=&quot;markdown-alert-title&quot; dir=&quot;auto&quot;&gt;&lt;svg class=&quot;octicon octicon-stop mr-2&quot; viewBox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Caution&lt;/p&gt;&lt;p dir=&quot;auto&quot;&gt;I am CAUTION&lt;/p&gt;
&lt;/div&gt;</content:encoded></item><item><title>GFM</title><link>https://live-flow.iiv.workers.dev/blog1/p/8</link><guid isPermaLink="true">https://live-flow.iiv.workers.dev/blog1/p/8</guid><pubDate>Tue, 31 Mar 2026 11:15:58 GMT</pubDate><content:encoded>&lt;p dir=&quot;auto&quot;&gt;更新&lt;/p&gt;
&lt;h1 dir=&quot;auto&quot;&gt;Basic writing and formatting syntax&lt;/h1&gt;
&lt;p dir=&quot;auto&quot;&gt;Create sophisticated formatting for your prose and code on GitHub with simple syntax.&lt;/p&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Headings&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;To create a heading, add one to six &lt;kbd&gt;#&lt;/kbd&gt; symbols before your heading text. The number of &lt;kbd&gt;#&lt;/kbd&gt; you use will determine the hierarchy level and typeface size of the heading.&lt;/p&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;# A first-level heading
## A second-level heading
### A third-level heading&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-mh&quot;&gt;# &lt;span class=&quot;pl-en&quot;&gt;A first-level heading&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;pl-mh&quot;&gt;## &lt;span class=&quot;pl-en&quot;&gt;A second-level heading&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;pl-mh&quot;&gt;### &lt;span class=&quot;pl-en&quot;&gt;A third-level heading&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p dir=&quot;auto&quot;&gt;When you use two or more headings, GitHub automatically generates a table of contents that you can access by clicking the &quot;Outline&quot; menu icon  within the file header. Each heading title is listed in the table of contents and you can click a title to navigate to the selected section.&lt;/p&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Styling text&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;You can indicate emphasis with bold, italic, strikethrough, subscript, or superscript text in comment fields and &lt;code class=&quot;notranslate&quot;&gt;.md&lt;/code&gt; files.&lt;/p&gt;
&lt;markdown-accessiblity-table&gt;&lt;table role=&quot;table&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Style&lt;/th&gt;
&lt;th&gt;Syntax&lt;/th&gt;
&lt;th&gt;Keyboard shortcut&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;th&gt;Output&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Bold&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;** **&lt;/code&gt; or &lt;code class=&quot;notranslate&quot;&gt;__ __&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;kbd&gt;Command&lt;/kbd&gt;+&lt;kbd&gt;B&lt;/kbd&gt; (Mac) or &lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;B&lt;/kbd&gt; (Windows/Linux)&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;**This is bold text**&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;This is bold text&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Italic&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;* *&lt;/code&gt; or &lt;code class=&quot;notranslate&quot;&gt;_ _&lt;/code&gt;     &lt;/td&gt;
&lt;td&gt;&lt;kbd&gt;Command&lt;/kbd&gt;+&lt;kbd&gt;I&lt;/kbd&gt; (Mac) or &lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;I&lt;/kbd&gt; (Windows/Linux)&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;_This text is italicized_&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;This text is italicized&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Strikethrough&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;~~ ~~&lt;/code&gt; or &lt;code class=&quot;notranslate&quot;&gt;~ ~&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;~~This was mistaken text~~&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;del&gt;This was mistaken text&lt;/del&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bold and nested italic&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;** **&lt;/code&gt; and &lt;code class=&quot;notranslate&quot;&gt;_ _&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;**This text is _extremely_ important**&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;This text is &lt;em&gt;extremely&lt;/em&gt; important&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;All bold and italic&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;*** ***&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;***All this text is important***&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;em&gt;&lt;strong&gt;All this text is important&lt;/strong&gt;&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Subscript&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;&amp;lt;sub&amp;gt; &amp;lt;/sub&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;This is a &amp;lt;sub&amp;gt;subscript&amp;lt;/sub&amp;gt; text&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;This is a &lt;sub&gt;subscript&lt;/sub&gt; text&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Superscript&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;&amp;lt;sup&amp;gt; &amp;lt;/sup&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;This is a &amp;lt;sup&amp;gt;superscript&amp;lt;/sup&amp;gt; text&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;This is a &lt;sup&gt;superscript&lt;/sup&gt; text&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Underline&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;&amp;lt;ins&amp;gt; &amp;lt;/ins&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;This is an &amp;lt;ins&amp;gt;underlined&amp;lt;/ins&amp;gt; text&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;This is an &lt;ins&gt;underlined&lt;/ins&gt; text&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/markdown-accessiblity-table&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Quoting text&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;You can quote text with a &lt;kbd&gt;&amp;gt;&lt;/kbd&gt;.&lt;/p&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;Text that is not a quote

&amp;gt; Text that is a quote&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;Text that is not a quote

&lt;span class=&quot;pl-ent&quot;&gt;&lt;span class=&quot;pl-ent&quot;&gt;&amp;gt; &lt;/span&gt;Text that is a quote&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p dir=&quot;auto&quot;&gt;Quoted text is indented with a vertical line on the left and displayed using gray type.&lt;/p&gt;
&lt;div class=&quot;markdown-alert markdown-alert-note&quot; dir=&quot;auto&quot;&gt;&lt;p class=&quot;markdown-alert-title&quot; dir=&quot;auto&quot;&gt;&lt;svg class=&quot;octicon octicon-info mr-2&quot; viewBox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Note&lt;/p&gt;&lt;p dir=&quot;auto&quot;&gt;When viewing a conversation, you can automatically quote text in a comment by highlighting the text, then typing &lt;kbd&gt;R&lt;/kbd&gt;. You can quote an entire comment by clicking , then &lt;strong&gt;Quote reply&lt;/strong&gt;. For more information about keyboard shortcuts, see &lt;a href=&quot;/en/get-started/accessibility/keyboard-shortcuts&quot;&gt;Keyboard shortcuts&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Quoting code&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;You can call out code or a command within a sentence with single backticks. The text within the backticks will not be formatted. You can also press the &lt;kbd&gt;Command&lt;/kbd&gt;+&lt;kbd&gt;E&lt;/kbd&gt; (Mac) or &lt;kbd&gt;Ctrl&lt;/kbd&gt;+&lt;kbd&gt;E&lt;/kbd&gt; (Windows/Linux) keyboard shortcut to insert the backticks for a code block within a line of Markdown.&lt;/p&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;Use `git status` to list all new or modified files that haven&apos;t yet been committed.&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;Use &lt;span class=&quot;pl-s&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;git status&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;`&lt;/span&gt; to list all new or modified files that haven&apos;t yet been committed.&lt;/pre&gt;&lt;/div&gt;
&lt;p dir=&quot;auto&quot;&gt;To format code or text into its own distinct block, use triple backticks.&lt;/p&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;Some basic Git commands are:
```
git status
git add
git commit
```&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;Some basic Git commands are:
&lt;span class=&quot;pl-s&quot;&gt;```&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;pl-c1&quot;&gt;git status&lt;/span&gt;
&lt;span class=&quot;pl-c1&quot;&gt;git add&lt;/span&gt;
&lt;span class=&quot;pl-c1&quot;&gt;git commit&lt;/span&gt;
&lt;span class=&quot;pl-c1&quot;&gt;&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;```&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p dir=&quot;auto&quot;&gt;For more information, see &lt;a href=&quot;/en/get-started/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks&quot;&gt;Creating and highlighting code blocks&lt;/a&gt;.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;If you are frequently editing code snippets and tables, you may benefit from enabling a fixed-width font in all comment fields on GitHub. For more information, see &lt;a href=&quot;/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/about-writing-and-formatting-on-github#enabling-fixed-width-fonts-in-the-editor&quot;&gt;About writing and formatting on GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Supported color models&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;In issues, pull requests, and discussions, you can call out colors within a sentence by using backticks. A supported color model within backticks will display a visualization of the color.&lt;/p&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;The background color is `#ffffff` for light mode and `#000000` for dark mode.&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;The background color is &lt;span class=&quot;pl-s&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;#ffffff&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;`&lt;/span&gt; for light mode and &lt;span class=&quot;pl-s&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;#000000&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;`&lt;/span&gt; for dark mode.&lt;/pre&gt;&lt;/div&gt;
&lt;p dir=&quot;auto&quot;&gt;Here are the currently supported color models.&lt;/p&gt;
&lt;markdown-accessiblity-table&gt;&lt;table role=&quot;table&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Color&lt;/th&gt;
&lt;th&gt;Syntax&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;th&gt;Output&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;HEX&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;`#RRGGBB`&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;`#0969DA`&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RGB&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;`rgb(R,G,B)`&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;`rgb(9, 105, 218)`&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HSL&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;`hsl(H,S,L)`&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;`hsl(212, 92%, 45%)`&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/markdown-accessiblity-table&gt;
&lt;div class=&quot;markdown-alert markdown-alert-note&quot; dir=&quot;auto&quot;&gt;&lt;p class=&quot;markdown-alert-title&quot; dir=&quot;auto&quot;&gt;&lt;svg class=&quot;octicon octicon-info mr-2&quot; viewBox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Note&lt;/p&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;A supported color model cannot have any leading or trailing spaces within the backticks.&lt;/li&gt;
&lt;li&gt;The visualization of the color is only supported in issues, pull requests, and discussions.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Links&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;You can create an inline link by wrapping link text in brackets &lt;code class=&quot;notranslate&quot;&gt;[ ]&lt;/code&gt;, and then wrapping the URL in parentheses &lt;code class=&quot;notranslate&quot;&gt;( )&lt;/code&gt;. You can also use the keyboard shortcut &lt;kbd&gt;Command&lt;/kbd&gt;+&lt;kbd&gt;K&lt;/kbd&gt; to create a link. When you have text selected, you can paste a URL from your clipboard to automatically create a link from the selection.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;You can also create a Markdown hyperlink by highlighting the text and using the keyboard shortcut &lt;kbd&gt;Command&lt;/kbd&gt;+&lt;kbd&gt;V&lt;/kbd&gt;. If you&apos;d like to replace the text with the link, use the keyboard shortcut &lt;kbd&gt;Command&lt;/kbd&gt;+&lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;V&lt;/kbd&gt;.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;&lt;code class=&quot;notranslate&quot;&gt;This site was built using [GitHub Pages](https://pages.github.com/).&lt;/code&gt;&lt;/p&gt;
&lt;div class=&quot;markdown-alert markdown-alert-note&quot; dir=&quot;auto&quot;&gt;&lt;p class=&quot;markdown-alert-title&quot; dir=&quot;auto&quot;&gt;&lt;svg class=&quot;octicon octicon-info mr-2&quot; viewBox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Note&lt;/p&gt;&lt;p dir=&quot;auto&quot;&gt;GitHub automatically creates links when valid URLs are written in a comment. For more information, see &lt;a href=&quot;/en/get-started/writing-on-github/working-with-advanced-formatting/autolinked-references-and-urls&quot;&gt;Autolinked references and URLs&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Section links&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;You can link directly to any section that has a heading. To view the automatically generated anchor in a rendered file, hover over the section heading to expose the  icon and click the icon to display the anchor in your browser.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;If you need to determine the anchor for a heading in a file you are editing, you can use the following basic rules:&lt;/p&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Letters are converted to lower-case.&lt;/li&gt;
&lt;li&gt;Spaces are replaced by hyphens (&lt;code class=&quot;notranslate&quot;&gt;-&lt;/code&gt;). Any other whitespace or punctuation characters are removed.&lt;/li&gt;
&lt;li&gt;Leading and trailing whitespace are removed.&lt;/li&gt;
&lt;li&gt;Markup formatting is removed, leaving only the contents (for example, &lt;code class=&quot;notranslate&quot;&gt;_italics_&lt;/code&gt; becomes &lt;code class=&quot;notranslate&quot;&gt;italics&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;If the automatically generated anchor for a heading is identical to an earlier anchor in the same document, a unique identifier is generated by appending a hyphen and an auto-incrementing integer.&lt;/li&gt;
&lt;/ul&gt;
&lt;p dir=&quot;auto&quot;&gt;For more detailed information on the requirements of URI fragments, see &lt;a href=&quot;https://www.rfc-editor.org/rfc/rfc3986#section-3.5&quot; rel=&quot;nofollow&quot;&gt;RFC 3986: Uniform Resource Identifier (URI): Generic Syntax, Section 3.5&lt;/a&gt;.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;The code block below demonstrates the basic rules used to generate anchors from headings in rendered content.&lt;/p&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;# Example headings

## Sample Section

## This&apos;ll be a _Helpful_ Section About the Greek Letter Θ!
A heading containing characters not allowed in fragments, UTF-8 characters, two consecutive spaces between the first and second words, and formatting.

## This heading is not unique in the file

TEXT 1

## This heading is not unique in the file

TEXT 2

# Links to the example headings above

Link to the sample section: [Link Text](#sample-section).

Link to the helpful section: [Link Text](#thisll-be-a-helpful-section-about-the-greek-letter-Θ).

Link to the first non-unique section: [Link Text](#this-heading-is-not-unique-in-the-file).

Link to the second non-unique section: [Link Text](#this-heading-is-not-unique-in-the-file-1).&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-mh&quot;&gt;# &lt;span class=&quot;pl-en&quot;&gt;Example headings&lt;/span&gt;&lt;/span&gt;

&lt;span class=&quot;pl-mh&quot;&gt;## &lt;span class=&quot;pl-en&quot;&gt;Sample Section&lt;/span&gt;&lt;/span&gt;

&lt;span class=&quot;pl-mh&quot;&gt;## &lt;span class=&quot;pl-en&quot;&gt;This&apos;ll be a &lt;span class=&quot;pl-s&quot;&gt;_&lt;/span&gt;Helpful&lt;span class=&quot;pl-s&quot;&gt;_&lt;/span&gt; Section About the Greek Letter Θ!&lt;/span&gt;&lt;/span&gt;
A heading containing characters not allowed in fragments, UTF-8 characters, two consecutive spaces between the first and second words, and formatting.

&lt;span class=&quot;pl-mh&quot;&gt;## &lt;span class=&quot;pl-en&quot;&gt;This heading is not unique in the file&lt;/span&gt;&lt;/span&gt;

TEXT 1

&lt;span class=&quot;pl-mh&quot;&gt;## &lt;span class=&quot;pl-en&quot;&gt;This heading is not unique in the file&lt;/span&gt;&lt;/span&gt;

TEXT 2

&lt;span class=&quot;pl-mh&quot;&gt;# &lt;span class=&quot;pl-en&quot;&gt;Links to the example headings above&lt;/span&gt;&lt;/span&gt;

Link to the sample section: &lt;span class=&quot;pl-s&quot;&gt;[&lt;/span&gt;Link Text&lt;span class=&quot;pl-s&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-corl&quot;&gt;#sample-section&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;)&lt;/span&gt;.

Link to the helpful section: &lt;span class=&quot;pl-s&quot;&gt;[&lt;/span&gt;Link Text&lt;span class=&quot;pl-s&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-corl&quot;&gt;#thisll-be-a-helpful-section-about-the-greek-letter-Θ&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;)&lt;/span&gt;.

Link to the first non-unique section: &lt;span class=&quot;pl-s&quot;&gt;[&lt;/span&gt;Link Text&lt;span class=&quot;pl-s&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-corl&quot;&gt;#this-heading-is-not-unique-in-the-file&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;)&lt;/span&gt;.

Link to the second non-unique section: &lt;span class=&quot;pl-s&quot;&gt;[&lt;/span&gt;Link Text&lt;span class=&quot;pl-s&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-corl&quot;&gt;#this-heading-is-not-unique-in-the-file-1&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;)&lt;/span&gt;.&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;markdown-alert markdown-alert-note&quot; dir=&quot;auto&quot;&gt;&lt;p class=&quot;markdown-alert-title&quot; dir=&quot;auto&quot;&gt;&lt;svg class=&quot;octicon octicon-info mr-2&quot; viewBox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Note&lt;/p&gt;&lt;p dir=&quot;auto&quot;&gt;If you edit a heading, or if you change the order of headings with &quot;identical&quot; anchors, you will also need to update any links to those headings as the anchors will change.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Relative links&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;You can define relative links and image paths in your rendered files to help readers navigate to other files in your repository.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;A relative link is a link that is relative to the current file. For example, if you have a README file in root of your repository, and you have another file in &lt;em&gt;docs/CONTRIBUTING.md&lt;/em&gt;, the relative link to &lt;em&gt;CONTRIBUTING.md&lt;/em&gt; in your README might look like this:&lt;/p&gt;
&lt;div class=&quot;snippet-clipboard-content notranslate position-relative overflow-auto&quot; data-snippet-clipboard-copy-content=&quot;[Contribution guidelines for this project](docs/CONTRIBUTING.md)&quot;&gt;&lt;pre lang=&quot;text&quot; class=&quot;notranslate&quot;&gt;&lt;code class=&quot;notranslate&quot;&gt;[Contribution guidelines for this project](docs/CONTRIBUTING.md)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p dir=&quot;auto&quot;&gt;GitHub will automatically transform your relative link or image path based on whatever branch you&apos;re currently on, so that the link or path always works. The path of the link will be relative to the current file. Links starting with &lt;code class=&quot;notranslate&quot;&gt;/&lt;/code&gt; will be relative to the repository root. You can use all relative link operands, such as &lt;code class=&quot;notranslate&quot;&gt;./&lt;/code&gt; and &lt;code class=&quot;notranslate&quot;&gt;../&lt;/code&gt;.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;Your link text should be on a single line. The example below will not work.&lt;/p&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;[Contribution
guidelines for this project](docs/CONTRIBUTING.md)&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-s&quot;&gt;[&lt;/span&gt;Contribution
guidelines for this project&lt;span class=&quot;pl-s&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-corl&quot;&gt;docs/CONTRIBUTING.md&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;)&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p dir=&quot;auto&quot;&gt;Relative links are easier for users who clone your repository. Absolute links may not work in clones of your repository - we recommend using relative links to refer to other files within your repository.&lt;/p&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Custom anchors&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;You can use standard HTML anchor tags (&lt;code class=&quot;notranslate&quot;&gt;&amp;lt;a name=&quot;unique-anchor-name&quot;&amp;gt;&amp;lt;/a&amp;gt;&lt;/code&gt;) to create navigation anchor points for any location in the document. To avoid ambiguous references, use a unique naming scheme for anchor tags, such as adding a prefix to the &lt;code class=&quot;notranslate&quot;&gt;name&lt;/code&gt; attribute value.&lt;/p&gt;
&lt;div class=&quot;markdown-alert markdown-alert-note&quot; dir=&quot;auto&quot;&gt;&lt;p class=&quot;markdown-alert-title&quot; dir=&quot;auto&quot;&gt;&lt;svg class=&quot;octicon octicon-info mr-2&quot; viewBox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Note&lt;/p&gt;&lt;p dir=&quot;auto&quot;&gt;Custom anchors will not be included in the document outline/Table of Contents.&lt;/p&gt;
&lt;/div&gt;
&lt;p dir=&quot;auto&quot;&gt;You can link to a custom anchor using the value of the &lt;code class=&quot;notranslate&quot;&gt;name&lt;/code&gt; attribute you gave the anchor. The syntax is exactly the same as when you link to an anchor that is automatically generated for a heading.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;For example:&lt;/p&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;# Section Heading

Some body text of this section.

&amp;lt;a name=&amp;quot;my-custom-anchor-point&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;
Some text I want to provide a direct link to, but which doesn&apos;t have its own heading.

(… more content…)

[A link to that custom anchor](#my-custom-anchor-point)&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-mh&quot;&gt;# &lt;span class=&quot;pl-en&quot;&gt;Section Heading&lt;/span&gt;&lt;/span&gt;

Some body text of this section.

&amp;lt;&lt;span class=&quot;pl-ent&quot;&gt;a&lt;/span&gt; &lt;span class=&quot;pl-e&quot;&gt;name&lt;/span&gt;=&lt;span class=&quot;pl-s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;my-custom-anchor-point&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;&quot;&lt;/span&gt;&amp;gt;&amp;lt;/&lt;span class=&quot;pl-ent&quot;&gt;a&lt;/span&gt;&amp;gt;
Some text I want to provide a direct link to, but which doesn&apos;t have its own heading.

(… more content…)

&lt;span class=&quot;pl-s&quot;&gt;[&lt;/span&gt;A link to that custom anchor&lt;span class=&quot;pl-s&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-corl&quot;&gt;#my-custom-anchor-point&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;)&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;markdown-alert markdown-alert-tip&quot; dir=&quot;auto&quot;&gt;&lt;p class=&quot;markdown-alert-title&quot; dir=&quot;auto&quot;&gt;&lt;svg class=&quot;octicon octicon-light-bulb mr-2&quot; viewBox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Tip&lt;/p&gt;&lt;p dir=&quot;auto&quot;&gt;Custom anchors are not considered by the automatic naming and numbering behavior of automatic heading links.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Line breaks&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;If you&apos;re writing in issues, pull requests, or discussions in a repository, GitHub will render a line break automatically:&lt;/p&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;This example
Will span two lines&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;This example
Will span two lines&lt;/pre&gt;&lt;/div&gt;
&lt;p dir=&quot;auto&quot;&gt;However, if you are writing in an .md file, the example above would render on one line without a line break. To create a line break in an .md file, you will need to include one of the following:&lt;/p&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;
&lt;p dir=&quot;auto&quot;&gt;Include two spaces at the end of the first line.&lt;/p&gt;
&lt;pre class=&quot;notranslate&quot;&gt;This example  
Will span two lines
&lt;/pre&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p dir=&quot;auto&quot;&gt;Include a backslash at the end of the first line.&lt;/p&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;This example\
Will span two lines&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;This example&lt;span class=&quot;pl-c1&quot;&gt;\&lt;/span&gt;
Will span two lines&lt;/pre&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p dir=&quot;auto&quot;&gt;Include an HTML single line break tag at the end of the first line.&lt;/p&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;This example&amp;lt;br/&amp;gt;
Will span two lines&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;This example&amp;lt;&lt;span class=&quot;pl-ent&quot;&gt;br&lt;/span&gt;/&amp;gt;
Will span two lines&lt;/pre&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p dir=&quot;auto&quot;&gt;If you leave a blank line between two lines, both .md files and Markdown in issues, pull requests, and discussions will render the two lines separated by the blank line:&lt;/p&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;This example

Will have a blank line separating both lines&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;This example

Will have a blank line separating both lines&lt;/pre&gt;&lt;/div&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Images&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;You can display an image by adding &lt;kbd&gt;!&lt;/kbd&gt; and wrapping the alt text in &lt;code class=&quot;notranslate&quot;&gt;[ ]&lt;/code&gt;. Alt text is a short text equivalent of the information in the image. Then, wrap the link for the image in parentheses &lt;code class=&quot;notranslate&quot;&gt;()&lt;/code&gt;.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;``&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;GitHub supports embedding images into your issues, pull requests, discussions, comments and &lt;code class=&quot;notranslate&quot;&gt;.md&lt;/code&gt; files. You can display an image from your repository, add a link to an online image, or upload an image. For more information, see &lt;a href=&quot;#uploading-assets&quot;&gt;Uploading assets&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;markdown-alert markdown-alert-note&quot; dir=&quot;auto&quot;&gt;&lt;p class=&quot;markdown-alert-title&quot; dir=&quot;auto&quot;&gt;&lt;svg class=&quot;octicon octicon-info mr-2&quot; viewBox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Note&lt;/p&gt;&lt;p dir=&quot;auto&quot;&gt;When you want to display an image that is in your repository, use relative links instead of absolute links.&lt;/p&gt;
&lt;/div&gt;
&lt;p dir=&quot;auto&quot;&gt;Here are some examples for using relative links to display an image.&lt;/p&gt;
&lt;markdown-accessiblity-table&gt;&lt;table role=&quot;table&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Context&lt;/th&gt;
&lt;th&gt;Relative Link&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;In a &lt;code class=&quot;notranslate&quot;&gt;.md&lt;/code&gt; file on the same branch&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;/assets/images/electrocat.png&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;In a &lt;code class=&quot;notranslate&quot;&gt;.md&lt;/code&gt; file on another branch&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;/../main/assets/images/electrocat.png&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;In issues, pull requests and comments of the repository&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;../blob/main/assets/images/electrocat.png?raw=true&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;In a &lt;code class=&quot;notranslate&quot;&gt;.md&lt;/code&gt; file in another repository&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;/../../../../github/docs/blob/main/assets/images/electrocat.png&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;In issues, pull requests and comments of another repository&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;../../../github/docs/blob/main/assets/images/electrocat.png?raw=true&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/markdown-accessiblity-table&gt;
&lt;div class=&quot;markdown-alert markdown-alert-note&quot; dir=&quot;auto&quot;&gt;&lt;p class=&quot;markdown-alert-title&quot; dir=&quot;auto&quot;&gt;&lt;svg class=&quot;octicon octicon-info mr-2&quot; viewBox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Note&lt;/p&gt;&lt;p dir=&quot;auto&quot;&gt;The last two relative links in the table above will work for images in a private repository only if the viewer has at least read access to the private repository that contains these images.&lt;/p&gt;
&lt;/div&gt;
&lt;p dir=&quot;auto&quot;&gt;For more information, see &lt;a href=&quot;#relative-links&quot;&gt;Relative Links&lt;/a&gt;.&lt;/p&gt;
&lt;h3 dir=&quot;auto&quot;&gt;The Picture element&lt;/h3&gt;
&lt;p dir=&quot;auto&quot;&gt;The &lt;code class=&quot;notranslate&quot;&gt;&amp;lt;picture&amp;gt;&lt;/code&gt; HTML element is supported.&lt;/p&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Lists&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;You can make an unordered list by preceding one or more lines of text with &lt;kbd&gt;-&lt;/kbd&gt;, &lt;kbd&gt;*&lt;/kbd&gt;, or &lt;kbd&gt;+&lt;/kbd&gt;.&lt;/p&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;- George Washington
* John Adams
+ Thomas Jefferson&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-v&quot;&gt;-&lt;/span&gt; George Washington
&lt;span class=&quot;pl-v&quot;&gt;*&lt;/span&gt; John Adams
&lt;span class=&quot;pl-v&quot;&gt;+&lt;/span&gt; Thomas Jefferson&lt;/pre&gt;&lt;/div&gt;
&lt;p dir=&quot;auto&quot;&gt;To order your list, precede each line with a number.&lt;/p&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;1. James Madison
2. James Monroe
3. John Quincy Adams&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-s&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pl-v&quot;&gt;.&lt;/span&gt; James Madison
&lt;span class=&quot;pl-s&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;pl-v&quot;&gt;.&lt;/span&gt; James Monroe
&lt;span class=&quot;pl-s&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;pl-v&quot;&gt;.&lt;/span&gt; John Quincy Adams&lt;/pre&gt;&lt;/div&gt;
&lt;h3 dir=&quot;auto&quot;&gt;Nested Lists&lt;/h3&gt;
&lt;p dir=&quot;auto&quot;&gt;You can create a nested list by indenting one or more list items below another item.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;To create a nested list using the web editor on GitHub or a text editor that uses a monospaced font, like &lt;a href=&quot;https://code.visualstudio.com/&quot; rel=&quot;nofollow&quot;&gt;Visual Studio Code&lt;/a&gt;, you can align your list visually. Type space characters in front of your nested list item until the list marker character (&lt;kbd&gt;-&lt;/kbd&gt; or &lt;kbd&gt;*&lt;/kbd&gt;) lies directly below the first character of the text in the item above it.&lt;/p&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;1. First list item
   - First nested list item
     - Second nested list item&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-s&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pl-v&quot;&gt;.&lt;/span&gt; First list item
   &lt;span class=&quot;pl-v&quot;&gt;-&lt;/span&gt; First nested list item
     &lt;span class=&quot;pl-v&quot;&gt;-&lt;/span&gt; Second nested list item&lt;/pre&gt;&lt;/div&gt;
&lt;div class=&quot;markdown-alert markdown-alert-note&quot; dir=&quot;auto&quot;&gt;&lt;p class=&quot;markdown-alert-title&quot; dir=&quot;auto&quot;&gt;&lt;svg class=&quot;octicon octicon-info mr-2&quot; viewBox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Note&lt;/p&gt;&lt;p dir=&quot;auto&quot;&gt;In the web-based editor, you can indent or dedent one or more lines of text by first highlighting the desired lines and then using &lt;kbd&gt;Tab&lt;/kbd&gt; or &lt;kbd&gt;Shift&lt;/kbd&gt;+&lt;kbd&gt;Tab&lt;/kbd&gt; respectively.&lt;/p&gt;
&lt;/div&gt;
&lt;p dir=&quot;auto&quot;&gt;To create a nested list in the comment editor on GitHub, which doesn&apos;t use a monospaced font, you can look at the list item immediately above the nested list and count the number of characters that appear before the content of the item. Then type that number of space characters in front of the nested list item.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;In this example, you could add a nested list item under the list item &lt;code class=&quot;notranslate&quot;&gt;100. First list item&lt;/code&gt; by indenting the nested list item a minimum of five spaces, since there are five characters (&lt;code class=&quot;notranslate&quot;&gt;100. &lt;/code&gt;) before &lt;code class=&quot;notranslate&quot;&gt;First list item&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;100. First list item
     - First nested list item&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-s&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;pl-v&quot;&gt;.&lt;/span&gt; First list item
     &lt;span class=&quot;pl-v&quot;&gt;-&lt;/span&gt; First nested list item&lt;/pre&gt;&lt;/div&gt;
&lt;p dir=&quot;auto&quot;&gt;You can create multiple levels of nested lists using the same method. For example, because the first nested list item has seven characters (&lt;code class=&quot;notranslate&quot;&gt;␣␣␣␣␣-␣&lt;/code&gt;) before the nested list content &lt;code class=&quot;notranslate&quot;&gt;First nested list item&lt;/code&gt;, you would need to indent the second nested list item by at least two more characters (nine spaces minimum).&lt;/p&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;100. First list item
     - First nested list item
       - Second nested list item&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-s&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;pl-v&quot;&gt;.&lt;/span&gt; First list item
     &lt;span class=&quot;pl-v&quot;&gt;-&lt;/span&gt; First nested list item
       &lt;span class=&quot;pl-v&quot;&gt;-&lt;/span&gt; Second nested list item&lt;/pre&gt;&lt;/div&gt;
&lt;p dir=&quot;auto&quot;&gt;For more examples, see the &lt;a href=&quot;https://github.github.com/gfm/#example-265&quot;&gt;GitHub Flavored Markdown Spec&lt;/a&gt;.&lt;/p&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Task lists&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;To create a task list, preface list items with a hyphen and space followed by &lt;code class=&quot;notranslate&quot;&gt;[ ]&lt;/code&gt;. To mark a task as complete, use &lt;code class=&quot;notranslate&quot;&gt;[x]&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;- [x] #739
- [ ] https://github.com/octo-org/octo-repo/issues/740
- [ ] Add delight to the experience when all tasks are complete :tada:&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-v&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;[x]&lt;/span&gt; &lt;span class=&quot;pl-s&quot;&gt;#&lt;span class=&quot;pl-corl&quot;&gt;739&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;pl-v&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;[ ]&lt;/span&gt; &lt;span class=&quot;pl-corl&quot;&gt;https://github.com/octo-org/octo-repo/issues/740&lt;/span&gt;
&lt;span class=&quot;pl-v&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;[ ]&lt;/span&gt; Add delight to the experience when all tasks are complete &lt;span class=&quot;pl-s&quot;&gt;:&lt;span class=&quot;pl-k&quot;&gt;tada&lt;/span&gt;:&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p dir=&quot;auto&quot;&gt;If a task list item description begins with a parenthesis, you&apos;ll need to escape it with &lt;kbd&gt;\&lt;/kbd&gt;:&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;&lt;code class=&quot;notranslate&quot;&gt;- [ ] \(Optional) Open a followup issue&lt;/code&gt;&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;For more information, see &lt;a href=&quot;/en/get-started/writing-on-github/working-with-advanced-formatting/about-task-lists&quot;&gt;About tasklists&lt;/a&gt;.&lt;/p&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Mentioning people and teams&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;You can mention a person or &lt;a href=&quot;/en/organizations/organizing-members-into-teams&quot;&gt;team&lt;/a&gt; on GitHub by typing &lt;kbd&gt;@&lt;/kbd&gt; plus their username or team name. This will trigger a notification and bring their attention to the conversation. People will also receive a notification if you edit a comment to mention their username or team name. For more information about notifications, see &lt;a href=&quot;/en/account-and-profile/managing-subscriptions-and-notifications-on-github/setting-up-notifications/about-notifications&quot;&gt;About notifications&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;markdown-alert markdown-alert-note&quot; dir=&quot;auto&quot;&gt;&lt;p class=&quot;markdown-alert-title&quot; dir=&quot;auto&quot;&gt;&lt;svg class=&quot;octicon octicon-info mr-2&quot; viewBox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Note&lt;/p&gt;&lt;p dir=&quot;auto&quot;&gt;A person will only be notified about a mention if the person has read access to the repository and, if the repository is owned by an organization, the person is a member of the organization.&lt;/p&gt;
&lt;/div&gt;
&lt;p dir=&quot;auto&quot;&gt;&lt;code class=&quot;notranslate&quot;&gt;@github/support What do you think about these updates?&lt;/code&gt;&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;When you mention a parent team, members of its child teams also receive notifications, simplifying communication with multiple groups of people. For more information, see &lt;a href=&quot;/en/organizations/organizing-members-into-teams/about-teams&quot;&gt;About organization teams&lt;/a&gt;.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;Typing an &lt;kbd&gt;@&lt;/kbd&gt; symbol will bring up a list of people or teams on a project. The list filters as you type, so once you find the name of the person or team you are looking for, you can use the arrow keys to select it and press either tab or enter to complete the name. For teams, enter the @organization/team-name and all members of that team will get subscribed to the conversation.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;The autocomplete results are restricted to repository collaborators and any other participants on the thread.&lt;/p&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Referencing issues and pull requests&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;You can bring up a list of suggested issues and pull requests within the repository by typing &lt;kbd&gt;#&lt;/kbd&gt;. Type the issue or pull request number or title to filter the list, and then press either tab or enter to complete the highlighted result.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;For more information, see &lt;a href=&quot;/en/get-started/writing-on-github/working-with-advanced-formatting/autolinked-references-and-urls&quot;&gt;Autolinked references and URLs&lt;/a&gt;.&lt;/p&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Referencing external resources&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;If custom autolink references are configured for a repository, then references to external resources, like a JIRA issue or Zendesk ticket, convert into shortened links. To know which autolinks are available in your repository, contact someone with admin permissions to the repository. For more information, see &lt;a href=&quot;/en/repositories/managing-your-repositorys-settings-and-features/managing-repository-settings/configuring-autolinks-to-reference-external-resources&quot;&gt;Configuring autolinks to reference external resources&lt;/a&gt;.&lt;/p&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Uploading assets&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;You can upload assets like images by dragging and dropping, selecting from a file browser, or pasting. You can upload assets to issues, pull requests, comments, and &lt;code class=&quot;notranslate&quot;&gt;.md&lt;/code&gt; files in your repository.&lt;/p&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Using emojis&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;You can add emoji to your writing by typing &lt;code class=&quot;notranslate&quot;&gt;:EMOJICODE:&lt;/code&gt;, a colon followed by the name of the emoji.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;&lt;code class=&quot;notranslate&quot;&gt;@octocat :+1: This PR looks great - it&apos;s ready to merge! :shipit:&lt;/code&gt;&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;Typing &lt;kbd&gt;:&lt;/kbd&gt; will bring up a list of suggested emoji. The list will filter as you type, so once you find the emoji you&apos;re looking for, press &lt;strong&gt;Tab&lt;/strong&gt; or &lt;strong&gt;Enter&lt;/strong&gt; to complete the highlighted result.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;For a full list of available emoji and codes, see &lt;a href=&quot;https://github.com/ikatyang/emoji-cheat-sheet/blob/github-actions-auto-update/README.md&quot;&gt;the Emoji-Cheat-Sheet&lt;/a&gt;.&lt;/p&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Paragraphs&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;You can create a new paragraph by leaving a blank line between lines of text.&lt;/p&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Footnotes&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;You can add footnotes to your content by using this bracket syntax:&lt;/p&gt;
&lt;div class=&quot;snippet-clipboard-content notranslate position-relative overflow-auto&quot; data-snippet-clipboard-copy-content=&quot;Here is a simple footnote[^1].

A footnote can also have multiple lines[^2].

[^1]: My reference.
[^2]: To add line breaks within a footnote, add 2 spaces to the end of a line.  
This is a second line.&quot;&gt;&lt;pre lang=&quot;text&quot; class=&quot;notranslate&quot;&gt;&lt;code class=&quot;notranslate&quot;&gt;Here is a simple footnote[^1].

A footnote can also have multiple lines[^2].

[^1]: My reference.
[^2]: To add line breaks within a footnote, add 2 spaces to the end of a line.  
This is a second line.
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p dir=&quot;auto&quot;&gt;The footnote will render like this:&lt;/p&gt;
&lt;div class=&quot;markdown-alert markdown-alert-note&quot; dir=&quot;auto&quot;&gt;&lt;p class=&quot;markdown-alert-title&quot; dir=&quot;auto&quot;&gt;&lt;svg class=&quot;octicon octicon-info mr-2&quot; viewBox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Note&lt;/p&gt;&lt;p dir=&quot;auto&quot;&gt;The position of a footnote in your Markdown does not influence where the footnote will be rendered. You can write a footnote right after your reference to the footnote, and the footnote will still render at the bottom of the Markdown. Footnotes are not supported in wikis.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Alerts&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;&lt;strong&gt;Alerts&lt;/strong&gt;, also sometimes known as &lt;strong&gt;callouts&lt;/strong&gt; or &lt;strong&gt;admonitions&lt;/strong&gt;, are a Markdown extension based on the blockquote syntax that you can use to emphasize critical information. On GitHub, they are displayed with distinctive colors and icons to indicate the significance of the content.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;Use alerts only when they are crucial for user success and limit them to one or two per article to prevent overloading the reader. Additionally, you should avoid placing alerts consecutively. Alerts cannot be nested within other elements.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;To add an alert, use a special blockquote line specifying the alert type, followed by the alert information in a standard blockquote. Five types of alerts are available:&lt;/p&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;&amp;gt; [!NOTE]
&amp;gt; Useful information that users should know, even when skimming content.

&amp;gt; [!TIP]
&amp;gt; Helpful advice for doing things better or more easily.

&amp;gt; [!IMPORTANT]
&amp;gt; Key information users need to know to achieve their goal.

&amp;gt; [!WARNING]
&amp;gt; Urgent info that needs immediate user attention to avoid problems.

&amp;gt; [!CAUTION]
&amp;gt; Advises about risks or negative outcomes of certain actions.&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-ent&quot;&gt;&lt;span class=&quot;pl-ent&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;[&lt;/span&gt;!NOTE&lt;span class=&quot;pl-s&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;pl-ent&quot;&gt;&lt;span class=&quot;pl-ent&quot;&gt;&amp;gt; &lt;/span&gt;Useful information that users should know, even when skimming content.&lt;/span&gt;
&lt;span class=&quot;pl-ent&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;pl-ent&quot;&gt;&lt;span class=&quot;pl-ent&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;[&lt;/span&gt;!TIP&lt;span class=&quot;pl-s&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;pl-ent&quot;&gt;&lt;span class=&quot;pl-ent&quot;&gt;&amp;gt; &lt;/span&gt;Helpful advice for doing things better or more easily.&lt;/span&gt;
&lt;span class=&quot;pl-ent&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;pl-ent&quot;&gt;&lt;span class=&quot;pl-ent&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;[&lt;/span&gt;!IMPORTANT&lt;span class=&quot;pl-s&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;pl-ent&quot;&gt;&lt;span class=&quot;pl-ent&quot;&gt;&amp;gt; &lt;/span&gt;Key information users need to know to achieve their goal.&lt;/span&gt;
&lt;span class=&quot;pl-ent&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;pl-ent&quot;&gt;&lt;span class=&quot;pl-ent&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;[&lt;/span&gt;!WARNING&lt;span class=&quot;pl-s&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;pl-ent&quot;&gt;&lt;span class=&quot;pl-ent&quot;&gt;&amp;gt; &lt;/span&gt;Urgent info that needs immediate user attention to avoid problems.&lt;/span&gt;
&lt;span class=&quot;pl-ent&quot;&gt;&lt;/span&gt;
&lt;span class=&quot;pl-ent&quot;&gt;&lt;span class=&quot;pl-ent&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;[&lt;/span&gt;!CAUTION&lt;span class=&quot;pl-s&quot;&gt;]&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;pl-ent&quot;&gt;&lt;span class=&quot;pl-ent&quot;&gt;&amp;gt; &lt;/span&gt;Advises about risks or negative outcomes of certain actions.&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p dir=&quot;auto&quot;&gt;Here are the rendered alerts:&lt;/p&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Hiding content with comments&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;You can tell GitHub to hide content from the rendered Markdown by placing the content in an HTML comment.&lt;/p&gt;
&lt;div class=&quot;snippet-clipboard-content notranslate position-relative overflow-auto&quot; data-snippet-clipboard-copy-content=&quot;&amp;lt;!-- This content will not appear in the rendered Markdown --&amp;gt;&quot;&gt;&lt;pre lang=&quot;text&quot; class=&quot;notranslate&quot;&gt;&lt;code class=&quot;notranslate&quot;&gt;&amp;lt;!-- This content will not appear in the rendered Markdown --&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Ignoring Markdown formatting&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;You can tell GitHub to ignore (or escape) Markdown formatting by using &lt;kbd&gt;\&lt;/kbd&gt; before the Markdown character.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;&lt;code class=&quot;notranslate&quot;&gt;Let&apos;s rename \*our-new-project\* to \*our-old-project\*.&lt;/code&gt;&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;For more information on backslashes, see Daring Fireball&apos;s &lt;a href=&quot;https://daringfireball.net/projects/markdown/syntax#backslash&quot; rel=&quot;nofollow&quot;&gt;Markdown Syntax&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&quot;markdown-alert markdown-alert-note&quot; dir=&quot;auto&quot;&gt;&lt;p class=&quot;markdown-alert-title&quot; dir=&quot;auto&quot;&gt;&lt;svg class=&quot;octicon octicon-info mr-2&quot; viewBox=&quot;0 0 16 16&quot; version=&quot;1.1&quot; width=&quot;16&quot; height=&quot;16&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;Note&lt;/p&gt;&lt;p dir=&quot;auto&quot;&gt;The Markdown formatting will not be ignored in the title of an issue or a pull request.&lt;/p&gt;
&lt;/div&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Disabling Markdown rendering&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;When viewing a Markdown file, you can click &lt;strong&gt;Code&lt;/strong&gt; at the top of the file to disable Markdown rendering and view the file&apos;s source instead.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;Disabling Markdown rendering enables you to use source view features, such as line linking, which is not possible when viewing rendered Markdown files.&lt;/p&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Further reading&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;&lt;a href=&quot;https://github.github.com/gfm/&quot;&gt;GitHub Flavored Markdown Spec&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/about-writing-and-formatting-on-github&quot;&gt;About writing and formatting on GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/en/get-started/writing-on-github/working-with-advanced-formatting&quot;&gt;Working with advanced formatting&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/quickstart-for-writing-on-github&quot;&gt;Quickstart for writing on GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>math</title><link>https://live-flow.iiv.workers.dev/blog1/p/7</link><guid isPermaLink="true">https://live-flow.iiv.workers.dev/blog1/p/7</guid><pubDate>Tue, 31 Mar 2026 05:24:37 GMT</pubDate><content:encoded>&lt;p dir=&quot;auto&quot;&gt;&lt;math-renderer class=&quot;js-display-math&quot; style=&quot;display: block&quot; data-run-id=&quot;4a481f944a7c8345236ff9e80e1a99d8&quot;&gt;$$
\frac{-b \pm \sqrt{b^2 - 4ac}}{2a}
$$&lt;/math-renderer&gt;&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://camo.githubusercontent.com/c11a982c4422ac1869254c0318e7f7548c8090ace14b9edcf2393d4f56f6577b/68747470733a2f2f696d672e31366b2e636c75622f6d6f666973682f323032362d30332d31322f38643435643562373465616565616461646632626361663432383534376333382e77656270&quot;&gt;&lt;img src=&quot;https://camo.githubusercontent.com/c11a982c4422ac1869254c0318e7f7548c8090ace14b9edcf2393d4f56f6577b/68747470733a2f2f696d672e31366b2e636c75622f6d6f666973682f323032362d30332d31322f38643435643562373465616565616461646632626361663432383534376333382e77656270&quot; alt=&quot;&quot; data-canonical-src=&quot;https://img.16k.club/mofish/2026-03-12/8d45d5b74eaeeadadf2bcaf428547c38.webp&quot; style=&quot;max-width: 100%;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot; href=&quot;https://private-user-images.githubusercontent.com/174091880/571721778-3c062cf3-c1de-4d3b-955d-bd88641fb6b8.jpg?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUzOTg1ODgsIm5iZiI6MTc3NTM5ODI4OCwicGF0aCI6Ii8xNzQwOTE4ODAvNTcxNzIxNzc4LTNjMDYyY2YzLWMxZGUtNGQzYi05NTVkLWJkODg2NDFmYjZiOC5qcGc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNDA1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDQwNVQxNDExMjhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02OTM0MWM0YjE2Y2ZmODcxOTZiODgxN2NmNDEzMTUyNDQ2Zjc2NmM0Y2RiYjc4OWVkNWQwZDFjN2M3ZTkyZWE3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.YplYRckFCEZ0ESpGSmCwN5ZJ-90yXZ39AqeHSdqX_Xo&quot;&gt;&lt;img src=&quot;https://private-user-images.githubusercontent.com/174091880/571721778-3c062cf3-c1de-4d3b-955d-bd88641fb6b8.jpg?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUzOTg1ODgsIm5iZiI6MTc3NTM5ODI4OCwicGF0aCI6Ii8xNzQwOTE4ODAvNTcxNzIxNzc4LTNjMDYyY2YzLWMxZGUtNGQzYi05NTVkLWJkODg2NDFmYjZiOC5qcGc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNDA1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDQwNVQxNDExMjhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT02OTM0MWM0YjE2Y2ZmODcxOTZiODgxN2NmNDEzMTUyNDQ2Zjc2NmM0Y2RiYjc4OWVkNWQwZDFjN2M3ZTkyZWE3JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.YplYRckFCEZ0ESpGSmCwN5ZJ-90yXZ39AqeHSdqX_Xo&quot; alt=&quot;中华娘_5_莉子_来自小红书网页版&quot; style=&quot;max-width: 100%;&quot;&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>Markdown 的目標是實現「易讀易寫」。</title><link>https://live-flow.iiv.workers.dev/blog2/p/6</link><guid isPermaLink="true">https://live-flow.iiv.workers.dev/blog2/p/6</guid><pubDate>Sat, 28 Mar 2026 14:32:48 GMT</pubDate><content:encoded>&lt;p dir=&quot;auto&quot;&gt;来源&lt;sup&gt;&lt;a href=&quot;#user-content-fn-1-88d8796e536147936b4b9bb62f6d7a7e&quot; id=&quot;user-content-fnref-1-88d8796e536147936b4b9bb62f6d7a7e&quot; data-footnote-ref=&quot;&quot; aria-describedby=&quot;footnote-label&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;不過最需要強調的便是它的可讀性。一份使用 Markdown 格式撰寫的文件應該可以直接以純文字發佈，並且看起來不會像是由許多標籤或是格式指令所構成。Markdown 語法受到一些既有 text-to-HTML 格式的影響，包括&lt;a href=&quot;http://docutils.sourceforge.net/mirror/setext.html&quot; rel=&quot;nofollow&quot;&gt;Setext&lt;/a&gt;、&lt;a href=&quot;http://www.aaronsw.com/2002/atx/&quot; rel=&quot;nofollow&quot;&gt;atx&lt;/a&gt;、&lt;a href=&quot;http://textism.com/tools/textile/&quot; rel=&quot;nofollow&quot;&gt;Textile&lt;/a&gt;、&lt;a href=&quot;http://docutils.sourceforge.net/rst.html&quot; rel=&quot;nofollow&quot;&gt;reStructuredText&lt;/a&gt;、&lt;a href=&quot;http://www.triptico.com/software/grutatxt.html&quot; rel=&quot;nofollow&quot;&gt;Grutatext&lt;/a&gt; 和 &lt;a href=&quot;http://ettext.taint.org/doc/&quot; rel=&quot;nofollow&quot;&gt;EtText&lt;/a&gt;，然而最大靈感來源其實是純文字的電子郵件格式。&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;因此 Markdown 的語法全由標點符號所組成，並經過嚴謹慎選，是為了讓它們看起來就像所要表達的意思。像是在文字兩旁加上星號，看起來就像&lt;em&gt;強調&lt;/em&gt;。Markdown 的清單看起來，嗯，就是清單。假如你有使用過電子郵件，區塊引言看起來就真的像是引用一段文字。&lt;/p&gt;
&lt;h2 dir=&quot;auto&quot;&gt;行內HTML&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Markdown 的語法有個主要的目的：用來作為一種網路內容的寫作用語言。&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;Markdown 不是要來取代 HTML，甚至也沒有要和它相似，它的語法種類不多，只和 HTML 的一部分有關係，重點不是要創造一種更容易寫作 HTML 文件的語法，我認為 HTML 已經很容易寫了，Markdown 的重點在於，它能讓文件更容易閱讀、編寫。HTML 是一種發佈的格式，Markdown 是一種編寫的格式，因此，Markdown 的格式語法只涵蓋純文字可以涵蓋的範圍。&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;不在 Markdown 涵蓋範圍之外的標籤，都可以直接在文件裡面用 HTML 撰寫。不需要額外標註這是 HTML 或是 Markdown；只要直接加標籤就可以了。&lt;/p&gt;
&lt;section data-footnotes=&quot;&quot; class=&quot;footnotes&quot;&gt;&lt;h2 id=&quot;footnote-label&quot; class=&quot;sr-only&quot; dir=&quot;auto&quot;&gt;Footnotes&lt;/h2&gt;
&lt;ol dir=&quot;auto&quot;&gt;
&lt;li id=&quot;user-content-fn-1-88d8796e536147936b4b9bb62f6d7a7e&quot;&gt;
&lt;p dir=&quot;auto&quot;&gt;来源：&lt;a href=&quot;https://markdown.tw/&quot;&gt;https://markdown.tw/&lt;/a&gt; &lt;a href=&quot;#user-content-fnref-1-88d8796e536147936b4b9bb62f6d7a7e&quot; data-footnote-backref=&quot;&quot; aria-label=&quot;Back to reference 1&quot; class=&quot;data-footnote-backref&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;</content:encoded></item><item><title>如何在Astro v6上实现 动态的 OpenGraph 社交图片生成？运行在边缘计算 使用wasm！支持Cloudflare workers</title><link>https://live-flow.iiv.workers.dev/astro-in-cloudflare/p/5</link><guid isPermaLink="true">https://live-flow.iiv.workers.dev/astro-in-cloudflare/p/5</guid><pubDate>Sat, 28 Mar 2026 09:37:44 GMT</pubDate><content:encoded>&lt;h4 dir=&quot;auto&quot;&gt;代码&lt;/h4&gt;
&lt;details&gt;&lt;summary&gt;Details&lt;/summary&gt;
&lt;p dir=&quot;auto&quot;&gt;
&lt;/p&gt;&lt;div class=&quot;highlight highlight-source-ts notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;import type { APIRoute } from &amp;quot;astro&amp;quot;;
// @ts-ignore
import { env } from &amp;quot;cloudflare:workers&amp;quot;;
import { getLiveEntry } from &amp;quot;astro:content&amp;quot;;
import { formatDate } from &amp;quot;@/lib/utils&amp;quot;;

import satori, { init } from &amp;quot;satori/standalone&amp;quot;;
import { initWasm, Resvg } from &amp;quot;@resvg/resvg-wasm&amp;quot;;

// @ts-ignore
import yogaWasm from &amp;quot;satori/yoga.wasm?module&amp;quot;;
// @ts-ignore
import resvgWasm from &amp;quot;@resvg/resvg-wasm/index_bg.wasm?module&amp;quot;;

// --- 1. 在函数外部定义全局锁和缓存 ---
let wasmInitPromise: Promise&amp;lt;void&amp;gt; | null = null;
let fontCache: ArrayBuffer | null = null;

// 封装一个纯粹的初始化函数
async function initializeWasm(yogaWasm: any, resvgWasm: any) {
  // 如果已经有 Promise 在运行或已完成，直接返回它
  if (wasmInitPromise) return wasmInitPromise;

  wasmInitPromise = (async () =&amp;gt; {
    try {
      await Promise.all([init(yogaWasm), initWasm(resvgWasm)]);
      console.log(&amp;quot;WASM Initialized successfully&amp;quot;);
    } catch (e: any) {
      // 如果报错内容包含 &amp;quot;already initialized&amp;quot;，说明其实已经好了，忽略它
      if (
        e.message?.includes(&amp;quot;already initialized&amp;quot;) ||
        e.message?.includes(&amp;quot;used only once&amp;quot;)
      ) {
        return;
      }
      // 如果是其他致命错误，清空锁以便下次重试
      wasmInitPromise = null;
      throw e;
    }
  })();

  return wasmInitPromise;
}

export const GET: APIRoute = async ({ params, request }) =&amp;gt; {
  const { entry } = await getLiveEntry(&amp;quot;data&amp;quot;, params.id as string);
  if (!entry) return new Response(&amp;quot;Not Found&amp;quot;, { status: 404 });
  try {
    // --- 2. 这里的调用现在是“线程安全”的 ---
    await initializeWasm(yogaWasm, resvgWasm);

    // 字体持久化逻辑保持不变
    if (!fontCache) {
      const fontRes = await env.ASSETS.fetch(
        new URL(&amp;quot;/fonts/MiSans-Regular.ttf&amp;quot;, request.url),
      );
      fontCache = await fontRes.arrayBuffer();
    }

    // 3. Satori 渲染 SVG
    const svg = await satori(
      {
        type: &amp;quot;div&amp;quot;,
        props: {
          style: {
            height: &amp;quot;100%&amp;quot;,
            width: &amp;quot;100%&amp;quot;,
            display: &amp;quot;flex&amp;quot;,
            flexDirection: &amp;quot;column&amp;quot;,
            backgroundColor: &amp;quot;#000&amp;quot;,
            color: &amp;quot;#fff&amp;quot;,
            fontFamily: &amp;quot;MiSans&amp;quot;,
            border: &amp;quot;1px solid #222&amp;quot;,
          },
          children: [
            // ... 你的 UI 结构保持不变
            {
              type: &amp;quot;div&amp;quot;,
              props: {
                style: {
                  display: &amp;quot;flex&amp;quot;,
                  padding: &amp;quot;30px 40px&amp;quot;,
                  borderBottom: &amp;quot;1px solid #222&amp;quot;,
                  alignItems: &amp;quot;center&amp;quot;,
                },
                children: [
                  {
                    type: &amp;quot;div&amp;quot;,
                    props: {
                      style: {
                        border: &amp;quot;1px solid #444&amp;quot;,
                        borderRadius: &amp;quot;8px&amp;quot;,
                        padding: &amp;quot;4px 12px&amp;quot;,
                        color: &amp;quot;#888&amp;quot;,
                        fontSize: &amp;quot;24px&amp;quot;,
                      },
                      children: &amp;quot;#&amp;quot; + entry.id,
                    },
                  },
                ],
              },
            },
            {
              type: &amp;quot;div&amp;quot;,
              props: {
                style: {
                  display: &amp;quot;flex&amp;quot;,
                  flex: 1,
                  padding: &amp;quot;0 40px&amp;quot;,
                  alignItems: &amp;quot;center&amp;quot;,
                  justifyContent: &amp;quot;center&amp;quot;,
                },
                children: {
                  type: &amp;quot;h1&amp;quot;,
                  props: {
                    style: {
                      fontSize: &amp;quot;85px&amp;quot;,
                      fontWeight: &amp;quot;300&amp;quot;,
                      textAlign: &amp;quot;center&amp;quot;,
                      lineHeight: &amp;quot;1.3&amp;quot;,
                    },
                    children: entry.data.title,
                  },
                },
              },
            },
            {
              type: &amp;quot;div&amp;quot;,
              props: {
                style: {
                  display: &amp;quot;flex&amp;quot;,
                  justifyContent: &amp;quot;space-between&amp;quot;,
                  padding: &amp;quot;30px 40px&amp;quot;,
                  borderTop: &amp;quot;1px solid #222&amp;quot;,
                  color: &amp;quot;#666&amp;quot;,
                },
                children: [
                  {
                    type: &amp;quot;span&amp;quot;,
                    props: { children: formatDate(entry.data.createdAt) },
                  },
                  {
                    type: &amp;quot;span&amp;quot;,
                    props: { children: entry.data.category.name },
                  },
                ],
              },
            },
          ],
        },
      },
      {
        width: 1200,
        height: 630,
        fonts: [
          {
            name: &amp;quot;MiSans&amp;quot;,
            data: fontCache,
            weight: 400,
            style: &amp;quot;normal&amp;quot;,
          },
        ],
      },
    );

    // 4. Resvg 渲染 PNG
    const resvg = new Resvg(svg, {
      fitTo: { mode: &amp;quot;width&amp;quot;, value: 1200 },
    });
    const pngData = resvg.render();
    const pngBuffer = pngData.asPng();

    return new Response(new Uint8Array(pngBuffer) as any, {
      headers: {
        &amp;quot;Content-Type&amp;quot;: &amp;quot;image/png&amp;quot;,
        &amp;quot;Cache-Control&amp;quot;: &amp;quot;public, max-age=31536000, immutable&amp;quot;,
      },
    });
  } catch (e: any) {
    console.error(&amp;quot;OG Error:&amp;quot;, e.message);
    return new Response(`Error generating image: ${e.message}`, {
      status: 500,
    });
  }
};
&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-k&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;type&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;pl-v&quot;&gt;APIRoute&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;pl-s&quot;&gt;&quot;astro&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;pl-c&quot;&gt;// &lt;span class=&quot;pl-k&quot;&gt;@ts&lt;/span&gt;-ignore&lt;/span&gt;
&lt;span class=&quot;pl-k&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;env&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;pl-s&quot;&gt;&quot;cloudflare:workers&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;pl-k&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;getLiveEntry&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;pl-s&quot;&gt;&quot;astro:content&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;pl-k&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;formatDate&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;pl-s&quot;&gt;&quot;@/lib/utils&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;pl-k&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;satori&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;init&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;pl-s&quot;&gt;&quot;satori/standalone&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;pl-k&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;initWasm&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-v&quot;&gt;Resvg&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;pl-s&quot;&gt;&quot;@resvg/resvg-wasm&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;pl-c&quot;&gt;// &lt;span class=&quot;pl-k&quot;&gt;@ts&lt;/span&gt;-ignore&lt;/span&gt;
&lt;span class=&quot;pl-k&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;yogaWasm&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;pl-s&quot;&gt;&quot;satori/yoga.wasm?module&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;pl-c&quot;&gt;// &lt;span class=&quot;pl-k&quot;&gt;@ts&lt;/span&gt;-ignore&lt;/span&gt;
&lt;span class=&quot;pl-k&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;resvgWasm&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;pl-s&quot;&gt;&quot;@resvg/resvg-wasm/index_bg.wasm?module&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;pl-c&quot;&gt;// --- 1. 在函数外部定义全局锁和缓存 ---&lt;/span&gt;
&lt;span class=&quot;pl-k&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;wasmInitPromise&lt;/span&gt;: &lt;span class=&quot;pl-smi&quot;&gt;Promise&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;pl-smi&quot;&gt;&lt;span class=&quot;pl-k&quot;&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;pl-k&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;fontCache&lt;/span&gt;: &lt;span class=&quot;pl-smi&quot;&gt;ArrayBuffer&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;pl-c&quot;&gt;// 封装一个纯粹的初始化函数&lt;/span&gt;
&lt;span class=&quot;pl-k&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;pl-en&quot;&gt;initializeWasm&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;yogaWasm&lt;/span&gt;: &lt;span class=&quot;pl-smi&quot;&gt;any&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;resvgWasm&lt;/span&gt;: &lt;span class=&quot;pl-smi&quot;&gt;any&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;pl-c&quot;&gt;// 如果已经有 Promise 在运行或已完成，直接返回它&lt;/span&gt;
  &lt;span class=&quot;pl-k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;wasmInitPromise&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;wasmInitPromise&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;pl-s1&quot;&gt;wasmInitPromise&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-k&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;pl-k&quot;&gt;try&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;pl-k&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;pl-v&quot;&gt;Promise&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-en&quot;&gt;all&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pl-en&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;yogaWasm&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-en&quot;&gt;initWasm&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;resvgWasm&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;pl-smi&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-en&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;&quot;WASM Initialized successfully&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;catch&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;e&lt;/span&gt;: &lt;span class=&quot;pl-smi&quot;&gt;any&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;pl-c&quot;&gt;// 如果报错内容包含 &quot;already initialized&quot;，说明其实已经好了，忽略它&lt;/span&gt;
      &lt;span class=&quot;pl-k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;
        &lt;span class=&quot;pl-s1&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;message&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;?.&lt;/span&gt;&lt;span class=&quot;pl-en&quot;&gt;includes&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;&quot;already initialized&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;||&lt;/span&gt;
        &lt;span class=&quot;pl-s1&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;message&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;?.&lt;/span&gt;&lt;span class=&quot;pl-en&quot;&gt;includes&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;&quot;used only once&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;
      &lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;pl-k&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;
      &lt;span class=&quot;pl-c&quot;&gt;// 如果是其他致命错误，清空锁以便下次重试&lt;/span&gt;
      &lt;span class=&quot;pl-s1&quot;&gt;wasmInitPromise&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;pl-k&quot;&gt;throw&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;pl-k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;wasmInitPromise&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;

&lt;span class=&quot;pl-k&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;GET&lt;/span&gt;: &lt;span class=&quot;pl-smi&quot;&gt;APIRoute&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt; params&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; request &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;pl-k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt; entry &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;pl-en&quot;&gt;getLiveEntry&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;&quot;data&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;params&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;id&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;pl-smi&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;pl-k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;entry&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;pl-v&quot;&gt;Response&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;&quot;Not Found&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;status&lt;/span&gt;: &lt;span class=&quot;pl-c1&quot;&gt;404&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;pl-k&quot;&gt;try&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;pl-c&quot;&gt;// --- 2. 这里的调用现在是“线程安全”的 ---&lt;/span&gt;
    &lt;span class=&quot;pl-k&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;pl-en&quot;&gt;initializeWasm&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;yogaWasm&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;resvgWasm&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;

    &lt;span class=&quot;pl-c&quot;&gt;// 字体持久化逻辑保持不变&lt;/span&gt;
    &lt;span class=&quot;pl-k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;fontCache&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;pl-k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;fontRes&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;env&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;ASSETS&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-en&quot;&gt;fetch&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;
        &lt;span class=&quot;pl-k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;URL&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;&quot;/fonts/MiSans-Regular.ttf&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;request&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;pl-s1&quot;&gt;fontCache&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;fontRes&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-en&quot;&gt;arrayBuffer&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;pl-c&quot;&gt;// 3. Satori 渲染 SVG&lt;/span&gt;
    &lt;span class=&quot;pl-k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;svg&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;pl-en&quot;&gt;satori&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;
      &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;pl-c1&quot;&gt;type&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;div&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;pl-c1&quot;&gt;props&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
          &lt;span class=&quot;pl-c1&quot;&gt;style&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;pl-c1&quot;&gt;height&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;100%&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-c1&quot;&gt;width&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;100%&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-c1&quot;&gt;display&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;flex&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-c1&quot;&gt;flexDirection&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;column&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-c1&quot;&gt;backgroundColor&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;#000&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-c1&quot;&gt;color&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;#fff&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-c1&quot;&gt;fontFamily&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;MiSans&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-c1&quot;&gt;border&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;1px solid #222&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;pl-c1&quot;&gt;children&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;[&lt;/span&gt;
            &lt;span class=&quot;pl-c&quot;&gt;// ... 你的 UI 结构保持不变&lt;/span&gt;
            &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
              &lt;span class=&quot;pl-c1&quot;&gt;type&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;div&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
              &lt;span class=&quot;pl-c1&quot;&gt;props&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                &lt;span class=&quot;pl-c1&quot;&gt;style&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;display&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;flex&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;padding&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;30px 40px&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;borderBottom&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;1px solid #222&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;alignItems&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;center&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;pl-c1&quot;&gt;children&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;[&lt;/span&gt;
                  &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                    &lt;span class=&quot;pl-c1&quot;&gt;type&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;div&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                    &lt;span class=&quot;pl-c1&quot;&gt;props&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                      &lt;span class=&quot;pl-c1&quot;&gt;style&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                        &lt;span class=&quot;pl-c1&quot;&gt;border&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;1px solid #444&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                        &lt;span class=&quot;pl-c1&quot;&gt;borderRadius&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;8px&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                        &lt;span class=&quot;pl-c1&quot;&gt;padding&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;4px 12px&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                        &lt;span class=&quot;pl-c1&quot;&gt;color&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;#888&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                        &lt;span class=&quot;pl-c1&quot;&gt;fontSize&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;24px&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                      &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                      &lt;span class=&quot;pl-c1&quot;&gt;children&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;#&quot;&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;entry&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                    &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;pl-kos&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
              &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
              &lt;span class=&quot;pl-c1&quot;&gt;type&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;div&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
              &lt;span class=&quot;pl-c1&quot;&gt;props&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                &lt;span class=&quot;pl-c1&quot;&gt;style&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;display&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;flex&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;flex&lt;/span&gt;: &lt;span class=&quot;pl-c1&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;padding&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;0 40px&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;alignItems&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;center&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;justifyContent&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;center&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;pl-c1&quot;&gt;children&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;type&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;h1&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;props&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                    &lt;span class=&quot;pl-c1&quot;&gt;style&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                      &lt;span class=&quot;pl-c1&quot;&gt;fontSize&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;85px&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                      &lt;span class=&quot;pl-c1&quot;&gt;fontWeight&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;300&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                      &lt;span class=&quot;pl-c1&quot;&gt;textAlign&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;center&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                      &lt;span class=&quot;pl-c1&quot;&gt;lineHeight&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;1.3&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                    &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                    &lt;span class=&quot;pl-c1&quot;&gt;children&lt;/span&gt;: &lt;span class=&quot;pl-s1&quot;&gt;entry&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
              &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
              &lt;span class=&quot;pl-c1&quot;&gt;type&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;div&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
              &lt;span class=&quot;pl-c1&quot;&gt;props&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                &lt;span class=&quot;pl-c1&quot;&gt;style&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;display&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;flex&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;justifyContent&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;space-between&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;padding&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;30px 40px&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;borderTop&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;1px solid #222&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;color&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;#666&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;pl-c1&quot;&gt;children&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;[&lt;/span&gt;
                  &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                    &lt;span class=&quot;pl-c1&quot;&gt;type&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;span&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                    &lt;span class=&quot;pl-c1&quot;&gt;props&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;children&lt;/span&gt;: &lt;span class=&quot;pl-en&quot;&gt;formatDate&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;entry&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;createdAt&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                    &lt;span class=&quot;pl-c1&quot;&gt;type&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;span&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                    &lt;span class=&quot;pl-c1&quot;&gt;props&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;children&lt;/span&gt;: &lt;span class=&quot;pl-s1&quot;&gt;entry&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;category&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;pl-kos&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
              &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;pl-kos&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;pl-c1&quot;&gt;width&lt;/span&gt;: &lt;span class=&quot;pl-c1&quot;&gt;1200&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;pl-c1&quot;&gt;height&lt;/span&gt;: &lt;span class=&quot;pl-c1&quot;&gt;630&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;pl-c1&quot;&gt;fonts&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;[&lt;/span&gt;
          &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;pl-c1&quot;&gt;name&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;MiSans&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-c1&quot;&gt;data&lt;/span&gt;: &lt;span class=&quot;pl-s1&quot;&gt;fontCache&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-c1&quot;&gt;weight&lt;/span&gt;: &lt;span class=&quot;pl-c1&quot;&gt;400&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-c1&quot;&gt;style&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;normal&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;pl-kos&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;

    &lt;span class=&quot;pl-c&quot;&gt;// 4. Resvg 渲染 PNG&lt;/span&gt;
    &lt;span class=&quot;pl-k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;resvg&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;pl-v&quot;&gt;Resvg&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;svg&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;pl-c1&quot;&gt;fitTo&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;mode&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;width&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;value&lt;/span&gt;: &lt;span class=&quot;pl-c1&quot;&gt;1200&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;pl-k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;pngData&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;resvg&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-en&quot;&gt;render&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;pl-k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;pngBuffer&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;pngData&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-en&quot;&gt;asPng&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;

    &lt;span class=&quot;pl-k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;pl-v&quot;&gt;Response&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;pl-v&quot;&gt;Uint8Array&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;pngBuffer&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;pl-smi&quot;&gt;any&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;pl-c1&quot;&gt;headers&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;pl-s&quot;&gt;&quot;Content-Type&quot;&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;image/png&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;pl-s&quot;&gt;&quot;Cache-Control&quot;&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;public, max-age=31536000, immutable&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;catch&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;e&lt;/span&gt;: &lt;span class=&quot;pl-smi&quot;&gt;any&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;pl-smi&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-en&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;&quot;OG Error:&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;message&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;pl-k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;pl-v&quot;&gt;Response&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;`Error generating image: &lt;span class=&quot;pl-s1&quot;&gt;&lt;span class=&quot;pl-kos&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;message&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;/span&gt;`&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;pl-c1&quot;&gt;status&lt;/span&gt;: &lt;span class=&quot;pl-c1&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p dir=&quot;auto&quot;&gt;&lt;/p&gt;
&lt;/details&gt; 
&lt;p dir=&quot;auto&quot;&gt;如果你网站部署在提供边缘计算的服务商上，这个方案很合适。无需编译时生成图片耗费时间。&lt;/p&gt;
&lt;h2 dir=&quot;auto&quot;&gt;需要&lt;/h2&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;@resvg/resvg-wasm&lt;/li&gt;
&lt;li&gt;satori&lt;/li&gt;
&lt;/ul&gt;
&lt;p dir=&quot;auto&quot;&gt;这两个包被打包进workers大小在2.5mb，压缩后 1.4mb 如果你还有其他模块。可能会超过免费额度&lt;/p&gt;
&lt;div class=&quot;snippet-clipboard-content notranslate position-relative overflow-auto&quot; data-snippet-clipboard-copy-content=&quot; _astro/index_bg.Blvrv-U2.wasm                             │ compiled-wasm │ 2420.51 KiB 
_astro/yoga.sbSbVeWy.wasm                                 │ compiled-wasm │ 70.05 KiB 

Total Upload: 4498.55 KiB / gzip: 1433.02 KiB&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;code class=&quot;notranslate&quot;&gt; _astro/index_bg.Blvrv-U2.wasm                             │ compiled-wasm │ 2420.51 KiB 
_astro/yoga.sbSbVeWy.wasm                                 │ compiled-wasm │ 70.05 KiB 

Total Upload: 4498.55 KiB / gzip: 1433.02 KiB
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 dir=&quot;auto&quot;&gt;[id].ts&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;我创建了 &lt;code class=&quot;notranslate&quot;&gt;src\pages\og\[id].png.ts&lt;/code&gt; 文件，访问&lt;code class=&quot;notranslate&quot;&gt;/og/1.png&lt;/code&gt;就可以获取图片&lt;/p&gt;
&lt;h2 dir=&quot;auto&quot;&gt;原理&lt;/h2&gt;
&lt;h3 dir=&quot;auto&quot;&gt;satori&lt;/h3&gt;
&lt;p dir=&quot;auto&quot;&gt;使用字体和实现布局创建svg数据&lt;/p&gt;
&lt;h3 dir=&quot;auto&quot;&gt;resvg&lt;/h3&gt;
&lt;p dir=&quot;auto&quot;&gt;将svg数据画成PNG图片&lt;/p&gt;
&lt;h2 dir=&quot;auto&quot;&gt;实现与限制&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Cloudflare workers不允许实时编译生成wasm。一切都要预载&lt;/p&gt;
&lt;h3 dir=&quot;auto&quot;&gt;satori&lt;/h3&gt;
&lt;p dir=&quot;auto&quot;&gt;导入 satori 标准版无yoga&lt;/p&gt;
&lt;div class=&quot;highlight highlight-source-ts notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;import satori, { init } from &amp;quot;satori/standalone&amp;quot;;&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-k&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;satori&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;init&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;pl-s&quot;&gt;&quot;satori/standalone&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p dir=&quot;auto&quot;&gt;导入Yoga wasm&lt;/p&gt;
&lt;div class=&quot;highlight highlight-source-ts notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;// @ts-ignore
import yogaWasm from &amp;quot;satori/yoga.wasm?module&amp;quot;;&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-c&quot;&gt;// &lt;span class=&quot;pl-k&quot;&gt;@ts&lt;/span&gt;-ignore&lt;/span&gt;
&lt;span class=&quot;pl-k&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;yogaWasm&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;pl-s&quot;&gt;&quot;satori/yoga.wasm?module&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 dir=&quot;auto&quot;&gt;Resvg&lt;/h3&gt;
&lt;div class=&quot;highlight highlight-source-ts notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;import { initWasm, Resvg } from &amp;quot;@resvg/resvg-wasm&amp;quot;;

// @ts-ignore
import resvgWasm from &amp;quot;@resvg/resvg-wasm/index_bg.wasm?module&amp;quot;;&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-k&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;initWasm&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-v&quot;&gt;Resvg&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;pl-s&quot;&gt;&quot;@resvg/resvg-wasm&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;pl-c&quot;&gt;// &lt;span class=&quot;pl-k&quot;&gt;@ts&lt;/span&gt;-ignore&lt;/span&gt;
&lt;span class=&quot;pl-k&quot;&gt;import&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;resvgWasm&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;from&lt;/span&gt; &lt;span class=&quot;pl-s&quot;&gt;&quot;@resvg/resvg-wasm/index_bg.wasm?module&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 dir=&quot;auto&quot;&gt;初始化&lt;/h3&gt;
&lt;div class=&quot;highlight highlight-source-ts notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;// --- 1. 在函数外部定义全局锁和缓存 ---
let wasmInitPromise: Promise&amp;lt;void&amp;gt; | null = null;
let fontCache: ArrayBuffer | null = null;

// 封装一个纯粹的初始化函数
async function initializeWasm(yogaWasm: any, resvgWasm: any) {
  // 如果已经有 Promise 在运行或已完成，直接返回它
  if (wasmInitPromise) return wasmInitPromise;

  wasmInitPromise = (async () =&amp;gt; {
    try {
      await Promise.all([init(yogaWasm), initWasm(resvgWasm)]);
      console.log(&amp;quot;WASM Initialized successfully&amp;quot;);
    } catch (e: any) {
      // 如果报错内容包含 &amp;quot;already initialized&amp;quot;，说明其实已经好了，忽略它
      if (
        e.message?.includes(&amp;quot;already initialized&amp;quot;) ||
        e.message?.includes(&amp;quot;used only once&amp;quot;)
      ) {
        return;
      }
      // 如果是其他致命错误，清空锁以便下次重试
      wasmInitPromise = null;
      throw e;
    }
  })();

  return wasmInitPromise;
}&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-c&quot;&gt;// --- 1. 在函数外部定义全局锁和缓存 ---&lt;/span&gt;
&lt;span class=&quot;pl-k&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;wasmInitPromise&lt;/span&gt;: &lt;span class=&quot;pl-smi&quot;&gt;Promise&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;pl-smi&quot;&gt;&lt;span class=&quot;pl-k&quot;&gt;void&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;pl-k&quot;&gt;let&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;fontCache&lt;/span&gt;: &lt;span class=&quot;pl-smi&quot;&gt;ArrayBuffer&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;null&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;

&lt;span class=&quot;pl-c&quot;&gt;// 封装一个纯粹的初始化函数&lt;/span&gt;
&lt;span class=&quot;pl-k&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;pl-en&quot;&gt;initializeWasm&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;yogaWasm&lt;/span&gt;: &lt;span class=&quot;pl-smi&quot;&gt;any&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;resvgWasm&lt;/span&gt;: &lt;span class=&quot;pl-smi&quot;&gt;any&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;pl-c&quot;&gt;// 如果已经有 Promise 在运行或已完成，直接返回它&lt;/span&gt;
  &lt;span class=&quot;pl-k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;wasmInitPromise&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;wasmInitPromise&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;pl-s1&quot;&gt;wasmInitPromise&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-k&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;pl-k&quot;&gt;try&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;pl-k&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;pl-v&quot;&gt;Promise&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-en&quot;&gt;all&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pl-en&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;yogaWasm&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-en&quot;&gt;initWasm&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;resvgWasm&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;pl-smi&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-en&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;&quot;WASM Initialized successfully&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;catch&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;e&lt;/span&gt;: &lt;span class=&quot;pl-smi&quot;&gt;any&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;pl-c&quot;&gt;// 如果报错内容包含 &quot;already initialized&quot;，说明其实已经好了，忽略它&lt;/span&gt;
      &lt;span class=&quot;pl-k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;
        &lt;span class=&quot;pl-s1&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;message&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;?.&lt;/span&gt;&lt;span class=&quot;pl-en&quot;&gt;includes&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;&quot;already initialized&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;||&lt;/span&gt;
        &lt;span class=&quot;pl-s1&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;message&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;?.&lt;/span&gt;&lt;span class=&quot;pl-en&quot;&gt;includes&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;&quot;used only once&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;
      &lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;pl-k&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;
      &lt;span class=&quot;pl-c&quot;&gt;// 如果是其他致命错误，清空锁以便下次重试&lt;/span&gt;
      &lt;span class=&quot;pl-s1&quot;&gt;wasmInitPromise&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;pl-k&quot;&gt;throw&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;
  &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;

  &lt;span class=&quot;pl-k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;wasmInitPromise&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 dir=&quot;auto&quot;&gt;字体&lt;/h3&gt;
&lt;p dir=&quot;auto&quot;&gt;放在了public，并使用Workers assets方式读取&lt;br&gt;
&lt;code class=&quot;notranslate&quot;&gt;public\fonts\MiSans-Regular.ttf&lt;/code&gt;&lt;/p&gt;
&lt;h2 dir=&quot;auto&quot;&gt;API代码&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;使用astro api 获取GET ID后&lt;/p&gt;
&lt;div class=&quot;highlight highlight-source-ts notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;export const GET: APIRoute = async ({ params, request }) =&amp;gt; {
  const { entry } = await getLiveEntry(&amp;quot;data&amp;quot;, params.id as string);
  if (!entry) return new Response(&amp;quot;Not Found&amp;quot;, { status: 404 });
  try {
    // --- 2. 这里的调用现在是“线程安全”的 ---
    await initializeWasm(yogaWasm, resvgWasm);

    // 字体持久化逻辑保持不变
    if (!fontCache) {
      const fontRes = await env.ASSETS.fetch(
        new URL(&amp;quot;/fonts/MiSans-Regular.ttf&amp;quot;, request.url),
      );
      fontCache = await fontRes.arrayBuffer();
    }

    // 3. Satori 渲染 SVG
    const svg = await satori(
      {
        type: &amp;quot;div&amp;quot;,
        props: {
          style: {
            height: &amp;quot;100%&amp;quot;,
            width: &amp;quot;100%&amp;quot;,
            display: &amp;quot;flex&amp;quot;,
            flexDirection: &amp;quot;column&amp;quot;,
            backgroundColor: &amp;quot;#000&amp;quot;,
            color: &amp;quot;#fff&amp;quot;,
            fontFamily: &amp;quot;MiSans&amp;quot;,
            border: &amp;quot;1px solid #222&amp;quot;,
          },
          children: [
            // ... 你的 UI 结构保持不变
            {
              type: &amp;quot;div&amp;quot;,
              props: {
                style: {
                  display: &amp;quot;flex&amp;quot;,
                  padding: &amp;quot;30px 40px&amp;quot;,
                  borderBottom: &amp;quot;1px solid #222&amp;quot;,
                  alignItems: &amp;quot;center&amp;quot;,
                },
                children: [
                  {
                    type: &amp;quot;div&amp;quot;,
                    props: {
                      style: {
                        border: &amp;quot;1px solid #444&amp;quot;,
                        borderRadius: &amp;quot;8px&amp;quot;,
                        padding: &amp;quot;4px 12px&amp;quot;,
                        color: &amp;quot;#888&amp;quot;,
                        fontSize: &amp;quot;24px&amp;quot;,
                      },
                      children: &amp;quot;#&amp;quot; + entry.id,
                    },
                  },
                ],
              },
            },
            {
              type: &amp;quot;div&amp;quot;,
              props: {
                style: {
                  display: &amp;quot;flex&amp;quot;,
                  flex: 1,
                  padding: &amp;quot;0 40px&amp;quot;,
                  alignItems: &amp;quot;center&amp;quot;,
                  justifyContent: &amp;quot;center&amp;quot;,
                },
                children: {
                  type: &amp;quot;h1&amp;quot;,
                  props: {
                    style: {
                      fontSize: &amp;quot;85px&amp;quot;,
                      fontWeight: &amp;quot;300&amp;quot;,
                      textAlign: &amp;quot;center&amp;quot;,
                      lineHeight: &amp;quot;1.3&amp;quot;,
                    },
                    children: entry.data.title,
                  },
                },
              },
            },
            {
              type: &amp;quot;div&amp;quot;,
              props: {
                style: {
                  display: &amp;quot;flex&amp;quot;,
                  justifyContent: &amp;quot;space-between&amp;quot;,
                  padding: &amp;quot;30px 40px&amp;quot;,
                  borderTop: &amp;quot;1px solid #222&amp;quot;,
                  color: &amp;quot;#666&amp;quot;,
                },
                children: [
                  {
                    type: &amp;quot;span&amp;quot;,
                    props: { children: formatDate(entry.data.createdAt) },
                  },
                  {
                    type: &amp;quot;span&amp;quot;,
                    props: { children: entry.data.category.name },
                  },
                ],
              },
            },
          ],
        },
      },
      {
        width: 1200,
        height: 630,
        fonts: [
          {
            name: &amp;quot;MiSans&amp;quot;,
            data: fontCache,
            weight: 400,
            style: &amp;quot;normal&amp;quot;,
          },
        ],
      },
    );

    // 4. Resvg 渲染 PNG
    const resvg = new Resvg(svg, {
      fitTo: { mode: &amp;quot;width&amp;quot;, value: 1200 },
    });
    const pngData = resvg.render();
    const pngBuffer = pngData.asPng();

    return new Response(new Uint8Array(pngBuffer) as any, {
      headers: {
        &amp;quot;Content-Type&amp;quot;: &amp;quot;image/png&amp;quot;,
        &amp;quot;Cache-Control&amp;quot;: &amp;quot;public, max-age=31536000, immutable&amp;quot;,
      },
    });
  } catch (e: any) {
    console.error(&amp;quot;OG Error:&amp;quot;, e.message);
    return new Response(`Error generating image: ${e.message}`, {
      status: 500,
    });
  }
};
&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-k&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;GET&lt;/span&gt;: &lt;span class=&quot;pl-smi&quot;&gt;APIRoute&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;async&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt; params&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; request &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
  &lt;span class=&quot;pl-k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt; entry &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;pl-en&quot;&gt;getLiveEntry&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;&quot;data&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;params&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;id&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;pl-smi&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;pl-k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;entry&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;pl-v&quot;&gt;Response&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;&quot;Not Found&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;status&lt;/span&gt;: &lt;span class=&quot;pl-c1&quot;&gt;404&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;pl-k&quot;&gt;try&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;pl-c&quot;&gt;// --- 2. 这里的调用现在是“线程安全”的 ---&lt;/span&gt;
    &lt;span class=&quot;pl-k&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;pl-en&quot;&gt;initializeWasm&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;yogaWasm&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;resvgWasm&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;

    &lt;span class=&quot;pl-c&quot;&gt;// 字体持久化逻辑保持不变&lt;/span&gt;
    &lt;span class=&quot;pl-k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;fontCache&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;pl-k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;fontRes&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;env&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;ASSETS&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-en&quot;&gt;fetch&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;
        &lt;span class=&quot;pl-k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;URL&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;&quot;/fonts/MiSans-Regular.ttf&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;request&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
      &lt;span class=&quot;pl-s1&quot;&gt;fontCache&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;fontRes&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-en&quot;&gt;arrayBuffer&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;pl-c&quot;&gt;// 3. Satori 渲染 SVG&lt;/span&gt;
    &lt;span class=&quot;pl-k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;svg&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;await&lt;/span&gt; &lt;span class=&quot;pl-en&quot;&gt;satori&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;
      &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;pl-c1&quot;&gt;type&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;div&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;pl-c1&quot;&gt;props&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
          &lt;span class=&quot;pl-c1&quot;&gt;style&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;pl-c1&quot;&gt;height&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;100%&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-c1&quot;&gt;width&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;100%&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-c1&quot;&gt;display&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;flex&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-c1&quot;&gt;flexDirection&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;column&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-c1&quot;&gt;backgroundColor&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;#000&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-c1&quot;&gt;color&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;#fff&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-c1&quot;&gt;fontFamily&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;MiSans&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-c1&quot;&gt;border&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;1px solid #222&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;pl-c1&quot;&gt;children&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;[&lt;/span&gt;
            &lt;span class=&quot;pl-c&quot;&gt;// ... 你的 UI 结构保持不变&lt;/span&gt;
            &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
              &lt;span class=&quot;pl-c1&quot;&gt;type&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;div&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
              &lt;span class=&quot;pl-c1&quot;&gt;props&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                &lt;span class=&quot;pl-c1&quot;&gt;style&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;display&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;flex&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;padding&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;30px 40px&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;borderBottom&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;1px solid #222&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;alignItems&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;center&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;pl-c1&quot;&gt;children&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;[&lt;/span&gt;
                  &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                    &lt;span class=&quot;pl-c1&quot;&gt;type&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;div&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                    &lt;span class=&quot;pl-c1&quot;&gt;props&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                      &lt;span class=&quot;pl-c1&quot;&gt;style&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                        &lt;span class=&quot;pl-c1&quot;&gt;border&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;1px solid #444&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                        &lt;span class=&quot;pl-c1&quot;&gt;borderRadius&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;8px&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                        &lt;span class=&quot;pl-c1&quot;&gt;padding&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;4px 12px&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                        &lt;span class=&quot;pl-c1&quot;&gt;color&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;#888&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                        &lt;span class=&quot;pl-c1&quot;&gt;fontSize&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;24px&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                      &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                      &lt;span class=&quot;pl-c1&quot;&gt;children&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;#&quot;&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;+&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;entry&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                    &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;pl-kos&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
              &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
              &lt;span class=&quot;pl-c1&quot;&gt;type&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;div&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
              &lt;span class=&quot;pl-c1&quot;&gt;props&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                &lt;span class=&quot;pl-c1&quot;&gt;style&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;display&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;flex&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;flex&lt;/span&gt;: &lt;span class=&quot;pl-c1&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;padding&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;0 40px&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;alignItems&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;center&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;justifyContent&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;center&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;pl-c1&quot;&gt;children&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;type&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;h1&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;props&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                    &lt;span class=&quot;pl-c1&quot;&gt;style&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                      &lt;span class=&quot;pl-c1&quot;&gt;fontSize&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;85px&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                      &lt;span class=&quot;pl-c1&quot;&gt;fontWeight&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;300&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                      &lt;span class=&quot;pl-c1&quot;&gt;textAlign&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;center&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                      &lt;span class=&quot;pl-c1&quot;&gt;lineHeight&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;1.3&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                    &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                    &lt;span class=&quot;pl-c1&quot;&gt;children&lt;/span&gt;: &lt;span class=&quot;pl-s1&quot;&gt;entry&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
              &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
              &lt;span class=&quot;pl-c1&quot;&gt;type&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;div&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
              &lt;span class=&quot;pl-c1&quot;&gt;props&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                &lt;span class=&quot;pl-c1&quot;&gt;style&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;display&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;flex&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;justifyContent&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;space-between&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;padding&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;30px 40px&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;borderTop&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;1px solid #222&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-c1&quot;&gt;color&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;#666&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;pl-c1&quot;&gt;children&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;[&lt;/span&gt;
                  &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                    &lt;span class=&quot;pl-c1&quot;&gt;type&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;span&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                    &lt;span class=&quot;pl-c1&quot;&gt;props&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;children&lt;/span&gt;: &lt;span class=&quot;pl-en&quot;&gt;formatDate&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;entry&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;createdAt&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
                    &lt;span class=&quot;pl-c1&quot;&gt;type&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;span&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                    &lt;span class=&quot;pl-c1&quot;&gt;props&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;children&lt;/span&gt;: &lt;span class=&quot;pl-s1&quot;&gt;entry&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;category&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;name&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                  &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
                &lt;span class=&quot;pl-kos&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
              &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;pl-kos&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;pl-c1&quot;&gt;width&lt;/span&gt;: &lt;span class=&quot;pl-c1&quot;&gt;1200&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;pl-c1&quot;&gt;height&lt;/span&gt;: &lt;span class=&quot;pl-c1&quot;&gt;630&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;pl-c1&quot;&gt;fonts&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;[&lt;/span&gt;
          &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
            &lt;span class=&quot;pl-c1&quot;&gt;name&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;MiSans&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-c1&quot;&gt;data&lt;/span&gt;: &lt;span class=&quot;pl-s1&quot;&gt;fontCache&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-c1&quot;&gt;weight&lt;/span&gt;: &lt;span class=&quot;pl-c1&quot;&gt;400&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
            &lt;span class=&quot;pl-c1&quot;&gt;style&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;normal&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
          &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;pl-kos&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;

    &lt;span class=&quot;pl-c&quot;&gt;// 4. Resvg 渲染 PNG&lt;/span&gt;
    &lt;span class=&quot;pl-k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;resvg&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;pl-v&quot;&gt;Resvg&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;svg&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;pl-c1&quot;&gt;fitTo&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;mode&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;width&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;value&lt;/span&gt;: &lt;span class=&quot;pl-c1&quot;&gt;1200&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;pl-k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;pngData&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;resvg&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-en&quot;&gt;render&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;pl-k&quot;&gt;const&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;pngBuffer&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;pngData&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-en&quot;&gt;asPng&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;

    &lt;span class=&quot;pl-k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;pl-v&quot;&gt;Response&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;pl-v&quot;&gt;Uint8Array&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;pngBuffer&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;as&lt;/span&gt; &lt;span class=&quot;pl-smi&quot;&gt;any&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;pl-c1&quot;&gt;headers&lt;/span&gt;: &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;pl-s&quot;&gt;&quot;Content-Type&quot;&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;image/png&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
        &lt;span class=&quot;pl-s&quot;&gt;&quot;Cache-Control&quot;&lt;/span&gt;: &lt;span class=&quot;pl-s&quot;&gt;&quot;public, max-age=31536000, immutable&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
      &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;catch&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;e&lt;/span&gt;: &lt;span class=&quot;pl-smi&quot;&gt;any&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;pl-smi&quot;&gt;console&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-en&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;&quot;OG Error:&quot;&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-s1&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;message&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;pl-k&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;pl-k&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;pl-v&quot;&gt;Response&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;`Error generating image: &lt;span class=&quot;pl-s1&quot;&gt;&lt;span class=&quot;pl-kos&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;pl-s1&quot;&gt;e&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;message&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;/span&gt;`&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;pl-kos&quot;&gt;{&lt;/span&gt;
      &lt;span class=&quot;pl-c1&quot;&gt;status&lt;/span&gt;: &lt;span class=&quot;pl-c1&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;,&lt;/span&gt;
    &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;
  &lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;pl-kos&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;</content:encoded></item><item><title>Looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong</title><link>https://live-flow.iiv.workers.dev/blog2/p/4</link><guid isPermaLink="true">https://live-flow.iiv.workers.dev/blog2/p/4</guid><pubDate>Sat, 28 Mar 2026 09:02:44 GMT</pubDate><content:encoded>&lt;p dir=&quot;auto&quot;&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium. Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas. Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem. Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;Morbi tristique senectus et netus. Id semper risus in hendrerit gravida rutrum quisque non tellus. Habitasse platea dictumst quisque sagittis purus sit amet. Tellus molestie nunc non blandit massa. Cursus vitae congue mauris rhoncus. Accumsan tortor posuere ac ut. Fringilla urna porttitor rhoncus dolor. Elit ullamcorper dignissim cras tincidunt lobortis. In cursus turpis massa tincidunt dui ut ornare lectus. Integer feugiat scelerisque varius morbi enim nunc. Bibendum neque egestas congue quisque egestas diam. Cras ornare arcu dui vivamus arcu felis bibendum. Dignissim suspendisse in est ante in nibh mauris. Sed tempus urna et pharetra pharetra massa massa ultricies mi.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;Mollis nunc sed id semper risus in. Convallis a cras semper auctor neque. Diam sit amet nisl suscipit. Lacus viverra vitae congue eu consequat ac felis donec. Egestas integer eget aliquet nibh praesent tristique magna sit amet. Eget magna fermentum iaculis eu non diam. In vitae turpis massa sed elementum. Tristique et egestas quis ipsum suspendisse ultrices. Eget lorem dolor sed viverra ipsum. Vel turpis nunc eget lorem dolor sed viverra. Posuere ac ut consequat semper viverra nam. Laoreet suspendisse interdum consectetur libero id faucibus. Diam phasellus vestibulum lorem sed risus ultricies tristique. Rhoncus dolor purus non enim praesent elementum facilisis. Ultrices tincidunt arcu non sodales neque. Tempus egestas sed sed risus pretium quam vulputate. Viverra suspendisse potenti nullam ac tortor vitae purus faucibus ornare. Fringilla urna porttitor rhoncus dolor purus non. Amet dictum sit amet justo donec enim.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;Mattis ullamcorper velit sed ullamcorper morbi tincidunt. Tortor posuere ac ut consequat semper viverra. Tellus mauris a diam maecenas sed enim ut sem viverra. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Arcu ac tortor dignissim convallis aenean et tortor at. Curabitur gravida arcu ac tortor dignissim convallis aenean et tortor. Egestas tellus rutrum tellus pellentesque eu. Fusce ut placerat orci nulla pellentesque dignissim enim sit amet. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam. Id donec ultrices tincidunt arcu. Id cursus metus aliquam eleifend mi.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;Tempus quam pellentesque nec nam aliquam sem. Risus at ultrices mi tempus imperdiet. Id porta nibh venenatis cras sed felis eget velit. Ipsum a arcu cursus vitae. Facilisis magna etiam tempor orci eu lobortis elementum. Tincidunt dui ut ornare lectus sit. Quisque non tellus orci ac. Blandit libero volutpat sed cras. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Egestas integer eget aliquet nibh praesent tristique magna.&lt;/p&gt;</content:encoded></item><item><title>Lorem ipsum dolor sit amet</title><link>https://live-flow.iiv.workers.dev/blog1/p/3</link><guid isPermaLink="true">https://live-flow.iiv.workers.dev/blog1/p/3</guid><pubDate>Sat, 28 Mar 2026 09:01:24 GMT</pubDate><content:encoded>&lt;p dir=&quot;auto&quot;&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Vitae ultricies leo integer malesuada nunc vel risus commodo viverra. Adipiscing enim eu turpis egestas pretium. Euismod elementum nisi quis eleifend quam adipiscing. In hac habitasse platea dictumst vestibulum. Sagittis purus sit amet volutpat. Netus et malesuada fames ac turpis egestas. Eget magna fermentum iaculis eu non diam phasellus vestibulum lorem. Varius sit amet mattis vulputate enim. Habitasse platea dictumst quisque sagittis. Integer quis auctor elit sed vulputate mi. Dictumst quisque sagittis purus sit amet.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;Morbi tristique senectus et netus. Id semper risus in hendrerit gravida rutrum quisque non tellus. Habitasse platea dictumst quisque sagittis purus sit amet. Tellus molestie nunc non blandit massa. Cursus vitae congue mauris rhoncus. Accumsan tortor posuere ac ut. Fringilla urna porttitor rhoncus dolor. Elit ullamcorper dignissim cras tincidunt lobortis. In cursus turpis massa tincidunt dui ut ornare lectus. Integer feugiat scelerisque varius morbi enim nunc. Bibendum neque egestas congue quisque egestas diam. Cras ornare arcu dui vivamus arcu felis bibendum. Dignissim suspendisse in est ante in nibh mauris. Sed tempus urna et pharetra pharetra massa massa ultricies mi.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;Mollis nunc sed id semper risus in. Convallis a cras semper auctor neque. Diam sit amet nisl suscipit. Lacus viverra vitae congue eu consequat ac felis donec. Egestas integer eget aliquet nibh praesent tristique magna sit amet. Eget magna fermentum iaculis eu non diam. In vitae turpis massa sed elementum. Tristique et egestas quis ipsum suspendisse ultrices. Eget lorem dolor sed viverra ipsum. Vel turpis nunc eget lorem dolor sed viverra. Posuere ac ut consequat semper viverra nam. Laoreet suspendisse interdum consectetur libero id faucibus. Diam phasellus vestibulum lorem sed risus ultricies tristique. Rhoncus dolor purus non enim praesent elementum facilisis. Ultrices tincidunt arcu non sodales neque. Tempus egestas sed sed risus pretium quam vulputate. Viverra suspendisse potenti nullam ac tortor vitae purus faucibus ornare. Fringilla urna porttitor rhoncus dolor purus non. Amet dictum sit amet justo donec enim.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;Mattis ullamcorper velit sed ullamcorper morbi tincidunt. Tortor posuere ac ut consequat semper viverra. Tellus mauris a diam maecenas sed enim ut sem viverra. Venenatis urna cursus eget nunc scelerisque viverra mauris in. Arcu ac tortor dignissim convallis aenean et tortor at. Curabitur gravida arcu ac tortor dignissim convallis aenean et tortor. Egestas tellus rutrum tellus pellentesque eu. Fusce ut placerat orci nulla pellentesque dignissim enim sit amet. Ut enim blandit volutpat maecenas volutpat blandit aliquam etiam. Id donec ultrices tincidunt arcu. Id cursus metus aliquam eleifend mi.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;Tempus quam pellentesque nec nam aliquam sem. Risus at ultrices mi tempus imperdiet. Id porta nibh venenatis cras sed felis eget velit. Ipsum a arcu cursus vitae. Facilisis magna etiam tempor orci eu lobortis elementum. Tincidunt dui ut ornare lectus sit. Quisque non tellus orci ac. Blandit libero volutpat sed cras. Nec tincidunt praesent semper feugiat nibh sed pulvinar proin gravida. Egestas integer eget aliquet nibh praesent tristique magna.&lt;/p&gt;</content:encoded></item><item><title>markdown-style-guide</title><link>https://live-flow.iiv.workers.dev/blog2/p/2</link><guid isPermaLink="true">https://live-flow.iiv.workers.dev/blog2/p/2</guid><pubDate>Sat, 28 Mar 2026 09:00:20 GMT</pubDate><content:encoded>&lt;p dir=&quot;auto&quot;&gt;Here is a sample of some basic Markdown syntax that can be used when writing Markdown content in Astro.&lt;/p&gt;
&lt;h1 dir=&quot;auto&quot;&gt;H1&lt;/h1&gt;
&lt;h2 dir=&quot;auto&quot;&gt;H2&lt;/h2&gt;
&lt;h3 dir=&quot;auto&quot;&gt;H3&lt;/h3&gt;
&lt;h4 dir=&quot;auto&quot;&gt;H4&lt;/h4&gt;
&lt;h5 dir=&quot;auto&quot;&gt;H5&lt;/h5&gt;
&lt;h6 dir=&quot;auto&quot;&gt;H6&lt;/h6&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Paragraph&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;Xerum, quo qui aut unt expliquam qui dolut labo. Aque venitatiusda cum, voluptionse latur sitiae dolessi aut parist aut dollo enim qui voluptate ma dolestendit peritin re plis aut quas inctum laceat est volestemque commosa as cus endigna tectur, offic to cor sequas etum rerum idem sintibus eiur? Quianimin porecus evelectur, cum que nis nust voloribus ratem aut omnimi, sitatur? Quiatem. Nam, omnis sum am facea corem alique molestrunt et eos evelece arcillit ut aut eos eos nus, sin conecerem erum fuga. Ri oditatquam, ad quibus unda veliamenimin cusam et facea ipsamus es exerum sitate dolores editium rerore eost, temped molorro ratiae volorro te reribus dolorer sperchicium faceata tiustia prat.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;Itatur? Quiatae cullecum rem ent aut odis in re eossequodi nonsequ idebis ne sapicia is sinveli squiatum, core et que aut hariosam ex eat.&lt;/p&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Images&lt;/h2&gt;
&lt;h3 dir=&quot;auto&quot;&gt;Syntax&lt;/h3&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;![Alt text](./full/or/relative/path/of/image)&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-s&quot;&gt;![&lt;/span&gt;Alt text&lt;span class=&quot;pl-s&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;pl-corl&quot;&gt;./full/or/relative/path/of/image&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;)&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 dir=&quot;auto&quot;&gt;Output&lt;/h3&gt;
&lt;p dir=&quot;auto&quot;&gt;&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer nofollow&quot; href=&quot;https://raw.githubusercontent.com/withastro/astro/refs/heads/main/examples/blog/src/assets/blog-placeholder-1.jpg&quot;&gt;&lt;img src=&quot;https://raw.githubusercontent.com/withastro/astro/refs/heads/main/examples/blog/src/assets/blog-placeholder-1.jpg&quot; alt=&quot;&quot; style=&quot;max-width: 100%;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Blockquotes&lt;/h2&gt;
&lt;p dir=&quot;auto&quot;&gt;The blockquote element represents content that is quoted from another source, optionally with a citation which must be within a &lt;code class=&quot;notranslate&quot;&gt;footer&lt;/code&gt; or &lt;code class=&quot;notranslate&quot;&gt;cite&lt;/code&gt; element, and optionally with in-line changes such as annotations and abbreviations.&lt;/p&gt;
&lt;h3 dir=&quot;auto&quot;&gt;Blockquote without attribution&lt;/h3&gt;
&lt;h4 dir=&quot;auto&quot;&gt;Syntax&lt;/h4&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;&amp;gt; Tiam, ad mint andaepu dandae nostion secatur sequo quae.  
&amp;gt; **Note** that you can use _Markdown syntax_ within a blockquote.&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-ent&quot;&gt;&lt;span class=&quot;pl-ent&quot;&gt;&amp;gt; &lt;/span&gt;Tiam, ad mint andaepu dandae nostion secatur sequo quae.  &lt;/span&gt;
&lt;span class=&quot;pl-ent&quot;&gt;&lt;span class=&quot;pl-ent&quot;&gt;&amp;gt; &lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;**&lt;/span&gt;Note&lt;span class=&quot;pl-s&quot;&gt;**&lt;/span&gt; that you can use &lt;span class=&quot;pl-s&quot;&gt;_&lt;/span&gt;Markdown syntax&lt;span class=&quot;pl-s&quot;&gt;_&lt;/span&gt; within a blockquote.&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4 dir=&quot;auto&quot;&gt;Output&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p dir=&quot;auto&quot;&gt;Tiam, ad mint andaepu dandae nostion secatur sequo quae.&lt;br&gt;
&lt;strong&gt;Note&lt;/strong&gt; that you can use &lt;em&gt;Markdown syntax&lt;/em&gt; within a blockquote.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 dir=&quot;auto&quot;&gt;Blockquote with attribution&lt;/h3&gt;
&lt;h4 dir=&quot;auto&quot;&gt;Syntax&lt;/h4&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;&amp;gt; Don&apos;t communicate by sharing memory, share memory by communicating.&amp;lt;br&amp;gt;
&amp;gt; — &amp;lt;cite&amp;gt;Rob Pike[^1]&amp;lt;/cite&amp;gt;&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-ent&quot;&gt;&lt;span class=&quot;pl-ent&quot;&gt;&amp;gt; &lt;/span&gt;Don&apos;t communicate by sharing memory, share memory by communicating.&amp;lt;&lt;span class=&quot;pl-ent&quot;&gt;br&lt;/span&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;pl-ent&quot;&gt;&lt;span class=&quot;pl-ent&quot;&gt;&amp;gt; &lt;/span&gt;— &amp;lt;&lt;span class=&quot;pl-ent&quot;&gt;cite&lt;/span&gt;&amp;gt;Rob Pike&lt;span class=&quot;pl-s&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;^&lt;/span&gt;&lt;span class=&quot;pl-en&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;]&lt;/span&gt;&amp;lt;/&lt;span class=&quot;pl-ent&quot;&gt;cite&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h4 dir=&quot;auto&quot;&gt;Output&lt;/h4&gt;
&lt;blockquote&gt;
&lt;p dir=&quot;auto&quot;&gt;Don&apos;t communicate by sharing memory, share memory by communicating.&lt;br&gt;&lt;br&gt;
— Rob Pike&lt;sup&gt;&lt;a href=&quot;#user-content-fn-1-fc20ce77f063647ed19152ac78a33662&quot; id=&quot;user-content-fnref-1-fc20ce77f063647ed19152ac78a33662&quot; data-footnote-ref=&quot;&quot; aria-describedby=&quot;footnote-label&quot;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Tables&lt;/h2&gt;
&lt;h3 dir=&quot;auto&quot;&gt;Syntax&lt;/h3&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;| Italics   | Bold     | Code   |
| --------- | -------- | ------ |
| _italics_ | **bold** | `code` |&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-ml&quot;&gt;|&lt;/span&gt; Italics   &lt;span class=&quot;pl-ml&quot;&gt;|&lt;/span&gt; Bold     &lt;span class=&quot;pl-ml&quot;&gt;|&lt;/span&gt; Code   &lt;span class=&quot;pl-ml&quot;&gt;|&lt;/span&gt;
&lt;span class=&quot;pl-ml&quot;&gt;|&lt;/span&gt; --------- &lt;span class=&quot;pl-ml&quot;&gt;|&lt;/span&gt; -------- &lt;span class=&quot;pl-ml&quot;&gt;|&lt;/span&gt; ------ &lt;span class=&quot;pl-ml&quot;&gt;|&lt;/span&gt;
&lt;span class=&quot;pl-ml&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;pl-s&quot;&gt;_&lt;/span&gt;italics&lt;span class=&quot;pl-s&quot;&gt;_&lt;/span&gt; &lt;span class=&quot;pl-ml&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;pl-s&quot;&gt;**&lt;/span&gt;bold&lt;span class=&quot;pl-s&quot;&gt;**&lt;/span&gt; &lt;span class=&quot;pl-ml&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;pl-s&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;pl-c1&quot;&gt;code&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;`&lt;/span&gt; &lt;span class=&quot;pl-ml&quot;&gt;|&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 dir=&quot;auto&quot;&gt;Output&lt;/h3&gt;
&lt;markdown-accessiblity-table&gt;&lt;table role=&quot;table&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Italics&lt;/th&gt;
&lt;th&gt;Bold&lt;/th&gt;
&lt;th&gt;Code&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;em&gt;italics&lt;/em&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;bold&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;code class=&quot;notranslate&quot;&gt;code&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/markdown-accessiblity-table&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Code Blocks&lt;/h2&gt;
&lt;h3 dir=&quot;auto&quot;&gt;Syntax&lt;/h3&gt;
&lt;p dir=&quot;auto&quot;&gt;we can use 3 backticks ``` in new line and write snippet and close with 3 backticks on new line and to highlight language specific syntax, write one word of language name after first 3 backticks, for eg. html, javascript, css, markdown, typescript, txt, bash&lt;/p&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;```html
&amp;lt;!doctype html&amp;gt;
&amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot; /&amp;gt;
    &amp;lt;title&amp;gt;Example HTML5 Document&amp;lt;/title&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;p&amp;gt;Test&amp;lt;/p&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
```&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-s&quot;&gt;```&lt;/span&gt;&lt;span class=&quot;pl-en&quot;&gt;html&lt;/span&gt;
&amp;lt;!doctype html&amp;gt;
&amp;lt;&lt;span class=&quot;pl-ent&quot;&gt;html&lt;/span&gt; &lt;span class=&quot;pl-e&quot;&gt;lang&lt;/span&gt;=&lt;span class=&quot;pl-s&quot;&gt;&lt;span class=&quot;pl-pds&quot;&gt;&quot;&lt;/span&gt;en&lt;span class=&quot;pl-pds&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt;&amp;gt;
  &amp;lt;&lt;span class=&quot;pl-ent&quot;&gt;head&lt;/span&gt;&amp;gt;
    &amp;lt;&lt;span class=&quot;pl-ent&quot;&gt;meta&lt;/span&gt; &lt;span class=&quot;pl-e&quot;&gt;charset&lt;/span&gt;=&lt;span class=&quot;pl-s&quot;&gt;&lt;span class=&quot;pl-pds&quot;&gt;&quot;&lt;/span&gt;utf-8&lt;span class=&quot;pl-pds&quot;&gt;&quot;&lt;/span&gt;&lt;/span&gt; /&amp;gt;
    &amp;lt;&lt;span class=&quot;pl-ent&quot;&gt;title&lt;/span&gt;&amp;gt;Example HTML5 Document&amp;lt;/&lt;span class=&quot;pl-ent&quot;&gt;title&lt;/span&gt;&amp;gt;
  &amp;lt;/&lt;span class=&quot;pl-ent&quot;&gt;head&lt;/span&gt;&amp;gt;
  &amp;lt;&lt;span class=&quot;pl-ent&quot;&gt;body&lt;/span&gt;&amp;gt;
    &amp;lt;&lt;span class=&quot;pl-ent&quot;&gt;p&lt;/span&gt;&amp;gt;Test&amp;lt;/&lt;span class=&quot;pl-ent&quot;&gt;p&lt;/span&gt;&amp;gt;
  &amp;lt;/&lt;span class=&quot;pl-ent&quot;&gt;body&lt;/span&gt;&amp;gt;
&amp;lt;/&lt;span class=&quot;pl-ent&quot;&gt;html&lt;/span&gt;&amp;gt;
&lt;span class=&quot;pl-s&quot;&gt;```&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 dir=&quot;auto&quot;&gt;Output&lt;/h3&gt;
&lt;div class=&quot;highlight highlight-text-html-basic notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;&amp;lt;!doctype html&amp;gt;
&amp;lt;html lang=&amp;quot;en&amp;quot;&amp;gt;
  &amp;lt;head&amp;gt;
    &amp;lt;meta charset=&amp;quot;utf-8&amp;quot; /&amp;gt;
    &amp;lt;title&amp;gt;Example HTML5 Document&amp;lt;/title&amp;gt;
  &amp;lt;/head&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;p&amp;gt;Test&amp;lt;/p&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-c1&quot;&gt;&amp;lt;!doctype html&lt;span class=&quot;pl-kos&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;
&lt;span class=&quot;pl-kos&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;pl-ent&quot;&gt;html&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;lang&lt;/span&gt;=&quot;&lt;span class=&quot;pl-s&quot;&gt;en&lt;/span&gt;&quot;&lt;span class=&quot;pl-kos&quot;&gt;&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;pl-kos&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;pl-ent&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;pl-kos&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;pl-ent&quot;&gt;meta&lt;/span&gt; &lt;span class=&quot;pl-c1&quot;&gt;charset&lt;/span&gt;=&quot;&lt;span class=&quot;pl-s&quot;&gt;utf-8&lt;/span&gt;&quot; &lt;span class=&quot;pl-kos&quot;&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;pl-kos&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;pl-ent&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;&amp;gt;&lt;/span&gt;Example HTML5 Document&lt;span class=&quot;pl-kos&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;pl-ent&quot;&gt;title&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;pl-kos&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;pl-ent&quot;&gt;head&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;pl-kos&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;pl-ent&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;pl-kos&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;pl-ent&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;&amp;gt;&lt;/span&gt;Test&lt;span class=&quot;pl-kos&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;pl-ent&quot;&gt;p&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;pl-kos&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;pl-ent&quot;&gt;body&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;pl-kos&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&quot;pl-ent&quot;&gt;html&lt;/span&gt;&lt;span class=&quot;pl-kos&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h2 dir=&quot;auto&quot;&gt;List Types&lt;/h2&gt;
&lt;h3 dir=&quot;auto&quot;&gt;Ordered List&lt;/h3&gt;
&lt;h4 dir=&quot;auto&quot;&gt;Syntax&lt;/h4&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;1. First item
2. Second item
3. Third item&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-s&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pl-v&quot;&gt;.&lt;/span&gt; First item
&lt;span class=&quot;pl-s&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;pl-v&quot;&gt;.&lt;/span&gt; Second item
&lt;span class=&quot;pl-s&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;pl-v&quot;&gt;.&lt;/span&gt; Third item&lt;/pre&gt;&lt;/div&gt;
&lt;h4 dir=&quot;auto&quot;&gt;Output&lt;/h4&gt;
&lt;ol dir=&quot;auto&quot;&gt;
&lt;li&gt;First item&lt;/li&gt;
&lt;li&gt;Second item&lt;/li&gt;
&lt;li&gt;Third item&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 dir=&quot;auto&quot;&gt;Unordered List&lt;/h3&gt;
&lt;h4 dir=&quot;auto&quot;&gt;Syntax&lt;/h4&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;- List item
- Another item
- And another item&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-v&quot;&gt;-&lt;/span&gt; List item
&lt;span class=&quot;pl-v&quot;&gt;-&lt;/span&gt; Another item
&lt;span class=&quot;pl-v&quot;&gt;-&lt;/span&gt; And another item&lt;/pre&gt;&lt;/div&gt;
&lt;h4 dir=&quot;auto&quot;&gt;Output&lt;/h4&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;List item&lt;/li&gt;
&lt;li&gt;Another item&lt;/li&gt;
&lt;li&gt;And another item&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 dir=&quot;auto&quot;&gt;Nested list&lt;/h3&gt;
&lt;h4 dir=&quot;auto&quot;&gt;Syntax&lt;/h4&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;- Fruit
  - Apple
  - Orange
  - Banana
- Dairy
  - Milk
  - Cheese&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&lt;span class=&quot;pl-v&quot;&gt;-&lt;/span&gt; Fruit
  &lt;span class=&quot;pl-v&quot;&gt;-&lt;/span&gt; Apple
  &lt;span class=&quot;pl-v&quot;&gt;-&lt;/span&gt; Orange
  &lt;span class=&quot;pl-v&quot;&gt;-&lt;/span&gt; Banana
&lt;span class=&quot;pl-v&quot;&gt;-&lt;/span&gt; Dairy
  &lt;span class=&quot;pl-v&quot;&gt;-&lt;/span&gt; Milk
  &lt;span class=&quot;pl-v&quot;&gt;-&lt;/span&gt; Cheese&lt;/pre&gt;&lt;/div&gt;
&lt;h4 dir=&quot;auto&quot;&gt;Output&lt;/h4&gt;
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Fruit
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Apple&lt;/li&gt;
&lt;li&gt;Orange&lt;/li&gt;
&lt;li&gt;Banana&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Dairy
&lt;ul dir=&quot;auto&quot;&gt;
&lt;li&gt;Milk&lt;/li&gt;
&lt;li&gt;Cheese&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 dir=&quot;auto&quot;&gt;Other Elements — abbr, sub, sup, kbd, mark&lt;/h2&gt;
&lt;h3 dir=&quot;auto&quot;&gt;Syntax&lt;/h3&gt;
&lt;div class=&quot;highlight highlight-text-md notranslate position-relative overflow-auto&quot; dir=&quot;auto&quot; data-snippet-clipboard-copy-content=&quot;&amp;lt;abbr title=&amp;quot;Graphics Interchange Format&amp;quot;&amp;gt;GIF&amp;lt;/abbr&amp;gt; is a bitmap image format.

H&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;O

X&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; + Y&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt; = Z&amp;lt;sup&amp;gt;n&amp;lt;/sup&amp;gt;

Press &amp;lt;kbd&amp;gt;CTRL&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;ALT&amp;lt;/kbd&amp;gt; + &amp;lt;kbd&amp;gt;Delete&amp;lt;/kbd&amp;gt; to end the session.

Most &amp;lt;mark&amp;gt;salamanders&amp;lt;/mark&amp;gt; are nocturnal, and hunt for insects, worms, and other small creatures.

~delete~&quot;&gt;&lt;pre class=&quot;notranslate&quot;&gt;&amp;lt;&lt;span class=&quot;pl-ent&quot;&gt;abbr&lt;/span&gt; &lt;span class=&quot;pl-e&quot;&gt;title&lt;/span&gt;=&lt;span class=&quot;pl-s&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;Graphics Interchange Format&lt;/span&gt;&lt;span class=&quot;pl-s&quot;&gt;&quot;&lt;/span&gt;&amp;gt;GIF&amp;lt;/&lt;span class=&quot;pl-ent&quot;&gt;abbr&lt;/span&gt;&amp;gt; is a bitmap image format.

H&amp;lt;&lt;span class=&quot;pl-ent&quot;&gt;sub&lt;/span&gt;&amp;gt;2&amp;lt;/&lt;span class=&quot;pl-ent&quot;&gt;sub&lt;/span&gt;&amp;gt;O

X&amp;lt;&lt;span class=&quot;pl-ent&quot;&gt;sup&lt;/span&gt;&amp;gt;n&amp;lt;/&lt;span class=&quot;pl-ent&quot;&gt;sup&lt;/span&gt;&amp;gt; + Y&amp;lt;&lt;span class=&quot;pl-ent&quot;&gt;sup&lt;/span&gt;&amp;gt;n&amp;lt;/&lt;span class=&quot;pl-ent&quot;&gt;sup&lt;/span&gt;&amp;gt; = Z&amp;lt;&lt;span class=&quot;pl-ent&quot;&gt;sup&lt;/span&gt;&amp;gt;n&amp;lt;/&lt;span class=&quot;pl-ent&quot;&gt;sup&lt;/span&gt;&amp;gt;

Press &amp;lt;&lt;span class=&quot;pl-ent&quot;&gt;kbd&lt;/span&gt;&amp;gt;CTRL&amp;lt;/&lt;span class=&quot;pl-ent&quot;&gt;kbd&lt;/span&gt;&amp;gt; + &amp;lt;&lt;span class=&quot;pl-ent&quot;&gt;kbd&lt;/span&gt;&amp;gt;ALT&amp;lt;/&lt;span class=&quot;pl-ent&quot;&gt;kbd&lt;/span&gt;&amp;gt; + &amp;lt;&lt;span class=&quot;pl-ent&quot;&gt;kbd&lt;/span&gt;&amp;gt;Delete&amp;lt;/&lt;span class=&quot;pl-ent&quot;&gt;kbd&lt;/span&gt;&amp;gt; to end the session.

Most &amp;lt;&lt;span class=&quot;pl-ent&quot;&gt;mark&lt;/span&gt;&amp;gt;salamanders&amp;lt;/&lt;span class=&quot;pl-ent&quot;&gt;mark&lt;/span&gt;&amp;gt; are nocturnal, and hunt for insects, worms, and other small creatures.

&lt;span class=&quot;pl-s&quot;&gt;~&lt;/span&gt;delete&lt;span class=&quot;pl-s&quot;&gt;~&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3 dir=&quot;auto&quot;&gt;Output&lt;/h3&gt;
&lt;p dir=&quot;auto&quot;&gt;GIF is a bitmap image format.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;H&lt;sub&gt;2&lt;/sub&gt;O&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;X&lt;sup&gt;n&lt;/sup&gt; + Y&lt;sup&gt;n&lt;/sup&gt; = Z&lt;sup&gt;n&lt;/sup&gt;&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;Press &lt;kbd&gt;CTRL&lt;/kbd&gt; + &lt;kbd&gt;ALT&lt;/kbd&gt; + &lt;kbd&gt;Delete&lt;/kbd&gt; to end the session.&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;&lt;del&gt;delete&lt;/del&gt;&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;Most &lt;mark&gt;salamanders&lt;/mark&gt; are nocturnal, and hunt for insects, worms, and other small creatures.&lt;/p&gt;
&lt;section data-footnotes=&quot;&quot; class=&quot;footnotes&quot;&gt;&lt;h2 id=&quot;footnote-label&quot; class=&quot;sr-only&quot; dir=&quot;auto&quot;&gt;Footnotes&lt;/h2&gt;
&lt;ol dir=&quot;auto&quot;&gt;
&lt;li id=&quot;user-content-fn-1-fc20ce77f063647ed19152ac78a33662&quot;&gt;
&lt;p dir=&quot;auto&quot;&gt;The above quote is excerpted from Rob Pike&apos;s &lt;a href=&quot;https://www.youtube.com/watch?v=PAAkCSZUG1c&quot;&gt;talk&lt;/a&gt; during Gopherfest, November 18, 2015. &lt;a href=&quot;#user-content-fnref-1-fc20ce77f063647ed19152ac78a33662&quot; data-footnote-backref=&quot;&quot; aria-label=&quot;Back to reference 1&quot; class=&quot;data-footnote-backref&quot;&gt;↩&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/section&gt;</content:encoded></item><item><title>Recommended Setup | 推荐设置</title><link>https://live-flow.iiv.workers.dev/blog1/p/1</link><guid isPermaLink="true">https://live-flow.iiv.workers.dev/blog1/p/1</guid><pubDate>Sat, 28 Mar 2026 08:56:19 GMT</pubDate><content:encoded>&lt;p dir=&quot;auto&quot;&gt;强大好用的&lt;code class=&quot;notranslate&quot;&gt;Github Discussions&lt;/code&gt;&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;建议你只保留带锁的分类，可以防止游客乱发内容出现在你的博客上！&lt;/p&gt;
&lt;p dir=&quot;auto&quot;&gt;&lt;code class=&quot;notranslate&quot;&gt; Announcement&lt;/code&gt; 只会允许维护者或仓库所有者发起&lt;/p&gt;
&lt;a target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot; href=&quot;https://private-user-images.githubusercontent.com/174091880/570832706-9606d567-05e4-46fa-9af6-c278c7f0c657.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUzOTg1ODgsIm5iZiI6MTc3NTM5ODI4OCwicGF0aCI6Ii8xNzQwOTE4ODAvNTcwODMyNzA2LTk2MDZkNTY3LTA1ZTQtNDZmYS05YWY2LWMyNzhjN2YwYzY1Ny5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNDA1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDQwNVQxNDExMjhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT01ODhiM2M4M2M0YzNlMTNhNzQ2NmE3M2JjM2RiNDEzMDIxNzc2Njk2MzhlY2NmZDE1NmEwYTgyMDIyYTNlMjg1JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.HXMCo_nqFHMJWXjUGQwQI29JH6XhoDVO-zCf8cxNhGU&quot;&gt;&lt;img width=&quot;749&quot; height=&quot;711&quot; alt=&quot;image&quot; src=&quot;https://private-user-images.githubusercontent.com/174091880/570832706-9606d567-05e4-46fa-9af6-c278c7f0c657.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NzUzOTg1ODgsIm5iZiI6MTc3NTM5ODI4OCwicGF0aCI6Ii8xNzQwOTE4ODAvNTcwODMyNzA2LTk2MDZkNTY3LTA1ZTQtNDZmYS05YWY2LWMyNzhjN2YwYzY1Ny5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjYwNDA1JTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI2MDQwNVQxNDExMjhaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT01ODhiM2M4M2M0YzNlMTNhNzQ2NmE3M2JjM2RiNDEzMDIxNzc2Njk2MzhlY2NmZDE1NmEwYTgyMDIyYTNlMjg1JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.HXMCo_nqFHMJWXjUGQwQI29JH6XhoDVO-zCf8cxNhGU&quot; style=&quot;max-width: 100%; height: auto; max-height: 711px;&quot;&gt;&lt;/a&gt;</content:encoded></item></channel></rss>