<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"><script src="/rss/render.js" xmlns="http://www.w3.org/1999/xhtml"/><channel><title>Ad_closeNN 的小站</title><description>Ad_closeNN 的小站，专注于技术分享和记录生活</description><link>https://blog.adclosenn.top/</link><language>zh-CN</language><lastBuildDate>Sat, 29 Aug 2026 15:02:33 GMT</lastBuildDate><atom:link href="https://blog.adclosenn.top/rss.xml" rel="self" type="application/rss+xml"/><follow_challenge><feedId>250504037866558464</feedId><userId>83370505718413312</userId></follow_challenge><item><title>为 Astro 加上在新标签页打开链接的功能</title><link>https://blog.adclosenn.top/posts/newtab_link/</link><guid isPermaLink="true">https://blog.adclosenn.top/posts/newtab_link/</guid><description>原版 Astro（包括 Fuwari） 中，打开外部链接是在当前页面打开，而非在新标签页打开。这个插件完美适配了这个需求，让我们的链接可以在新的标签页打开。</description><pubDate>Sun, 31 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://blog.adclosenn.top/pic/newtab-link-npm-plugin-info-2.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;h2 id=&quot;前言&quot;&gt;前言&lt;/h2&gt;
&lt;p&gt;看标题可能不明白在说什么。但是如果我放出这两个链接让你点，你应该知道是什么意思。&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.bing.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;打开必应&lt;/a&gt;   |   &lt;a href=&quot;https://www.bing.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;在新标签页打开必应&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;可以看到，第一个按钮是在&lt;strong&gt;当前页面&lt;/strong&gt;打开必应，而第二个是在&lt;strong&gt;新标签页&lt;/strong&gt;打开必应。如果你用的是手机，那这两种在外观上看不出很大的区别（手机版 Chrome 点击第二个按钮会表现为右上角的标签页个数+1）。但是如果你用的是电脑浏览器，那就很容易看出区别了： &lt;img src=&quot;https://blog.adclosenn.top/pic/chrome-newtab-blogbing.png&quot; alt=&quot;chrome-newtab-blogbing&quot; /&gt;&lt;br /&gt;
浏览器开了一个新标签页用于访问必应，这就是我们想要的，因为 Astro 的打开行为是第一个按钮（在本页打开）。下面是这两个按钮的代码：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame has-title&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;打开必应&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;html&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:39ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;href&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;https://www.bing.com&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;打开必应&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame has-title&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;在新标签页打开必应&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;html&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:60ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;href&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;https://www.bing.com&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;target&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;_blank&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;在新标签页打开必应&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;仔细观察，会发现第二个按钮的代码多了一个 `target=“_blank”。这个就是控制这个链接的打开方式，如果不写 target 就是默认为当前页面打开，&lt;strong&gt;Astro 就是这样&lt;/strong&gt;。 &lt;a href=&quot;https://developer.mozilla.org/zh-CN/docs/Web/HTML/Reference/Elements/a#target&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;&amp;lt;a&amp;gt;：锚元素#target - MDN - Mozilla&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;设想一下，看的教程需要我们打开一个链接操作，但是点了之后，链接就立马在本页打开，教程就被那个链接的新页面覆盖，看不到了。那这时候你要么鼠标中键开链接（快速用新标签页打开链接），要么右键开。不过，还是挺麻烦的吧。&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;所以我们需要：&lt;strong&gt;让我们的链接通过新标签页打开，而非在当前页面打开&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;当然，你自己在文章里写 &lt;code&gt;&amp;lt;a href=&quot;https://xxx.com&quot; target=&quot;_blank&quot;&amp;gt;xxx&amp;lt;/a&amp;gt;&lt;/code&gt; 也是一样的效果，但谁又会有这么多时间去写这么一长串的a元素呢？&lt;/p&gt;
&lt;h2 id=&quot;使用插件-rehype-external-links&quot;&gt;使用插件 rehype-external-links&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/rehypejs/rehype-external-links&quot;&gt;GitHub: rehypejs/rehype-external-links&lt;/a&gt;&lt;/p&gt;
&lt;aside class=&quot;callout callout-note&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;笔记&lt;/p&gt;&lt;p&gt;即使这个插件的官方 npm 文档 &lt;a href=&quot;https://www.npmjs.com/package/rehype-external-links?activeTab=readme#when-should-i-use-this&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;When should I use this?&lt;/a&gt; 中描述的样例和我们的需求有着天壤之别，但没关系，它的功能已经包含了我们需要的东西。&lt;/p&gt;&lt;/aside&gt;
&lt;h2 id=&quot;安装插件&quot;&gt;安装插件&lt;/h2&gt;
&lt;p&gt;假如你的项目使用的包管理器是 pnpm，那就用 pnpm 的命令安装。npm 同理。&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal has-title&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;使用 pnpm 包管理器安装&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;bash&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:28ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;pnpm&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;rehype-external-links&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame is-terminal has-title&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;使用 npm 包管理器安装&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;bash&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:27ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;npm&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;i&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;rehype-external-links&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;安装成功后你的 &lt;code&gt;package.json&lt;/code&gt; 中会新增一个类似于 &lt;code&gt;&quot;rehype-external-links&quot;: &quot;^3.0.0&quot;,&lt;/code&gt; 的行：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame has-title&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;package.json&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;json&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:38ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;50&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;rehype-components&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;^0.3.0&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;51&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;rehype-external-links&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;^3.0.0&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;52&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;rehype-katex&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;^7.0.1&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;配置插件&quot;&gt;配置插件&lt;/h2&gt;
&lt;p&gt;在根目录的 &lt;code&gt;astro.config.mjs&lt;/code&gt; 文件内加入以下&lt;strong&gt;5行&lt;/strong&gt;代码：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame has-title&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;astro.config.mjs&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;js&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:95ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; sitemap &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;@astrojs/sitemap&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;details class=&quot;ec-section github&quot;&gt;&lt;summary&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;expand&quot;&gt;&lt;/span&gt;&lt;span class=&quot;collapse&quot;&gt;&lt;/span&gt;&lt;span class=&quot;text&quot;&gt;104 collapsed lines&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/summary&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; svelte &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;@astrojs/svelte&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; tailwind &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;@astrojs/tailwind&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; { pluginCollapsibleSections } &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;@expressive-code/plugin-collapsible-sections&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; { pluginLineNumbers } &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;@expressive-code/plugin-line-numbers&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; swup &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;@swup/astro&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; expressiveCode &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;astro-expressive-code&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; icon &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;astro-icon&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; { defineConfig } &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;astro/config&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; rehypeAutolinkHeadings &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;rehype-autolink-headings&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; rehypeComponents &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;rehype-components&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;/* Render the custom directive content */&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; rehypeKatex &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;rehype-katex&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;13&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; rehypeSlug &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;rehype-slug&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;14&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; remarkDirective &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;remark-directive&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;; &lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;/* Handle directives */&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;15&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; remarkGithubAdmonitionsToDirectives &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;remark-github-admonitions-to-directives&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;16&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; remarkMath &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;remark-math&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;17&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; remarkSectionize &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;remark-sectionize&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;18&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; { expressiveCodeConfig } &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;./src/config.ts&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;19&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; { pluginLanguageBadge } &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;./src/plugins/expressive-code/language-badge.ts&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;20&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; { AdmonitionComponent } &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;./src/plugins/rehype-component-admonition.mjs&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;21&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; { GithubCardComponent } &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;./src/plugins/rehype-component-github-card.mjs&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;22&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; { parseDirectiveNode } &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;./src/plugins/remark-directive-rehype.js&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;23&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; { remarkExcerpt } &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;./src/plugins/remark-excerpt.js&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;24&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; { remarkReadingTime } &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;./src/plugins/remark-reading-time.mjs&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;25&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; { pluginCustomCopyButton } &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;./src/plugins/expressive-code/custom-copy-button.js&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;26&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; rehypeExternalLinks &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&apos;rehype-external-links&apos;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;27&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;28&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;// https://astro.build/config&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;29&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;default&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;defineConfig&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;({&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;30&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;site: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;https://adclosenn.top&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;31&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;base: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;/&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;32&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;trailingSlash: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;always&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;33&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;integrations: [&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;34&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;tailwind&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;({&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;35&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;nesting: &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;36&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;}),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;37&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;swup&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;({&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;38&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;theme: &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;39&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;animationClass: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;transition-swup-&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;// see https://swup.js.org/options/#animationselector&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;40&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;      &lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;// the default value `transition-` cause transition delay&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;41&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;      &lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;// when the Tailwind class `transition-all` is used&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;42&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;containers: [&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;main&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;#toc&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;43&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;smoothScrolling: &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;44&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;cache: &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;45&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;preload: &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;46&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;accessibility: &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;47&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;updateHead: &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;48&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;updateBodyClass: &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;49&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;globalInstance: &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;50&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;}),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;51&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;icon&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;({&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;52&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;include: {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;53&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;preprocess: vitePreprocess(),&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;*&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;54&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;fa6-brands&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;*&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;55&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;fa6-regular&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;*&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;56&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;fa6-solid&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;*&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;57&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;58&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;}),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;59&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;expressiveCode&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;({&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;60&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;themes: [expressiveCodeConfig.theme, expressiveCodeConfig.theme],&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;61&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;plugins: [&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;62&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;pluginCollapsibleSections&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;63&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;pluginLineNumbers&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;64&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;pluginLanguageBadge&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;65&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;pluginCustomCopyButton&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;()&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;66&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;67&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;defaultProps: {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;68&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;wrap: &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;69&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;overridesByLang: {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;70&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;          &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&apos;shellsession&apos;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;: {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;71&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;showLineNumbers: &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;72&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;73&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;74&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;75&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;styleOverrides: {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;76&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;codeBackground: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;var(--codeblock-bg)&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;77&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;borderRadius: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;0.75rem&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;78&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;borderColor: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;none&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;79&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;codeFontSize: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;0.875rem&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;80&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;codeFontFamily: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;&apos;Cascadia Mono&apos;, &apos;JetBrains Mono&apos;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;81&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;codeLineHeight: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;1.5rem&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;82&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;frames: {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;83&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;editorBackground: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;var(--codeblock-bg)&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;84&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;terminalBackground: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;var(--codeblock-bg)&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;85&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;terminalTitlebarBackground: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;var(--codeblock-topbar-bg)&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;86&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;editorTabBarBackground: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;var(--codeblock-topbar-bg)&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;87&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;editorActiveTabBackground: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;none&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;88&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;editorActiveTabIndicatorBottomColor: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;var(--primary)&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;89&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;editorActiveTabIndicatorTopColor: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;none&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;90&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;editorTabBarBorderBottomColor: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;var(--codeblock-topbar-bg)&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;91&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;terminalTitlebarBorderBottomColor: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;none&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;92&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;93&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;textMarkers: {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;94&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;delHue: &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;0&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;95&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;insHue: &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;180&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;96&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;markHue: &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;250&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;97&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;98&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;99&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;frames: {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;100&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;showCopyToClipboardButton: &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;101&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;102&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;}),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;103&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;svelte&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;104&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;sitemap&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;105&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/details&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;106&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;markdown: {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;107&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;remarkPlugins: [&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;108&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;remarkMath,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;109&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;remarkReadingTime,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;110&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;remarkExcerpt,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;111&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;remarkGithubAdmonitionsToDirectives,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;112&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;remarkDirective,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;113&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;remarkSectionize,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;114&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;parseDirectiveNode,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;115&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;116&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;rehypePlugins: [&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;117&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;rehypeKatex,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;118&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;rehypeSlug,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;119&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;[&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;120&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;rehypeComponents,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;121&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;122&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;components: {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;123&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;github: GithubCardComponent,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;124&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;note&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;: (&lt;/span&gt;&lt;span style=&quot;--0:#FFAB70&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#FFAB70&quot;&gt;y&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;AdmonitionComponent&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(x, y, &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;note&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;125&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;tip&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;: (&lt;/span&gt;&lt;span style=&quot;--0:#FFAB70&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#FFAB70&quot;&gt;y&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;AdmonitionComponent&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(x, y, &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;tip&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;126&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;important&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;: (&lt;/span&gt;&lt;span style=&quot;--0:#FFAB70&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#FFAB70&quot;&gt;y&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;AdmonitionComponent&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(x, y, &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;important&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;127&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;caution&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;: (&lt;/span&gt;&lt;span style=&quot;--0:#FFAB70&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#FFAB70&quot;&gt;y&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;AdmonitionComponent&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(x, y, &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;caution&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;128&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;warning&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;: (&lt;/span&gt;&lt;span style=&quot;--0:#FFAB70&quot;&gt;x&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#FFAB70&quot;&gt;y&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;AdmonitionComponent&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(x, y, &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;warning&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;129&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;130&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;131&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;132&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;[&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;133&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;rehypeExternalLinks,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;134&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;135&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;target: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&apos;_blank&apos;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;136&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;137&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;138&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;[&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;139&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;rehypeAutolinkHeadings,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;140&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;141&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;behavior: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;append&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;142&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;properties: {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;143&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;className: [&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;anchor&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;144&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;details class=&quot;ec-section github&quot;&gt;&lt;summary&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;expand&quot;&gt;&lt;/span&gt;&lt;span class=&quot;collapse&quot;&gt;&lt;/span&gt;&lt;span class=&quot;text&quot;&gt;33 collapsed lines&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/summary&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;145&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;content: {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;146&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;type: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;element&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;147&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;tagName: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;span&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;148&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;properties: {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;149&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;              &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;className: [&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;anchor-icon&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;150&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;              &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;data-pagefind-ignore&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;151&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;152&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;children: [&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;153&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;              &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;154&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;type: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;text&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;155&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;value: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;#&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;156&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;              &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;157&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;158&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;159&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;160&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;161&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;],&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;162&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;163&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;vite: {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;164&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;build: {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;165&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;rollupOptions: {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;166&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;onwarn&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#FFAB70&quot;&gt;warning&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#FFAB70&quot;&gt;warn&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;) {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;167&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;          &lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;// temporarily suppress this warning&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;168&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;          &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;169&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;warning.message.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;includes&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;is dynamically imported by&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;170&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;warning.message.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;includes&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;but also statically imported by&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;171&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;) {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;172&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;173&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;          &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;174&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;          &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;warn&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(warning);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;175&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;176&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;      &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;177&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/details&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;178&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;179&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;});&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;至此，插件的配置就完成了。随便找个&lt;strong&gt;文章内链接&lt;/strong&gt;点击，应该会在&lt;strong&gt;新标签页&lt;/strong&gt;打开，而非原来的在当页打开。&lt;/p&gt;</content:encoded><category>插件</category><category>网站</category><category>教程</category></item><item><title>将 Giscus 评论插件添加到博客</title><link>https://blog.adclosenn.top/posts/giscus/</link><guid isPermaLink="true">https://blog.adclosenn.top/posts/giscus/</guid><description>博客没有评论区？来试试 Giscus 吧！</description><pubDate>Sun, 17 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://blog.adclosenn.top/pic/giscus-no-content.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;h2 id=&quot;前言&quot;&gt;前言&lt;/h2&gt;
&lt;p&gt;如果你的静态博客没有评论区，又不想自己搭建一个评论系统，那么 Giscus 就是一个不错的选择。&lt;br /&gt;
接下来就手把手教你添加这个&lt;a href=&quot;https://giscus.app/client.js&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;插&lt;/a&gt;件并配置它。&lt;/p&gt;
&lt;aside class=&quot;callout callout-warning&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;注意&lt;/p&gt;&lt;p&gt;接下来的教程将以 Astro 网站为例子。由于 Giscus 使用 JavaScript 脚本，所以大多数博客网站都能顺利接入。&lt;br /&gt;
如果你用的博客是 &lt;a href=&quot;https://astro.build/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Astro&lt;/a&gt; 或以它为架构的 &lt;a href=&quot;https://github.com/saicaca/fuwari&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Fuwari&lt;/a&gt;，那么这篇文章或许 99% 适合。&lt;/p&gt;&lt;/aside&gt;
&lt;h2 id=&quot;需求&quot;&gt;需求&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;一个 &lt;a href=&quot;https://github.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;GitHub&lt;/a&gt; 账号。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;配置-giscus&quot;&gt;配置 Giscus&lt;/h2&gt;
&lt;h2 id=&quot;在博客仓库存放评论&quot;&gt;在博客仓库存放评论&lt;/h2&gt;
&lt;aside class=&quot;callout callout-warning&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;注意&lt;/p&gt;&lt;p&gt;如果你博客是&lt;strong&gt;开源的&lt;/strong&gt;（选择这种方法&lt;strong&gt;必须&lt;/strong&gt;要开源！如果&lt;strong&gt;不想开源&lt;/strong&gt;可以选择存放评论于 &lt;a href=&quot;https://blog.adclosenn.top/posts/giscus/#%E5%9C%A8%E4%B8%93%E7%94%A8%E4%BB%93%E5%BA%93%E5%AD%98%E6%94%BE%E8%AF%84%E8%AE%BA&quot;&gt;#在专用仓库存放评论&lt;/a&gt; ），那么我更推荐你直接跟下面这个步骤配置使用前的安装，这么做是为了&lt;strong&gt;更好地集中管理关于博客的东西&lt;/strong&gt;。&lt;br /&gt;
当然，如果你想分开来存放，把&lt;strong&gt;博客源代码&lt;/strong&gt;和&lt;strong&gt;评论区的内容&lt;/strong&gt;分开，那么请选择使用第二种方法，然后这里的内容可以不用看了，可以前往 &lt;a href=&quot;https://blog.adclosenn.top/posts/giscus/#%E5%9C%A8%E4%B8%93%E7%94%A8%E4%BB%93%E5%BA%93%E5%AD%98%E6%94%BE%E8%AF%84%E8%AE%BA&quot;&gt;#在专用仓库存放评论&lt;/a&gt; 查看对应的方法。&lt;/p&gt;&lt;/aside&gt;
&lt;ol&gt;
&lt;li&gt;打开 GitHub 上你博客的仓库地址，点击顶部 &lt;strong&gt;Settings&lt;/strong&gt;（设置），拉到 &lt;strong&gt;Features&lt;/strong&gt;（功能），选择 &lt;strong&gt;Discussions&lt;/strong&gt; 前面的小方格，点击一下，打开 Discussions 功能。等到出现一个小勾即代表开启了 Discussions 讨论功能。 &lt;img src=&quot;https://blog.adclosenn.top/pic/github-settings-features-discussions.png&quot; alt=&quot;github-settings-features-discussions&quot; /&gt;&lt;/li&gt;
&lt;li&gt;点击打开 &lt;a href=&quot;https://github.com/apps/giscus&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://github.com/apps/giscus&lt;/a&gt; ，选择带色按钮 Install ，将其安装在你的 GitHub 个人账户中（如果你博客仓库在别的组织，请选择安装到&lt;strong&gt;组织&lt;/strong&gt;）。&lt;/li&gt;
&lt;li&gt;安装完毕，可以跳到 &lt;a href=&quot;https://blog.adclosenn.top/posts/giscus/#%E8%8E%B7%E5%8F%96%E4%B8%93%E7%94%A8%E4%BB%A3%E7%A0%81&quot;&gt;#获取专用代码&lt;/a&gt; 查看需要插入的 JS 代码了。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;在专用仓库存放评论&quot;&gt;在专用仓库存放评论&lt;/h2&gt;
&lt;aside class=&quot;callout callout-tip&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;提示&lt;/p&gt;&lt;p&gt;这是个通用的方法，你依然可以将其设置为你博客评论存放的仓库，即使你的博客是开源的；但是如果你的博客不开源，那么请务必使用这个方法。&lt;br /&gt;
注意：使用这种方法并不能&lt;strong&gt;更好地集中管理关于博客的东西&lt;/strong&gt;，但是能防止某些脑残人物的评论污染了你的主仓库。&lt;/p&gt;&lt;/aside&gt;
&lt;ol&gt;
&lt;li&gt;打开 &lt;a href=&quot;https://github.com/new&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://github.com/new&lt;/a&gt; ，创建一个新的仓库。&lt;/li&gt;
&lt;li&gt;在新仓库内，点击顶部 &lt;strong&gt;Settings&lt;/strong&gt;（设置），拉到 &lt;strong&gt;Features&lt;/strong&gt;（功能），选择 &lt;strong&gt;Discussions&lt;/strong&gt; 前面的小方格，点击一下，打开 Discussions 功能。等到出现一个小勾即代表开启了 Discussions 讨论功能。 &lt;img src=&quot;https://blog.adclosenn.top/pic/github-settings-features-discussions.png&quot; alt=&quot;github-settings-features-discussions&quot; /&gt;&lt;/li&gt;
&lt;li&gt;点击打开 &lt;a href=&quot;https://github.com/apps/giscus&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://github.com/apps/giscus&lt;/a&gt; ，选择带色按钮 Install ，将其安装在你的 GitHub 个人账户中（如果你博客仓库在别的组织，请选择安装到&lt;strong&gt;组织&lt;/strong&gt;）。&lt;/li&gt;
&lt;li&gt;安装完毕。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;获取专用代码&quot;&gt;获取专用代码&lt;/h2&gt;
&lt;p&gt;打开 &lt;a href=&quot;https://giscus.app/zh-CN&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://giscus.app/zh-CN&lt;/a&gt; ，在其页面进行必要的配置：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;语言：如果你的博客不搞 i18n 国际化，那我推荐选择 &lt;strong&gt;简体中文&lt;/strong&gt;（博客使用的语言）。反之推荐选择 &lt;strong&gt;English&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;仓库：如果你选择上面第一种方案（在博客仓库内），那么就填写&lt;strong&gt;你博客仓库地址&lt;/strong&gt;（以 &lt;code&gt;用户名/仓库名&lt;/code&gt; 形式填写，填你自己的。比如 &lt;code&gt;Ad-closeNN/blog-fuwari&lt;/code&gt;）。如果是新的专用仓库，那么就填写&lt;strong&gt;新的专用仓库地址&lt;/strong&gt;，格式同理。成功了为如图所示： &lt;img src=&quot;https://blog.adclosenn.top/pic/giscus-repo-successful.png&quot; alt=&quot;giscus-repo-successful&quot; /&gt;&lt;/li&gt;
&lt;li&gt;页面 ↔️ discussion 映射关系：这个有说法。如果你博客没有很多重复标题的页面，&lt;strong&gt;且不更换文章标题&lt;/strong&gt;，推荐选择 &lt;strong&gt;Discussion 的标题包含页面的 &lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt;&lt;/strong&gt;，这将会以 &lt;code&gt;页面标题 -或/或其他分隔符 网站名&lt;/code&gt; 为 title 开一个新讨论。如： &lt;img src=&quot;https://blog.adclosenn.top/pic/github-giscus-conversation.png&quot; alt=&quot;github-giscus-conversation&quot; /&gt; 其他如 &lt;code&gt;pathname&lt;/code&gt;，将会把 &lt;code&gt;/post/xxx&lt;/code&gt; 显示出来。但是显示效果（特别是中文路径）可能没那么好？&lt;br /&gt;
参考&amp;amp;图片原出处： &lt;a href=&quot;https://www.2x.nz/posts/you-is-me-huh/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://www.2x.nz/posts/you-is-me-huh/&lt;/a&gt; &lt;img src=&quot;https://www.2x.nz/assets/images/2025-08-12-15-45-18-image.png&quot; alt=&quot;image.png&quot; /&gt;&lt;/li&gt;
&lt;li&gt;Discussion 分类：推荐选择 &lt;strong&gt;General&lt;/strong&gt;。如果你只想让访客在博客发布评论，就选择 &lt;strong&gt;Announcements&lt;/strong&gt;。这样即使能在 GitHub 看到评论，也无法直接在 GitHub 回复，必须在博客的评论区内回复。没啥用，不如 *&lt;em&gt;General&lt;/em&gt;。&lt;/li&gt;
&lt;li&gt;特性：推荐启用 &lt;code&gt;启用主帖子上的反应（reaction）&lt;/code&gt; &lt;code&gt;将评论框放在评论上方&lt;/code&gt; &lt;code&gt;懒加载评论&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;其他无关紧要的请自行配置。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;配置完成后，将会获得一串&lt;strong&gt;独特的&lt;/strong&gt; JavaScript 代码（例如下面的）。将其复制下来：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;js&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:47ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;src&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;https://giscus.app/client.js&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;data-repo&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;Ad-closeNN/blog-friends&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;data-repo-id&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;R_kgDOPb5ZJw&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;data-category&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;Announcements&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;data-category-id&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;DIC_kwDOPb5ZJ84CuPmR&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;data-mapping&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;data-strict&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;0&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;data-reactions-enabled&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;1&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;data-emit-metadata&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;0&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;data-input-position&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;top&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;data-theme&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;preferred_color_scheme&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;data-lang&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;zh-CN&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;13&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;data-loading&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;lazy&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;14&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;crossorigin&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;anonymous&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;15&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;16&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;插入代码&quot;&gt;插入代码&lt;/h2&gt;
&lt;p&gt;打开 &lt;code&gt;src/pages/posts/[..slug].astro&lt;/code&gt;，在最下方的 &lt;code&gt;&amp;lt;/MainGridLayout&amp;gt;&lt;/code&gt; 的上面插入你在 Giscus 复制的 JavaScript 代码：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame has-title&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;src/pages/posts/[..slug].astro&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;astro&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:151ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;143&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;href&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;={entry.data.prevSlug &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;getPostUrlBySlug&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(entry.data.prevSlug) &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;#&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;144&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;           &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class:list&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;={[&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;w-full font-bold overflow-hidden active:scale-95&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;, {&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;pointer-events-none&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;entry.data.prevSlug}]}&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;145&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{entry.data.prevSlug &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;btn-card rounded-2xl w-full h-[3.75rem] max-w-full px-4 flex items-center !justify-end gap-4&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;146&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;overflow-hidden transition overflow-ellipsis whitespace-nowrap max-w-[calc(100%_-_3rem)] text-black/75 dark:text-white/75&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;147&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{entry.data.prevTitle}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;148&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;149&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;Icon&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;material-symbols:chevron-right-rounded&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;text-[2rem] text-[var(--primary)]&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; /&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;150&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;151&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;152&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;153&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;154&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;&amp;lt;!-- 上面是你的其他原本的代码 --&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;155&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;&amp;lt;!-- 评论区在这 --&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;156&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;src&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;https://giscus.app/client.js&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;157&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;data-repo&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;Ad-closeNN/blog-friends&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;158&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;data-repo-id&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;R_kgDOPb5ZJw&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;159&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;data-category&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;General&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;160&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;data-category-id&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;DIC_kwDOPb5ZJ84CuPmR&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;161&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;data-mapping&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;162&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;data-strict&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;0&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;163&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;data-reactions-enabled&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;1&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;164&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;data-emit-metadata&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;0&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;165&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;data-input-position&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;top&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;166&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;data-theme&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;preferred_color_scheme&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;167&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;data-lang&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;zh-CN&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;168&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;data-loading&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;lazy&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;169&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;crossorigin&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;anonymous&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;170&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;171&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;172&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;MainGridLayout&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;放在这个文件 &lt;code&gt;src/posts/[..slug].astro&lt;/code&gt; 内，仅仅只有 /posts/ 下的文章拥有评论区。&lt;br /&gt;
如果你需要在特定的页面（比如 /about/ ）中使用 Giscus，仅需打开和 Markdown 同名的文件（如 /about/ 的 Markdown 文件是 &lt;code&gt;about.md&lt;/code&gt;）如 &lt;code&gt;src/pages/about.astro&lt;/code&gt;，用刚才的方法插入 Giscus 代码即可&lt;strong&gt;实现特定页面拥有 Giscus 评论区&lt;/strong&gt;。&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;astro&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:93ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;---&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;details class=&quot;ec-section github&quot;&gt;&lt;summary&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;expand&quot;&gt;&lt;/span&gt;&lt;span class=&quot;collapse&quot;&gt;&lt;/span&gt;&lt;span class=&quot;text&quot;&gt;13 collapsed lines&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/summary&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; { getEntry, render } &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;astro:content&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; Markdown &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;@components/misc/Markdown.astro&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; I18nKey &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;../i18n/i18nKey&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; { i18n } &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;../i18n/translation&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; MainGridLayout &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;../layouts/MainGridLayout.astro&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;7&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;aboutPost&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;await&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;getEntry&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;spec&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;about&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;9&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; (&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;aboutPost) {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;throw&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;new&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;Error&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;About page content not found&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;13&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;14&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; { &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;Content&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; } &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;await&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;render&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(aboutPost);&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/details&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;15&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;---&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;16&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;MainGridLayout&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;={&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;i18n&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(I18nKey.about)} &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;description&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;关于&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;17&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;flex w-full rounded-[var(--radius-large)] overflow-hidden relative min-h-32&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;18&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;card-base z-10 px-9 py-6 relative w-full &quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;19&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;Markdown&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;mt-2&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;20&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;Content&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; /&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;21&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;Markdown&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;22&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;23&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;24&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;25&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;br&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;26&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;&amp;lt;!-- 评论区 --&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;27&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;src&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;https://giscus.app/client.js&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;28&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;data-repo&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;Ad-closeNN/blog-friends&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;29&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;data-repo-id&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;R_kgDOPb5ZJw&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;30&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;data-category&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;General&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;31&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;data-category-id&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;DIC_kwDOPb5ZJ84CuPmR&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;32&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;data-mapping&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;33&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;data-strict&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;0&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;34&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;data-reactions-enabled&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;1&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;35&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;data-emit-metadata&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;0&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;36&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;data-input-position&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;top&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;37&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;data-theme&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;preferred_color_scheme&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;38&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;data-lang&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;zh-CN&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;39&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;data-loading&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;lazy&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;40&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;crossorigin&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;anonymous&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;41&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight ins&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;42&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;43&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;MainGridLayout&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;配置网站源-origin&quot;&gt;配置网站源 Origin&lt;/h2&gt;
&lt;p&gt;参考：&lt;a href=&quot;https://github.com/giscus/giscus/blob/main/ADVANCED-USAGE.md#origins&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://github.com/giscus/giscus/blob/main/ADVANCED-USAGE.md#origins&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;如果你的博客是开源的，那么有些人可能会直接 Fork 你的博客仓库，转为自己用。&lt;br /&gt;
这时候如果那人不会配置评论区，那么有意思的来了，他发的评论会&lt;strong&gt;直接到达你 Giscus 配置的仓库&lt;/strong&gt;，而不是在他仓库。&lt;/p&gt;
&lt;p&gt;所以我们可以配置一个 &lt;code&gt;giscus.json&lt;/code&gt; 在你 &lt;strong&gt;Giscus 设置的仓库&lt;/strong&gt; 的根目录（如我在上面 &lt;a href=&quot;https://blog.adclosenn.top/posts/giscus/#%E5%9C%A8%E4%B8%93%E7%94%A8%E4%BB%93%E5%BA%93%E5%AD%98%E6%94%BE%E8%AF%84%E8%AE%BA&quot;&gt;#在专用仓库存放评论&lt;/a&gt; 中设定了仓库为 &lt;code&gt;Ad-closeNN/blog-friends&lt;/code&gt;，那就去到这个仓库），新建一个文件 &lt;code&gt;giscus.json&lt;/code&gt;，例如：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame has-title&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;giscus.json&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;json&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:51ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;&quot;origins&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;https://adclosenn.top&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;] &lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;// 这个域名填你自己的&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;aside class=&quot;callout callout-warning&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;注意&lt;/p&gt;&lt;p&gt;&lt;code&gt;origins&lt;/code&gt; 里面&lt;strong&gt;不推荐&lt;/strong&gt;填写 localhost 等本地地址，这样会导致别人把博客 Fork 在本地&lt;strong&gt;依然能发表评论&lt;/strong&gt;到你仓库。
如果你确认这个风险，那么可以直接填 &lt;code&gt;本地地址&lt;/code&gt; + &lt;code&gt;端口&lt;/code&gt;，比如 Astro 的本地地址为 &lt;code&gt;localhost&lt;/code&gt;，端口为 &lt;code&gt;4321&lt;/code&gt;，那么填写 &lt;code&gt;http://localhost:4321&lt;/code&gt;：&lt;/p&gt;&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame has-title&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;giscus.json&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;json&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:63ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;&quot;origins&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;: [&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;https://adclosenn.top&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;http://localhost:4321&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/aside&gt;
&lt;p&gt;配置好后，本地开发环境(localhost) 和除你设定之外的域名将会直接被 Giscus 切断评论区的连接： &lt;img src=&quot;https://blog.adclosenn.top/pic/chrome-github-deny-connection.png&quot; alt=&quot;chrome-github-deny-connection&quot; /&gt;&lt;/p&gt;
&lt;h2 id=&quot;反垃圾评论&quot;&gt;反垃圾评论&lt;/h2&gt;
&lt;p&gt;一般来说不会有人无缘无故就对你的文章评论区发布&lt;strong&gt;脑残&lt;/strong&gt;、&lt;strong&gt;降智&lt;/strong&gt;、&lt;strong&gt;虚假&lt;/strong&gt;的评论，因为 Giscus 的评论需要通过 GitHub 授权登录才能发布，所以这算是一个初级发布门槛。&lt;/p&gt;
&lt;p&gt;如果真的有，那么确实很不幸了。你可以通过&lt;strong&gt;删评论&lt;/strong&gt;的方法解决。&lt;br /&gt;
也可以通过 &lt;a href=&quot;https://www.2x.nz/posts/giscus-akismet#pei-zhi-akismet&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;配置 Akismet&lt;/a&gt; 等来实现自动化反垃圾评论。但是 Akismet 的效果据说十分鸡肋。&lt;/p&gt;</content:encoded><category>插件</category><category>网站</category><category>教程</category></item><item><title>恢复 Chrome 对 Manifest V2 的支持</title><link>https://blog.adclosenn.top/posts/chrome-manifestv2-block/</link><guid isPermaLink="true">https://blog.adclosenn.top/posts/chrome-manifestv2-block/</guid><description>2025 年 7 月 24 日：Chrome 会在所有位置停用 Manifest V2 扩展，所以某些扩展要怎么恢复？</description><pubDate>Thu, 14 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://blog.adclosenn.top/pic/chrome-ext-force-custom-font.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;h2 id=&quot;前言&quot;&gt;前言&lt;/h2&gt;
&lt;aside class=&quot;callout callout-tip&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;提示&lt;/p&gt;&lt;p&gt;本文「扩展」=「扩展程序」= 「插件」。&lt;br /&gt;
参考：&lt;a href=&quot;https://blog.hentioe.dev/posts/continue-using-chrome-manifest-v2.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://blog.hentioe.dev/posts/continue-using-chrome-manifest-v2.html&lt;/a&gt;&lt;/p&gt;&lt;/aside&gt;
&lt;p&gt;今天打开电脑，发现 Chrome 它阻止了一个扩展（如上图）。
查了一下，发现是 Google Chrome 已经永久停止了对 Manifest V2 扩展的支持，而且是已经计划了近4年的项目。在 2025年7月终于要落下帷幕&lt;strong&gt;了&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.chrome.com/docs/extensions/develop/migrate/mv2-deprecation-timeline?hl=zh-cn#january_2022_chrome_web_store_-_no_new_public_unlisted_extensions&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;2022 年 1 月：Chrome 应用商店停止接受新的 Manifest V2 扩展程序&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.chrome.com/docs/extensions/develop/migrate/mv2-deprecation-timeline?hl=zh-cn#june_2022_chrome_web_store_-_no_new_private_extensions&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;2022 年 6 月：Chrome 应用商店已停止接受将公开范围设置为“专用”的新 Manifest V2 扩展程序&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.chrome.com/docs/extensions/develop/migrate/mv2-deprecation-timeline?hl=zh-cn#june_3rd_2024_the_manifest_v2_phase-out_begins&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;2024 年 6 月 3 日：Chrome 开始逐步淘汰 Manifest V2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.chrome.com/docs/extensions/develop/migrate/mv2-deprecation-timeline?hl=zh-cn#october_9th_2024_an_update_on_manifest_v2_phase-out&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;2024 年 10 月 9 日：Chrome 扩展页面会向使用 Manifest V2 扩展程序的所有用户显示警告横幅&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.chrome.com/docs/extensions/develop/migrate/mv2-deprecation-timeline?hl=zh-cn#march_31st_2025_manifest_v2_is_disabled_with_the_option_to_re-enable_extensions&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;2025 年 3 月 31 日：停用 Manifest V2，但仍可以选择重新启用扩展程序&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://developer.chrome.com/docs/extensions/develop/migrate/mv2-deprecation-timeline?hl=zh-cn#jul_24th_2025_manifest_v2_is_disabled_everywhere&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;2025 年 7 月 24 日：在所有位置停用 Manifest V2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;吗？&lt;/strong&gt;&lt;/p&gt;
&lt;h2 id=&quot;解决方案&quot;&gt;解决方案&lt;/h2&gt;
&lt;h2 id=&quot;通过-chromeflags-关闭&quot;&gt;通过 chrome://flags 关闭&lt;/h2&gt;
&lt;aside class=&quot;callout callout-warning&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;注意&lt;/p&gt;&lt;p&gt;目前并不能确认 Chrome 139.0.7258.128 之后的版本是否能继续使用此方法。但可以确定的是，稳定版 139.0.7258.128 能继续使用 Flags 控制开关。
&lt;img src=&quot;https://blog.adclosenn.top/pic/chrome-139.0.7258.128-about.png&quot; alt=&quot;chrome-139.0.7258.128-about&quot; /&gt;&lt;/p&gt;&lt;/aside&gt;
&lt;ol&gt;
&lt;li&gt;地址栏输入 &lt;code&gt;chrome://flags/&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;搜索 &lt;code&gt;temporary-unexpire-flags-m137&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;将这个条目设置为 &lt;code&gt;Enabled&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;重启浏览器。&lt;/li&gt;
&lt;li&gt;搜索 &lt;code&gt;extension-manifest-v2-deprecation-disabled&lt;/code&gt;，将其设置为 &lt;code&gt;Disabled&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;搜索 &lt;code&gt;extension-manifest-v2-deprecation-unsupported&lt;/code&gt;，将其设置为 &lt;code&gt;Disabled&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;重启浏览器，即可启用旧版扩展。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;添加启动参数&quot;&gt;添加启动参数&lt;/h2&gt;
&lt;p&gt;&lt;img src=&quot;https://blog.adclosenn.top/pic/windows-chrome-lnk-panel.png&quot; alt=&quot;windows-chrome-lnk-panel&quot; /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;关闭 Chrome。&lt;/li&gt;
&lt;li&gt;打开 Chrome 的快捷方式属性。&lt;/li&gt;
&lt;li&gt;在 &lt;strong&gt;目标&lt;/strong&gt; 后加上一个&lt;strong&gt;空格&lt;/strong&gt;和 &lt;code&gt;--disable-features=ExtensionManifestV2Unsupported,ExtensionManifestV2Disabled&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;点击 &lt;strong&gt;确定&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;再次双击 Chrome 快捷方式，打开 Chrome，即可启用旧版扩展（&lt;strong&gt;暂时保留&lt;/strong&gt; 按钮将会出现）。 &lt;img src=&quot;https://blog.adclosenn.top/pic/chrome-ext-force-custom-font-2.png&quot; alt=&quot;chrome-ext-force-custom-font-2&quot; /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;换浏览器&quot;&gt;换浏览器&lt;/h2&gt;
&lt;h3 id=&quot;firefox&quot;&gt;FireFox&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firefox.com/zh-CN/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;FireFox - 火狐&lt;/a&gt; 。它并&lt;strong&gt;不&lt;/strong&gt;基于 Chromium ：&lt;a href=&quot;https://www.firefox.com/zh-CN/more/faq/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;FireFox 常见问题&lt;/a&gt; 。并且它将会 &lt;a href=&quot;https://blog.mozilla.org/addons/2024/03/13/manifest-v3-manifest-v2-march-2024-update/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;继续支持 Manifest V2 扩展&lt;/a&gt; 。&lt;del&gt;FireFox 这招太狠了&lt;/del&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&quot;其他&quot;&gt;其他&lt;/h2&gt;
&lt;h2 id=&quot;microsoft-edge&quot;&gt;Microsoft Edge&lt;/h2&gt;
&lt;p&gt;好吧，微软也放弃了其新 Edge 对 Manifest V2 的支持，强制关闭时间&lt;strong&gt;待定&lt;/strong&gt;：&lt;a href=&quot;https://learn.microsoft.com/zh-cn/microsoft-edge/extensions/developer-guide/manifest-v3&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;迁移到清单 V3 的概述和时间线 - Microsoft Edge Developer documentation | Microsoft Learn&lt;/a&gt; 。&lt;/p&gt;</content:encoded><category>bypass</category><category>教程</category></item><item><title>自定义 Astro 的 Frontmatter</title><link>https://blog.adclosenn.top/posts/custom-frontmatter/</link><guid isPermaLink="true">https://blog.adclosenn.top/posts/custom-frontmatter/</guid><description>如果你想要在 Astro 的 Makdown Frontmatter 中自定义参数，布尔值或字符串，实现直接开关或更改某样组件，可以这样做</description><pubDate>Wed, 13 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://blog.adclosenn.top/pic/custom-frontmatter-customcover.svg&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;h2 id=&quot;前言&quot;&gt;前言&lt;/h2&gt;
&lt;p&gt;如果你用的博客是 &lt;a href=&quot;https://astro.build/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Astro&lt;/a&gt; 或以它为架构的 &lt;a href=&quot;https://github.com/saicaca/fuwari&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Fuwari&lt;/a&gt;，那么这篇文章或许适合。&lt;/p&gt;
&lt;p&gt;这篇文章的目的是 &lt;strong&gt;在 Markdown 文件的顶端加入一个自定义的类似 &lt;code&gt;draft: true&lt;/code&gt; 这类变量控制器&lt;/strong&gt;，可以运用它对某些组件进行更改，包括关闭、更改。例如，当你在 fuwari 中的 Markdown 顶端定义一个内置参数 &lt;code&gt;image&lt;/code&gt;，你可以通过写 &lt;code&gt;image: &quot;/pic/custom-frontmatter-cover.svg&quot;&lt;/code&gt; 来让这篇文章在&lt;strong&gt;博客主页&lt;/strong&gt;获得一个图片（而不定义就只有一个 &lt;code&gt;&amp;gt;&lt;/code&gt; 的按钮）： &lt;img src=&quot;https://blog.adclosenn.top/pic/frontmatter-image-example.png&quot; alt=&quot;frontmatter-image-example&quot; /&gt;&lt;/p&gt;
&lt;p&gt;就是说：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame has-title&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;src/content/posts/custom-frontmatter.md&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;md&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:83ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;---&lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt; # 这里是 Frontmatter 的开头&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;image&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;/a/example.png&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;# 官方自带的：这是原来有的这个 image:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight mark&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;customcover&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;/a/eexxaammppllee.png&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#afb5b9&quot;&gt;# 自己添加的：这是在如 /posts/custom-frontmatter/ 显示的文章头图&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight mark&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;showcover&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#afb5b9&quot;&gt;# 自己添加的：这是控制 是否使用 image: 定义的图片作为文章头图，默认就是会用 image: 定义的图片作为头图&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;---&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;# 这里是 Frontmatter 的结尾&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;如果你足够细心，你会发现文章 &lt;a href=&quot;https://blog.adclosenn.top/posts/captcha/&quot;&gt;你是人类吗？&lt;/a&gt; 的图片在&lt;strong&gt;博客主页&lt;/strong&gt;和&lt;strong&gt;文章内部&lt;/strong&gt;是不同的。这也用到了自定义 Frontmatter，自己定义了不同的地方该显示什么图片。&lt;/p&gt;
&lt;h2 id=&quot;定义-frontmatter&quot;&gt;定义 Frontmatter&lt;/h2&gt;
&lt;aside class=&quot;callout callout-tip&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;提示&lt;/p&gt;&lt;p&gt;如果你使用的也是 Astro Fuwari，那么这些操作理应是&lt;strong&gt;相同&lt;/strong&gt;且&lt;strong&gt;可用&lt;/strong&gt;的。&lt;/p&gt;&lt;/aside&gt;
&lt;p&gt;打开 &lt;code&gt;src/content/config.ts&lt;/code&gt; 文件，在 &lt;code&gt;const postsCollection = defineCollection({&lt;/code&gt; 部分，参考已有的示例定义一个&lt;strong&gt;不重名&lt;/strong&gt;的参数，以下是本站的：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;boolen&lt;/strong&gt;：布尔值。可以通过 &lt;code&gt;true&lt;/code&gt; 和 &lt;code&gt;false&lt;/code&gt; 控制。&lt;br /&gt;
&lt;strong&gt;string&lt;/strong&gt;：字符串。填写的是一串文本。&lt;/p&gt;
&lt;p&gt;最后面括号中的 &lt;code&gt;true&lt;/code&gt; 指的是如果 Markdown 文件顶端的 Frontmatter 里&lt;strong&gt;没有&lt;/strong&gt;这个参数，就默认为 &lt;code&gt;true&lt;/code&gt;。&lt;code&gt;string&lt;/code&gt; 也同理。&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame has-title&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;src/content/config.ts&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;ts&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:59ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;postsCollection&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;defineCollection&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;({&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;schema: z.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;object&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;({&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;title: z.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;published: z.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;date&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;updated: z.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;date&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;optional&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;draft: z.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;boolean&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;optional&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;default&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;false&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;description: z.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;optional&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;default&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;image: z.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;optional&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;default&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;tags: z.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;array&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(z.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;()).&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;optional&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;default&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;([]),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;category: z.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;optional&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;nullable&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;default&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight mark&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;showcover: z.&lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;boolean&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;optional&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;default&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight mark&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;customcover: z.&lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;optional&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;--0:#c2a8f3&quot;&gt;default&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;13&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;14&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;lang: z.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;optional&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;default&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;15&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;16&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;/* For internal use */&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;17&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;prevTitle: z.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;default&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;18&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;prevSlug: z.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;default&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;19&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;nextTitle: z.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;default&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;20&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;nextSlug: z.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;string&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;().&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;default&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;21&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;}),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;22&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;});&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;配置-frontmatter样例&quot;&gt;配置 Frontmatter（样例）&lt;/h2&gt;
&lt;h2 id=&quot;关闭文章头图&quot;&gt;关闭文章头图&lt;/h2&gt;
&lt;p&gt;默认你使用 &lt;code&gt;image&lt;/code&gt; 定义了一张图片，那么这张图片将会同时显示在&lt;strong&gt;博客主页&lt;/strong&gt;和 &lt;strong&gt;文章内部（那个大大的图片，位于文章之首）&lt;/strong&gt;。&lt;br /&gt;
如不需要使用&lt;strong&gt;博客主页&lt;/strong&gt;那张图片作为文章内部的照片，我们可以&lt;strong&gt;关闭文章内部的头图显示，只剩下文章正文和文章的图片，而博客主页那个卡片右边的图片依然显示&lt;/strong&gt;。&lt;/p&gt;
&lt;p&gt;打开 &lt;code&gt;src/pages/posts/[...slug].astro&lt;/code&gt;，（这个可选：在&lt;strong&gt;第二处&lt;/strong&gt; &lt;code&gt;---&lt;/code&gt; 上面加入 &lt;code&gt;const 随便一个不重复名字 = entry.data.你在#定义 Frontmatter定义的参数。&lt;/code&gt; ，本站是 &lt;code&gt;showcover = enrty.data.showcover;&lt;/code&gt;）&lt;br /&gt;
找到 &lt;code&gt;{entry.data.image &amp;amp;&amp;amp;&lt;/code&gt;，将其改为 &lt;code&gt;{entry.data.showcover &amp;amp;&amp;amp; entry.data.image &amp;amp;&amp;amp;&lt;/code&gt;。如图所示：&lt;/p&gt;
&lt;aside class=&quot;callout callout-warning&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;注意&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;如果你做了上面的可选步骤（定义了一个变量），那么可以将其改为 &lt;code&gt;{变量名 &amp;amp;&amp;amp; entry.data.image &amp;amp;&amp;amp;&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;如果你&lt;strong&gt;没有使用&lt;/strong&gt;在 &lt;a href=&quot;https://blog.adclosenn.top/posts/custom-frontmatter/#%E5%AE%9A%E4%B9%89-frontmatter&quot;&gt;#定义 Frontmatter&lt;/a&gt; 中的本站自定义的参数，这里就无法使用 entry.data.showcover。&lt;/li&gt;
&lt;/ol&gt;&lt;/aside&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame has-title&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;src/pages/posts/[...slug.astro]&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;astro&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:185ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line highlight mark&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{entry.data.showcover &lt;/span&gt;&lt;span style=&quot;--0:#fb99a3&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; entry.data.image &lt;/span&gt;&lt;span style=&quot;--0:#fb99a3&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;ImageWrapper&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;post-cover&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;src&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{entry.data.image} &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;basePath&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{path.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;join&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;content/posts/&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;getDir&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(entry.id))} &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;mb-8 rounded-xl banner-container onload-animation&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;自定义文章内部头图&quot;&gt;自定义文章内部头图&lt;/h2&gt;
&lt;p&gt;你也看到了，本文在博客主页和本页的头图不一样。这是自定义了头图 &lt;code&gt;customcover: /pic/custom-frontmatter-customcover.svg&lt;/code&gt;。&lt;/p&gt;
&lt;p&gt;打开 &lt;code&gt;src/pages/posts/[...slug].astro&lt;/code&gt;，（这个可选：在&lt;strong&gt;第二处&lt;/strong&gt; &lt;code&gt;---&lt;/code&gt; 上面加入 &lt;code&gt;const 随便一个不重复名字 = entry.data.你在#定义 Frontmatter定义的参数。&lt;/code&gt;，本站是 &lt;code&gt;const customcover = entry.data.customcover;&lt;/code&gt;）&lt;br /&gt;
找到 &lt;code&gt;{entry.data.image &amp;amp;&amp;amp;&lt;/code&gt; 开头的元素，在其下面添加一个和其&lt;strong&gt;一模一样&lt;/strong&gt;的元素。如图所示：&lt;/p&gt;
&lt;aside class=&quot;callout callout-warning&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;注意&lt;/p&gt;&lt;ol&gt;
&lt;li&gt;如果你做了上面的可选步骤（定义了一个变量），那么可以将其改为 &lt;code&gt;{变量名 &amp;amp;&amp;amp;&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;如果你&lt;strong&gt;没有使用&lt;/strong&gt;在 &lt;a href=&quot;https://blog.adclosenn.top/posts/custom-frontmatter/#%E5%AE%9A%E4%B9%89-frontmatter&quot;&gt;#定义 Frontmatter&lt;/a&gt; 中的本站自定义的参数，这里就无法使用 entry.data.customcover。&lt;/li&gt;
&lt;/ol&gt;&lt;/aside&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame has-title&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;src/pages/posts/[...slug.astro]&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;astro&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:191ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{entry.data.showcover &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; entry.data.image &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;ImageWrapper&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;post-cover&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;src&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{entry.data.image} &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;basePath&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{path.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;join&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;content/posts/&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;getDir&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(entry.id))} &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;mb-8 rounded-xl banner-container onload-animation&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;4&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;&amp;lt;!-- 自制内部头图 customcover--&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight mark&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{entry.data.customcover &lt;/span&gt;&lt;span style=&quot;--0:#fb99a3&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;ImageWrapper&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;post-cover&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;src&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{entry.data.customcover} &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;basePath&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{path.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;join&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;content/posts/&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;getDir&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(entry.id))} &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;mb-8 rounded-xl banner-container onload-animation&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;hr /&gt;
&lt;h2 id=&quot;附加本站-slugastro-文件&quot;&gt;附加：本站 […slug].astro 文件&lt;/h2&gt;
&lt;aside class=&quot;callout callout-caution&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;不要照抄，除非你知道自己在做什么&lt;/p&gt;&lt;/aside&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame has-title&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;src/pages/posts/[...slug].astro&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;astro&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:191ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;---&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; path &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;node:path&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; License &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;@components/misc/License.astro&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; Markdown &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;@components/misc/Markdown.astro&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; I18nKey &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;@i18n/i18nKey&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; { i18n } &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;@i18n/translation&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; MainGridLayout &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;@layouts/MainGridLayout.astro&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; { getSortedPosts } &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;@utils/content-utils&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; { getDir, getPostUrlBySlug } &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;@utils/url-utils&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; { Icon } &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;astro-icon/components&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; { licenseConfig } &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;src/config&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; ImageWrapper &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;../../components/misc/ImageWrapper.astro&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;13&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; PostMetadata &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;../../components/PostMeta.astro&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;14&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; { profileConfig, siteConfig } &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;../../config&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;15&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;import&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; { formatDateToYYYYMMDD } &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;from&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;../../utils/date-utils&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;16&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;17&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;function&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;getStaticPaths&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;() {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;18&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;blogEntries&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;await&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;getSortedPosts&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;19&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; blogEntries.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;map&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;((&lt;/span&gt;&lt;span style=&quot;--0:#FFAB70&quot;&gt;entry&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; ({&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;20&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;params: { slug: entry.slug },&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;21&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;props: { entry },&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;22&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;}));&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;23&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;24&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;25&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; { &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;entry&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; } &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; Astro.props;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;26&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; { &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;Content&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;headings&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; } &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;await&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; entry.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;render&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;27&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;28&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; { &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;remarkPluginFrontmatter&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; } &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;await&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; entry.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;render&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;();&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;29&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;30&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;jsonLd&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;31&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;@context&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;https://schema.org&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;32&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;@type&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;BlogPosting&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;33&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;headline: entry.data.title,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;34&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;description: entry.data.description &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; entry.data.title,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;35&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;keywords: entry.data.tags,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;36&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;author: {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;37&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;@type&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;Person&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;38&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;name: profileConfig.name,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;39&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;url: Astro.site,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;40&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;},&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;41&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;datePublished: &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;formatDateToYYYYMMDD&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(entry.data.published),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;42&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;inLanguage: entry.data.lang&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;43&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; entry.data.lang.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;_&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;-&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;44&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; siteConfig.lang.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;replace&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;_&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;-&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;),&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;45&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;// TODO include cover image here&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;46&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;};&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;47&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;48&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;// 获取头图 boolean，无需设置 true&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight mark&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;49&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#fb99a3&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;showcover&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#fb99a3&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; entry.data.showcover;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;50&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;51&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;// 获取自定义的头图（Markdown 内部）&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight mark&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;52&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#fb99a3&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;customcover&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#fb99a3&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; entry.data.customcover;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;53&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;54&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;---&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;55&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;MainGridLayout&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;banner&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;={entry.data.image} &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;={entry.data.title} &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;description&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;={entry.data.description} &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;lang&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;={entry.data.lang} &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;setOGTypeArticle&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;={&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;true&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;} &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;headings&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;={headings}&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;56&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;is:inline&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;slot&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;head&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;type&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;application/ld+json&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;set:html&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;={&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;JSON&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;stringify&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(jsonLd)}&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;57&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;flex w-full rounded-[var(--radius-large)] overflow-hidden relative mb-4&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;58&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;post-container&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class:list&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;={[&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;card-base z-10 px-6 md:px-9 pt-6 pb-4 relative w-full &quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;59&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;60&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;]}&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;61&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;&amp;lt;!-- word count and reading time --&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;62&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;flex flex-row text-black/30 dark:text-white/30 gap-5 mb-3 transition onload-animation&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;63&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;flex flex-row items-center&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;64&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;transition h-6 w-6 rounded-md bg-black/5 dark:bg-white/10 text-black/50 dark:text-white/50 flex items-center justify-center mr-2&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;65&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;Icon&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;material-symbols:notes-rounded&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;Icon&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;66&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;67&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;text-sm&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;{remarkPluginFrontmatter.words} {&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;i18n&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(I18nKey.wordsCount)}&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;68&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;69&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;flex flex-row items-center&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;70&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;transition h-6 w-6 rounded-md bg-black/5 dark:bg-white/10 text-black/50 dark:text-white/50 flex items-center justify-center mr-2&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;71&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;Icon&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;material-symbols:schedule-outline-rounded&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;Icon&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;72&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;73&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;text-sm&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;74&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{remarkPluginFrontmatter.minutes} {&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot; &quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;i18n&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(remarkPluginFrontmatter.minutes &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;===&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; I18nKey.minuteCount &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; I18nKey.minutesCount)}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;75&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;76&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;77&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;78&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;79&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;&amp;lt;!-- title --&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;80&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;relative onload-animation&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;81&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;82&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;                    &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;data-pagefind-body&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;data-pagefind-weight&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;10&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;data-pagefind-meta&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;title&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;83&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;                    &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;transition w-full block font-bold mb-3&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;84&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;text-3xl md:text-[2.25rem]/[2.75rem]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;85&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;text-black/90 dark:text-white/90&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;86&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;md:before:w-1 before:h-5 before:rounded-md before:bg-[var(--primary)]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;87&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;before:absolute before:top-[0.75rem] before:left-[-1.125rem]&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;88&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;89&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{entry.data.title}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;90&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;91&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;92&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;93&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;&amp;lt;!-- metadata --&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;94&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;onload-animation&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;95&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;PostMetadata&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;96&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;mb-5&quot;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;97&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;published&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;={entry.data.published}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;98&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;updated&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;={entry.data.updated}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;99&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;tags&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;={entry.data.tags}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;100&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;                        &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;category&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;={entry.data.category}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;101&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;PostMetadata&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;102&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;entry.data.image &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;border-[var(--line-divider)] border-dashed border-b-[1px] mb-5&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;103&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;104&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;105&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;&amp;lt;!-- always show cover as long as it has one --&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;106&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;&amp;lt;!-- 使用自制 showcover 控制器控制头图的出现 --&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight mark&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;107&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{showcover &lt;/span&gt;&lt;span style=&quot;--0:#fb99a3&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; entry.data.image &lt;/span&gt;&lt;span style=&quot;--0:#fb99a3&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;108&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;ImageWrapper&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;post-cover&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;src&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{entry.data.image} &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;basePath&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{path.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;join&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;content/posts/&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;getDir&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(entry.id))} &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;mb-8 rounded-xl banner-container onload-animation&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;109&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;110&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;111&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;&amp;lt;!-- 自制内部头图 customcover--&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight mark&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;112&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{customcover &lt;/span&gt;&lt;span style=&quot;--0:#fb99a3&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;113&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;ImageWrapper&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;post-cover&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;src&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{entry.data.customcover} &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;basePath&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{path.&lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;join&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;content/posts/&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;getDir&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(entry.id))} &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;mb-8 rounded-xl banner-container onload-animation&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;114&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;115&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;116&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;            &lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;&amp;lt;!-- 头图调试代码&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;117&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;&amp;lt;pre&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;118&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;showcover（变量）: {showcover} (type: {typeof showcover})&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;119&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;entry.data.showcover: {entry.data.showcover} (type: {typeof entry.data.showcover})&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;120&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;&amp;lt;/pre&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;121&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;--&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;122&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;123&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;Markdown&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;mb-6 markdown-content onload-animation&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;124&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;Content&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; /&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;125&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;Markdown&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;126&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;127&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{licenseConfig.enable &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;License&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;title&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{entry.data.title} &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;slug&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{entry.slug} &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;pubDate&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{entry.data.published} &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;mb-6 rounded-xl license-container onload-animation&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;License&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;128&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;129&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;130&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;131&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;132&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;flex flex-col md:flex-row justify-between mb-4 gap-4 overflow-hidden w-full&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;133&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;href&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;={entry.data.nextSlug &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;getPostUrlBySlug&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(entry.data.nextSlug) &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;#&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;134&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;           &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class:list&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;={[&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;w-full font-bold overflow-hidden active:scale-95&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;, {&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;pointer-events-none&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;entry.data.nextSlug}]}&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;135&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{entry.data.nextSlug &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;btn-card rounded-2xl w-full h-[3.75rem] max-w-full px-4 flex items-center !justify-start gap-4&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;136&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;Icon&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;material-symbols:chevron-left-rounded&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;text-[2rem] text-[var(--primary)]&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; /&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;137&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;overflow-hidden transition overflow-ellipsis whitespace-nowrap max-w-[calc(100%_-_3rem)] text-black/75 dark:text-white/75&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;138&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{entry.data.nextTitle}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;139&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;140&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;141&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;142&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;143&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;href&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;={entry.data.prevSlug &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;?&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;getPostUrlBySlug&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;(entry.data.prevSlug) &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;#&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;144&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;           &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class:list&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;={[&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;w-full font-bold overflow-hidden active:scale-95&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;, {&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;pointer-events-none&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;!&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;entry.data.prevSlug}]}&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;145&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{entry.data.prevSlug &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;btn-card rounded-2xl w-full h-[3.75rem] max-w-full px-4 flex items-center !justify-end gap-4&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;146&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;overflow-hidden transition overflow-ellipsis whitespace-nowrap max-w-[calc(100%_-_3rem)] text-black/75 dark:text-white/75&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;147&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;{entry.data.prevTitle}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;148&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;149&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;                &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;Icon&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;material-symbols:chevron-right-rounded&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;class&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;text-[2rem] text-[var(--primary)]&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; /&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;150&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;            &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;151&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;a&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;152&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;div&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;153&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;154&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;MainGridLayout&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;</content:encoded><category>教程</category><category>网站</category></item><item><title>hCaptcha “强兼” reCaptcha？</title><link>https://blog.adclosenn.top/posts/hcaptcha-recaptchacompat/</link><guid isPermaLink="true">https://blog.adclosenn.top/posts/hcaptcha-recaptchacompat/</guid><description>一次出3个 hCaptcha？瞧瞧你干的好事！</description><pubDate>Wed, 13 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://blog.adclosenn.top/pic/hCaptcha-localhost-errkey.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;h2 id=&quot;强兼-google-recaptcha-失败&quot;&gt;强兼 Google reCaptcha 失败？&lt;/h2&gt;
&lt;p&gt;如你所见，这是 hCaptcha 无法验证的样子。当然，如果你在一个页面同时放上 &lt;a href=&quot;https://developers.google.com/recaptcha?hl=zh-cn&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Google reCaptcha&lt;/a&gt;（我的是 v2）和 &lt;a href=&quot;https://www.hcaptcha.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;hCaptcha&lt;/a&gt;，那么聪明的 hCaptcha 会 &lt;a href=&quot;https://docs.hcaptcha.com/configuration&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;开始兼容它&lt;/a&gt; 。
&lt;img src=&quot;https://blog.adclosenn.top/pic/hcaptcha-recaptchacompat-origin.png&quot; alt=&quot;hcaptcha-recaptchacompat-origin&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;译文：&lt;/strong&gt;&lt;br /&gt;
&lt;img src=&quot;https://blog.adclosenn.top/pic/hcaptcha-recaptchacompat-translated.png&quot; alt=&quot;hcaptcha-recaptchacompat-translated&quot; /&gt;&lt;/p&gt;
&lt;hr /&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.adclosenn.top/posts/captcha/&quot;&gt;posts/captcha/&lt;/a&gt;&lt;br /&gt;
而开启后却是这样的：
&lt;img src=&quot;https://blog.adclosenn.top/pic/hcaptcha-three-boxes.png&quot; alt=&quot;hcaptcha-three-boxes&quot; /&gt;&lt;/p&gt;
&lt;p&gt;没错，出现了 3 个 hCaptcha 框。而且出现的位置就在 reCaptcha 的位置。哇，强兼失败？&lt;/p&gt;
&lt;p&gt;byd 太气人了这。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&quot;解决方法&quot;&gt;解决方法&lt;/h2&gt;
&lt;p&gt;将 hCaptcha 的脚本请求 URL 加上 &lt;code&gt;?recaptchacompat=off&lt;/code&gt; 即可：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;html&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:72ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;script&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;    &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;src&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;https://hcaptcha.com/1/api.js?recaptchacompat=off&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;async&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;defer&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;--0:#85E89D&quot;&gt;script&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;</content:encoded><category>网站</category><category>验证</category><category>记录</category></item><item><title>教你免费获得一个企业域名邮箱</title><link>https://blog.adclosenn.top/posts/domain-email/</link><guid isPermaLink="true">https://blog.adclosenn.top/posts/domain-email/</guid><description>通过阿里云免费企业邮箱获得一个类似于 admin@github.com 类型的域名邮箱，可以接收也能发送邮件</description><pubDate>Mon, 11 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://blog.adclosenn.top/pic/aliyun-email-mxcheck.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;h2 id=&quot;前言&quot;&gt;前言&lt;/h2&gt;
&lt;p&gt;自从你上网冲浪接触邮箱以来，你或多或少都会见过这种邮箱：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;mailto:noreply@github.com&quot;&gt;noreply@github.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;mailto:notifications@github.com&quot;&gt;notifications@github.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;mailto:microsoft-noreply@microsoft.com&quot;&gt;microsoft-noreply@microsoft.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;mailto:noreply@steampowered.com&quot;&gt;noreply@steampowered.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;mailto:account-security-noreply@accountprotection.microsoft.com&quot;&gt;account-security-noreply@accountprotection.microsoft.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;等如类似 &lt;a href=&quot;mailto:xxx@qq.com&quot;&gt;xxx@qq.com&lt;/a&gt;, &lt;a href=&quot;mailto:xxx@bilibili.com&quot;&gt;xxx@bilibili.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;…&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;这些邮箱都是&lt;strong&gt;企业或组织自己域名&lt;/strong&gt;的邮箱，可以很清楚地体现出这封邮件来自哪个企业/组织。&lt;br /&gt;
那么，当我们普通人获得了一个域名，也能用这种自己域名的邮箱吗？答案是能的，可以用阿里云或网易的&lt;strong&gt;免费企业邮箱&lt;/strong&gt;，全免费，能用 IMAP/POP 和 SMTP 服务器给第三方邮箱客户端使用。&lt;/p&gt;
&lt;aside class=&quot;callout callout-warning&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;注意&lt;/p&gt;&lt;p&gt;本篇教程讲的获取邮箱的方法为&lt;strong&gt;阿里云国内站&lt;/strong&gt;，如果需要使用&lt;strong&gt;网易&lt;/strong&gt;的免费企业邮箱，请移步至 &lt;a href=&quot;https://2x.nz/posts/163-free-domain-email/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;2x.nz/posts/163-free-domain-email/&lt;/a&gt;&lt;/p&gt;&lt;/aside&gt;
&lt;h2 id=&quot;限制&quot;&gt;限制&lt;/h2&gt;
&lt;p&gt;推荐查看 &lt;a href=&quot;https://help.aliyun.com/document_detail/439236.html&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;普通账号常见参数 - 阿里云&lt;/a&gt; 。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;单账号可存储总邮件数：200 万封。&lt;/li&gt;
&lt;li&gt;单账号个人网盘空间：5 GB。&lt;/li&gt;
&lt;li&gt;每日最大发件数：&lt;strong&gt;未考察&lt;/strong&gt;，可能是一个域名用户(&lt;a href=&quot;mailto:a@b.com&quot;&gt;a@b.com&lt;/a&gt;) 200 封/天；可能是一个域名(*@b.com) 200 封/天。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;需求&quot;&gt;需求&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;一个&lt;strong&gt;已实名&lt;/strong&gt;的 &lt;a href=&quot;https://www.aliyun.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;阿里云&lt;/a&gt; 账号（不实名无法购买：&lt;code&gt;您还未实名认证，请务必先前往本页面右上角个人中心进行实名认证。&lt;/code&gt;）。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;阿里云仅支持 14 岁以上通过&lt;strong&gt;扫描支付宝二维码&lt;/strong&gt;、&lt;strong&gt;支付宝扫描脸部&lt;/strong&gt;、&lt;strong&gt;上传身份证正反面照片&lt;/strong&gt;进行实名认证。&lt;/li&gt;
&lt;li&gt;以下信息来自 &lt;a href=&quot;https://help.aliyun.com/zh/account/user-guide/individual-identities?spm=a2c4g.11186623.help-menu-35469.d_2_0_2_1.6fcc689dZlafVI&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;阿里云&lt;/a&gt; ：&lt;/li&gt;
&lt;li&gt;通过支付宝账号进行实名认证并不会自动将该支付宝账号与阿里云账号绑定用于支付。如果您希望在阿里云上使用支付宝进行支付，您仍需要手动将阿里云账号与您的支付宝账号进行绑定。&lt;/li&gt;
&lt;li&gt;绑定用于支付的支付宝账号可以是实名认证时使用的支付宝账号，也可以是其他支付宝账号。&lt;/li&gt;
&lt;li&gt;阿里云App仅支持个人支付宝授权认证。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;一个域名，可以为&lt;strong&gt;不是从阿里云购买&lt;/strong&gt;的域名（如 Spaceship、Namesilo），实测 &lt;code&gt;dpdns.org&lt;/code&gt; 域名也可以使用。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;一个能接收验证码的手机号。&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;开通企业邮服务&quot;&gt;开通企业邮服务&lt;/h2&gt;
&lt;h2 id=&quot;订购服务&quot;&gt;订购服务&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;访问 &lt;a href=&quot;https://exmail.aliyun.com/free&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;阿里邮箱&lt;/a&gt; ，滑到下面点击 &lt;strong&gt;立即抢购&lt;/strong&gt;，将会跳转到阿里云，如果阿里云未登录请登录。&lt;/li&gt;
&lt;li&gt;在订购页面选择必要配置，完成后点击 &lt;strong&gt;立即购买&lt;/strong&gt;：
&lt;ul&gt;
&lt;li&gt;选择 &lt;strong&gt;已有域名&lt;/strong&gt;，填入自己的域名，填完后往空白处点一下。&lt;code&gt;dpdns.org&lt;/code&gt; 也可以用。&lt;/li&gt;
&lt;li&gt;购买时长选择 &lt;strong&gt;5年&lt;/strong&gt;。
&lt;img src=&quot;https://blog.adclosenn.top/pic/aliyun-email-order-panel-1.png&quot; alt=&quot;aliyun-email-order-panel-1&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;如果你要纯免费，请&lt;strong&gt;不要&lt;/strong&gt;勾选 &lt;strong&gt;邮件推送&lt;/strong&gt;（默认未勾选）。阅读完 &lt;strong&gt;企业邮箱免费版 服务协议&lt;/strong&gt; 后，勾选它，并点击 &lt;strong&gt;去支付&lt;/strong&gt;。 &lt;img src=&quot;https://blog.adclosenn.top/pic/aliyun-email-order-panel-2.png&quot; alt=&quot;aliyun-email-order-panel-2&quot; /&gt;&lt;/li&gt;
&lt;li&gt;无需添加支付方式，点击右下角 &lt;strong&gt;支付&lt;/strong&gt; 即可。&lt;/li&gt;
&lt;li&gt;如果看到这个页面，代表你&lt;strong&gt;成功&lt;/strong&gt;地开通了企业邮服务。 &lt;img src=&quot;https://blog.adclosenn.top/pic/aliyun-email-order-successfully.png&quot; alt=&quot;aliyun-email-order-successfully&quot; /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;设置前置配置&quot;&gt;设置前置配置&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;在下方 &lt;strong&gt;使用须知&lt;/strong&gt; 中找到 &lt;strong&gt;进入管理控制台&lt;/strong&gt;，点击进入。 &lt;img src=&quot;https://blog.adclosenn.top/pic/aliyun-email-ordered-readme.png&quot; alt=&quot;aliyun-email-ordered-readme&quot; /&gt;&lt;/li&gt;
&lt;li&gt;点击刚刚填写的域名 &lt;img src=&quot;https://blog.adclosenn.top/pic/aliyun-email-product-list.png&quot; alt=&quot;aliyun-email-product-list&quot; /&gt;&lt;/li&gt;
&lt;li&gt;点击 &lt;strong&gt;设置解析&lt;/strong&gt;，将阿里云给出的 MX 等记录填入你的域名 DNS 提供商（我的是 Cloudflare）。完成后等待 DNS 记录的传播，然后点击 &lt;strong&gt;检查域名解析&lt;/strong&gt;，如果出来的是绿色的&lt;strong&gt;解析已生效&lt;/strong&gt;，证明你的 DNS 记录添加成功。 &lt;img src=&quot;https://blog.adclosenn.top/pic/aliyun-email-domain-record-verify.png&quot; alt=&quot;aliyun-email-domain-record-verify&quot; /&gt; &lt;img src=&quot;https://blog.adclosenn.top/pic/aliyun-email-setrecord-successfully.png&quot; alt=&quot;aliyun-email-setrecord-successfully&quot; /&gt;&lt;/li&gt;
&lt;li&gt;接着在 &lt;strong&gt;重置密码&lt;/strong&gt; 处设置一个管理员登录密码。&lt;strong&gt;密码长度8-64位，须同时包含大写、小写字母、数字、特殊字符中的任意三种，不能含有账号&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;复制 &lt;strong&gt;基本信息/管理员账号&lt;/strong&gt; 的地址，为 postmaster@你的域名。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;设置邮箱配置&quot;&gt;设置邮箱配置&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;点击进入 &lt;a href=&quot;https://qiye.aliyun.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;阿里邮箱登录入口&lt;/a&gt; ，用户名为刚才复制的管理员账号，密码为 &lt;a href=&quot;https://blog.adclosenn.top/posts/domain-email/#%E8%AE%BE%E7%BD%AE%E5%89%8D%E7%BD%AE%E9%85%8D%E7%BD%AE&quot;&gt;#设置前置配置&lt;/a&gt; 中第 4 步创建的密码。 &lt;img src=&quot;https://blog.adclosenn.top/pic/aliyun-email-postmaster-login.png&quot; alt=&quot;aliyun-email-postmaster-login&quot; /&gt;&lt;/li&gt;
&lt;li&gt;如果遇到&lt;strong&gt;需要绑定手机号&lt;/strong&gt;，请绑定。&lt;/li&gt;
&lt;li&gt;成功后会来到这个界面。 &lt;img src=&quot;https://blog.adclosenn.top/pic/aliyun-email-postmaster-admin-panel-menu.png&quot; alt=&quot;aliyun-email-postmaster-admin-panel-menu&quot; /&gt;&lt;/li&gt;
&lt;li&gt;来到左侧菜单，展开 &lt;strong&gt;组织与用户&lt;/strong&gt;，点击 &lt;strong&gt;员工账号管理&lt;/strong&gt;，填写用户信息。设置好后点击 &lt;strong&gt;保存&lt;/strong&gt; ：
&lt;ul&gt;
&lt;li&gt;姓名：随便填。&lt;/li&gt;
&lt;li&gt;默认邮件地址：填写你想用的名字。例如，我想用 &lt;code&gt;i@adclosenn.top&lt;/code&gt; 收发邮件，那么 &lt;strong&gt;默认邮件地址&lt;/strong&gt; 就应填写 &lt;code&gt;i&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;安全手机：可以不填。&lt;/li&gt;
&lt;li&gt;开启POP3/SMTP服务：如果你需要使用第三方邮箱客户端（如 QQ邮箱、163邮箱、Gmail、Outlook），请&lt;strong&gt;勾选&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;开启IMAP/SMTP服务：如果你需要使用第三方邮箱客户端（如 QQ邮箱、163邮箱、Gmail、Outlook），请&lt;strong&gt;勾选&lt;/strong&gt;。&lt;/li&gt;
&lt;li&gt;初次登录修改密码：&lt;strong&gt;不建议&lt;/strong&gt;开启。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;来到左侧菜单，展开 &lt;strong&gt;企业定制&lt;/strong&gt;，点击 &lt;strong&gt;域名管理&lt;/strong&gt;，点击上方 &lt;strong&gt;检查MX解析&lt;/strong&gt;，查看最下面的 &lt;strong&gt;TXT记录(DKIM)&lt;/strong&gt;，如果验证是&lt;strong&gt;失败&lt;/strong&gt;，则去 DNS 提供商内填写 TXT 记录信息。成功后会如图所示。如果之前曾经设置过其他邮箱提供商的 DNS 记录，需要删除原有的 DNS 记录，以避免产生冲突。 &lt;img src=&quot;https://blog.adclosenn.top/pic/aliyun-email-mxcheck.png&quot; alt=&quot;aliyun-email-mxcheck.png&quot; /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;使用企业邮箱&quot;&gt;使用企业邮箱&lt;/h2&gt;
&lt;h2 id=&quot;直接使用邮箱&quot;&gt;直接使用邮箱&lt;/h2&gt;
&lt;p&gt;如果你希望直接使用阿里邮箱首发短信，&lt;strong&gt;而不是&lt;/strong&gt;通过QQ邮箱、163邮箱、Gmail等第三方客户端代收发邮件，那么可以直接点击右上角的 &lt;strong&gt;退出登录&lt;/strong&gt; 退出 postmaster 账户。&lt;br /&gt;
打开 &lt;a href=&quot;https://qiye.aliyun.com/alimail/auth/login&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;qiye.aliyun.com/alimail/auth/login&lt;/a&gt; ，登录你刚刚创建好的用户，然后收发邮件。&lt;/p&gt;</content:encoded><category>邮箱</category><category>域名</category><category>教程</category></item><item><title>进行 Folo 订阅源认证</title><link>https://blog.adclosenn.top/posts/folo_verify/</link><guid isPermaLink="true">https://blog.adclosenn.top/posts/folo_verify/</guid><description>Folo（Follow）是一个 RSS 订阅源合集软件，用它可以快速浏览新鲜事，也可以认证自己的 RSS 订阅源</description><pubDate>Sun, 10 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://blog.adclosenn.top/pic/folo-rss-verify-panel.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;h2 id=&quot;前言&quot;&gt;前言&lt;/h2&gt;
&lt;aside class=&quot;callout callout-tip&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;提示&lt;/p&gt;&lt;p&gt;Folo 也就是之前的 Follow，只不过改名成了 Folo。&lt;/p&gt;&lt;/aside&gt;
&lt;p&gt;如你所见，这是 Folo 的订阅源认证卡片，代表着这个 RSS 订阅源未经认证（没有与&lt;strong&gt;订阅源提供者&lt;/strong&gt;的 Folo 账户进行绑定）。&lt;br /&gt;
所以我们现在的目标是 &lt;strong&gt;将订阅源与自己的 Folo 账户绑定，认证这个订阅源&lt;/strong&gt; 。&lt;/p&gt;
&lt;p&gt;以下&lt;strong&gt;会有 3 种认证方式&lt;/strong&gt;可选：&lt;strong&gt;纯文本&lt;/strong&gt;、&lt;strong&gt;描述&lt;/strong&gt;、&lt;strong&gt;RSS 标签&lt;/strong&gt;，请根据自己的博客框架或 RSS 生成器选择。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RSS 标签&lt;/strong&gt; 这种方法适用于悄无声息地认证。&lt;br /&gt;
&lt;strong&gt;纯文本&lt;/strong&gt; 这种方法适合大部分博客。&lt;/p&gt;
&lt;p&gt;本站使用 &lt;a href=&quot;https://blog.adclosenn.top/posts/folo_verify/#rss-%E6%A0%87%E7%AD%BE&quot;&gt;RSS 标签&lt;/a&gt; 方法进行订阅源认证：&lt;a href=&quot;https://blog.adclosenn.top/rss.xml&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;rss.xml&lt;/a&gt; 。&lt;/p&gt;
&lt;h2 id=&quot;纯文本认证&quot;&gt;纯文本认证&lt;/h2&gt;
&lt;p&gt;这种方法极其简单，你只需要发一篇文章到你的博客或者其他平台即可。本质上就是通过读取你的 RSS 订阅文件，查看里面是否有 Folo 给出的文本。所以认证文本&lt;strong&gt;必须&lt;/strong&gt;要可在 RSS 订阅文件找到。&lt;br /&gt;
&lt;a href=&quot;https://blog.adclosenn.top/rss.xml&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://blog.adclosenn.top/rss.xml&lt;/a&gt; 这个是本站的 RSS 订阅源地址，你可以在最下面的 Footer 处找到。&lt;/p&gt;
&lt;p&gt;你需要将类似如这串文本（可在 Folo 中复制）粘贴到你的文章中（不要使用我的，每个人的都不一样）：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;plaintext&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:192ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;This message is used to verify that this feed (feedId:177350379949135872) belongs to me (userId:83370505718413312). Join me in enjoying the next generation information browser https://folo.is.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;描述认证&quot;&gt;描述认证&lt;/h2&gt;
&lt;p&gt;也就是 Folo 认证卡片中的中间那个。&lt;br /&gt;
这个方法需要把认证语句添加到 RSS 生成器的 &lt;code&gt;&amp;lt;description&amp;gt;&amp;lt;/description&amp;gt;&lt;/code&gt; 处。&lt;br /&gt;
如果你使用的和本站相同框架 &lt;a href=&quot;https://astro.build/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Astro&lt;/a&gt; ，那么可以到 &lt;code&gt;src/config.ts&lt;/code&gt;，在 &lt;code&gt;subtitle&lt;/code&gt; 添加认证语句。&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;ts&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:113ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;export&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;const&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#79B8FF&quot;&gt;siteConfig&lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;:&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;SiteConfig&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; {&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;title: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;Ad_closeNN 的小站&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;subtitle: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;Ad_closeNN の 小站，时不时会刷新一些野生东西 | ✨ 欢迎友链，天天开心！ ✨ | feedId:177350379949135872+userId:83370505718413312&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;lang: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&quot;zh_CN&quot;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;--0:#99A0A6&quot;&gt;// Language code, e.g. &apos;en&apos;, &apos;zh-CN&apos;, &apos;ja&apos;, etc.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;}&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;aside class=&quot;callout callout-note&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;代码来源&lt;/p&gt;&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame has-title&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;src/pages/rss.xml.ts&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;ts&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:57ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;rss&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;({&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;title: siteConfig.title,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight mark&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;description: siteConfig.subtitle &lt;/span&gt;&lt;span style=&quot;--0:#fb99a3&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&apos;No description&apos;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;site: context.site,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;items: feed,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;        &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;...&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;})&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;&lt;/aside&gt;
&lt;h2 id=&quot;rss-标签&quot;&gt;RSS 标签&lt;/h2&gt;
&lt;p&gt;如果你使用的和本站相同框架 &lt;a href=&quot;https://astro.build/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Astro&lt;/a&gt; ，那么可以到 &lt;code&gt;src/config.ts&lt;/code&gt; 中的第 6 行，在 &lt;code&gt;&amp;lt;/language&amp;gt;&lt;/code&gt; 后添加 &lt;code&gt;&amp;lt;follow_challenge&amp;gt;&amp;lt;/follow_challenge&amp;gt;&lt;/code&gt; 进行认证：&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame has-title&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;span class=&quot;title&quot;&gt;src/pages/rss.xml.ts&lt;/span&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;ts&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:164ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;  &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#B392F0&quot;&gt;rss&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;({&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;title: siteConfig.title,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;description: siteConfig.subtitle &lt;/span&gt;&lt;span style=&quot;--0:#F97583&quot;&gt;||&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt; &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;&apos;No description&apos;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;site: context.site,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;items: feed,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line highlight mark&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;customData: &lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;`&amp;lt;language&amp;gt;${&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;siteConfig&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;lang&lt;/span&gt;&lt;span style=&quot;--0:#9ECBFF&quot;&gt;}&amp;lt;/language&amp;gt;&amp;lt;follow_challenge&amp;gt;&amp;lt;feedId&amp;gt;177350379949135872&amp;lt;/feedId&amp;gt;&amp;lt;userId&amp;gt;83370505718413312&amp;lt;/userId&amp;gt;&amp;lt;/follow_challenge&amp;gt;`&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span class=&quot;indent&quot;&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;--0:#E1E4E8&quot;&gt;});&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src=&quot;https://blog.adclosenn.top/pic/folo-rss-verify-panel-xmlformat.png&quot; alt=&quot;folo-rss-verify-panel-xmlformat&quot; /&gt;&lt;/p&gt;
&lt;h2 id=&quot;结束&quot;&gt;结束&lt;/h2&gt;
&lt;p&gt;写完并 push，等网站部署完毕后，点击 Folo 右下加的 &lt;strong&gt;验证&lt;/strong&gt; 按钮，如果通过即为&lt;strong&gt;验证成功&lt;/strong&gt;，恭喜你。&lt;/p&gt;</content:encoded><category>认证</category><category>网站</category><category>教程</category></item><item><title>手把手自托管 Umami</title><link>https://blog.adclosenn.top/posts/umami/</link><guid isPermaLink="true">https://blog.adclosenn.top/posts/umami/</guid><description>Umami 是一个精美的网站统计分析工具，我们可以自托管它以解除官方限制</description><pubDate>Thu, 07 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://blog.adclosenn.top/pic/umami-screenshot.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;h2 id=&quot;自行托管-umami&quot;&gt;自行托管 Umami&lt;/h2&gt;
&lt;h2 id=&quot;什么是-umami&quot;&gt;什么是 Umami&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://umami.is/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Umami&lt;/a&gt; 是一个&lt;a href=&quot;https://github.com/umami-software/umami&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;开源的&lt;/a&gt;的网站统计工具。与 &lt;a href=&quot;https://developers.google.com/analytics&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Google Analytics&lt;/a&gt; 类似，但比 Google Analytics 的网页 UI 更简洁、精美。&lt;/p&gt;
&lt;h2 id=&quot;为什么要自托管&quot;&gt;为什么要自托管&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://umami.is/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Umami&lt;/a&gt; 可搭配 &lt;a href=&quot;https://cloud.umami.is/signup&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Umami Cloud&lt;/a&gt; 托管 Umami App。但是这种方式相比自托管有诸多限制：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;事件：100,000 次/月&lt;/li&gt;
&lt;li&gt;被分析的网站：3 个/账号&lt;/li&gt;
&lt;li&gt;数据保留：6 个月&lt;/li&gt;
&lt;li&gt;有限的 API 访问&lt;/li&gt;
&lt;li&gt;…更多可在 &lt;a href=&quot;https://umami.is/pricing&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;umami/pricing&lt;/a&gt; 中查看&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&quot;条件&quot;&gt;条件&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;一个托管平台账号（任选其一）。本教程以 &lt;a href=&quot;https://www.netlify.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Netlify&lt;/a&gt; 为托管平台演示。
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.netlify.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Netlify&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://vercel.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Vercel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.cloudflare.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Cloudflare&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://render.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Render&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://railway.app/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Railway&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;…等&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;一个 &lt;a href=&quot;https://github.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;GitHub&lt;/a&gt; 账号。&lt;/li&gt;
&lt;li&gt;一个数据库。本教程以 &lt;a href=&quot;https://neon.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Neon&lt;/a&gt; 为数据库演示。&lt;/li&gt;
&lt;/ul&gt;
&lt;aside class=&quot;callout callout-warning&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;注意&lt;/p&gt;&lt;p&gt;Neon 仍有使用限制：&lt;a href=&quot;https://neon.com/pricing&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;https://neon.com/pricing&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;500 MB 存储空间&lt;/li&gt;
&lt;/ul&gt;&lt;/aside&gt;
&lt;h2 id=&quot;自托管&quot;&gt;自托管&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;来到 &lt;a href=&quot;https://console.neon.tech/signup&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Neon/signup&lt;/a&gt; 注册一个账号（注册过的直接去到 &lt;a href=&quot;https://console.neon.tech/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;console.neon.tech&lt;/a&gt; ）。&lt;/li&gt;
&lt;li&gt;注册后来到 &lt;a href=&quot;https://console.neon.tech/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;console.neon.tech&lt;/a&gt;。&lt;/li&gt;
&lt;li&gt;点击 &lt;strong&gt;Create Project&lt;/strong&gt; 按钮。 &lt;img src=&quot;https://blog.adclosenn.top/pic/neon-noproject-create-project.png&quot; alt=&quot;neon-noproject-create-project&quot; /&gt;&lt;/li&gt;
&lt;li&gt;取一个项目名字，填到 &lt;strong&gt;Project name&lt;/strong&gt;。&lt;strong&gt;Cloud service provider&lt;/strong&gt; 和 &lt;strong&gt;Region&lt;/strong&gt; 随便选一个即可。然后点击 &lt;strong&gt;Create&lt;/strong&gt; 按钮创建项目。 &lt;img src=&quot;https://blog.adclosenn.top/pic/neon-create-project-menu.png&quot; alt=&quot;neon-create-project-menu&quot; /&gt;&lt;/li&gt;
&lt;li&gt;在项目的 &lt;strong&gt;Dashboard&lt;/strong&gt; 内点击右上角的 &lt;strong&gt;Connect&lt;/strong&gt; 按钮，在 Connect 页面下方点击 &lt;strong&gt;Show password&lt;/strong&gt;，将 &lt;code&gt;psql &apos;&lt;/code&gt; 后，末尾 &lt;code&gt;&apos;&lt;/code&gt; 前的内容复制下来。 &lt;img src=&quot;https://blog.adclosenn.top/pic/neon-connect-to-your-database.png&quot; alt=&quot;neon-connect-to-your-database&quot; /&gt;&lt;/li&gt;
&lt;li&gt;访问 &lt;a href=&quot;https://github.com/umami-software/umami/fork&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;@umami-software/umami&lt;/a&gt; ，将 umami 仓库 fork 到你的账户下。&lt;/li&gt;
&lt;li&gt;访问 &lt;a href=&quot;https://app.netlify.com/start&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Netlify/start&lt;/a&gt;，在 &lt;strong&gt;Let’s deploy your project with…&lt;/strong&gt; 里选择 &lt;strong&gt;GitHub&lt;/strong&gt; 并授权到你的 GitHub 账户。&lt;/li&gt;
&lt;li&gt;选择刚刚 fork 的 umami 仓库 &lt;img src=&quot;https://blog.adclosenn.top/pic/netlify-deploy-menu-umami.png&quot; alt=&quot;netlify-deploy-menu-umami&quot; /&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Project name&lt;/strong&gt; 随便填，&lt;strong&gt;Build Command&lt;/strong&gt; 请填写 &lt;code&gt;yarn run build&lt;/code&gt;（而不是系统给的 &lt;code&gt;pnpm run build-app&lt;/code&gt;）。&lt;/li&gt;
&lt;li&gt;往下找到 &lt;strong&gt;Environment variables&lt;/strong&gt;，点击 &lt;strong&gt;Add environment variables&lt;/strong&gt;，选择 &lt;strong&gt;Add ket/value pairs&lt;/strong&gt;。&lt;code&gt;Key&lt;/code&gt; 中填写 &lt;code&gt;DATABASE_URL&lt;/code&gt;，&lt;code&gt;Value&lt;/code&gt; 填写在 &lt;a href=&quot;https://console.neon.tech/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Neon Console&lt;/a&gt; （步骤5）中复制的链接。填写完毕后点击 &lt;strong&gt;Deploy umami&lt;/strong&gt; 按钮来部署。 &lt;img src=&quot;https://blog.adclosenn.top/pic/netlify-create-project-detail.png&quot; alt=&quot;netlify-create-project-detail&quot; /&gt;&lt;/li&gt;
&lt;li&gt;如果有自定义域名可以绑定自定义域名，优选等一些列步骤。这里就不多赘述了。&lt;/li&gt;
&lt;li&gt;访问部署好的 Umami 网页，第一次进入需要输入&lt;strong&gt;默认&lt;/strong&gt;账号和密码。登录 Umami 后台成功后请尽快修改密码。
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Username&lt;/strong&gt;：&lt;code&gt;admin&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Password&lt;/strong&gt;：&lt;code&gt;umami&lt;/code&gt;
&lt;img src=&quot;https://blog.adclosenn.top/pic/umami-login-panel.png&quot; alt=&quot;umami-login-panel&quot; /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;登录成功后，可以在右上角切换&lt;strong&gt;显示语言&lt;/strong&gt;。 &lt;img src=&quot;https://blog.adclosenn.top/pic/umami-language-panel.png&quot; alt=&quot;umami-language-panel&quot; /&gt;&lt;/li&gt;
&lt;li&gt;至此，你已成功自托管一个 Umami 网站统计工具。恭喜你。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;注意事项&quot;&gt;注意事项&lt;/h2&gt;
&lt;aside class=&quot;callout callout-caution&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;提示&lt;/p&gt;&lt;h3 id=&quot;非必须&quot;&gt;[非必须]&lt;/h3&gt;&lt;p&gt;Umami 对于从台湾地区传来的请求，默认展示为 &lt;strong&gt;ROC Flag + 台湾&lt;/strong&gt;。如需更改，请手动更改 Umami 文件。&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;/public/datamaps.world.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/public/images/country/tw.png&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/public/intl/country/zh-CN.json&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;/public/intl/country/zh-TW.json&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/aside&gt;</content:encoded><category>自行部署</category><category>教程</category></item><item><title>新域名！</title><link>https://blog.adclosenn.top/posts/new-domain/</link><guid isPermaLink="true">https://blog.adclosenn.top/posts/new-domain/</guid><description>获得了一个新域名 *这使我充满了决心</description><pubDate>Wed, 06 Aug 2025 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;img src=&quot;https://blog.adclosenn.top/pic/domain-inlist-adclosenn.top.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;&lt;h2 id=&quot;dev-域名&quot;&gt;.dev 域名&lt;/h2&gt;
&lt;aside class=&quot;callout callout-note&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;感谢&lt;/p&gt;&lt;p&gt;感谢 &lt;a href=&quot;https://blog.mckero.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;MC_Kero blog&lt;/a&gt; 的站长 &lt;a href=&quot;https://github.com/MCKero6423&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;MC_Kero&lt;/a&gt; 提供的 &lt;a href=&quot;https://education.github.com/pack&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;GitHub Student Developer Pack&lt;/a&gt; 免费&lt;strong&gt;一年域名&lt;/strong&gt;福利！&lt;del&gt;都给我去 Follow 他&lt;/del&gt;&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;域名：&lt;code&gt;adclosenn.dev&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;时长：1 年（2025-08-23 13:11:27 UTC -&amp;gt; 2026-08-23 13:11:27 UTC）&lt;/li&gt;
&lt;/ul&gt;&lt;/aside&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/MCKero6423/fuwari&quot;&gt;GitHub: MCKero6423/fuwari&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;目前访问 &lt;a href=&quot;https://adclosenn.dev/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;adclosenn.dev&lt;/a&gt; 会直接 302 跳转回 adclosenn.top。&lt;/p&gt;
&lt;h2 id=&quot;xyz-域名&quot;&gt;.xyz 域名&lt;/h2&gt;
&lt;aside class=&quot;callout callout-warning&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;注意&lt;/p&gt;&lt;p&gt;如无特殊指代，阿里云指&lt;a href=&quot;https://wanwang.aliyun.com/domain&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;阿里云（国内站）&lt;/a&gt;。&lt;/p&gt;&lt;/aside&gt;
&lt;p&gt;之前在&lt;a href=&quot;https://wanwang.aliyun.com/domain&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;阿里云&lt;/a&gt;买了个8位纯数字的 &lt;code&gt;.xyz&lt;/code&gt; 域名，现在买了 &lt;code&gt;.top&lt;/code&gt; 后觉得特亏。一是在阿里云里面买任何域名都需要实名认证（14+），还得填一些实际身份的信息，我了个去，填完这些信息都够我在 Spaceship 买两次域名了，真是够麻烦的。。。&lt;/p&gt;
&lt;h2 id=&quot;top-域名&quot;&gt;.top 域名&lt;/h2&gt;
&lt;p&gt;买域名后直接开始搭博客，真香~如果不出意外的话，这个域名将会一直用下去。&lt;del&gt;毕竟&lt;code&gt;.top&lt;/code&gt;确实便宜&lt;/del&gt;&lt;/p&gt;
&lt;p&gt;付款的时候甚至不用绑国外卡，能直接用支付宝付款，更不用&lt;strong&gt;实名认证&lt;/strong&gt;。另外，Spaceship 的 Web UI 做的是真漂亮、简洁。不过毕竟 Spaceship 是一家 &lt;strong&gt;“ICANN认证的注册商，自2022年以来为客户服务”&lt;/strong&gt; 的初创公司，没有隔壁像 &lt;a href=&quot;https://www.namesilo.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Namesilo（2009）&lt;/a&gt;、&lt;a href=&quot;https://www.namecheap.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Namecheap（2001）&lt;/a&gt; 等那么老牌，这么现代的 UI 也挺对。&lt;/p&gt;
&lt;h2 id=&quot;信息&quot;&gt;信息&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;来源：&lt;a href=&quot;https://www.spaceship.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Spaceship&lt;/a&gt; （这是真能省钱）&lt;/li&gt;
&lt;li&gt;域名：&lt;a href=&quot;https://blog.adclosenn.top/&quot;&gt;adclosenn.top&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;首年花费：7.33 人民币（汇率：1.00 USD = 7.23002 CNY） &lt;img src=&quot;https://blog.adclosenn.top/pic/domain-adclosenn.top-alipay.jpg&quot; alt=&quot;domain-adclosenn.top-alipay.jpg&quot; /&gt;&lt;/li&gt;
&lt;li&gt;次年花费：29.07 人民币 （¥27.63 域名费+¥1.44 ICANN 费）&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.alibabacloud.com/zh/whois&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Whois（阿里云国际站）&lt;/a&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;plaintext&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:86ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Domain Name: adclosenn.top&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;2&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Registry Domain ID: D20250806G10001G_53477846-top&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Registrar WHOIS Server: whois.spaceship.com&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;4&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Registrar URL: http://www.spaceship.com&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Updated Date: 2025-08-06T05:28:21Z&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Creation Date: 2025-08-06T04:49:06Z&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;7&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Registrar Registration Expiration Date: 2026-08-06T04:49:06Z&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Registrar: Spaceship, Inc.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;9&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Registrar IANA ID: 3862&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Reseller:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;11&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Domain Status: addPeriod https://icann.org/epp#addPeriod&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;13&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Registrant State/Province: Capital Region&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;14&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Registrant Country: IS&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;15&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Name Server: malavika.ns.cloudflare.com&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;16&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Name Server: rustam.ns.cloudflare.com&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;17&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;DNSSEC: unsigned&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;18&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Registrar Abuse Contact Email: abuse@spaceship.com&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;19&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Registrar Abuse Contact Phone: +1.16027723958&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;20&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;h2 id=&quot;优惠码&quot;&gt;优惠码&lt;/h2&gt;
&lt;p&gt;这次购买使用的是 &lt;code&gt;SPSR86&lt;/code&gt;，省了&lt;strong&gt;1.66 人民币&lt;/strong&gt;（原价￥8.99）。代码来自 &lt;a href=&quot;https://zh-hans.tld-list.com/%E4%BC%98%E6%83%A0%E7%A0%81&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;tld-list.com&lt;/a&gt;。&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id=&quot;新域名的由来&quot;&gt;新域名的由来&lt;/h2&gt;
&lt;p&gt;&lt;del&gt;便宜！&lt;/del&gt;&lt;/p&gt;
&lt;h2 id=&quot;202582---引导&quot;&gt;2025/8/2 - 引导&lt;/h2&gt;
&lt;p&gt;2号晚上，跟着&lt;a href=&quot;https://space.bilibili.com/325903362&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;二叉树树&lt;/a&gt;博客搞起了&lt;a href=&quot;https://2x.nz/posts/proxy-tgweb/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;TG反代&lt;/a&gt;。脑餐的是，我并没有把登录页面放在子路径下，而是直接暴露在公网上了。之前并不知道子域名可以被扫出来，所以也没做好防护。因为搭建好后并没什么问题，所以直接去睡觉了。&lt;/p&gt;
&lt;h2 id=&quot;202583---预告&quot;&gt;2025/8/3 - 预告&lt;/h2&gt;
&lt;p&gt;早上起来一看发现仍然没问题，TG反代也能正常访问。&lt;/p&gt;
&lt;p&gt;起床打开电脑，输入 TGWeb 反代地址，Chrome 直接开出了个大红。嗯，确实是大红。 &lt;img src=&quot;https://blog.adclosenn.top/pic/domain-19991230.xyz-chromeabuse-page.png&quot; alt=&quot;domain-19991230.xyz-chromeabuse-page&quot; /&gt;&lt;/p&gt;
&lt;p&gt;不过仍然没收到来自任何关于&lt;strong&gt;钓鱼&lt;/strong&gt;、&lt;strong&gt;滥用&lt;/strong&gt;的邮件。&lt;/p&gt;
&lt;p&gt;飞到 &lt;a href=&quot;https://transparencyreport.google.com/safe-browsing/search&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;Google Safe Browsing 透明度报告&lt;/a&gt; ，一看检查，发现已经被列入了危险列表。 &lt;img src=&quot;https://blog.adclosenn.top/pic/domain-19991230.xyz-googlesafe-unsafe.png&quot; alt=&quot;domain-19991230.xyz-googlesafe-unsafe&quot; /&gt;&lt;/p&gt;
&lt;p&gt;不过因为是自用的，也就无视风险接着用了。&lt;/p&gt;
&lt;h2 id=&quot;202584---开始&quot;&gt;2025/8/4 - 开始&lt;/h2&gt;
&lt;p&gt;2025年8月4日早上醒来，发现 &lt;a href=&quot;https://uptimerobot.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;UptimeRobot&lt;/a&gt; 给我发了很多封邮件，全都是 DOWN 的（突然 UP 的是因为 DNS 等缓存问题，后续全都是 DOWN） &lt;img src=&quot;https://blog.adclosenn.top/pic/domain-serverHold-qqmail.png&quot; alt=&quot;domain-serverHold-qqmail&quot; /&gt;&lt;/p&gt;
&lt;p&gt;我立马就意识到不对劲了。用 &lt;a href=&quot;https://www.itdog.cn/&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;itdog&lt;/a&gt; 查 NS 记录，发现全都&lt;strong&gt;无解析记录&lt;/strong&gt;。后来 Whois 发现域名居然被 XYZ 注册局 &lt;strong&gt;serverHold&lt;/strong&gt; 了（&lt;a href=&quot;https://www.icann.org/resources/pages/epp-status-codes-2014-06-16-en/#serverHold&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;注册局暂停解析&lt;/a&gt;）。&lt;/p&gt;
&lt;p&gt;马上找到了阿里云开了个工单。阿里云工程师告诉我要自己去 XYZ 注册局的 &lt;a href=&quot;https://gen.xyz/unsuspend&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;gen.xyz/unsuspend&lt;/a&gt; 解决。&lt;/p&gt;
&lt;p&gt;由于解决 suspend 需要提供证据：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;“ &lt;strong&gt;Please note that domains will only be reviewed and reactivated when requests are filled out completely and domains have been delisted from all blocklists.&lt;/strong&gt; ”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;“ &lt;strong&gt;请注意，仅当请求完整填写并且域名已从所有阻止列表中删除后，才会审核并重新激活域名。&lt;/strong&gt; ”&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;所以我在 &lt;code&gt;2025/8/7 16:29&lt;/code&gt; 的时候提交部分证据和申请信息到了 &lt;a href=&quot;mailto:xyzabuse@gen.xyz&quot;&gt;xyzabuse@gen.xyz&lt;/a&gt; 。&lt;/p&gt;
&lt;h2 id=&quot;202585---申诉&quot;&gt;2025/8/5 - 申诉&lt;/h2&gt;
&lt;p&gt;早上一起来，UptimeRobot 仍未发送 UP 通知。再看昨天发给 gen.xyz 的邮件，也没有回复我。索性去 &lt;a href=&quot;https://gen.xyz/unsuspend&quot; target=&quot;_blank&quot; rel=&quot;noopener noreferrer&quot;&gt;gen.xyz/unsuspend&lt;/a&gt; 解决。&lt;/p&gt;
&lt;p&gt;解决前，我把几个安全机构的 Support 都发了一遍邮件，让他们重新检查。回头再看 Google Safe Browsing 透明度报告，&lt;code&gt;19991230.xyz&lt;/code&gt;及其他除&lt;code&gt;web.&lt;/code&gt;外的域，都已经变为绿色正常。&lt;/p&gt;
&lt;p&gt;16:00 点后，来到 gen.xyz，填了填报告，submit了。而这居然还有坑？&lt;/p&gt;
&lt;aside class=&quot;callout callout-warning&quot;&gt;&lt;p class=&quot;callout-title&quot;&gt;注意&lt;/p&gt;&lt;p&gt;当时的情况如此，并非等于现在情况。&lt;/p&gt;&lt;/aside&gt;
&lt;ol&gt;
&lt;li&gt;网站看起来是不用登录就能 Submit 的，因为下面让你填 &lt;strong&gt;名字&lt;/strong&gt; 和 &lt;strong&gt;邮箱&lt;/strong&gt;，实际上没登录时，等你 Submit 后会说你未填写用户名和邮箱地址。注册好 XYZ 账号后，再次 Submit 即可成功提交。（吗？&lt;/li&gt;
&lt;li&gt;登录 XYZ 账号后 Submit，会返回 &lt;code&gt;500 Internal Server Error&lt;/code&gt;，&lt;strong&gt;但实际上貌似已成功发送了你的请求&lt;/strong&gt;，真是奇怪。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&quot;202586---复活&quot;&gt;2025/8/6 - 复活&lt;/h2&gt;
&lt;p&gt;早上再次查看，发现 UptimeRobot 已经发了很多封 UP 邮件。&lt;strong&gt;好耶，域名复活了！&lt;/strong&gt;&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;plaintext&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:233ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Tuesday, August 5, 2025 - 20:08 PM&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;2&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;XYZ Anti-Abuse Agent 656322, Staff&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;4&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Subject: Request for Removal of serverHold Status for Domain 19991230.xyz&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Subject / Abuse Type:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;7&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Hello Ad_closeNN,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;9&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Thank you for your message. This domain has been unsuspended and is now active. This domain was flagged by Spamhaus and has since dropped off due to the site being inactive. Please check Spamhaus DBL after 24 hrs to ensure delisting.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;11&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Please note that it will be added to a watch list for any potential violations of our anti-abuse policies, and we will continue to monitor this domain.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;13&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;14&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Also note, it can take up to 24 hours for the WHOIS information to update.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;15&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;16&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Please submit a new support ticket at https://gen.xyz/abuse if you have any further evidence or information.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;17&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;18&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;Kind Regards,&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;19&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;XYZ Anti-Abuse Team&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;20&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;xyz_abuse@gen.xyz&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;21&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;M-F 9am-5pm PT&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;译文（Google 翻译 &lt;del&gt;生草机&lt;/del&gt;）&lt;/p&gt;
&lt;div class=&quot;expressive-code&quot;&gt;&lt;figure class=&quot;frame&quot;&gt;&lt;figcaption class=&quot;header&quot;&gt;&lt;/figcaption&gt;&lt;pre data-language=&quot;plaintext&quot; class=&quot;wrap&quot; style=&quot;--ecMaxLine:95ch&quot;&gt;&lt;code&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;1&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;2025年8月5日，星期二，晚上8:08&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;2&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;3&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;XYZ 反滥用代理 656322，工作人员&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;4&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;5&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;主题：请求移除域名 19991230.xyz 的服务器暂停状态&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;6&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;主题/滥用类型：&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;7&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;8&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;您好，Ad_closeNN，&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;9&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;10&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;感谢您的留言。此域名已解除暂停状态，现已恢复正常。此域名曾被 Spamhaus 标记，由于网站处于非活跃状态，现已下架。请在 24 小时后查看 Spamhaus 的 DBL，以确保将其下架。&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;11&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;12&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;请注意，我们将把该域名添加到监视列表中，以查找任何可能违反我们反滥用政策的行为，并持续监控该域名。&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;13&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;14&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;另请注意，WHOIS 信息更新可能需要最多 24 小时。&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;15&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;16&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;如果您有任何进一步的证据或信息，请访问 https://gen.xyz/abuse 提交新的支持工单。&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;17&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;18&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;此致，&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;19&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;20&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;XYZ 反滥用团队&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;21&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;xyz_abuse@gen.xyz&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;ec-line&quot;&gt;&lt;div class=&quot;gutter&quot;&gt;&lt;div class=&quot;ln&quot;&gt;22&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;code&quot;&gt;&lt;span style=&quot;--0:#e1e4e8&quot;&gt;周一至周五 上午 9 点至下午 5 点（太平洋时间）&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;p&gt;然后到了中午，看着旧 &lt;code&gt;.xyz&lt;/code&gt; 域名，因为这个域名被标记过，之后可能也会被持续严格视奸，所以想到了买一个新的域名。于是到 Namesilo、NameCheap、Spaceship 看，发现英文域名+ &lt;code&gt;.top&lt;/code&gt; 比较便宜。Google 一搜优惠代码，真找到了个能用的。于是就以 ￥7.33 拿下了 &lt;code&gt;adclosenn.top&lt;/code&gt; 的首年~~~&lt;/p&gt;
&lt;h2 id=&quot;结语&quot;&gt;结语&lt;/h2&gt;
&lt;p&gt;这件事经历了4天（&lt;strong&gt;8/2&lt;/strong&gt;~&lt;strong&gt;8/6&lt;/strong&gt;），让我体会到了从域名被 &lt;code&gt;serverHold&lt;/code&gt; 到 &lt;code&gt;active&lt;/code&gt; 的过程。&lt;/p&gt;
&lt;p&gt;所以… 搞反代千万不能把登录等敏感页面直接暴露在公网（推荐自用密码+/xxx） 😡😡😡&lt;/p&gt;
&lt;p&gt;血一般的教训 😡😡😡 我都没想过会 &lt;code&gt;serverHold&lt;/code&gt; 😡😡😡 我真的没想过钓鱼 😡😡😡&lt;/p&gt;
&lt;hr /&gt;</content:encoded><category>域名</category><category>记录</category></item></channel></rss>