<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://tgsc.space/</id>
    <title>ThoughtLite</title>
    <updated>2026-10-25T03:51:34.044Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <author>
        <name>Your Name</name>
        <email>hi@your.mail</email>
        <uri>https://your.website</uri>
    </author>
    <link rel="alternate" href="https://tgsc.space/"/>
    <subtitle>A modern Astro theme focused on content creation.</subtitle>
    <logo>https://tgsc.space/favicon-96x96.png</logo>
    <icon>https://tgsc.space/favicon.ico</icon>
    <rights>CC BY-NC-ND 4.0 © 2025 Your Name</rights>
    <entry>
        <title type="html"><![CDATA[Site Configuration Guide]]></title>
        <id>en/configuration</id>
        <link href="https://tgsc.space/note/configuration"/>
        <updated>2026-03-21T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Essential configuration guide for the theme, covering site information, display effects, icon generation, and other core configuration items.]]></summary>
        <content type="html"><![CDATA[<section class="heading" data-heading-rank="2" aria-labelledby="configuration-reference"><h2 id="configuration-reference"><a href="#configuration-reference">Configuration Reference</a></h2>
<p>The theme's custom configuration is located in the <code>site.config.ts</code> file in the root directory. Below are the detailed descriptions for each configuration item:</p>
<div class="table-wrapper">




















































































<table><thead><tr><th align="left">Configuration Item</th><th align="left">Type</th><th align="left">Description</th></tr></thead><tbody><tr><td align="left"><code>title</code></td><td align="left"><code>string</code></td><td align="left">Site title.</td></tr><tr><td align="left"><code>prologue</code></td><td align="left"><code>string</code></td><td align="left">Homepage slogan; supports <code>\n</code> for line breaks.</td></tr><tr><td align="left"><code>author.name</code></td><td align="left"><code>string</code></td><td align="left">Author name.</td></tr><tr><td align="left"><code>author.email</code></td><td align="left"><code>string</code></td><td align="left">Author email.</td></tr><tr><td align="left"><code>author.link</code></td><td align="left"><code>string</code></td><td align="left">Author's personal homepage link.</td></tr><tr><td align="left"><code>description</code></td><td align="left"><code>string</code></td><td align="left">Site description.</td></tr><tr><td align="left"><code>copyright.type</code></td><td align="left"><code>CCLicenseType</code></td><td align="left"><a href="https://creativecommons.org/chooser/" rel="nofollow noopener noreferrer" target="_blank">Creative Commons 4.0</a> license type.</td></tr><tr><td align="left"><code>copyright.year</code></td><td align="left"><code>string</code></td><td align="left">Copyright year or year range.</td></tr><tr><td align="left"><code>timezone</code></td><td align="left"><code>string</code></td><td align="left">Site display timezone, refer to <a href="https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List" rel="nofollow noopener noreferrer" target="_blank">Timezone List</a>.</td></tr><tr><td align="left"><code>i18n</code></td><td align="left"><code>object</code></td><td align="left">See <a href="internationalization">Internationalization Configuration Guide</a> for details.</td></tr><tr><td align="left"><code>pagination</code></td><td align="left"><code>Record&#x3C;Section, number></code></td><td align="left">Number of items displayed per page for each section.</td></tr><tr><td align="left"><code>heatmap</code></td><td align="left"><code>Heatmap</code></td><td align="left">Heatmap display configuration.</td></tr><tr><td align="left"><code>feed.section</code></td><td align="left"><code>"*" | Section[]</code></td><td align="left">Content sections included in the feed; <code>*</code> indicates all.</td></tr><tr><td align="left"><code>feed.limit</code></td><td align="left"><code>number</code></td><td align="left">Maximum number of items displayed in the feed.</td></tr><tr><td align="left"><code>latest</code></td><td align="left"><code>"*" | Section[]</code></td><td align="left">Sections displayed in the "Latest" on the homepage; <code>*</code> indicates all.</td></tr></tbody></table></div>
<section class="heading" data-heading-rank="3" aria-labelledby="type-descriptions"><h3 id="type-descriptions"><a href="#type-descriptions">Type Descriptions</a></h3>
<section class="heading" data-heading-rank="4" aria-labelledby="cclicensetype"><h4 id="cclicensetype"><a href="#cclicensetype"><code>CCLicenseType</code></a></h4>
<ul>
<li><code>"CC0 1.0"</code></li>
<li><code>"CC BY 4.0"</code></li>
<li><code>"CC BY-SA 4.0"</code></li>
<li><code>"CC BY-NC 4.0"</code></li>
<li><code>"CC BY-NC-SA 4.0"</code></li>
<li><code>"CC BY-ND 4.0"</code></li>
<li><code>"CC BY-NC-ND 4.0"</code></li>
</ul>
</section><section class="heading" data-heading-rank="4" aria-labelledby="section"><h4 id="section"><a href="#section"><code>Section</code></a></h4>
<ul>
<li><code>"note"</code></li>
<li><code>"jotting"</code></li>
</ul>
</section><section class="heading" data-heading-rank="4" aria-labelledby="heatmap"><h4 id="heatmap"><a href="#heatmap"><code>Heatmap</code></a></h4>
<div class="table-wrapper">
























<table><thead><tr><th align="left"><code>unit</code></th><th><code>weeks</code></th><th><code>years</code></th></tr></thead><tbody><tr><td align="left"><code>day</code></td><td>Total number of weeks to display</td><td>×</td></tr><tr><td align="left"><code>week</code></td><td><em>Fixed display of 51 weeks</em></td><td>×</td></tr><tr><td align="left"><code>month</code></td><td>×</td><td>Total number of years to display</td></tr></tbody></table></div>
</section></section></section><section class="heading" data-heading-rank="2" aria-labelledby="icon-generation"><h2 id="icon-generation"><a href="#icon-generation">Icon Generation</a></h2>
<p>It is recommended to use <a href="https://realfavicongenerator.net/" rel="nofollow noopener noreferrer" target="_blank">RealFaviconGenerator</a> to generate icons, download and extract the following files, and overwrite them to the <code>/public</code> directory:</p>
<ul>
<li><code>favicon-96x96.png</code></li>
<li><code>favicon.ico</code></li>
<li><code>favicon.svg</code></li>
</ul>
<section class="heading" data-heading-rank="3" aria-labelledby="homepage-logo"><h3 id="homepage-logo"><a href="#homepage-logo">Homepage Logo</a></h3>
<p>The reference location is in <code>src/pages/[...locale]/index.astro</code>, imported using the <code>import Logo from "$icons/site-logo.svg"</code> statement.</p>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="astro"><code><span class="line"><span style="color:#24292E;--shiki-dark:#808080">&#x3C;</span><span style="color:#005CC5;--shiki-dark:#4EC9B0">Logo</span><span style="color:#6F42C1;--shiki-dark:#9CDCFE"> width</span><span style="color:#24292E;--shiki-dark:#D4D4D4">=</span><span style="color:#24292E;--shiki-dark:#569CD6">{</span><span style="color:#005CC5;--shiki-dark:#B5CEA8">100</span><span style="color:#24292E;--shiki-dark:#569CD6">}</span><span style="color:#24292E;--shiki-dark:#808080"> /></span></span></code></pre><button type="button" data="<Logo width={100} />" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<p>Configuration can be done through the following methods:</p>
<ol>
<li>Replace <code>src/icons/site-logo.svg</code> with an SVG file.
<ul>
<li>It is recommended to use <code>stroke="currentColor"</code> to adapt to light/dark theme changes.</li>
</ul>
</li>
<li>Modify to image import.</li>
<li>Directly replace or remove this part of the content.</li>
</ol></section></section>]]></content>
        <category term="Configuration"/>
        <category term="Astro"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Internationalization Configuration Guide]]></title>
        <id>en/internationalization</id>
        <link href="https://tgsc.space/note/internationalization"/>
        <updated>2026-03-21T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Detailed guide on configuring multi-language support for the theme, including changing default language, adding new languages, managing translation files, and configuring content directory structure.]]></summary>
        <content type="html"><![CDATA[<p>The theme has built-in multi-language support, with the default language being <strong>English (<code>en</code>)</strong>.</p>
<p>Internationalization core configuration is located in the <code>i18n</code> field of <code>site.config.ts</code>, where you specify the list of enabled languages and the default language:</p>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="ts"><code><span class="line"><span style="color:#D73A49;--shiki-dark:#C586C0">export</span><span style="color:#D73A49;--shiki-dark:#C586C0"> default</span><span style="color:#6F42C1;--shiki-dark:#DCDCAA"> siteConfig</span><span style="color:#24292E;--shiki-dark:#D4D4D4">({</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#9CDCFE">  i18n:</span><span style="color:#24292E;--shiki-dark:#D4D4D4"> {</span></span>
<span class="line"><span style="color:#6A737D;--shiki-dark:#6A9955">    // Array order determines the display order in the language picker</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#9CDCFE">    locales:</span><span style="color:#24292E;--shiki-dark:#D4D4D4"> [</span><span style="color:#032F62;--shiki-dark:#CE9178">"en"</span><span style="color:#24292E;--shiki-dark:#D4D4D4">, </span><span style="color:#032F62;--shiki-dark:#CE9178">"zh-cn"</span><span style="color:#24292E;--shiki-dark:#D4D4D4">, </span><span style="color:#032F62;--shiki-dark:#CE9178">"ja"</span><span style="color:#24292E;--shiki-dark:#D4D4D4">],</span></span>
<span class="line"><span style="color:#6A737D;--shiki-dark:#6A9955">    // Default language must be a value from `locales`</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#9CDCFE">    defaultLocale:</span><span style="color:#032F62;--shiki-dark:#CE9178"> "en"</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#D4D4D4">  },</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#D4D4D4">});</span></span></code></pre><button type="button" data="export default siteConfig({
  i18n: {
    // Array order determines the display order in the language picker
    locales: [&#x22;en&#x22;, &#x22;zh-cn&#x22;, &#x22;ja&#x22;],
    // Default language must be a value from &#x60;locales&#x60;
    defaultLocale: &#x22;en&#x22;
  },
});" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<section class="heading" data-heading-rank="2" aria-labelledby="single-language-mode"><h2 id="single-language-mode"><a href="#single-language-mode">Single Language Mode</a></h2>
<p>If you only need to use a single language for your site, you can streamline the file structure through the following steps to optimize your creative workflow.</p>
<div class="markdown-alert markdown-alert-warning">
<p class="markdown-alert-title"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg><strong>Warning</strong></p>
<p>Do not directly delete the <code>i18n</code> configuration field, as this will cause the theme to malfunction!</p>
</div>
<p>Keep only the desired language in <code>i18n.locales</code> in <code>site.config.ts</code>, and remove other entries:</p>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="ts"><code><span class="line"><span style="color:#D73A49;--shiki-dark:#C586C0">export</span><span style="color:#D73A49;--shiki-dark:#C586C0"> default</span><span style="color:#6F42C1;--shiki-dark:#DCDCAA"> siteConfig</span><span style="color:#24292E;--shiki-dark:#D4D4D4">({</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#9CDCFE">  i18n:</span><span style="color:#24292E;--shiki-dark:#D4D4D4"> {</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#9CDCFE">    locales:</span><span style="color:#24292E;--shiki-dark:#D4D4D4"> [</span><span style="color:#032F62;--shiki-dark:#CE9178">"en"</span><span style="color:#24292E;--shiki-dark:#D4D4D4">],</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#9CDCFE">    defaultLocale:</span><span style="color:#032F62;--shiki-dark:#CE9178"> "en"</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#D4D4D4">  },</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#D4D4D4">});</span></span></code></pre><button type="button" data="export default siteConfig({
  i18n: {
    locales: [&#x22;en&#x22;],
    defaultLocale: &#x22;en&#x22;
  },
});" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<section class="heading" data-heading-rank="3" aria-labelledby="adjusting-content-directory"><h3 id="adjusting-content-directory"><a href="#adjusting-content-directory">Adjusting Content Directory</a></h3>
<p>In single language mode, language subdirectories are no longer needed. You can place content files directly under their respective section directories.</p>
<p>Here is a comparison of the directory structure for the "Note" section:</p>
<p><strong>Multi-language mode requires language directories under the section:</strong></p>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>content/</span></span>
<span class="line"><span>└── note/</span></span>
<span class="line"><span>    ├── en/</span></span>
<span class="line"><span>    │   └── post.md</span></span>
<span class="line"><span>    ├── ja/</span></span>
<span class="line"><span>    │   └── post.md</span></span>
<span class="line"><span>    └── zh-cn/</span></span>
<span class="line"><span>        └── post.md</span></span></code></pre><button type="button" data="content/
└── note/
    ├── en/
    │   └── post.md
    ├── ja/
    │   └── post.md
    └── zh-cn/
        └── post.md" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<p><strong>Single language directory structure removes the language level and stores files directly:</strong></p>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>content/</span></span>
<span class="line"><span>└── note/</span></span>
<span class="line"><span>    └── post.md</span></span></code></pre><button type="button" data="content/
└── note/
    └── post.md" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<div class="markdown-alert markdown-alert-tip">
<p class="markdown-alert-title"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z"></path></svg><strong>Tip</strong></p>
<ul>
<li>In single language mode, the language switcher will be automatically hidden.</li>
<li>Translation files already created for other languages can be kept; they will not affect site operation.</li>
</ul>
</div>
</section></section><section class="heading" data-heading-rank="2" aria-labelledby="adding-a-new-language"><h2 id="adding-a-new-language"><a href="#adding-a-new-language">Adding a New Language</a></h2>
<p>To add a language not preset in the site, please follow these configuration steps (using Klingon <code>tlh</code> as an example):</p>
<section class="heading" data-heading-rank="3" aria-labelledby="1-register-new-language"><h3 id="1-register-new-language"><a href="#1-register-new-language">1. Register New Language</a></h3>
<p>Add the new language to the <code>i18n.locales</code> array in <code>site.config.ts</code>:</p>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="ts"><code><span class="line"><span style="color:#D73A49;--shiki-dark:#C586C0">export</span><span style="color:#D73A49;--shiki-dark:#C586C0"> default</span><span style="color:#6F42C1;--shiki-dark:#DCDCAA"> siteConfig</span><span style="color:#24292E;--shiki-dark:#D4D4D4">({</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#9CDCFE">  i18n:</span><span style="color:#24292E;--shiki-dark:#D4D4D4"> {</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#9CDCFE">    locales:</span><span style="color:#24292E;--shiki-dark:#D4D4D4"> [</span><span style="color:#032F62;--shiki-dark:#CE9178">"en"</span><span style="color:#24292E;--shiki-dark:#D4D4D4">, </span><span style="color:#032F62;--shiki-dark:#CE9178">"zh-cn"</span><span style="color:#24292E;--shiki-dark:#D4D4D4">, </span><span style="color:#032F62;--shiki-dark:#CE9178">"ja"</span><span style="color:#24292E;--shiki-dark:#D4D4D4">, </span><span style="color:#032F62;--shiki-dark:#CE9178">"tlh"</span><span style="color:#24292E;--shiki-dark:#D4D4D4">],</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#9CDCFE">    defaultLocale:</span><span style="color:#032F62;--shiki-dark:#CE9178"> "en"</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#D4D4D4">  },</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#D4D4D4">});</span></span></code></pre><button type="button" data="export default siteConfig({
  i18n: {
    locales: [&#x22;en&#x22;, &#x22;zh-cn&#x22;, &#x22;ja&#x22;, &#x22;tlh&#x22;],
    defaultLocale: &#x22;en&#x22;
  },
});" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
</section><section class="heading" data-heading-rank="3" aria-labelledby="2-create-translation-files"><h3 id="2-create-translation-files"><a href="#2-create-translation-files">2. Create Translation Files</a></h3>
<p>Create a corresponding <strong>YAML</strong> translation file in the <code>src/i18n/</code> directory. Refer to existing translation files in the <code>i18n</code> directory for the format:</p>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="yaml"><code><span class="line"><span style="color:#6A737D;--shiki-dark:#6A9955"># src/i18n/tlh/index.yaml</span></span>
<span class="line"></span>
<span class="line"><span style="color:#6A737D;--shiki-dark:#6A9955"># Note: Add the `language` field as the display name for the current language</span></span>
<span class="line"><span style="color:#22863A;--shiki-dark:#569CD6">language</span><span style="color:#24292E;--shiki-dark:#D4D4D4">: </span><span style="color:#032F62;--shiki-dark:#CE9178">tlhIngan Hol</span></span>
<span class="line"><span style="color:#6F42C1;--shiki-dark:#D4D4D4">...</span></span></code></pre><button type="button" data="# src/i18n/tlh/index.yaml

# Note: Add the &#x60;language&#x60; field as the display name for the current language
language: tlhIngan Hol
..." class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<p>Import the new translation files in <code>src/i18n/index.ts</code>:</p>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="ts"><code><span class="line"><span style="color:#D73A49;--shiki-dark:#C586C0">import</span><span style="color:#24292E;--shiki-dark:#9CDCFE"> tlh</span><span style="color:#D73A49;--shiki-dark:#C586C0"> from</span><span style="color:#032F62;--shiki-dark:#CE9178"> "./tlh/index.yaml"</span><span style="color:#24292E;--shiki-dark:#D4D4D4">;</span></span>
<span class="line"><span style="color:#D73A49;--shiki-dark:#C586C0">import</span><span style="color:#24292E;--shiki-dark:#9CDCFE"> tlhScript</span><span style="color:#D73A49;--shiki-dark:#C586C0"> from</span><span style="color:#032F62;--shiki-dark:#CE9178"> "./tlh/script.yaml"</span><span style="color:#24292E;--shiki-dark:#D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color:#D73A49;--shiki-dark:#569CD6">const</span><span style="color:#005CC5;--shiki-dark:#4FC1FF"> translations</span><span style="color:#D73A49;--shiki-dark:#D4D4D4"> =</span><span style="color:#24292E;--shiki-dark:#D4D4D4"> {</span></span>
<span class="line"><span style="color:#D73A49;--shiki-dark:#D4D4D4">  ...</span><span style="color:#24292E;--shiki-dark:#D4D4D4">,</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#9CDCFE">  tlh:</span><span style="color:#24292E;--shiki-dark:#D4D4D4"> {</span></span>
<span class="line"><span style="color:#D73A49;--shiki-dark:#D4D4D4">    ...</span><span style="color:#24292E;--shiki-dark:#9CDCFE">tlh</span><span style="color:#24292E;--shiki-dark:#D4D4D4">,</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#9CDCFE">    script:</span><span style="color:#24292E;--shiki-dark:#9CDCFE"> tlhScript</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#D4D4D4">  }</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#D4D4D4">};</span></span></code></pre><button type="button" data="import tlh from &#x22;./tlh/index.yaml&#x22;;
import tlhScript from &#x22;./tlh/script.yaml&#x22;;

const translations = {
  ...,
  tlh: {
    ...tlh,
    script: tlhScript
  }
};" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
</section><section class="heading" data-heading-rank="3" aria-labelledby="3-create-content-language-subdirectories"><h3 id="3-create-content-language-subdirectories"><a href="#3-create-content-language-subdirectories">3. Create Content Language Subdirectories</a></h3>
<p>Create corresponding language directories under each content section:</p>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>content/</span></span>
<span class="line"><span>├── note/tlh/</span></span>
<span class="line"><span>├── jotting/tlh/</span></span>
<span class="line"><span>├── information/tlh/</span></span>
<span class="line"><span>└── preface/tlh/</span></span></code></pre><button type="button" data="content/
├── note/tlh/
├── jotting/tlh/
├── information/tlh/
└── preface/tlh/" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
</section><section class="heading" data-heading-rank="3" aria-labelledby="4-add-fonts"><h3 id="4-add-fonts"><a href="#4-add-fonts">4. Add Fonts</a></h3>
<p>If the new language requires specific fonts, please register the new font in <code>experimental.fonts</code> in <code>astro.config.ts</code>:</p>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="ts"><code><span class="line"><span style="color:#24292E;--shiki-dark:#D4D4D4">{</span></span>
<span class="line"><span style="color:#6F42C1;--shiki-dark:#C8C8C8">  name</span><span style="color:#24292E;--shiki-dark:#D4D4D4">: </span><span style="color:#032F62;--shiki-dark:#CE9178">"Noto Serif TLH"</span><span style="color:#24292E;--shiki-dark:#D4D4D4">,</span></span>
<span class="line"><span style="color:#6F42C1;--shiki-dark:#C8C8C8">  provider</span><span style="color:#24292E;--shiki-dark:#D4D4D4">: </span><span style="color:#6F42C1;--shiki-dark:#DCDCAA">SpecificFontProvider</span><span style="color:#24292E;--shiki-dark:#D4D4D4">(),</span></span>
<span class="line"><span style="color:#6F42C1;--shiki-dark:#C8C8C8">  weights</span><span style="color:#24292E;--shiki-dark:#D4D4D4">: [</span><span style="color:#005CC5;--shiki-dark:#B5CEA8">400</span><span style="color:#24292E;--shiki-dark:#D4D4D4">, </span><span style="color:#005CC5;--shiki-dark:#B5CEA8">700</span><span style="color:#24292E;--shiki-dark:#D4D4D4">],</span></span>
<span class="line"><span style="color:#6F42C1;--shiki-dark:#C8C8C8">  fallbacks</span><span style="color:#24292E;--shiki-dark:#D4D4D4">: [</span><span style="color:#032F62;--shiki-dark:#CE9178">"serif"</span><span style="color:#24292E;--shiki-dark:#D4D4D4">],</span></span>
<span class="line"><span style="color:#6F42C1;--shiki-dark:#C8C8C8">  cssVariable</span><span style="color:#24292E;--shiki-dark:#D4D4D4">: </span><span style="color:#032F62;--shiki-dark:#CE9178">"--font-noto-serif-tlh"</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#D4D4D4">}</span></span></code></pre><button type="button" data="{
  name: &#x22;Noto Serif TLH&#x22;,
  provider: SpecificFontProvider(),
  weights: [400, 700],
  fallbacks: [&#x22;serif&#x22;],
  cssVariable: &#x22;--font-noto-serif-tlh&#x22;
}" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<p>And add the font mapping in <code>src/layouts/App.astro</code>:</p>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="ts"><code><span class="line"><span style="color:#6A737D;--shiki-dark:#6A9955">// src/layouts/App.astro</span></span>
<span class="line"><span style="color:#D73A49;--shiki-dark:#569CD6">const</span><span style="color:#005CC5;--shiki-dark:#4FC1FF"> mainFonts</span><span style="color:#D73A49;--shiki-dark:#D4D4D4">:</span><span style="color:#6F42C1;--shiki-dark:#4EC9B0"> Record</span><span style="color:#24292E;--shiki-dark:#D4D4D4">&#x3C;</span><span style="color:#005CC5;--shiki-dark:#4EC9B0">string</span><span style="color:#24292E;--shiki-dark:#D4D4D4">, </span><span style="color:#6F42C1;--shiki-dark:#4EC9B0">CssVariable</span><span style="color:#24292E;--shiki-dark:#D4D4D4">> </span><span style="color:#D73A49;--shiki-dark:#D4D4D4">=</span><span style="color:#24292E;--shiki-dark:#D4D4D4"> {</span></span>
<span class="line"><span style="color:#D73A49;--shiki-dark:#D4D4D4">  ...</span><span style="color:#24292E;--shiki-dark:#D4D4D4">,</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#9CDCFE">  tlh:</span><span style="color:#032F62;--shiki-dark:#CE9178"> "--font-noto-serif-tlh"</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#D4D4D4">};</span></span></code></pre><button type="button" data="// src/layouts/App.astro
const mainFonts: Record<string, CssVariable> = {
  ...,
  tlh: &#x22;--font-noto-serif-tlh&#x22;
};" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<p>If you need to support Open Graph image generation for this language, you need to add the font file link in <code>src/graph/index.ts</code>:</p>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="ts"><code><span class="line"><span style="color:#6A737D;--shiki-dark:#6A9955">// Locale-specific font URLs</span></span>
<span class="line"><span style="color:#D73A49;--shiki-dark:#569CD6">const</span><span style="color:#005CC5;--shiki-dark:#4FC1FF"> fonts</span><span style="color:#D73A49;--shiki-dark:#D4D4D4">:</span><span style="color:#6F42C1;--shiki-dark:#4EC9B0"> Record</span><span style="color:#24292E;--shiki-dark:#D4D4D4">&#x3C;</span><span style="color:#005CC5;--shiki-dark:#4EC9B0">string</span><span style="color:#24292E;--shiki-dark:#D4D4D4">, </span><span style="color:#005CC5;--shiki-dark:#4EC9B0">string</span><span style="color:#24292E;--shiki-dark:#D4D4D4">> </span><span style="color:#D73A49;--shiki-dark:#D4D4D4">=</span><span style="color:#24292E;--shiki-dark:#D4D4D4"> {</span></span>
<span class="line"><span style="color:#D73A49;--shiki-dark:#D4D4D4">  ...</span><span style="color:#24292E;--shiki-dark:#D4D4D4">,</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#9CDCFE">  tlh:</span><span style="color:#032F62;--shiki-dark:#CE9178"> "https://....otf"</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#D4D4D4">};</span></span></code></pre><button type="button" data="// Locale-specific font URLs
const fonts: Record<string, string> = {
  ...,
  tlh: &#x22;https://....otf&#x22;
};" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div></section></section>]]></content>
        <category term="Configuration"/>
        <category term="Astro"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Markdown Image Handling]]></title>
        <id>en/image</id>
        <link href="https://tgsc.space/jotting/image"/>
        <updated>2026-02-27T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Demonstrates three ways to reference images in Markdown—relative paths, absolute paths, and external URLs—showcasing image optimization and management best practices.]]></summary>
        <content type="html"><![CDATA[<p>Images in Markdown body text can be referenced from three sources:</p>
<section class="heading" data-heading-rank="3" aria-labelledby="relative-path"><h3 id="relative-path"><a href="#relative-path">Relative Path</a></h3>
<p>This approach is beneficial for content organization and management, and Astro will optimize the images.</p>
<p>For example, to insert an image in <code>image.md</code>:</p>
<p>Create an <code>image</code> directory and move <code>image.md</code> into it, renaming it <code>index.md</code>. Astro will automatically treat <code>index.md</code> as the default content for that directory, so the ID remains <code>image</code>.</p>
<p>Then place image files such as <code>photo.jpg</code> in the <code>image</code> directory, forming the following file structure:</p>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>image</span></span>
<span class="line"><span>├── index.md</span></span>
<span class="line"><span>└── photo.jpg</span></span></code></pre><button type="button" data="image
├── index.md
└── photo.jpg" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<p>Finally, use a relative path to insert the image in <code>index.md</code>:</p>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="md"><code><span class="line"><span style="color:#24292E;--shiki-dark:#D4D4D4">![</span><span style="color:#032F62;--shiki-light-text-decoration:underline;--shiki-dark:#CE9178;--shiki-dark-text-decoration:inherit">Image description</span><span style="color:#24292E;--shiki-dark:#D4D4D4">](</span><span style="color:#24292E;--shiki-light-text-decoration:underline;--shiki-dark:#D4D4D4;--shiki-dark-text-decoration:underline">photo.jpg</span><span style="color:#24292E;--shiki-dark:#D4D4D4">)</span></span></code></pre><button type="button" data="![Image description](photo.jpg)" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<figure><img alt="Image description" loading="lazy" decoding="async" width="3872" height="2592" src="https://tgsc.space/_astro/photo.CYupSRtF_1onKAn.webp" srcset=""><figcaption>Image description</figcaption></figure>
<blockquote>
<p>Photo source: <a href="https://www.pexels.com/photo/white-sailboat-on-water-273886/" rel="nofollow noopener noreferrer" target="_blank">Pexels</a></p>
</blockquote>
</section><section class="heading" data-heading-rank="3" aria-labelledby="absolute-path"><h3 id="absolute-path"><a href="#absolute-path">Absolute Path</a></h3>
<p>Images can be stored in the <code>/public</code> directory, in which case Astro will not optimize them.</p>
<p>Insert using an absolute path:</p>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="md"><code><span class="line"><span style="color:#24292E;--shiki-dark:#D4D4D4">![</span><span style="color:#032F62;--shiki-light-text-decoration:underline;--shiki-dark:#CE9178;--shiki-dark-text-decoration:inherit">Favicon</span><span style="color:#24292E;--shiki-dark:#D4D4D4">](</span><span style="color:#24292E;--shiki-light-text-decoration:underline;--shiki-dark:#D4D4D4;--shiki-dark-text-decoration:underline">/favicon-96x96.png</span><span style="color:#24292E;--shiki-dark:#D4D4D4">)</span></span></code></pre><button type="button" data="![Favicon](/favicon-96x96.png)" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<figure><img src="https://tgsc.space/favicon-96x96.png" alt="Favicon"><figcaption>Favicon</figcaption></figure>
</section><section class="heading" data-heading-rank="3" aria-labelledby="external-image-hosting"><h3 id="external-image-hosting"><a href="#external-image-hosting">External Image Hosting</a></h3>
<p>If images are hosted on an external service, use the image URL directly:</p>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="md"><code><span class="line"><span style="color:#24292E;--shiki-dark:#D4D4D4">![</span><span style="color:#032F62;--shiki-light-text-decoration:underline;--shiki-dark:#CE9178;--shiki-dark-text-decoration:inherit">Sample image</span><span style="color:#24292E;--shiki-dark:#D4D4D4">](</span><span style="color:#24292E;--shiki-light-text-decoration:underline;--shiki-dark:#D4D4D4;--shiki-dark-text-decoration:underline">https://picsum.photos/1600/900?random=1</span><span style="color:#24292E;--shiki-dark:#D4D4D4">)</span></span></code></pre><button type="button" data="![Sample image](https://picsum.photos/1600/900?random=1)" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<figure><img src="https://picsum.photos/1600/900?random=1" alt="Sample image"><figcaption>Sample image</figcaption></figure>
<blockquote>
<p>Random photos from: <a href="https://picsum.photos/" rel="nofollow noopener noreferrer" target="_blank">Picsum</a></p>
</blockquote></section>]]></content>
        <category term="Content"/>
        <category term="Demo"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Content Creation Guide]]></title>
        <id>en/content</id>
        <link href="https://tgsc.space/note/content"/>
        <updated>2026-01-26T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Comprehensive guide to the theme's three sections: Notes, Jottings, and Information, helping users understand content types and publishing standards.]]></summary>
        <content type="html"><![CDATA[<p>The theme's content can be divided into three sections: Notes, Jottings, and Information. Each section carries different content types and publishing purposes, designed to meet diverse expression and reading needs.</p>
<section class="heading" data-heading-rank="2" aria-labelledby="notes"><h2 id="notes"><a href="#notes">Notes</a></h2>
<p>"Notes" is the <strong>core section</strong> of this theme. It focuses on carrying and displaying <strong>carefully conceived, content-rich long-form works</strong>.</p>
<p>It is strongly recommended to publish <strong>structurally complete, deeply argued or narratively rich original articles</strong> in this section. This includes but is not limited to: in-depth book/movie reviews, thematic research, complete story creation, detailed experience sharing, systematic opinion discourse, etc.</p>
<p>Authors are encouraged to invest time in polishing content, pursuing depth, breadth, and quality. It is the main area for readers to obtain core valuable content.</p>
</section><section class="heading" data-heading-rank="2" aria-labelledby="jottings"><h2 id="jottings"><a href="#jottings">Jottings</a></h2>
<p>"Jottings" aims to provide a <strong>lightweight, immediate</strong> recording space for capturing and sharing <strong>scattered thoughts, momentary inspiration, daily observations, or brief insights</strong>.</p>
<p>Content form is free and flexible, <strong>usually short and concise</strong>, which can be a few sentences of insights, a scene sketch, a fragmented idea that hasn't formed a system, or immediate reading/life notes.</p>
</section><section class="heading" data-heading-rank="2" aria-labelledby="information"><h2 id="information"><a href="#information">Information</a></h2>
<p>Informational text contains four parts. If you remove the corresponding file, the corresponding area including the title will not be displayed on the site.</p>
<section class="heading" data-heading-rank="3" aria-labelledby="preface"><h3 id="preface"><a href="#preface">Preface</a></h3>
<p>"Preface" will be displayed on the site homepage as the <strong>first impression</strong> for visitors to understand you and the site. The homepage only displays the latest preface content, and clicking on the date allows you to view the <strong>preface history</strong>.</p>
<p>You can talk about your <strong>life updates</strong>, <strong>insights</strong> from reading and watching, <strong>journey</strong> of site maintenance, etc. You don't need to be too formal, but you can use this to convey the site's <strong>foundational emotions</strong> and <strong>creative philosophy</strong>.</p>
<p>Of course, you can also use this method to notify the site's <strong>latest updates</strong> or <strong>important announcements</strong>.</p>
<p>It is recommended to use timestamps or serial numbers to name preface files. Although the program will not directly use them for sorting, it helps with maintenance and version management.</p>
</section><section class="heading" data-heading-rank="3" aria-labelledby="introduction"><h3 id="introduction"><a href="#introduction">Introduction</a></h3>
<p>"Introduction" is an important window to showcase the <strong>site's characteristics</strong> and <strong>value proposition</strong>.</p>
<p>You can describe the site's <strong>creation background</strong>, <strong>core positioning</strong>, <strong>future vision</strong>, and even display <strong>personal resume</strong>, as well as the emotions or viewpoints you hope to convey through this platform.</p>
</section><section class="heading" data-heading-rank="3" aria-labelledby="linkroll"><h3 id="linkroll"><a href="#linkroll">Linkroll</a></h3>
<p>"Linkroll" is used to display websites and resources. This is not only a recommendation for <strong>quality content</strong>, but also an important way to build <strong>internet community</strong> connections.</p>
<p>Here you can elaborate on your recommendation criteria and management methods for external links, providing visitors with opportunities for extended reading, making it an important part of the site.</p>
<blockquote>
<p>For more information about the <code>Linkroll</code> component, please refer to the <a href="/note/linkroll">Linkroll Component Guide</a></p>
</blockquote>
</section><section class="heading" data-heading-rank="3" aria-labelledby="policy"><h3 id="policy"><a href="#policy">Policy</a></h3>
<p>"Policy" is important content for establishing site <strong>compliance</strong> and clarifying <strong>responsibility relationships</strong>.</p>
<p>It explains the website's privacy policy, terms of service, disclaimers and other key information, ensuring the legality and transparency of website operations.</p></section></section>]]></content>
        <category term="Content"/>
        <category term="Demo"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Markdown Extension Manual]]></title>
        <id>en/markdown</id>
        <link href="https://tgsc.space/jotting/markdown"/>
        <updated>2025-11-24T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Detailed guide to extended Markdown syntax features in the theme.]]></summary>
        <content type="html"><![CDATA[<p>Astro uses <a href="https://github.com/remarkjs/remark" rel="nofollow noopener noreferrer" target="_blank">remark</a> as its Markdown engine, providing a plugin configuration interface in <code>astro.config.ts</code>.</p>
<p>The theme includes the following plugins for syntax extensions:</p>
<section class="heading" data-heading-rank="2" aria-labelledby="insertion"><h2 id="insertion"><a href="#insertion">Insertion</a></h2>
<blockquote>
<p>Plugin: <a href="https://www.npmjs.com/package/remark-ins" rel="nofollow noopener noreferrer" target="_blank"><code>remark-ins</code></a></p>
</blockquote>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>++Inserted content++</span></span></code></pre><button type="button" data="++Inserted content++" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<p><ins class="remark-ins">Inserted content</ins></p>
</section><section class="heading" data-heading-rank="2" aria-labelledby="marking"><h2 id="marking"><a href="#marking">Marking</a></h2>
<blockquote>
<p>Plugin: <a href="https://www.npmjs.com/package/remark-flexible-markers" rel="nofollow noopener noreferrer" target="_blank"><code>remark-flexible-markers</code></a></p>
</blockquote>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>==Marked content==</span></span></code></pre><button type="button" data="==Marked content==" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<p><mark class="flexible-marker flexible-marker-default">Marked content</mark></p>
</section><section class="heading" data-heading-rank="2" aria-labelledby="ruby"><h2 id="ruby"><a href="#ruby">Ruby</a></h2>
<blockquote>
<p>Plugin: <a href="https://www.npmjs.com/package/@tuyuritio/remark-ruby" rel="nofollow noopener noreferrer" target="_blank"><code>@tuyuritio/remark-ruby</code></a></p>
</blockquote>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>{拼音}(pīn|yīn)</span></span></code></pre><button type="button" data="{拼音}(pīn|yīn)" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<p><ruby>拼<rp>(</rp><rt>pīn</rt><rp>)</rp>音<rp>(</rp><rt>yīn</rt><rp>)</rp></ruby></p>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>{振り仮名}(ふ||が|な)</span></span></code></pre><button type="button" data="{振り仮名}(ふ||が|な)" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<p><ruby>振<rp>(</rp><rt>ふ</rt><rp>)</rp>り<rt></rt>仮<rp>(</rp><rt>が</rt><rp>)</rp>名<rp>(</rp><rt>な</rt><rp>)</rp></ruby></p>
</section><section class="heading" data-heading-rank="2" aria-labelledby="spoiler"><h2 id="spoiler"><a href="#spoiler">Spoiler</a></h2>
<blockquote>
<p>Plugin: <a href="https://www.npmjs.com/package/@tuyuritio/remark-spoiler" rel="nofollow noopener noreferrer" target="_blank"><code>@tuyuritio/remark-spoiler</code></a></p>
</blockquote>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>!!Spoiler content!!</span></span></code></pre><button type="button" data="!!Spoiler content!!" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<p><span class="spoiler">Spoiler content</span></p>
</section><section class="heading" data-heading-rank="2" aria-labelledby="emoji"><h2 id="emoji"><a href="#emoji">Emoji</a></h2>
<blockquote>
<p>Plugin: <a href="https://www.npmjs.com/package/remark-gemoji" rel="nofollow noopener noreferrer" target="_blank"><code>remark-gemoji</code></a></p>
</blockquote>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>:wink: :cry: :laughing: :yum:</span></span></code></pre><button type="button" data=":wink: :cry: :laughing: :yum:" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<p>😉 😢 😆 😋</p>
<p><a href="https://github.com/ikatyang/emoji-cheat-sheet?tab=readme-ov-file#table-of-contents" rel="nofollow noopener noreferrer" target="_blank">Emoji Cheat Sheet</a></p>
</section><section class="heading" data-heading-rank="2" aria-labelledby="katex"><h2 id="katex"><a href="#katex">Katex</a></h2>
<blockquote>
<p>Plugin: <a href="https://www.npmjs.com/package/remark-math" rel="nofollow noopener noreferrer" target="_blank"><code>remark-math</code></a> &#x26; <a href="https://www.npmjs.com/package/rehype-katex" rel="nofollow noopener noreferrer" target="_blank"><code>rehype-katex</code></a></p>
</blockquote>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>$e^{ix} = \cos x + i \sin x$</span></span></code></pre><button type="button" data="$e^{ix} = \cos x + i \sin x$" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<p><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><msup><mi>e</mi><mrow><mi>i</mi><mi>x</mi></mrow></msup><mo>=</mo><mi>cos</mi><mo>⁡</mo><mi>x</mi><mo>+</mo><mi>i</mi><mi>sin</mi><mo>⁡</mo><mi>x</mi></mrow><annotation encoding="application/x-tex">e^{ix} = \cos x + i \sin x</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8247em;"></span><span class="mord"><span class="mord mathnormal">e</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8247em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mathnormal mtight">i</span><span class="mord mathnormal mtight">x</span></span></span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6667em;vertical-align:-0.0833em;"></span><span class="mop">cos</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord mathnormal">x</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.6679em;"></span><span class="mord mathnormal">i</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mop">sin</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord mathnormal">x</span></span></span></span></p>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>$$</span></span>
<span class="line"><span>(f*g)(t)=\int f(\tau)g(t-\tau)d\tau</span></span>
<span class="line"><span>$$</span></span></code></pre><button type="button" data="$$
(f*g)(t)=\int f(\tau)g(t-\tau)d\tau
$$" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<span class="katex-display"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML" display="block"><semantics><mrow><mo stretchy="false">(</mo><mi>f</mi><mo>∗</mo><mi>g</mi><mo stretchy="false">)</mo><mo stretchy="false">(</mo><mi>t</mi><mo stretchy="false">)</mo><mo>=</mo><mo>∫</mo><mi>f</mi><mo stretchy="false">(</mo><mi>τ</mi><mo stretchy="false">)</mo><mi>g</mi><mo stretchy="false">(</mo><mi>t</mi><mo>−</mo><mi>τ</mi><mo stretchy="false">)</mo><mi>d</mi><mi>τ</mi></mrow><annotation encoding="application/x-tex">(f*g)(t)=\int f(\tau)g(t-\tau)d\tau</annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">(</span><span class="mord mathnormal" style="margin-right:0.1076em;">f</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">∗</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.0359em;">g</span><span class="mclose">)</span><span class="mopen">(</span><span class="mord mathnormal">t</span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:2.2222em;vertical-align:-0.8622em;"></span><span class="mop op-symbol large-op" style="margin-right:0.4445em;position:relative;top:-0.0011em;">∫</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord mathnormal" style="margin-right:0.1076em;">f</span><span class="mopen">(</span><span class="mord mathnormal" style="margin-right:0.1132em;">τ</span><span class="mclose">)</span><span class="mord mathnormal" style="margin-right:0.0359em;">g</span><span class="mopen">(</span><span class="mord mathnormal">t</span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">−</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mord mathnormal" style="margin-right:0.1132em;">τ</span><span class="mclose">)</span><span class="mord mathnormal">d</span><span class="mord mathnormal" style="margin-right:0.1132em;">τ</span></span></span></span></span>
</section><section class="heading" data-heading-rank="2" aria-labelledby="footnotes"><h2 id="footnotes"><a href="#footnotes">Footnotes</a></h2>
<blockquote>
<p>Plugin: <a href="https://www.npmjs.com/package/remark-footnotes-extra" rel="nofollow noopener noreferrer" target="_blank"><code>remark-footnotes-extra</code></a></p>
</blockquote>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>Footnote[^1]</span></span>
<span class="line"><span>[^1]: Footnote **can have markup**.</span></span></code></pre><button type="button" data="Footnote[^1]
[^1]: Footnote **can have markup**." class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<p>Footnote<sup><a href="#user-content-fn-1" id="user-content-fnref-1" data-footnote-ref="" aria-describedby="footnote-label">1</a></sup></p>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>Inline Footnote^[Inline information]</span></span></code></pre><button type="button" data="Inline Footnote^[Inline information]" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<p>Inline Footnote<sup><a href="#user-content-fn-inline%20information" id="user-content-fnref-inline%20information" data-footnote-ref="" aria-describedby="footnote-label">2</a></sup></p>
</section><section class="heading" data-heading-rank="2" aria-labelledby="abbreviations"><h2 id="abbreviations"><a href="#abbreviations">Abbreviations</a></h2>
<blockquote>
<p>Plugin: <a href="https://www.npmjs.com/package/@tuyuritio/remark-abbreviation" rel="nofollow noopener noreferrer" target="_blank"><code>@tuyuritio/remark-abbreviation</code></a></p>
</blockquote>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>ABBR abbr xABBRx</span></span>
<span class="line"><span></span></span>
<span class="line"><span>*[ABBR]: Abbreviation</span></span></code></pre><button type="button" data="ABBR abbr xABBRx

*[ABBR]: Abbreviation" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<p><abbr title="Abbreviation">ABBR</abbr> abbr xABBRx</p>
</section><section class="heading" data-heading-rank="2" aria-labelledby="github-alerts"><h2 id="github-alerts"><a href="#github-alerts">GitHub Alerts</a></h2>
<blockquote>
<p>Plugin: <a href="https://www.npmjs.com/package/@tuyuritio/remark-github-alert" rel="nofollow noopener noreferrer" target="_blank"><code>@tuyuritio/remark-github-alert</code></a></p>
</blockquote>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>> [!NOTE]</span></span>
<span class="line"><span>> General information</span></span></code></pre><button type="button" data="> [!NOTE]
> General information" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<div class="markdown-alert markdown-alert-note">
<p class="markdown-alert-title"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg><strong>Note</strong></p>
<p>General information</p>
</div>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>> [!TIP]</span></span>
<span class="line"><span>> Optional information</span></span></code></pre><button type="button" data="> [!TIP]
> Optional information" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<div class="markdown-alert markdown-alert-tip">
<p class="markdown-alert-title"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z"></path></svg><strong>Tip</strong></p>
<p>Optional information</p>
</div>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>> [!IMPORTANT]</span></span>
<span class="line"><span>> Important information</span></span></code></pre><button type="button" data="> [!IMPORTANT]
> Important information" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<div class="markdown-alert markdown-alert-important">
<p class="markdown-alert-title"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg><strong>Important</strong></p>
<p>Important information</p>
</div>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>> [!WARNING]</span></span>
<span class="line"><span>> Risk information</span></span></code></pre><button type="button" data="> [!WARNING]
> Risk information" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<div class="markdown-alert markdown-alert-warning">
<p class="markdown-alert-title"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg><strong>Warning</strong></p>
<p>Risk information</p>
</div>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>> [!CAUTION]</span></span>
<span class="line"><span>> Warning information</span></span></code></pre><button type="button" data="> [!CAUTION]
> Warning information" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<div class="markdown-alert markdown-alert-caution">
<p class="markdown-alert-title"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg><strong>Caution</strong></p>
<p>Warning information</p>
</div>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>> [!NOTE] (･ρ･)ﾉ</span></span>
<span class="line"><span>> Custom title text</span></span></code></pre><button type="button" data="> [!NOTE] (･ρ･)ﾉ
> Custom title text" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<div class="markdown-alert markdown-alert-note">
<p class="markdown-alert-title"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg><strong>(･ρ･)ﾉ</strong></p>
<p>Custom title text</p>
</div>
</section><section class="heading" data-heading-rank="2" aria-labelledby="extended-tables"><h2 id="extended-tables"><a href="#extended-tables">Extended Tables</a></h2>
<blockquote>
<p>Plugin: <a href="https://www.npmjs.com/package/remark-extended-table" rel="nofollow noopener noreferrer" target="_blank">remark-extended-table</a></p>
</blockquote>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>| Left Align  | Center | Right Align |    Center     |</span></span>
<span class="line"><span>|:----------- |:------:| -----------:| ------------- |</span></span>
<span class="line"><span>| Normal Cell |     Merged Cell     || Merged Column |</span></span>
<span class="line"><span>| Normal Cell |      2×2 Cell       ||       ^       |</span></span>
<span class="line"><span>| Normal Cell |          ^          ||  Normal Cell  |</span></span></code></pre><button type="button" data="| Left Align  | Center | Right Align |    Center     |
|:----------- |:------:| -----------:| ------------- |
| Normal Cell |     Merged Cell     || Merged Column |
| Normal Cell |      2×2 Cell       ||       ^       |
| Normal Cell |          ^          ||  Normal Cell  |" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<div class="table-wrapper">























<table><thead><tr><th align="left">Left Align</th><th align="center">Center</th><th align="right">Right Align</th><th>Center</th></tr></thead><tbody><tr><td align="left">Normal Cell</td><td align="center" colspan="2">Merged Cell</td><td rowspan="2">Merged Column</td></tr><tr><td align="left">Normal Cell</td><td align="center" rowspan="2" colspan="2">2×2 Cell</td></tr><tr><td align="left">Normal Cell</td><td>Normal Cell</td></tr></tbody></table></div>
</section><section class="heading" data-heading-rank="2" aria-labelledby="custom-id"><h2 id="custom-id"><a href="#custom-id">Inline Element Attributes Extension</a></h2>
<style>
.red {
  color: #ef4444;
  font-weight: 600;
}

.big {
  font-size: 1.25em;
  font-weight: bold;
}

.colorful {
  font-weight: bold;
  background: linear-gradient(90deg, #ff0000, #ff7f00, #ffff00, #00ff00, #0000ff, #4b0082, #9400d3);
  background-size: 200% auto;
  background-clip: text;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: rainbow 3s linear infinite;
}

@keyframes rainbow {
  0% {
    background-position: 0% center;
  }
  100% {
    background-position: 200% center;
  }
}
</style>
<blockquote>
<p>Plugin: <a href="https://www.npmjs.com/package/@tuyuritio/remark-attribute" rel="nofollow noopener noreferrer" target="_blank"><code>@tuyuritio/remark-attribute</code></a></p>
</blockquote>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>## Inline Element Attributes Extension {#custom-id}</span></span></code></pre><button type="button" data="## Inline Element Attributes Extension {#custom-id}" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>![](https://picsum.photos/1600/900?random=1){width=300}</span></span></code></pre><button type="button" data="![](https://picsum.photos/1600/900?random=1){width=300}" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<p><img src="https://picsum.photos/1600/900?random=1" alt="" width="300"></p>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>**Important**{.colorful} content</span></span></code></pre><button type="button" data="**Important**{.colorful} content" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<p><strong class="colorful">Important</strong> content</p>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>*Multiple*{.red .big} classes</span></span></code></pre><button type="button" data="*Multiple*{.red .big} classes" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<p><em class="red big">Multiple</em> classes</p>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="plaintext"><code><span class="line"><span>**Custom attributes**{key="This is a value"}</span></span></code></pre><button type="button" data="**Custom attributes**{key=&#x22;This is a value&#x22;}" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<p><strong key="This is a value">Custom attributes</strong></p>
<section data-footnotes="" class="footnotes"><p class="hidden" id="footnote-label">Footnotes</p>
<ol>
<li id="user-content-fn-1">
<p>Footnote <strong>can have markup</strong>. <a href="#user-content-fnref-1" data-footnote-backref="" aria-label="Back to reference 1" class="data-footnote-backref">↩</a></p>
</li>
<li id="user-content-fn-inline%20information">
<p>Inline information <a href="#user-content-fnref-inline%20information" data-footnote-backref="" aria-label="Back to reference 2" class="data-footnote-backref">↩</a></p>
</li>
</ol>
</section></section>]]></content>
        <category term="Markup"/>
        <category term="Demo"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Linkroll Component Guide]]></title>
        <id>en/linkroll</id>
        <link href="https://tgsc.space/note/linkroll"/>
        <updated>2025-11-17T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>The theme provides a <code>Linkroll</code> component for the <strong>Linkroll</strong> section to display friend links or recommended sites in a more elegant and flexible way.</p>
<section class="heading" data-heading-rank="2" aria-labelledby="import-component"><h2 id="import-component"><a href="#import-component">Import Component</a></h2>
<div class="markdown-alert markdown-alert-note">
<p class="markdown-alert-title"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg><strong>Note</strong></p>
<p>The <code>Linkroll</code> component must be used in <code>mdx</code> files.</p>
</div>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="mdx"><code><span class="line"><span style="color:#24292E;--shiki-dark:#D4D4D4">import Linkroll from "$components/Linkroll.astro";</span></span>
<span class="line"></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#D4D4D4">&#x3C;Linkroll locale={props.locale} links={links} /></span></span></code></pre><button type="button" data="import Linkroll from &#x22;$components/Linkroll.astro&#x22;;

<Linkroll locale={props.locale} links={links} />" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<ul>
<li><code>locale</code> - Current page language code, provided by <code>about.astro</code> as a <a href="https://mdxjs.com/docs/using-mdx/#props" rel="nofollow noopener noreferrer" target="_blank"><strong>component prop</strong></a>;</li>
<li><code>links</code> - Array of link data, refer to <a href="#define-link-data">subsequent steps</a>.</li>
</ul>
</section><section class="heading" data-heading-rank="2" aria-labelledby="define-link-data"><h2 id="define-link-data"><a href="#define-link-data">Define Link Data</a></h2>
<div class="code-container"><pre class="astro-code astro-code-themes github-light dark-plus" style="background-color:#fff;--shiki-dark-bg:#1E1E1E;color:#24292e;--shiki-dark:#D4D4D4; overflow-x: auto;" tabindex="0" data-language="mdx"><code><span class="line"><span style="color:#D73A49;--shiki-dark:#C586C0">export</span><span style="color:#D73A49;--shiki-dark:#569CD6"> const</span><span style="color:#005CC5;--shiki-dark:#4FC1FF"> links</span><span style="color:#D73A49;--shiki-dark:#D4D4D4"> =</span><span style="color:#24292E;--shiki-dark:#D4D4D4"> [</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#D4D4D4">    {</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#9CDCFE">        title:</span><span style="color:#032F62;--shiki-dark:#CE9178"> "Example Site"</span><span style="color:#24292E;--shiki-dark:#D4D4D4">,</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#9CDCFE">        url:</span><span style="color:#032F62;--shiki-dark:#CE9178"> "https://example.com"</span><span style="color:#24292E;--shiki-dark:#D4D4D4">,</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#9CDCFE">        image:</span><span style="color:#032F62;--shiki-dark:#CE9178"> "https://example.com/favicon.ico"</span><span style="color:#24292E;--shiki-dark:#D4D4D4">,</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#9CDCFE">        description:</span><span style="color:#032F62;--shiki-dark:#CE9178"> "This is an example site"</span><span style="color:#24292E;--shiki-dark:#D4D4D4">,</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#9CDCFE">        type:</span><span style="color:#032F62;--shiki-dark:#CE9178"> "resources"</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#D4D4D4">    }</span></span>
<span class="line"><span style="color:#24292E;--shiki-dark:#D4D4D4">];</span></span></code></pre><button type="button" data="export const links = [
    {
        title: &#x22;Example Site&#x22;,
        url: &#x22;https://example.com&#x22;,
        image: &#x22;https://example.com/favicon.ico&#x22;,
        description: &#x22;This is an example site&#x22;,
        type: &#x22;resources&#x22;
    }
];" class="code-copy-button" aria-hidden="" onclick="navigator.clipboard.writeText(this.attributes.data.value);this.classList.add(&#x22;code-copied&#x22;);window.setTimeout(() => this.classList.remove(&#x22;code-copied&#x22;), 1500)"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="copy-icon"><path d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z"></path><path d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z"></path></svg><svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="done-icon"><path d="M13.78 4.22a.75.75 0 0 1 0 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L2.22 9.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L6 10.94l6.72-6.72a.75.75 0 0 1 1.06 0Z"></path></svg></button></div>
<p>Each link object contains the following fields:</p>
<ul>
<li><code>title</code>*: Display title</li>
<li><code>url</code>*: Target address</li>
<li><code>type</code>*: Category type, available options include:
<ul>
<li><code>resources</code> - Tools &#x26; Resources</li>
<li><code>community</code> - Organizations &#x26; Projects</li>
<li><code>insights</code> - Media &#x26; Inspiration</li>
<li><code>technology</code> - Technology &#x26; Development</li>
<li><code>expertise</code> - Professional &#x26; Academic</li>
<li><code>creative</code> - Design &#x26; Creativity</li>
<li><code>lifestyle</code> - Life &#x26; Hobbies</li>
<li><code>general</code> - General &#x26; Others</li>
</ul>
</li>
<li><code>image</code>: Target site icon URL</li>
<li><code>description</code>: Description text</li>
</ul>
<p><code>*</code> indicates required fields.</p></section>]]></content>
        <category term="Component"/>
        <category term="MDX"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Sensitive Content Example]]></title>
        <id>en/sensitive</id>
        <link href="https://tgsc.space/jotting/sensitive"/>
        <updated>2025-08-28T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This is a sample document demonstrating the sensitive content warning.]]></summary>
        <content type="html"><![CDATA[<p>This content may contain explicit, violent, bloody, or emotionally triggering material.</p>
<p>To read, please visit the <a href="https://tgsc.space/jotting/sensitive">original link</a>.</p>
]]></content>
        <category term="Sensitive"/>
        <category term="Demo"/>
    </entry>
</feed>