<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans">
	<id>https://notblog.vudrux.site/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DGCK81LNN</id>
	<title>LNN的:not(博客)？ - 用户贡献 [zh-hans]</title>
	<link rel="self" type="application/atom+xml" href="https://notblog.vudrux.site/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=DGCK81LNN"/>
	<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/wiki/%E7%89%B9%E6%AE%8A:%E7%94%A8%E6%88%B7%E8%B4%A1%E7%8C%AE/DGCK81LNN"/>
	<updated>2026-08-06T16:51:52Z</updated>
	<subtitle>用户贡献</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=LNN_%E5%AF%86%E6%96%87_PUA_%E7%BC%96%E7%A0%81&amp;diff=3057</id>
		<title>LNN 密文 PUA 编码</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=LNN_%E5%AF%86%E6%96%87_PUA_%E7%BC%96%E7%A0%81&amp;diff=3057"/>
		<updated>2026-07-25T08:52:40Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​/* 区段列表 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;LNN 密文 PUA 编码&#039;&#039;&#039;是[[LNN|我]]为了便于用计算机处理 {{lelink|LNNCrypt}}、[[LNN 中华语字]]等自创密文而制定的一套编码方案，利用 Unicode 私人使用区（{{le|Private Use Area}}）为密文字符编码。&lt;br /&gt;
&lt;br /&gt;
[[Unifont LNNPUA]] 字体包含 LNN 密文 PUA 编码内所有的字符，但不包含正确排版 [[LNN 中华语字]] 所需的特殊排版特性。&lt;br /&gt;
&lt;br /&gt;
== 区段列表 ==&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
! 范围&lt;br /&gt;
! 名称&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E000..U+E03F}}&lt;br /&gt;
| [[LNNCrypt#LNN 密文 PUA 编码|LNNCrypt]]&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E040..U+E08F}}&lt;br /&gt;
| [[LNN 中华语字#LNN 密文 PUA 编码|LNN 中华语字]]&amp;lt;br&amp;gt;&#039;&#039;{{le|(LNNZHYZ)}}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E090..U+E16F}}&lt;br /&gt;
| [[LNN 中华语字韵母]]&amp;lt;br&amp;gt;&#039;&#039;{{le|(LNNZHYZ Finals)}}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E170..U+E1DF}}&lt;br /&gt;
| [[LNN 中华语字希顶扩展]]&amp;lt;br&amp;gt;&#039;&#039;{{le|(LNNZHYZ Shidinn Extensions)}}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E1E0..U+E1EF}}&lt;br /&gt;
| [[LNNCrypt 补充]]&amp;lt;br&amp;gt;&#039;&#039;{{le|(LNNCrypt Supplement)}}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E200..U+E22F}}&lt;br /&gt;
| [[LNNScribble#LNN 密文 PUA 编码|LNNScribble]]&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E230..U+E27F}}&lt;br /&gt;
| [[LNN 遗留密文]]&amp;lt;br&amp;gt;&#039;&#039;{{le|(LNN Legacy Ciphers)}}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E280..U+E2DF}}&lt;br /&gt;
| [[夏理文构件]]&amp;lt;br&amp;gt;&#039;&#039;{{le|(Aestivologica Components)}}&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 历史 ==&lt;br /&gt;
2021 年 4 月 30 日，在 [[LNN的博客！]]中添加了 {{lelink|LNN&#039;s Diary}} 在线存档，其中的 [[LNNCrypt]] 密文利用 PUA 编码，通过一简单的自定义字体呈现。&lt;br /&gt;
&lt;br /&gt;
大约在 2022 年初，制作了一套名为 Zhunghua 的字体用于显示 [[LNN 中华语字]]，其使用的 PUA 码位排在 LNNCrypt 的区段之后。&lt;br /&gt;
&lt;br /&gt;
大约在 2023 年 5 月，为[[希顶语 LNN 中华语字方案]]和 [[LNNScribble]] 规定了代码点位。&lt;br /&gt;
&lt;br /&gt;
2023 年 9 月，正式将该编码系统命名为“LNN 密文 PUA 编码”，添加了 [[LNNCrypt 补充]]、[[LNN 遗留密文]]区段；由于[[希顶语 LNN 中华语字方案]]修订，从 [[LNN 中华语字希顶扩展]]区段删除了 2 个字符（详见[[LNN 中华语字希顶扩展#历史]]）。&lt;br /&gt;
&lt;br /&gt;
2026 年 5 月，由于[[希顶语 LNN 中华语字方案]]修订，向 [[LNN 中华语字希顶扩展]]区段添加了 2 个字符（详见[[LNN 中华语字希顶扩展#历史]]）；新增了[[夏理文构件]]区段。&lt;br /&gt;
&lt;br /&gt;
[[分类:概念]]{{DEFAULTSORT:{{SortPinyin|LNN 密{mi4}文{wen2} PUA 编{bian1}码{ma3} }}}}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=MediaWiki:Common.css&amp;diff=3055</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=MediaWiki:Common.css&amp;diff=3055"/>
		<updated>2026-07-25T08:51:21Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* 字体 */&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;quot;LNNCrypt&amp;quot;;&lt;br /&gt;
	src: url(&amp;quot;https://fastly.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/LNNCrypt.woff&amp;quot;) format(&#039;woff&#039;);&lt;br /&gt;
	unicode-range: U+E000-E03F;&lt;br /&gt;
	font-display: block;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;quot;Zhunghua&amp;quot;;&lt;br /&gt;
	src: url(&amp;quot;https://fastly.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/Zhunghua@0.5.woff2&amp;quot;) format(&amp;quot;woff2&amp;quot;),&lt;br /&gt;
		url(&amp;quot;https://fastly.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/Zhunghua@0.5.woff&amp;quot;) format(&amp;quot;woff&amp;quot;);&lt;br /&gt;
	font-display: block;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;quot;XEGOEPUAall&amp;quot;;&lt;br /&gt;
	src: url(&amp;quot;https://fastly.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/XEGOEPUAall.woff2&amp;quot;) format(&amp;quot;woff2&amp;quot;),&lt;br /&gt;
		url(&amp;quot;https://fastly.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/XEGOEPUAall.woff&amp;quot;) format(&amp;quot;woff&amp;quot;);&lt;br /&gt;
	font-display: block;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;quot;Unifont LNNPUA&amp;quot;;&lt;br /&gt;
	src: url(&amp;quot;https://fastly.jsdelivr.net/npm/@dgck81lnn/unifont-lnnpua/dist/UnifontLNNPUA.woff2&amp;quot;) format(&#039;woff2&#039;);&lt;br /&gt;
	font-display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
:root {&lt;br /&gt;
	--font-family-dflt:&lt;br /&gt;
		-apple-system, &#039;BlinkMacSystemFont&#039;, &amp;quot;Segoe UI&amp;quot;, system-ui, &#039;Roboto&#039;,&lt;br /&gt;
		&amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif,&lt;br /&gt;
		var(--font-family-emoji);&lt;br /&gt;
	--font-family-hans:&lt;br /&gt;
		&#039;Source Han Sans SC&#039;, &#039;Source Han Sans CN&#039;, &#039;PingFang SC&#039;,&lt;br /&gt;
		&#039;Microsoft YaHei UI&#039;, &#039;Microsoft YaHei&#039;, &#039;微软雅黑&#039;, &#039;DengXian&#039;, &#039;等线&#039;,&lt;br /&gt;
		&#039;Noto Sans SC&#039;, &#039;Noto Sans CJK SC&#039;, &#039;Droid Sans Fallback&#039;, sans-serif,&lt;br /&gt;
		var(--font-family-emoji);&lt;br /&gt;
	--font-family-dflt-serif:&lt;br /&gt;
		&#039;Roboto Serif&#039;, &#039;STSong&#039;, &#039;NSimSun&#039;, &#039;SimSun&#039;, &#039;Linux Libertine&#039;,&lt;br /&gt;
		&#039;Georgia&#039;, &#039;Times&#039;, &#039;Source Serif Pro&#039;, serif, var(--font-family-emoji);&lt;br /&gt;
	--font-family-hant:&lt;br /&gt;
		&#039;Source Han Sans TC&#039;, &#039;Source Han Sans TW&#039;,&lt;br /&gt;
		&#039;Noto Sans TC&#039;, &#039;Noto Sans CJK TC&#039;,&lt;br /&gt;
		&#039;Source Han Sans HC&#039;, &#039;Source Han Sans HK&#039;,&lt;br /&gt;
		&#039;Noto Sans HC&#039;, &#039;Noto Sans CJK HC&#039;,&lt;br /&gt;
		&#039;PingFang TC&#039;, &#039;LiHei Pro&#039;,&lt;br /&gt;
		&#039;Microsoft JhengHei UI&#039;, &#039;Microsoft JhengHei&#039;, &#039;微軟正黑體&#039;, sans-serif;&lt;br /&gt;
	--font-family-hant-serif:&lt;br /&gt;
		&#039;Source Han Serif TC&#039;, &#039;Source Han Serif TW&#039;,&lt;br /&gt;
		&#039;Noto Serif TC&#039;, &#039;Noto Serif CJK TC&#039;,&lt;br /&gt;
		&#039;Source Han Serif HC&#039;, &#039;Source Han Serif HK&#039;,&lt;br /&gt;
		&#039;Noto Serif HC&#039;, &#039;Noto Serif CJK HC&#039;,&lt;br /&gt;
		&#039;PMingLiU&#039;, &#039;MingLiU&#039;, serif;&lt;br /&gt;
	--font-family-dflt-monospace:&lt;br /&gt;
		&#039;Sarasa Mono SC&#039;, &#039;Sarasa Term SC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab SC&#039;, &#039;Sarasa Term Slab SC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed SC&#039;, &#039;Sarasa Fixed Slab SC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK SC&#039;,&lt;br /&gt;
		&#039;Roboto Mono&#039;, &#039;Menlo&#039;, &#039;Consolas&#039;, &#039;Liberation Mono&#039;, &#039;Fira Code&#039;,&lt;br /&gt;
		&#039;Courier New&#039;, var(--font-family-hans), monospace;&lt;br /&gt;
	--font-family-emoji: &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;,&lt;br /&gt;
		&amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
[ lang ],&lt;br /&gt;
.lnnblog-font-g {&lt;br /&gt;
	--font-family-base: var(--font-family-dflt);&lt;br /&gt;
	--font-family-serif: var(--font-family-dflt-serif);&lt;br /&gt;
	--font-family-monospace: var(--font-family-dflt-monospace);&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
	font-family: var(--font-family-base);&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-font-hant,&lt;br /&gt;
.lnnblog-font-hant-hk,&lt;br /&gt;
.lnnblog-font-lzh,&lt;br /&gt;
.lnnblog-font-hans,&lt;br /&gt;
.lnnblog-font-qaac,&lt;br /&gt;
.lnnblog-font-qaaz,&lt;br /&gt;
.lnnblog-font-qaax,&lt;br /&gt;
.lnnblog-font-lnnpua {&lt;br /&gt;
	font-family: var(--font-family-base);&lt;br /&gt;
}&lt;br /&gt;
[ lang^=&amp;quot;zh-&amp;quot; ][ lang$=&amp;quot;-TW&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;zh-&amp;quot; ][ lang~=&amp;quot;-TW-&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;cmn-&amp;quot; ][ lang$=&amp;quot;-TW&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;cmn-&amp;quot; ][ lang~=&amp;quot;-TW-&amp;quot; ],&lt;br /&gt;
[ lang$=&amp;quot;-Hant&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Hant-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-hant {&lt;br /&gt;
	--font-family-base: var(--font-family-hant);&lt;br /&gt;
	--font-family-serif: var(--font-family-hant-serif);&lt;br /&gt;
	--font-family-monospace:&lt;br /&gt;
		&#039;Sarasa Mono TC&#039;, &#039;Sarasa Term TC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab TC&#039;, &#039;Sarasa Term Slab TC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed TC&#039;, &#039;Sarasa Fixed Slab TC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK TC&#039;,&lt;br /&gt;
		&#039;Roboto Mono&#039;, &#039;Menlo&#039;, &#039;Consolas&#039;, &#039;Liberation Mono&#039;, &#039;Fira Code&#039;,&lt;br /&gt;
		&#039;Courier New&#039;, var(--font-family-hant), monospace;&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
}&lt;br /&gt;
[ lang^=&amp;quot;zh-&amp;quot; ][ lang$=&amp;quot;-HK&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;zh-&amp;quot; ][ lang~=&amp;quot;-HK-&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;cmn-&amp;quot; ][ lang$=&amp;quot;-HK&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;cmn-&amp;quot; ][ lang~=&amp;quot;-HK-&amp;quot; ],&lt;br /&gt;
[ lang~=&amp;quot;-Hant-&amp;quot; ][ lang$=&amp;quot;-HK&amp;quot; ],&lt;br /&gt;
[ lang~=&amp;quot;-Hant-&amp;quot; ][ lang$=&amp;quot;-HK&amp;quot; ],&lt;br /&gt;
.lnnblog-font-hant-hk {&lt;br /&gt;
	--font-family-base:&lt;br /&gt;
		&#039;Source Han Sans HC&#039;, &#039;Source Han Sans HK&#039;,&lt;br /&gt;
		&#039;Noto Sans HC&#039;, &#039;Noto Sans CJK HC&#039;,&lt;br /&gt;
		var(--font-family-hant);&lt;br /&gt;
	--font-family-serif:&lt;br /&gt;
		&#039;Source Han Serif HC&#039;, &#039;Source Han Serif HK&#039;,&lt;br /&gt;
		&#039;Noto Serif HC&#039;, &#039;Noto Serif CJK HC&#039;,&lt;br /&gt;
		var(--font-family-hant-serif);&lt;br /&gt;
	--font-family-monospace:&lt;br /&gt;
		&#039;Sarasa Mono HC&#039;, &#039;Sarasa Term HC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab HC&#039;, &#039;Sarasa Term Slab HC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed HC&#039;, &#039;Sarasa Fixed Slab HC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK HC&#039;,&lt;br /&gt;
		&#039;Roboto Mono&#039;, &#039;Menlo&#039;, &#039;Consolas&#039;, &#039;Liberation Mono&#039;, &#039;Fira Code&#039;,&lt;br /&gt;
		&#039;Courier New&#039;, var(--font-family-hant), monospace;&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
}&lt;br /&gt;
[ lang=&amp;quot;lzh&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;lzh-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-lzh {&lt;br /&gt;
	--font-family-base: var(--font-family-hant);&lt;br /&gt;
	--font-family-serif: var(--font-family-hant-serif);&lt;br /&gt;
	--font-family-monospace:&lt;br /&gt;
		&#039;Sarasa Mono CL&#039;, &#039;Sarasa Term CL&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab CL&#039;, &#039;Sarasa Term Slab CL&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed CL&#039;, &#039;Sarasa Fixed Slab CL&#039;,&lt;br /&gt;
		&#039;Sarasa Mono TC&#039;, &#039;Sarasa Term TC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab TC&#039;, &#039;Sarasa Term Slab TC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed TC&#039;, &#039;Sarasa Fixed Slab TC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK TC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono HC&#039;, &#039;Sarasa Term HC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab HC&#039;, &#039;Sarasa Term Slab HC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed HC&#039;, &#039;Sarasa Fixed Slab HC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK HC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono SC&#039;, &#039;Sarasa Term SC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab SC&#039;, &#039;Sarasa Term Slab SC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed SC&#039;, &#039;Sarasa Fixed Slab SC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK SC&#039;,&lt;br /&gt;
		&#039;Roboto Mono&#039;, Menlo, Consolas, &#039;Liberation Mono&#039;, &#039;Fira Code&#039;,&lt;br /&gt;
		&#039;Courier New&#039;, monospace, var(--font-family-hant);&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
}&lt;br /&gt;
[ lang$=&amp;quot;-Hans&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Hans-&amp;quot; ],&lt;br /&gt;
[ lang=&amp;quot;zh-CN&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;zh-CN-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-hans {&lt;br /&gt;
	--font-family-base: var(--font-family-hans);&lt;br /&gt;
	--font-family-serif: var(--font-family-dflt-serif);&lt;br /&gt;
	--font-family-monospace: var(--font-family-dflt-monospace);&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
}&lt;br /&gt;
[ lang$=&amp;quot;-Qaac&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Qaac-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-qaac {&lt;br /&gt;
	--font-family-base: &amp;quot;LNNCrypt&amp;quot;, var(--font-family-hans);&lt;br /&gt;
	font-synthesis: none;&lt;br /&gt;
}&lt;br /&gt;
[ lang$=&amp;quot;-Qaaz&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Qaaz-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-qaaz {&lt;br /&gt;
	--font-family-base: &amp;quot;Zhunghua&amp;quot;, var(--font-family-dflt);&lt;br /&gt;
	font-synthesis: none;&lt;br /&gt;
}&lt;br /&gt;
[ lang$=&amp;quot;-Qaax&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Qaax-&amp;quot; ],&lt;br /&gt;
[ lang=&amp;quot;qdx&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;qdx-&amp;quot; ],&lt;br /&gt;
[ lang=&amp;quot;art-x-xdi8&amp;quot; ],&lt;br /&gt;
.lnnblog-font-qaax {&lt;br /&gt;
	--font-family-base: &amp;quot;XEGOEPUAall&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;思源黑体 CN&amp;quot;, -apple-system,&lt;br /&gt;
		&amp;quot;Roboto&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;微软雅黑&amp;quot;, system-ui, sans-serif,&lt;br /&gt;
		var(--font-family-emoji);&lt;br /&gt;
	font-synthesis: weight;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-font-lnnpua {&lt;br /&gt;
	--font-family-base: &amp;quot;Unifont LNNPUA&amp;quot;, var(--font-family-hans);&lt;br /&gt;
	font-synthesis: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
html {&lt;br /&gt;
	font-size: 16px;&lt;br /&gt;
	text-autospace: normal;&lt;br /&gt;
	text-autospace: replace;&lt;br /&gt;
	text-spacing-trim: trim-start;&lt;br /&gt;
}&lt;br /&gt;
pre, code, samp, kbd, tt, textarea, .lnnblog-font-monospace {&lt;br /&gt;
	font-family: var(--font-family-monospace) !important;&lt;br /&gt;
	tab-size: 4;&lt;br /&gt;
	text-autospace: no-autospace;&lt;br /&gt;
	text-spacing-trim: space-all;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-font-sans-serif {&lt;br /&gt;
	font-family: var(--font-family-base) !important;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-font-serif {&lt;br /&gt;
	font-family: var(--font-family-serif) !important;&lt;br /&gt;
}&lt;br /&gt;
#bodyContent {&lt;br /&gt;
	font-size: unset;&lt;br /&gt;
	font-family: unset;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a.new {&lt;br /&gt;
	text-decoration-style: dotted;&lt;br /&gt;
	-webkit-text-decoration-style: dotted;&lt;br /&gt;
	background-color: rgba(255, 0, 0, 0.08);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-file-element {&lt;br /&gt;
	max-width: 100%;&lt;br /&gt;
	height: auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 分类页字母标签 */&lt;br /&gt;
.mw-category .mw-category-group h3 {&lt;br /&gt;
	float: left;&lt;br /&gt;
	clear: left;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
	line-height: 1.25;&lt;br /&gt;
	width: 1em;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	transform: translate(0, 0.125rem);&lt;br /&gt;
	border: .125rem solid transparent;&lt;br /&gt;
	border-right-width: .15em;&lt;br /&gt;
	border-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPjxwYXRoIGZpbGw9InJnYmEoMTI4LDEyOCwxMjgsLjI3KSIgZD0iTTAsMEgxTDIsMSwxLDJIMFoiLz48L3N2Zz4=)&lt;br /&gt;
		0 1 0 0 fill / 0.5em / 0.375em 0.625em;&lt;br /&gt;
}&lt;br /&gt;
.mw-category .mw-category-group ul {&lt;br /&gt;
	margin-left: 3em;&lt;br /&gt;
}&lt;br /&gt;
.client-js #mw-subcategories .mw-content-ltr ul {&lt;br /&gt;
	margin-left: 2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 按钮 */&lt;br /&gt;
.lnnblog-button-small {&lt;br /&gt;
	background: linear-gradient( #f0f0f0, #e0e0e0 );&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
	border: 1px solid #c0c0c0;&lt;br /&gt;
	padding: 2px 5px;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-button-blue {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	padding: 0.5rem 1rem;&lt;br /&gt;
	background: linear-gradient( #4060ff, #3040ff );&lt;br /&gt;
	color: white;&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
	border: 2px solid #1c2880;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-button-white {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	padding: 0.5rem 1rem;&lt;br /&gt;
	background: linear-gradient( #f0f0f0, #e0e0e0 );&lt;br /&gt;
	color: black;&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
	border: 2px solid #c0c0c0;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-button-red {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	padding: 0.5rem 1rem;&lt;br /&gt;
	background: linear-gradient( #ff6040, #ff4030 );&lt;br /&gt;
	color: white;&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
	border: 2px solid #80281c;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 代码块 */&lt;br /&gt;
pre:not(.mw-highlight-lines *) {&lt;br /&gt;
	overflow-y: auto;&lt;br /&gt;
	max-height: 70vh;&lt;br /&gt;
}&lt;br /&gt;
td &amp;gt; pre:first-child:last-child,&lt;br /&gt;
td &amp;gt; .mw-code:first-child:last-child,&lt;br /&gt;
.lnnblog-box-body &amp;gt; pre:first-child:last-child,&lt;br /&gt;
.lnnblog-box-body &amp;gt; .mw-code:first-child:last-child,&lt;br /&gt;
.lnnblog-hidebox-body &amp;gt; pre:first-child:last-child,&lt;br /&gt;
.lnnblog-hidebox-body &amp;gt; .mw-code:first-child:last-child {&lt;br /&gt;
	margin: -0.2rem;&lt;br /&gt;
	border: none;&lt;br /&gt;
	border-radius: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 引用 */&lt;br /&gt;
blockquote {&lt;br /&gt;
	border-left: 0.25rem solid gray;&lt;br /&gt;
	margin-left: 1rem;&lt;br /&gt;
	padding-left: 0.75rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@keyframes lnnblog-highlight {&lt;br /&gt;
	from {&lt;br /&gt;
		background-color: rgba(51, 191, 171, 0.75);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
:target {&lt;br /&gt;
	animation: lnnblog-highlight 5s ease-out;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Template:Documentation */&lt;br /&gt;
.lnnblog-documentation {&lt;br /&gt;
	background: rgba(48, 160, 144, 0.2);&lt;br /&gt;
	border: 1px solid #aaa;&lt;br /&gt;
	padding: 1rem;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-documentation-header {&lt;br /&gt;
	border-bottom: 1px solid #aaa;&lt;br /&gt;
	margin: 0.5rem 0 1rem;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-documentation-header-title {&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	font-size: 1.25rem;&lt;br /&gt;
	display: inline;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Template:Info&lt;br /&gt;
 * 引自&amp;lt; https://zh.moegirl.org.cn/MediaWiki:Gadget-site-styles.css &amp;gt;，有改动&lt;br /&gt;
 * CC BY-NC-SA 3.0&lt;br /&gt;
 */&lt;br /&gt;
.infoBox {&lt;br /&gt;
	margin: 0 auto;&lt;br /&gt;
	width: 80%;&lt;br /&gt;
	border-left: 10px solid;&lt;br /&gt;
}&lt;br /&gt;
.infoBoxTitle {&lt;br /&gt;
	margin: 3px auto;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
.infoBoxIcon {&lt;br /&gt;
	display: table-cell;&lt;br /&gt;
	padding: 2px 0 2px .5em;&lt;br /&gt;
	vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
.infoBoxText {&lt;br /&gt;
	display: table-cell;&lt;br /&gt;
	padding: .25em .5em .25em 1.3em;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
	vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
.infoBoxContent {&lt;br /&gt;
	border: 1px solid rgba(128, 128, 128, 0.25);&lt;br /&gt;
	border-left-width: 0;&lt;br /&gt;
	background: rgba(128, 128, 128, 0.03);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Template:Box 和 Template:Hidebox */&lt;br /&gt;
.lnnblog-box,&lt;br /&gt;
.lnnblog-hidebox {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	background: rgba(128, 128, 128, 0.05);&lt;br /&gt;
	border: 1px solid rgba(128, 128, 128, 0.67);&lt;br /&gt;
	max-width: 100%;&lt;br /&gt;
	overflow: hidden;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-box-heading,&lt;br /&gt;
.lnnblog-hidebox-heading {&lt;br /&gt;
	background: rgba(128, 128, 128, 0.06);&lt;br /&gt;
	padding: .2rem;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-box-body,&lt;br /&gt;
.lnnblog-hidebox-body {&lt;br /&gt;
	padding: .2rem;&lt;br /&gt;
	overflow-wrap: break-word;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lnnblog-box-heading:not(empty) + .lnnblog-box-body,&lt;br /&gt;
.lnnblog-hidebox-body {&lt;br /&gt;
	border-top: 1px solid rgba(128, 128, 128, 0.65);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lnnblog-hidebox-heading {&lt;br /&gt;
	cursor: pointer;&lt;br /&gt;
	list-style: none;&lt;br /&gt;
	position: relative;&lt;br /&gt;
	padding-left: 1.2rem;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-hidebox-heading::-webkit-details-marker { display: none }&lt;br /&gt;
.lnnblog-hidebox-heading::before {&lt;br /&gt;
	content: &#039;&#039;;&lt;br /&gt;
	position: absolute;&lt;br /&gt;
	left: 0.4rem;&lt;br /&gt;
	top: 0;&lt;br /&gt;
	bottom: 0;&lt;br /&gt;
	height: 0;&lt;br /&gt;
	margin: auto;&lt;br /&gt;
	border: 0.3rem solid transparent;&lt;br /&gt;
	border-left-width: 0.5rem;&lt;br /&gt;
	border-left-color: currentColor;&lt;br /&gt;
	transform: rotate(0);&lt;br /&gt;
	transform-origin: 0.25rem 50%;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-hidebox[open] &amp;gt; .lnnblog-hidebox-heading::before {&lt;br /&gt;
	transform: rotate(90deg);&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-hidebox[data-lnnblog-hidebox-state=&amp;quot;expand&amp;quot;] &amp;gt; .lnnblog-hidebox-heading::before {&lt;br /&gt;
	animation: lnnblog-hidebox-expand 250ms;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-hidebox[data-lnnblog-hidebox-state=&amp;quot;shrink&amp;quot;] &amp;gt; .lnnblog-hidebox-heading::before {&lt;br /&gt;
	transform: rotate(0);&lt;br /&gt;
	animation: lnnblog-hidebox-shrink 250ms;&lt;br /&gt;
}&lt;br /&gt;
@keyframes lnnblog-hidebox-expand {&lt;br /&gt;
	from { transform: rotate(0deg); }&lt;br /&gt;
	to { transform: rotate(90deg); }&lt;br /&gt;
}&lt;br /&gt;
@keyframes lnnblog-hidebox-shrink {&lt;br /&gt;
	from { transform: rotate(90deg); }&lt;br /&gt;
	to { transform: rotate(0deg); }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Template:Jk */&lt;br /&gt;
.lnnblog-jk {&lt;br /&gt;
	color: #808080;&lt;br /&gt;
	text-decoration: line-through;&lt;br /&gt;
	text-decoration-color: var(--color-base, black);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 信息模板 */&lt;br /&gt;
.lnnblog-infobox {&lt;br /&gt;
	background: rgba(128, 128, 128, 0.05);&lt;br /&gt;
	border: 1px solid rgba(128, 128, 128, 0.67);&lt;br /&gt;
	border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
@media (min-width: 720px) {&lt;br /&gt;
	.lnnblog-infobox {&lt;br /&gt;
		float: right;&lt;br /&gt;
		width: 300px;&lt;br /&gt;
		margin-left: 1.5rem;&lt;br /&gt;
		margin-bottom: 1.5rem;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-infobox-titlebar {&lt;br /&gt;
	background: rgba(228, 228, 228, 0.33);&lt;br /&gt;
	color: black;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-infobox th,&lt;br /&gt;
.lnnblog-infobox td {&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * 工具类&lt;br /&gt;
 */&lt;br /&gt;
/* 外边距和响应式浮动 */&lt;br /&gt;
.lnnblog-margin {&lt;br /&gt;
	margin-top: .5rem !important;&lt;br /&gt;
	margin-bottom: .5rem !important;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-margin-lg {&lt;br /&gt;
	margin-top: 1.5rem !important;&lt;br /&gt;
	margin-bottom: 1.5rem !important;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-margin-top-0 {&lt;br /&gt;
	margin-top: 0 !important;&lt;br /&gt;
}&lt;br /&gt;
@media (min-width: 720px) {&lt;br /&gt;
	.lnnblog-float {&lt;br /&gt;
		float: right;&lt;br /&gt;
		max-width: 300px;&lt;br /&gt;
		margin-left: .5rem !important;&lt;br /&gt;
	}&lt;br /&gt;
	.wikitable.lnnblog-float {&lt;br /&gt;
		margin-left: 1rem !important;&lt;br /&gt;
	}&lt;br /&gt;
	.lnnblog-margin-lg.lnnblog-float {&lt;br /&gt;
		margin-left: 1.5rem !important;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 清除浮动 */&lt;br /&gt;
.clear-both {&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
.clearfix::after {&lt;br /&gt;
	content: &amp;quot;&amp;quot;;&lt;br /&gt;
	display: block;&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 隐藏空元素hack */&lt;br /&gt;
.lnnblog-hide-empty:empty {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 首行缩进 */&lt;br /&gt;
p.lnnblog-first-line-indent:before,&lt;br /&gt;
.lnnblog-first-line-indent p:before {&lt;br /&gt;
	content: &#039;\3000\3000&#039;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 目录层数 Hack */&lt;br /&gt;
.lnnblog-toc-levels-1 .toclevel-1&amp;gt;ul,&lt;br /&gt;
.lnnblog-toc-levels-2 .toclevel-2&amp;gt;ul,&lt;br /&gt;
.lnnblog-toc-levels-3 .toclevel-3&amp;gt;ul,&lt;br /&gt;
.lnnblog-toc-levels-4 .toclevel-4&amp;gt;ul,&lt;br /&gt;
.lnnblog-toc-levels-5 .toclevel-5&amp;gt;ul {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=LNN_%E5%AF%86%E6%96%87_PUA_%E7%BC%96%E7%A0%81&amp;diff=3047</id>
		<title>LNN 密文 PUA 编码</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=LNN_%E5%AF%86%E6%96%87_PUA_%E7%BC%96%E7%A0%81&amp;diff=3047"/>
		<updated>2026-07-25T08:46:11Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​夏理文构件&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;LNN 密文 PUA 编码&#039;&#039;&#039;是[[LNN|我]]为了便于用计算机处理 {{lelink|LNNCrypt}}、[[LNN 中华语字]]等自创密文而制定的一套编码方案，利用 Unicode 私人使用区（{{le|Private Use Area}}）为密文字符编码。&lt;br /&gt;
&lt;br /&gt;
[[Unifont LNNPUA]] 字体包含 LNN 密文 PUA 编码内所有的字符，但不包含正确排版 [[LNN 中华语字]] 所需的特殊排版特性。&lt;br /&gt;
&lt;br /&gt;
== 区段列表 ==&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
! 范围&lt;br /&gt;
! 名称&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E000..U+E03F}}&lt;br /&gt;
| [[LNNCrypt#LNN 密文 PUA 编码|LNNCrypt]]&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E040..U+E08F}}&lt;br /&gt;
| [[LNN 中华语字#LNN 密文 PUA 编码|LNN 中华语字]]&amp;lt;br&amp;gt;&#039;&#039;{{le|(LNNZHYZ)}}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E090..U+E16F}}&lt;br /&gt;
| [[LNN 中华语字韵母]]&amp;lt;br&amp;gt;&#039;&#039;{{le|(LNNZHYZ Finals)}}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E170..U+E1DF}}&lt;br /&gt;
| [[LNN 中华语字希顶扩展]]&amp;lt;br&amp;gt;&#039;&#039;{{le|(LNNZHYZ Shidinn Extensions)}}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E1E0..U+E1EF}}&lt;br /&gt;
| [[LNNCrypt 补充]]&amp;lt;br&amp;gt;&#039;&#039;{{le|(LNNCrypt Supplement)}}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E200..U+E22F}}&lt;br /&gt;
| [[LNNScribble#LNN 密文 PUA 编码|LNNScribble]]&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E230..U+E27F}}&lt;br /&gt;
| [[LNN 遗留密文]]&amp;lt;br&amp;gt;&#039;&#039;{{le|(LNN Legacy Ciphers)}}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E280..U+E2DF}}&lt;br /&gt;
| [[夏理文构件]]&amp;lt;br&amp;gt;&#039;&#039;{{le|Aestivologica Components}}&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 历史 ==&lt;br /&gt;
2021 年 4 月 30 日，在 [[LNN的博客！]]中添加了 {{lelink|LNN&#039;s Diary}} 在线存档，其中的 [[LNNCrypt]] 密文利用 PUA 编码，通过一简单的自定义字体呈现。&lt;br /&gt;
&lt;br /&gt;
大约在 2022 年初，制作了一套名为 Zhunghua 的字体用于显示 [[LNN 中华语字]]，其使用的 PUA 码位排在 LNNCrypt 的区段之后。&lt;br /&gt;
&lt;br /&gt;
大约在 2023 年 5 月，为[[希顶语 LNN 中华语字方案]]和 [[LNNScribble]] 规定了代码点位。&lt;br /&gt;
&lt;br /&gt;
2023 年 9 月，正式将该编码系统命名为“LNN 密文 PUA 编码”，添加了 [[LNNCrypt 补充]]、[[LNN 遗留密文]]区段；由于[[希顶语 LNN 中华语字方案]]修订，从 [[LNN 中华语字希顶扩展]]区段删除了 2 个字符（详见[[LNN 中华语字希顶扩展#历史]]）。&lt;br /&gt;
&lt;br /&gt;
2026 年 5 月，由于[[希顶语 LNN 中华语字方案]]修订，向 [[LNN 中华语字希顶扩展]]区段添加了 2 个字符（详见[[LNN 中华语字希顶扩展#历史]]）；新增了[[夏理文构件]]区段。&lt;br /&gt;
&lt;br /&gt;
[[分类:概念]]{{DEFAULTSORT:{{SortPinyin|LNN 密{mi4}文{wen2} PUA 编{bian1}码{ma3} }}}}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=%E5%A4%8F%E7%90%86%E6%96%87%E6%9E%84%E4%BB%B6&amp;diff=3051</id>
		<title>夏理文构件</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=%E5%A4%8F%E7%90%86%E6%96%87%E6%9E%84%E4%BB%B6&amp;diff=3051"/>
		<updated>2026-07-25T08:43:06Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​创建页面，内容为““&amp;#039;&amp;#039;&amp;#039;夏理文构件&amp;#039;&amp;#039;&amp;#039;”是 LNN 密文 PUA 编码中的一个区段，范围为 {{tt|U+E280..U+E2DF}}，用于编码夏理文的表音方块字（夏理构字）。  == 内容 ==  {|class=&amp;quot;wikitable lnnblog-font-lnnpua&amp;quot; |+ Aestivologica Components ! !! 0 !! 1 !! 2 !! 3 !! 4 !! 5 !! 6 !! 7 !! 8 !! 9 !! A !! B !! C !! D !! E !! F |- ! U+E28_ |  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  |…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;“&#039;&#039;&#039;夏理文构件&#039;&#039;&#039;”是 [[LNN 密文 PUA 编码]]中的一个区段，范围为 {{tt|U+E280..U+E2DF}}，用于编码[[夏理文]]的表音方块字（夏理构字）。&lt;br /&gt;
&lt;br /&gt;
== 内容 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable lnnblog-font-lnnpua&amp;quot;&lt;br /&gt;
|+ Aestivologica Components&lt;br /&gt;
! !! 0 !! 1 !! 2 !! 3 !! 4 !! 5 !! 6 !! 7 !! 8 !! 9 !! A !! B !! C !! D !! E !! F&lt;br /&gt;
|-&lt;br /&gt;
! U+E28_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E29_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E2A_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|colspan=2 style=&amp;quot;background-color:rgba(128,128,128,.5)&amp;quot;|&lt;br /&gt;
|  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E2B_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E2C_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E2D_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|colspan=4 style=&amp;quot;background-color:rgba(128,128,128,.5)&amp;quot;|&lt;br /&gt;
|  ||  ||  || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{hidebox|字符名称|2=&amp;lt;pre&amp;gt;&lt;br /&gt;
E280 AESTIVOLOGICA INITIAL BRANCH PY&lt;br /&gt;
E281 AESTIVOLOGICA SUBSEQUENT BRANCH PY&lt;br /&gt;
E282 AESTIVOLOGICA INITIAL BRANCH BY&lt;br /&gt;
E283 AESTIVOLOGICA SUBSEQUENT BRANCH BY&lt;br /&gt;
E284 AESTIVOLOGICA INITIAL BRANCH TY&lt;br /&gt;
E285 AESTIVOLOGICA SUBSEQUENT BRANCH TY&lt;br /&gt;
E286 AESTIVOLOGICA INITIAL BRANCH DY&lt;br /&gt;
E287 AESTIVOLOGICA SUBSEQUENT BRANCH DY&lt;br /&gt;
E288 AESTIVOLOGICA INITIAL BRANCH KY&lt;br /&gt;
E289 AESTIVOLOGICA SUBSEQUENT BRANCH KY&lt;br /&gt;
E28A AESTIVOLOGICA INITIAL BRANCH GY&lt;br /&gt;
E28B AESTIVOLOGICA SUBSEQUENT BRANCH GY&lt;br /&gt;
E28C AESTIVOLOGICA INITIAL BRANCH FY&lt;br /&gt;
E28D AESTIVOLOGICA SUBSEQUENT BRANCH FY&lt;br /&gt;
E28E AESTIVOLOGICA INITIAL BRANCH VY&lt;br /&gt;
E28F AESTIVOLOGICA SUBSEQUENT BRANCH VY&lt;br /&gt;
E290 AESTIVOLOGICA INITIAL BRANCH SY&lt;br /&gt;
E291 AESTIVOLOGICA SUBSEQUENT BRANCH SY&lt;br /&gt;
E292 AESTIVOLOGICA INITIAL BRANCH ZY&lt;br /&gt;
E293 AESTIVOLOGICA SUBSEQUENT BRANCH ZY&lt;br /&gt;
E294 AESTIVOLOGICA INITIAL BRANCH CY&lt;br /&gt;
E295 AESTIVOLOGICA SUBSEQUENT BRANCH CY&lt;br /&gt;
E296 AESTIVOLOGICA INITIAL BRANCH JY&lt;br /&gt;
E297 AESTIVOLOGICA SUBSEQUENT BRANCH JY&lt;br /&gt;
E298 AESTIVOLOGICA INITIAL BRANCH XY&lt;br /&gt;
E299 AESTIVOLOGICA SUBSEQUENT BRANCH XY&lt;br /&gt;
E29A AESTIVOLOGICA INITIAL BRANCH YHY&lt;br /&gt;
E29B AESTIVOLOGICA SUBSEQUENT BRANCH YHY&lt;br /&gt;
E29C AESTIVOLOGICA INITIAL BRANCH MY&lt;br /&gt;
E29D AESTIVOLOGICA SUBSEQUENT BRANCH MY&lt;br /&gt;
E29E AESTIVOLOGICA INITIAL BRANCH NY&lt;br /&gt;
E29F AESTIVOLOGICA SUBSEQUENT BRANCH NY&lt;br /&gt;
E2A0 AESTIVOLOGICA INITIAL BRANCH LY&lt;br /&gt;
E2A1 AESTIVOLOGICA SUBSEQUENT BRANCH LY&lt;br /&gt;
E2A2 AESTIVOLOGICA INITIAL BRANCH RY&lt;br /&gt;
E2A3 AESTIVOLOGICA SUBSEQUENT BRANCH RY&lt;br /&gt;
E2A4 AESTIVOLOGICA INITIAL BRANCH IY&lt;br /&gt;
E2A5 AESTIVOLOGICA SUBSEQUENT BRANCH IY&lt;br /&gt;
E2A6 AESTIVOLOGICA INITIAL BRANCH UY&lt;br /&gt;
E2A7 AESTIVOLOGICA SUBSEQUENT BRANCH UY&lt;br /&gt;
E2A8 AESTIVOLOGICA INITIAL BRANCH DENPA-BU&lt;br /&gt;
E2A9 AESTIVOLOGICA SUBSEQUENT BRANCH DENPA-BU&lt;br /&gt;
E2AA &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E2AB &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E2AC AESTIVOLOGICA INITIAL UNTAGGED EMPTY BRANCH&lt;br /&gt;
E2AD AESTIVOLOGICA SUBSEQUENT UNTAGGED EMPTY BRANCH&lt;br /&gt;
E2AE AESTIVOLOGICA INITIAL TAGGED EMPTY BRANCH&lt;br /&gt;
E2AF AESTIVOLOGICA SUBSEQUENT TAGGED EMPTY BRANCH&lt;br /&gt;
E2B0 AESTIVOLOGICA INITIAL TRUNK ABU&lt;br /&gt;
E2B1 AESTIVOLOGICA SUBSEQUENT TRUNK ABU&lt;br /&gt;
E2B2 AESTIVOLOGICA INITIAL STRESSED TRUNK ABU&lt;br /&gt;
E2B3 AESTIVOLOGICA SUBSEQUENT STRESSED TRUNK ABU&lt;br /&gt;
E2B4 AESTIVOLOGICA INITIAL TRUNK EBU&lt;br /&gt;
E2B5 AESTIVOLOGICA SUBSEQUENT TRUNK EBU&lt;br /&gt;
E2B6 AESTIVOLOGICA INITIAL STRESSED TRUNK EBU&lt;br /&gt;
E2B7 AESTIVOLOGICA SUBSEQUENT STRESSED TRUNK EBU&lt;br /&gt;
E2B8 AESTIVOLOGICA INITIAL TRUNK IBU&lt;br /&gt;
E2B9 AESTIVOLOGICA SUBSEQUENT TRUNK IBU&lt;br /&gt;
E2BA AESTIVOLOGICA INITIAL STRESSED TRUNK IBU&lt;br /&gt;
E2BB AESTIVOLOGICA SUBSEQUENT STRESSED TRUNK IBU&lt;br /&gt;
E2BC AESTIVOLOGICA INITIAL TRUNK OBU&lt;br /&gt;
E2BD AESTIVOLOGICA SUBSEQUENT TRUNK OBU&lt;br /&gt;
E2BE AESTIVOLOGICA INITIAL STRESSED TRUNK OBU&lt;br /&gt;
E2BF AESTIVOLOGICA SUBSEQUENT STRESSED TRUNK OBU&lt;br /&gt;
E2C0 AESTIVOLOGICA INITIAL TRUNK UBU&lt;br /&gt;
E2C1 AESTIVOLOGICA SUBSEQUENT TRUNK UBU&lt;br /&gt;
E2C2 AESTIVOLOGICA INITIAL STRESSED TRUNK UBU&lt;br /&gt;
E2C3 AESTIVOLOGICA SUBSEQUENT STRESSED TRUNK UBU&lt;br /&gt;
E2C4 AESTIVOLOGICA INITIAL TRUNK YBU&lt;br /&gt;
E2C5 AESTIVOLOGICA SUBSEQUENT TRUNK YBU&lt;br /&gt;
E2C6 AESTIVOLOGICA INITIAL STRESSED TRUNK YBU&lt;br /&gt;
E2C7 AESTIVOLOGICA SUBSEQUENT STRESSED TRUNK YBU&lt;br /&gt;
E2C8 AESTIVOLOGICA INITIAL TRUNK AIBU&lt;br /&gt;
E2C9 AESTIVOLOGICA SUBSEQUENT TRUNK AIBU&lt;br /&gt;
E2CA AESTIVOLOGICA INITIAL STRESSED TRUNK AIBU&lt;br /&gt;
E2CB AESTIVOLOGICA SUBSEQUENT STRESSED TRUNK AIBU&lt;br /&gt;
E2CC AESTIVOLOGICA INITIAL TRUNK EIBU&lt;br /&gt;
E2CD AESTIVOLOGICA SUBSEQUENT TRUNK EIBU&lt;br /&gt;
E2CE AESTIVOLOGICA INITIAL STRESSED TRUNK EIBU&lt;br /&gt;
E2CF AESTIVOLOGICA SUBSEQUENT STRESSED TRUNK EIBU&lt;br /&gt;
E2D0 AESTIVOLOGICA INITIAL TRUNK OIBU&lt;br /&gt;
E2D1 AESTIVOLOGICA SUBSEQUENT TRUNK OIBU&lt;br /&gt;
E2D2 AESTIVOLOGICA INITIAL STRESSED TRUNK OIBU&lt;br /&gt;
E2D3 AESTIVOLOGICA SUBSEQUENT STRESSED TRUNK OIBU&lt;br /&gt;
E2D4 AESTIVOLOGICA INITIAL TRUNK AUBU&lt;br /&gt;
E2D5 AESTIVOLOGICA SUBSEQUENT TRUNK AUBU&lt;br /&gt;
E2D6 AESTIVOLOGICA INITIAL STRESSED TRUNK AUBU&lt;br /&gt;
E2D7 AESTIVOLOGICA SUBSEQUENT STRESSED TRUNK AUBU&lt;br /&gt;
E2D8 &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E2D9 &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E2DA &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E2DB &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E2DC AESTIVOLOGICA INITIAL UNTAGGED EMPTY TRUNK&lt;br /&gt;
E2DD AESTIVOLOGICA SUBSEQUENT UNTAGGED EMPTY TRUNK&lt;br /&gt;
E2DE AESTIVOLOGICA INITIAL TAGGED EMPTY TRUNK&lt;br /&gt;
E2DF AESTIVOLOGICA SUBSEQUENT TAGGED EMPTY TRUNK&lt;br /&gt;
&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== 支持 ==&lt;br /&gt;
&lt;br /&gt;
[[Unifont LNNPUA]] 字体包含本区段内字符的字形，但不支持其所需的排版特性。&lt;br /&gt;
&lt;br /&gt;
== 参见 ==&lt;br /&gt;
* [[夏理文]]&lt;br /&gt;
&lt;br /&gt;
[[分类:LNN 密文 PUA 编码区段]]&lt;br /&gt;
{{DEFAULTSORT:{{SortPinyin|夏{xia4}理{li3}文{wen2}构{gou4}件{jian4} }}}}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=MediaWiki:Common.css&amp;diff=3053</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=MediaWiki:Common.css&amp;diff=3053"/>
		<updated>2026-07-25T08:38:54Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* 字体 */&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;quot;LNNCrypt&amp;quot;;&lt;br /&gt;
	src: url(&amp;quot;https://fastly.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/LNNCrypt.woff&amp;quot;) format(&#039;woff&#039;);&lt;br /&gt;
	unicode-range: U+E000-E03F;&lt;br /&gt;
	font-display: block;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;quot;Zhunghua&amp;quot;;&lt;br /&gt;
	src: url(&amp;quot;https://fastly.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/Zhunghua@0.5.woff2&amp;quot;) format(&amp;quot;woff2&amp;quot;),&lt;br /&gt;
		url(&amp;quot;https://fastly.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/Zhunghua@0.5.woff&amp;quot;) format(&amp;quot;woff&amp;quot;);&lt;br /&gt;
	font-display: block;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;quot;XEGOEPUAall&amp;quot;;&lt;br /&gt;
	src: url(&amp;quot;https://fastly.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/XEGOEPUAall.woff2&amp;quot;) format(&amp;quot;woff2&amp;quot;),&lt;br /&gt;
		url(&amp;quot;https://fastly.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/XEGOEPUAall.woff&amp;quot;) format(&amp;quot;woff&amp;quot;);&lt;br /&gt;
	font-display: block;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;quot;Unifont LNNPUA&amp;quot;;&lt;br /&gt;
	src: url(&amp;quot;https://fastly.jsdelivr.net/npm/@dgck81lnn/unifont-lnnpua/dist/UnifontLNNPUA.woff2&amp;quot;) format(&#039;woff2&#039;);&lt;br /&gt;
	unicode-range: U+E000-E2DF;&lt;br /&gt;
	font-display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
:root {&lt;br /&gt;
	--font-family-dflt:&lt;br /&gt;
		-apple-system, &#039;BlinkMacSystemFont&#039;, &amp;quot;Segoe UI&amp;quot;, system-ui, &#039;Roboto&#039;,&lt;br /&gt;
		&amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif,&lt;br /&gt;
		var(--font-family-emoji);&lt;br /&gt;
	--font-family-hans:&lt;br /&gt;
		&#039;Source Han Sans SC&#039;, &#039;Source Han Sans CN&#039;, &#039;PingFang SC&#039;,&lt;br /&gt;
		&#039;Microsoft YaHei UI&#039;, &#039;Microsoft YaHei&#039;, &#039;微软雅黑&#039;, &#039;DengXian&#039;, &#039;等线&#039;,&lt;br /&gt;
		&#039;Noto Sans SC&#039;, &#039;Noto Sans CJK SC&#039;, &#039;Droid Sans Fallback&#039;, sans-serif,&lt;br /&gt;
		var(--font-family-emoji);&lt;br /&gt;
	--font-family-dflt-serif:&lt;br /&gt;
		&#039;Roboto Serif&#039;, &#039;STSong&#039;, &#039;NSimSun&#039;, &#039;SimSun&#039;, &#039;Linux Libertine&#039;,&lt;br /&gt;
		&#039;Georgia&#039;, &#039;Times&#039;, &#039;Source Serif Pro&#039;, serif, var(--font-family-emoji);&lt;br /&gt;
	--font-family-hant:&lt;br /&gt;
		&#039;Source Han Sans TC&#039;, &#039;Source Han Sans TW&#039;,&lt;br /&gt;
		&#039;Noto Sans TC&#039;, &#039;Noto Sans CJK TC&#039;,&lt;br /&gt;
		&#039;Source Han Sans HC&#039;, &#039;Source Han Sans HK&#039;,&lt;br /&gt;
		&#039;Noto Sans HC&#039;, &#039;Noto Sans CJK HC&#039;,&lt;br /&gt;
		&#039;PingFang TC&#039;, &#039;LiHei Pro&#039;,&lt;br /&gt;
		&#039;Microsoft JhengHei UI&#039;, &#039;Microsoft JhengHei&#039;, &#039;微軟正黑體&#039;, sans-serif;&lt;br /&gt;
	--font-family-hant-serif:&lt;br /&gt;
		&#039;Source Han Serif TC&#039;, &#039;Source Han Serif TW&#039;,&lt;br /&gt;
		&#039;Noto Serif TC&#039;, &#039;Noto Serif CJK TC&#039;,&lt;br /&gt;
		&#039;Source Han Serif HC&#039;, &#039;Source Han Serif HK&#039;,&lt;br /&gt;
		&#039;Noto Serif HC&#039;, &#039;Noto Serif CJK HC&#039;,&lt;br /&gt;
		&#039;PMingLiU&#039;, &#039;MingLiU&#039;, serif;&lt;br /&gt;
	--font-family-dflt-monospace:&lt;br /&gt;
		&#039;Sarasa Mono SC&#039;, &#039;Sarasa Term SC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab SC&#039;, &#039;Sarasa Term Slab SC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed SC&#039;, &#039;Sarasa Fixed Slab SC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK SC&#039;,&lt;br /&gt;
		&#039;Roboto Mono&#039;, &#039;Menlo&#039;, &#039;Consolas&#039;, &#039;Liberation Mono&#039;, &#039;Fira Code&#039;,&lt;br /&gt;
		&#039;Courier New&#039;, var(--font-family-hans), monospace;&lt;br /&gt;
	--font-family-emoji: &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;,&lt;br /&gt;
		&amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
[ lang ],&lt;br /&gt;
.lnnblog-font-g {&lt;br /&gt;
	--font-family-base: var(--font-family-dflt);&lt;br /&gt;
	--font-family-serif: var(--font-family-dflt-serif);&lt;br /&gt;
	--font-family-monospace: var(--font-family-dflt-monospace);&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
	font-family: var(--font-family-base);&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-font-hant,&lt;br /&gt;
.lnnblog-font-hant-hk,&lt;br /&gt;
.lnnblog-font-lzh,&lt;br /&gt;
.lnnblog-font-hans,&lt;br /&gt;
.lnnblog-font-qaac,&lt;br /&gt;
.lnnblog-font-qaaz,&lt;br /&gt;
.lnnblog-font-qaax,&lt;br /&gt;
.lnnblog-font-lnnpua {&lt;br /&gt;
	font-family: var(--font-family-base);&lt;br /&gt;
}&lt;br /&gt;
[ lang^=&amp;quot;zh-&amp;quot; ][ lang$=&amp;quot;-TW&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;zh-&amp;quot; ][ lang~=&amp;quot;-TW-&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;cmn-&amp;quot; ][ lang$=&amp;quot;-TW&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;cmn-&amp;quot; ][ lang~=&amp;quot;-TW-&amp;quot; ],&lt;br /&gt;
[ lang$=&amp;quot;-Hant&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Hant-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-hant {&lt;br /&gt;
	--font-family-base: var(--font-family-hant);&lt;br /&gt;
	--font-family-serif: var(--font-family-hant-serif);&lt;br /&gt;
	--font-family-monospace:&lt;br /&gt;
		&#039;Sarasa Mono TC&#039;, &#039;Sarasa Term TC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab TC&#039;, &#039;Sarasa Term Slab TC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed TC&#039;, &#039;Sarasa Fixed Slab TC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK TC&#039;,&lt;br /&gt;
		&#039;Roboto Mono&#039;, &#039;Menlo&#039;, &#039;Consolas&#039;, &#039;Liberation Mono&#039;, &#039;Fira Code&#039;,&lt;br /&gt;
		&#039;Courier New&#039;, var(--font-family-hant), monospace;&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
}&lt;br /&gt;
[ lang^=&amp;quot;zh-&amp;quot; ][ lang$=&amp;quot;-HK&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;zh-&amp;quot; ][ lang~=&amp;quot;-HK-&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;cmn-&amp;quot; ][ lang$=&amp;quot;-HK&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;cmn-&amp;quot; ][ lang~=&amp;quot;-HK-&amp;quot; ],&lt;br /&gt;
[ lang~=&amp;quot;-Hant-&amp;quot; ][ lang$=&amp;quot;-HK&amp;quot; ],&lt;br /&gt;
[ lang~=&amp;quot;-Hant-&amp;quot; ][ lang$=&amp;quot;-HK&amp;quot; ],&lt;br /&gt;
.lnnblog-font-hant-hk {&lt;br /&gt;
	--font-family-base:&lt;br /&gt;
		&#039;Source Han Sans HC&#039;, &#039;Source Han Sans HK&#039;,&lt;br /&gt;
		&#039;Noto Sans HC&#039;, &#039;Noto Sans CJK HC&#039;,&lt;br /&gt;
		var(--font-family-hant);&lt;br /&gt;
	--font-family-serif:&lt;br /&gt;
		&#039;Source Han Serif HC&#039;, &#039;Source Han Serif HK&#039;,&lt;br /&gt;
		&#039;Noto Serif HC&#039;, &#039;Noto Serif CJK HC&#039;,&lt;br /&gt;
		var(--font-family-hant-serif);&lt;br /&gt;
	--font-family-monospace:&lt;br /&gt;
		&#039;Sarasa Mono HC&#039;, &#039;Sarasa Term HC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab HC&#039;, &#039;Sarasa Term Slab HC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed HC&#039;, &#039;Sarasa Fixed Slab HC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK HC&#039;,&lt;br /&gt;
		&#039;Roboto Mono&#039;, &#039;Menlo&#039;, &#039;Consolas&#039;, &#039;Liberation Mono&#039;, &#039;Fira Code&#039;,&lt;br /&gt;
		&#039;Courier New&#039;, var(--font-family-hant), monospace;&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
}&lt;br /&gt;
[ lang=&amp;quot;lzh&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;lzh-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-lzh {&lt;br /&gt;
	--font-family-base: var(--font-family-hant);&lt;br /&gt;
	--font-family-serif: var(--font-family-hant-serif);&lt;br /&gt;
	--font-family-monospace:&lt;br /&gt;
		&#039;Sarasa Mono CL&#039;, &#039;Sarasa Term CL&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab CL&#039;, &#039;Sarasa Term Slab CL&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed CL&#039;, &#039;Sarasa Fixed Slab CL&#039;,&lt;br /&gt;
		&#039;Sarasa Mono TC&#039;, &#039;Sarasa Term TC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab TC&#039;, &#039;Sarasa Term Slab TC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed TC&#039;, &#039;Sarasa Fixed Slab TC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK TC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono HC&#039;, &#039;Sarasa Term HC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab HC&#039;, &#039;Sarasa Term Slab HC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed HC&#039;, &#039;Sarasa Fixed Slab HC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK HC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono SC&#039;, &#039;Sarasa Term SC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab SC&#039;, &#039;Sarasa Term Slab SC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed SC&#039;, &#039;Sarasa Fixed Slab SC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK SC&#039;,&lt;br /&gt;
		&#039;Roboto Mono&#039;, Menlo, Consolas, &#039;Liberation Mono&#039;, &#039;Fira Code&#039;,&lt;br /&gt;
		&#039;Courier New&#039;, monospace, var(--font-family-hant);&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
}&lt;br /&gt;
[ lang$=&amp;quot;-Hans&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Hans-&amp;quot; ],&lt;br /&gt;
[ lang=&amp;quot;zh-CN&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;zh-CN-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-hans {&lt;br /&gt;
	--font-family-base: var(--font-family-hans);&lt;br /&gt;
	--font-family-serif: var(--font-family-dflt-serif);&lt;br /&gt;
	--font-family-monospace: var(--font-family-dflt-monospace);&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
}&lt;br /&gt;
[ lang$=&amp;quot;-Qaac&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Qaac-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-qaac {&lt;br /&gt;
	--font-family-base: &amp;quot;LNNCrypt&amp;quot;, var(--font-family-hans);&lt;br /&gt;
	font-synthesis: none;&lt;br /&gt;
}&lt;br /&gt;
[ lang$=&amp;quot;-Qaaz&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Qaaz-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-qaaz {&lt;br /&gt;
	--font-family-base: &amp;quot;Zhunghua&amp;quot;, var(--font-family-dflt);&lt;br /&gt;
	font-synthesis: none;&lt;br /&gt;
}&lt;br /&gt;
[ lang$=&amp;quot;-Qaax&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Qaax-&amp;quot; ],&lt;br /&gt;
[ lang=&amp;quot;qdx&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;qdx-&amp;quot; ],&lt;br /&gt;
[ lang=&amp;quot;art-x-xdi8&amp;quot; ],&lt;br /&gt;
.lnnblog-font-qaax {&lt;br /&gt;
	--font-family-base: &amp;quot;XEGOEPUAall&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;思源黑体 CN&amp;quot;, -apple-system,&lt;br /&gt;
		&amp;quot;Roboto&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;微软雅黑&amp;quot;, system-ui, sans-serif,&lt;br /&gt;
		var(--font-family-emoji);&lt;br /&gt;
	font-synthesis: weight;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-font-lnnpua {&lt;br /&gt;
	--font-family-base: &amp;quot;Unifont LNNPUA&amp;quot;, var(--font-family-hans);&lt;br /&gt;
	font-synthesis: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
html {&lt;br /&gt;
	font-size: 16px;&lt;br /&gt;
	text-autospace: normal;&lt;br /&gt;
	text-autospace: replace;&lt;br /&gt;
	text-spacing-trim: trim-start;&lt;br /&gt;
}&lt;br /&gt;
pre, code, samp, kbd, tt, textarea, .lnnblog-font-monospace {&lt;br /&gt;
	font-family: var(--font-family-monospace) !important;&lt;br /&gt;
	tab-size: 4;&lt;br /&gt;
	text-autospace: no-autospace;&lt;br /&gt;
	text-spacing-trim: space-all;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-font-sans-serif {&lt;br /&gt;
	font-family: var(--font-family-base) !important;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-font-serif {&lt;br /&gt;
	font-family: var(--font-family-serif) !important;&lt;br /&gt;
}&lt;br /&gt;
#bodyContent {&lt;br /&gt;
	font-size: unset;&lt;br /&gt;
	font-family: unset;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a.new {&lt;br /&gt;
	text-decoration-style: dotted;&lt;br /&gt;
	-webkit-text-decoration-style: dotted;&lt;br /&gt;
	background-color: rgba(255, 0, 0, 0.08);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-file-element {&lt;br /&gt;
	max-width: 100%;&lt;br /&gt;
	height: auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 分类页字母标签 */&lt;br /&gt;
.mw-category .mw-category-group h3 {&lt;br /&gt;
	float: left;&lt;br /&gt;
	clear: left;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
	line-height: 1.25;&lt;br /&gt;
	width: 1em;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	transform: translate(0, 0.125rem);&lt;br /&gt;
	border: .125rem solid transparent;&lt;br /&gt;
	border-right-width: .15em;&lt;br /&gt;
	border-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPjxwYXRoIGZpbGw9InJnYmEoMTI4LDEyOCwxMjgsLjI3KSIgZD0iTTAsMEgxTDIsMSwxLDJIMFoiLz48L3N2Zz4=)&lt;br /&gt;
		0 1 0 0 fill / 0.5em / 0.375em 0.625em;&lt;br /&gt;
}&lt;br /&gt;
.mw-category .mw-category-group ul {&lt;br /&gt;
	margin-left: 3em;&lt;br /&gt;
}&lt;br /&gt;
.client-js #mw-subcategories .mw-content-ltr ul {&lt;br /&gt;
	margin-left: 2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 按钮 */&lt;br /&gt;
.lnnblog-button-small {&lt;br /&gt;
	background: linear-gradient( #f0f0f0, #e0e0e0 );&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
	border: 1px solid #c0c0c0;&lt;br /&gt;
	padding: 2px 5px;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-button-blue {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	padding: 0.5rem 1rem;&lt;br /&gt;
	background: linear-gradient( #4060ff, #3040ff );&lt;br /&gt;
	color: white;&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
	border: 2px solid #1c2880;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-button-white {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	padding: 0.5rem 1rem;&lt;br /&gt;
	background: linear-gradient( #f0f0f0, #e0e0e0 );&lt;br /&gt;
	color: black;&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
	border: 2px solid #c0c0c0;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-button-red {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	padding: 0.5rem 1rem;&lt;br /&gt;
	background: linear-gradient( #ff6040, #ff4030 );&lt;br /&gt;
	color: white;&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
	border: 2px solid #80281c;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 代码块 */&lt;br /&gt;
pre:not(.mw-highlight-lines *) {&lt;br /&gt;
	overflow-y: auto;&lt;br /&gt;
	max-height: 70vh;&lt;br /&gt;
}&lt;br /&gt;
td &amp;gt; pre:first-child:last-child,&lt;br /&gt;
td &amp;gt; .mw-code:first-child:last-child,&lt;br /&gt;
.lnnblog-box-body &amp;gt; pre:first-child:last-child,&lt;br /&gt;
.lnnblog-box-body &amp;gt; .mw-code:first-child:last-child,&lt;br /&gt;
.lnnblog-hidebox-body &amp;gt; pre:first-child:last-child,&lt;br /&gt;
.lnnblog-hidebox-body &amp;gt; .mw-code:first-child:last-child {&lt;br /&gt;
	margin: -0.2rem;&lt;br /&gt;
	border: none;&lt;br /&gt;
	border-radius: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 引用 */&lt;br /&gt;
blockquote {&lt;br /&gt;
	border-left: 0.25rem solid gray;&lt;br /&gt;
	margin-left: 1rem;&lt;br /&gt;
	padding-left: 0.75rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@keyframes lnnblog-highlight {&lt;br /&gt;
	from {&lt;br /&gt;
		background-color: rgba(51, 191, 171, 0.75);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
:target {&lt;br /&gt;
	animation: lnnblog-highlight 5s ease-out;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Template:Documentation */&lt;br /&gt;
.lnnblog-documentation {&lt;br /&gt;
	background: rgba(48, 160, 144, 0.2);&lt;br /&gt;
	border: 1px solid #aaa;&lt;br /&gt;
	padding: 1rem;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-documentation-header {&lt;br /&gt;
	border-bottom: 1px solid #aaa;&lt;br /&gt;
	margin: 0.5rem 0 1rem;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-documentation-header-title {&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	font-size: 1.25rem;&lt;br /&gt;
	display: inline;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Template:Info&lt;br /&gt;
 * 引自&amp;lt; https://zh.moegirl.org.cn/MediaWiki:Gadget-site-styles.css &amp;gt;，有改动&lt;br /&gt;
 * CC BY-NC-SA 3.0&lt;br /&gt;
 */&lt;br /&gt;
.infoBox {&lt;br /&gt;
	margin: 0 auto;&lt;br /&gt;
	width: 80%;&lt;br /&gt;
	border-left: 10px solid;&lt;br /&gt;
}&lt;br /&gt;
.infoBoxTitle {&lt;br /&gt;
	margin: 3px auto;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
.infoBoxIcon {&lt;br /&gt;
	display: table-cell;&lt;br /&gt;
	padding: 2px 0 2px .5em;&lt;br /&gt;
	vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
.infoBoxText {&lt;br /&gt;
	display: table-cell;&lt;br /&gt;
	padding: .25em .5em .25em 1.3em;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
	vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
.infoBoxContent {&lt;br /&gt;
	border: 1px solid rgba(128, 128, 128, 0.25);&lt;br /&gt;
	border-left-width: 0;&lt;br /&gt;
	background: rgba(128, 128, 128, 0.03);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Template:Box 和 Template:Hidebox */&lt;br /&gt;
.lnnblog-box,&lt;br /&gt;
.lnnblog-hidebox {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	background: rgba(128, 128, 128, 0.05);&lt;br /&gt;
	border: 1px solid rgba(128, 128, 128, 0.67);&lt;br /&gt;
	max-width: 100%;&lt;br /&gt;
	overflow: hidden;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-box-heading,&lt;br /&gt;
.lnnblog-hidebox-heading {&lt;br /&gt;
	background: rgba(128, 128, 128, 0.06);&lt;br /&gt;
	padding: .2rem;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-box-body,&lt;br /&gt;
.lnnblog-hidebox-body {&lt;br /&gt;
	padding: .2rem;&lt;br /&gt;
	overflow-wrap: break-word;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lnnblog-box-heading:not(empty) + .lnnblog-box-body,&lt;br /&gt;
.lnnblog-hidebox-body {&lt;br /&gt;
	border-top: 1px solid rgba(128, 128, 128, 0.65);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lnnblog-hidebox-heading {&lt;br /&gt;
	cursor: pointer;&lt;br /&gt;
	list-style: none;&lt;br /&gt;
	position: relative;&lt;br /&gt;
	padding-left: 1.2rem;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-hidebox-heading::-webkit-details-marker { display: none }&lt;br /&gt;
.lnnblog-hidebox-heading::before {&lt;br /&gt;
	content: &#039;&#039;;&lt;br /&gt;
	position: absolute;&lt;br /&gt;
	left: 0.4rem;&lt;br /&gt;
	top: 0;&lt;br /&gt;
	bottom: 0;&lt;br /&gt;
	height: 0;&lt;br /&gt;
	margin: auto;&lt;br /&gt;
	border: 0.3rem solid transparent;&lt;br /&gt;
	border-left-width: 0.5rem;&lt;br /&gt;
	border-left-color: currentColor;&lt;br /&gt;
	transform: rotate(0);&lt;br /&gt;
	transform-origin: 0.25rem 50%;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-hidebox[open] &amp;gt; .lnnblog-hidebox-heading::before {&lt;br /&gt;
	transform: rotate(90deg);&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-hidebox[data-lnnblog-hidebox-state=&amp;quot;expand&amp;quot;] &amp;gt; .lnnblog-hidebox-heading::before {&lt;br /&gt;
	animation: lnnblog-hidebox-expand 250ms;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-hidebox[data-lnnblog-hidebox-state=&amp;quot;shrink&amp;quot;] &amp;gt; .lnnblog-hidebox-heading::before {&lt;br /&gt;
	transform: rotate(0);&lt;br /&gt;
	animation: lnnblog-hidebox-shrink 250ms;&lt;br /&gt;
}&lt;br /&gt;
@keyframes lnnblog-hidebox-expand {&lt;br /&gt;
	from { transform: rotate(0deg); }&lt;br /&gt;
	to { transform: rotate(90deg); }&lt;br /&gt;
}&lt;br /&gt;
@keyframes lnnblog-hidebox-shrink {&lt;br /&gt;
	from { transform: rotate(90deg); }&lt;br /&gt;
	to { transform: rotate(0deg); }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Template:Jk */&lt;br /&gt;
.lnnblog-jk {&lt;br /&gt;
	color: #808080;&lt;br /&gt;
	text-decoration: line-through;&lt;br /&gt;
	text-decoration-color: var(--color-base, black);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 信息模板 */&lt;br /&gt;
.lnnblog-infobox {&lt;br /&gt;
	background: rgba(128, 128, 128, 0.05);&lt;br /&gt;
	border: 1px solid rgba(128, 128, 128, 0.67);&lt;br /&gt;
	border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
@media (min-width: 720px) {&lt;br /&gt;
	.lnnblog-infobox {&lt;br /&gt;
		float: right;&lt;br /&gt;
		width: 300px;&lt;br /&gt;
		margin-left: 1.5rem;&lt;br /&gt;
		margin-bottom: 1.5rem;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-infobox-titlebar {&lt;br /&gt;
	background: rgba(228, 228, 228, 0.33);&lt;br /&gt;
	color: black;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-infobox th,&lt;br /&gt;
.lnnblog-infobox td {&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * 工具类&lt;br /&gt;
 */&lt;br /&gt;
/* 外边距和响应式浮动 */&lt;br /&gt;
.lnnblog-margin {&lt;br /&gt;
	margin-top: .5rem !important;&lt;br /&gt;
	margin-bottom: .5rem !important;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-margin-lg {&lt;br /&gt;
	margin-top: 1.5rem !important;&lt;br /&gt;
	margin-bottom: 1.5rem !important;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-margin-top-0 {&lt;br /&gt;
	margin-top: 0 !important;&lt;br /&gt;
}&lt;br /&gt;
@media (min-width: 720px) {&lt;br /&gt;
	.lnnblog-float {&lt;br /&gt;
		float: right;&lt;br /&gt;
		max-width: 300px;&lt;br /&gt;
		margin-left: .5rem !important;&lt;br /&gt;
	}&lt;br /&gt;
	.wikitable.lnnblog-float {&lt;br /&gt;
		margin-left: 1rem !important;&lt;br /&gt;
	}&lt;br /&gt;
	.lnnblog-margin-lg.lnnblog-float {&lt;br /&gt;
		margin-left: 1.5rem !important;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 清除浮动 */&lt;br /&gt;
.clear-both {&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
.clearfix::after {&lt;br /&gt;
	content: &amp;quot;&amp;quot;;&lt;br /&gt;
	display: block;&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 隐藏空元素hack */&lt;br /&gt;
.lnnblog-hide-empty:empty {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 首行缩进 */&lt;br /&gt;
p.lnnblog-first-line-indent:before,&lt;br /&gt;
.lnnblog-first-line-indent p:before {&lt;br /&gt;
	content: &#039;\3000\3000&#039;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 目录层数 Hack */&lt;br /&gt;
.lnnblog-toc-levels-1 .toclevel-1&amp;gt;ul,&lt;br /&gt;
.lnnblog-toc-levels-2 .toclevel-2&amp;gt;ul,&lt;br /&gt;
.lnnblog-toc-levels-3 .toclevel-3&amp;gt;ul,&lt;br /&gt;
.lnnblog-toc-levels-4 .toclevel-4&amp;gt;ul,&lt;br /&gt;
.lnnblog-toc-levels-5 .toclevel-5&amp;gt;ul {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=%E5%A4%8F%E7%90%86%E6%96%87&amp;diff=3049</id>
		<title>夏理文</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=%E5%A4%8F%E7%90%86%E6%96%87&amp;diff=3049"/>
		<updated>2026-07-25T08:32:04Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;夏理文&#039;&#039;&#039;（英语：{{le|Aestivologica}}，逻辑语：{{lj|la cislojlerci&#039;e}}）是金毛狸狗（{{lj|geezmolycos}}、{{lj|la .langer.}}）为[[逻辑语]]设计的一种基于全音素表音方块字、可借用汉字表意的书写系统。&lt;br /&gt;
&lt;br /&gt;
== [[LNN 密文 PUA 编码]] ==&lt;br /&gt;
目前，LNN 密文 PUA 编码收录了“[[夏理文构件]]”区段，用于编码夏理文的表音方块字（夏理构字）。&lt;br /&gt;
&lt;br /&gt;
== 外部链接 ==&lt;br /&gt;
* [https://geezmolycos.github.io/aestivologica/ 夏理文设计文档]&lt;br /&gt;
[[分类:见闻]]{{DEFAULTSORT:{{SortPinyin|夏{xia4}理{li3}文{wen2} }}}}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=LNNScribble&amp;diff=3045</id>
		<title>LNNScribble</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=LNNScribble&amp;diff=3045"/>
		<updated>2026-07-24T16:56:21Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​添加示例&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;LNNScribble&#039;&#039;&#039; 是[[LNN|我]]于 2023 年设计的一种密文，用于拼写现代标准汉语。&lt;br /&gt;
&lt;br /&gt;
== 对照表 ==&lt;br /&gt;
&lt;br /&gt;
[[File:lnnscribble.jpg|frame|upright|center]]&lt;br /&gt;
&lt;br /&gt;
专名的首字母（总是声母）需要大写，主体部分写得比通常略大一些即可。&lt;br /&gt;
&lt;br /&gt;
关于声母 j、q、x 参见[[「魔改拼音」]]。&lt;br /&gt;
&lt;br /&gt;
示例：&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 汉字&lt;br /&gt;
| 花美丽，也有欣赏，才能使花朵开得更加鲜艳，更加自信。&lt;br /&gt;
|-&lt;br /&gt;
! 汉语拼音&lt;br /&gt;
| Huā měilì, yě yǒu xīnshǎng, cái néng shǐ huāduǒ kāi de gèngjiā xiānyàn, gèngjiā zìxìn.&lt;br /&gt;
|-&lt;br /&gt;
! LNNScribble&lt;br /&gt;
|lang=cmn-Qaas class=lnnblog-font-lnnpua| ̀ ̗̖, ̗ ̗ ̀̗, ́ ́ ̗ ̀̗ ̀  ̖̀ ̀̖, ̖̀ ̖̖.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== LNN 密文 PUA 编码 ==&lt;br /&gt;
&lt;br /&gt;
LNNScribble 在 [[LNN 密文 PUA 编码]]中有一个同名区段，范围为 {{tt|U+E200..U+E22F}}。&lt;br /&gt;
&lt;br /&gt;
声调符号使用 {{unichar|0300|Combining Grave Accent|cwith=◌}}、{{unichar|0301|Combining Acute Accent|cwith=◌}}、{{unichar|0317|Combining Acute Accent Below|cwith=◌}}、{{unichar|0316|Combining Grave Accent Below|cwith=◌}}。&lt;br /&gt;
&lt;br /&gt;
=== 内容 ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable lnnblog-font-lnnpua&amp;quot;&lt;br /&gt;
|+ LNNScribble&lt;br /&gt;
! !! 0 !! 1 !! 2 !! 3 !! 4 !! 5 !! 6 !! 7 !! 8 !! 9 !! A !! B !! C !! D !! E !! F&lt;br /&gt;
|-&lt;br /&gt;
! U+E20_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E21_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E22_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|colspan=2 style=&amp;quot;background-color:rgba(128,128,128,.5)&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{hidebox|字符名称|2=&amp;lt;pre&amp;gt;&lt;br /&gt;
E200 LNNSCRIBBLE LETTER B&lt;br /&gt;
E201 LNNSCRIBBLE CAPITAL LETTER B&lt;br /&gt;
E202 LNNSCRIBBLE LETTER P&lt;br /&gt;
E203 LNNSCRIBBLE CAPITAL LETTER P&lt;br /&gt;
E204 LNNSCRIBBLE LETTER M&lt;br /&gt;
E205 LNNSCRIBBLE CAPITAL LETTER M&lt;br /&gt;
E206 LNNSCRIBBLE LETTER F&lt;br /&gt;
E207 LNNSCRIBBLE CAPITAL LETTER F&lt;br /&gt;
E208 LNNSCRIBBLE LETTER D&lt;br /&gt;
E209 LNNSCRIBBLE CAPITAL LETTER D&lt;br /&gt;
E20A LNNSCRIBBLE LETTER T&lt;br /&gt;
E20B LNNSCRIBBLE CAPITAL LETTER T&lt;br /&gt;
E20C LNNSCRIBBLE LETTER N&lt;br /&gt;
E20D LNNSCRIBBLE CAPITAL LETTER N&lt;br /&gt;
E20E LNNSCRIBBLE LETTER L&lt;br /&gt;
E20F LNNSCRIBBLE CAPITAL LETTER L&lt;br /&gt;
E210 LNNSCRIBBLE LETTER G&lt;br /&gt;
E211 LNNSCRIBBLE CAPITAL LETTER G&lt;br /&gt;
E212 LNNSCRIBBLE LETTER K&lt;br /&gt;
E213 LNNSCRIBBLE CAPITAL LETTER K&lt;br /&gt;
E214 LNNSCRIBBLE LETTER H&lt;br /&gt;
E215 LNNSCRIBBLE CAPITAL LETTER H&lt;br /&gt;
E216 LNNSCRIBBLE LETTER J&lt;br /&gt;
E217 LNNSCRIBBLE CAPITAL LETTER J&lt;br /&gt;
E218 LNNSCRIBBLE LETTER Q&lt;br /&gt;
E219 LNNSCRIBBLE CAPITAL LETTER Q&lt;br /&gt;
E21A LNNSCRIBBLE LETTER X&lt;br /&gt;
E21B LNNSCRIBBLE CAPITAL LETTER X&lt;br /&gt;
E21C LNNSCRIBBLE LETTER R&lt;br /&gt;
E21D LNNSCRIBBLE CAPITAL LETTER R&lt;br /&gt;
E21E LNNSCRIBBLE LETTER Z&lt;br /&gt;
E21F LNNSCRIBBLE CAPITAL LETTER Z&lt;br /&gt;
E220 LNNSCRIBBLE LETTER C&lt;br /&gt;
E221 LNNSCRIBBLE CAPITAL LETTER C&lt;br /&gt;
E222 LNNSCRIBBLE LETTER S&lt;br /&gt;
E223 LNNSCRIBBLE CAPITAL LETTER S&lt;br /&gt;
E224 LNNSCRIBBLE LETTER ZERO INITIAL&lt;br /&gt;
E225 LNNSCRIBBLE CAPITAL LETTER ZERO INITIAL&lt;br /&gt;
E226 LNNSCRIBBLE LETTER I&lt;br /&gt;
E227 LNNSCRIBBLE LETTER U&lt;br /&gt;
E228 LNNSCRIBBLE LETTER Y&lt;br /&gt;
E229 LNNSCRIBBLE LETTER A&lt;br /&gt;
E22A LNNSCRIBBLE LETTER E&lt;br /&gt;
E22B LNNSCRIBBLE MODIFIER LETTER N&lt;br /&gt;
E22C LNNSCRIBBLE MODIFIER LETTER NG&lt;br /&gt;
E22D LNNSCRIBBLE MODIFIER LETTER R&lt;br /&gt;
E22E &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E22F &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== 支持 ===&lt;br /&gt;
&lt;br /&gt;
[[Unifont LNNPUA]] 字体支持该区段内的字符。&lt;br /&gt;
&lt;br /&gt;
[[分类:概念]][[分类:LNN 密文 PUA 编码区段]]&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=MediaWiki:Common.css&amp;diff=3043</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=MediaWiki:Common.css&amp;diff=3043"/>
		<updated>2026-07-24T15:53:23Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* 字体 */&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;quot;LNNCrypt&amp;quot;;&lt;br /&gt;
	src: url(&amp;quot;https://fastly.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/LNNCrypt.woff&amp;quot;) format(&#039;woff&#039;);&lt;br /&gt;
	unicode-range: U+E000-E03F;&lt;br /&gt;
	font-display: block;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;quot;Zhunghua&amp;quot;;&lt;br /&gt;
	src: url(&amp;quot;https://fastly.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/Zhunghua@0.5.woff2&amp;quot;) format(&amp;quot;woff2&amp;quot;),&lt;br /&gt;
		url(&amp;quot;https://fastly.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/Zhunghua@0.5.woff&amp;quot;) format(&amp;quot;woff&amp;quot;);&lt;br /&gt;
	font-display: block;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;quot;XEGOEPUAall&amp;quot;;&lt;br /&gt;
	src: url(&amp;quot;https://fastly.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/XEGOEPUAall.woff2&amp;quot;) format(&amp;quot;woff2&amp;quot;),&lt;br /&gt;
		url(&amp;quot;https://fastly.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/XEGOEPUAall.woff&amp;quot;) format(&amp;quot;woff&amp;quot;);&lt;br /&gt;
	font-display: block;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;quot;Unifont LNNPUA&amp;quot;;&lt;br /&gt;
	src: url(&amp;quot;https://fastly.jsdelivr.net/npm/@dgck81lnn/unifont-lnnpua/dist/UnifontLNNPUA.woff2&amp;quot;) format(&#039;woff2&#039;);&lt;br /&gt;
	unicode-range: U+E000-E27F;&lt;br /&gt;
	font-display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
:root {&lt;br /&gt;
	--font-family-dflt:&lt;br /&gt;
		-apple-system, &#039;BlinkMacSystemFont&#039;, &amp;quot;Segoe UI&amp;quot;, system-ui, &#039;Roboto&#039;,&lt;br /&gt;
		&amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif,&lt;br /&gt;
		var(--font-family-emoji);&lt;br /&gt;
	--font-family-hans:&lt;br /&gt;
		&#039;Source Han Sans SC&#039;, &#039;Source Han Sans CN&#039;, &#039;PingFang SC&#039;,&lt;br /&gt;
		&#039;Microsoft YaHei UI&#039;, &#039;Microsoft YaHei&#039;, &#039;微软雅黑&#039;, &#039;DengXian&#039;, &#039;等线&#039;,&lt;br /&gt;
		&#039;Noto Sans SC&#039;, &#039;Noto Sans CJK SC&#039;, &#039;Droid Sans Fallback&#039;, sans-serif,&lt;br /&gt;
		var(--font-family-emoji);&lt;br /&gt;
	--font-family-dflt-serif:&lt;br /&gt;
		&#039;Roboto Serif&#039;, &#039;STSong&#039;, &#039;NSimSun&#039;, &#039;SimSun&#039;, &#039;Linux Libertine&#039;,&lt;br /&gt;
		&#039;Georgia&#039;, &#039;Times&#039;, &#039;Source Serif Pro&#039;, serif, var(--font-family-emoji);&lt;br /&gt;
	--font-family-hant:&lt;br /&gt;
		&#039;Source Han Sans TC&#039;, &#039;Source Han Sans TW&#039;,&lt;br /&gt;
		&#039;Noto Sans TC&#039;, &#039;Noto Sans CJK TC&#039;,&lt;br /&gt;
		&#039;Source Han Sans HC&#039;, &#039;Source Han Sans HK&#039;,&lt;br /&gt;
		&#039;Noto Sans HC&#039;, &#039;Noto Sans CJK HC&#039;,&lt;br /&gt;
		&#039;PingFang TC&#039;, &#039;LiHei Pro&#039;,&lt;br /&gt;
		&#039;Microsoft JhengHei UI&#039;, &#039;Microsoft JhengHei&#039;, &#039;微軟正黑體&#039;, sans-serif;&lt;br /&gt;
	--font-family-hant-serif:&lt;br /&gt;
		&#039;Source Han Serif TC&#039;, &#039;Source Han Serif TW&#039;,&lt;br /&gt;
		&#039;Noto Serif TC&#039;, &#039;Noto Serif CJK TC&#039;,&lt;br /&gt;
		&#039;Source Han Serif HC&#039;, &#039;Source Han Serif HK&#039;,&lt;br /&gt;
		&#039;Noto Serif HC&#039;, &#039;Noto Serif CJK HC&#039;,&lt;br /&gt;
		&#039;PMingLiU&#039;, &#039;MingLiU&#039;, serif;&lt;br /&gt;
	--font-family-dflt-monospace:&lt;br /&gt;
		&#039;Sarasa Mono SC&#039;, &#039;Sarasa Term SC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab SC&#039;, &#039;Sarasa Term Slab SC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed SC&#039;, &#039;Sarasa Fixed Slab SC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK SC&#039;,&lt;br /&gt;
		&#039;Roboto Mono&#039;, &#039;Menlo&#039;, &#039;Consolas&#039;, &#039;Liberation Mono&#039;, &#039;Fira Code&#039;,&lt;br /&gt;
		&#039;Courier New&#039;, var(--font-family-hans), monospace;&lt;br /&gt;
	--font-family-emoji: &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;,&lt;br /&gt;
		&amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
[ lang ],&lt;br /&gt;
.lnnblog-font-g {&lt;br /&gt;
	--font-family-base: var(--font-family-dflt);&lt;br /&gt;
	--font-family-serif: var(--font-family-dflt-serif);&lt;br /&gt;
	--font-family-monospace: var(--font-family-dflt-monospace);&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
	font-family: var(--font-family-base);&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-font-hant,&lt;br /&gt;
.lnnblog-font-hant-hk,&lt;br /&gt;
.lnnblog-font-lzh,&lt;br /&gt;
.lnnblog-font-hans,&lt;br /&gt;
.lnnblog-font-qaac,&lt;br /&gt;
.lnnblog-font-qaaz,&lt;br /&gt;
.lnnblog-font-qaax,&lt;br /&gt;
.lnnblog-font-lnnpua {&lt;br /&gt;
	font-family: var(--font-family-base);&lt;br /&gt;
}&lt;br /&gt;
[ lang^=&amp;quot;zh-&amp;quot; ][ lang$=&amp;quot;-TW&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;zh-&amp;quot; ][ lang~=&amp;quot;-TW-&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;cmn-&amp;quot; ][ lang$=&amp;quot;-TW&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;cmn-&amp;quot; ][ lang~=&amp;quot;-TW-&amp;quot; ],&lt;br /&gt;
[ lang$=&amp;quot;-Hant&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Hant-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-hant {&lt;br /&gt;
	--font-family-base: var(--font-family-hant);&lt;br /&gt;
	--font-family-serif: var(--font-family-hant-serif);&lt;br /&gt;
	--font-family-monospace:&lt;br /&gt;
		&#039;Sarasa Mono TC&#039;, &#039;Sarasa Term TC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab TC&#039;, &#039;Sarasa Term Slab TC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed TC&#039;, &#039;Sarasa Fixed Slab TC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK TC&#039;,&lt;br /&gt;
		&#039;Roboto Mono&#039;, &#039;Menlo&#039;, &#039;Consolas&#039;, &#039;Liberation Mono&#039;, &#039;Fira Code&#039;,&lt;br /&gt;
		&#039;Courier New&#039;, var(--font-family-hant), monospace;&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
}&lt;br /&gt;
[ lang^=&amp;quot;zh-&amp;quot; ][ lang$=&amp;quot;-HK&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;zh-&amp;quot; ][ lang~=&amp;quot;-HK-&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;cmn-&amp;quot; ][ lang$=&amp;quot;-HK&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;cmn-&amp;quot; ][ lang~=&amp;quot;-HK-&amp;quot; ],&lt;br /&gt;
[ lang~=&amp;quot;-Hant-&amp;quot; ][ lang$=&amp;quot;-HK&amp;quot; ],&lt;br /&gt;
[ lang~=&amp;quot;-Hant-&amp;quot; ][ lang$=&amp;quot;-HK&amp;quot; ],&lt;br /&gt;
.lnnblog-font-hant-hk {&lt;br /&gt;
	--font-family-base:&lt;br /&gt;
		&#039;Source Han Sans HC&#039;, &#039;Source Han Sans HK&#039;,&lt;br /&gt;
		&#039;Noto Sans HC&#039;, &#039;Noto Sans CJK HC&#039;,&lt;br /&gt;
		var(--font-family-hant);&lt;br /&gt;
	--font-family-serif:&lt;br /&gt;
		&#039;Source Han Serif HC&#039;, &#039;Source Han Serif HK&#039;,&lt;br /&gt;
		&#039;Noto Serif HC&#039;, &#039;Noto Serif CJK HC&#039;,&lt;br /&gt;
		var(--font-family-hant-serif);&lt;br /&gt;
	--font-family-monospace:&lt;br /&gt;
		&#039;Sarasa Mono HC&#039;, &#039;Sarasa Term HC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab HC&#039;, &#039;Sarasa Term Slab HC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed HC&#039;, &#039;Sarasa Fixed Slab HC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK HC&#039;,&lt;br /&gt;
		&#039;Roboto Mono&#039;, &#039;Menlo&#039;, &#039;Consolas&#039;, &#039;Liberation Mono&#039;, &#039;Fira Code&#039;,&lt;br /&gt;
		&#039;Courier New&#039;, var(--font-family-hant), monospace;&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
}&lt;br /&gt;
[ lang=&amp;quot;lzh&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;lzh-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-lzh {&lt;br /&gt;
	--font-family-base: var(--font-family-hant);&lt;br /&gt;
	--font-family-serif: var(--font-family-hant-serif);&lt;br /&gt;
	--font-family-monospace:&lt;br /&gt;
		&#039;Sarasa Mono CL&#039;, &#039;Sarasa Term CL&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab CL&#039;, &#039;Sarasa Term Slab CL&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed CL&#039;, &#039;Sarasa Fixed Slab CL&#039;,&lt;br /&gt;
		&#039;Sarasa Mono TC&#039;, &#039;Sarasa Term TC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab TC&#039;, &#039;Sarasa Term Slab TC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed TC&#039;, &#039;Sarasa Fixed Slab TC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK TC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono HC&#039;, &#039;Sarasa Term HC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab HC&#039;, &#039;Sarasa Term Slab HC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed HC&#039;, &#039;Sarasa Fixed Slab HC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK HC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono SC&#039;, &#039;Sarasa Term SC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab SC&#039;, &#039;Sarasa Term Slab SC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed SC&#039;, &#039;Sarasa Fixed Slab SC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK SC&#039;,&lt;br /&gt;
		&#039;Roboto Mono&#039;, Menlo, Consolas, &#039;Liberation Mono&#039;, &#039;Fira Code&#039;,&lt;br /&gt;
		&#039;Courier New&#039;, monospace, var(--font-family-hant);&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
}&lt;br /&gt;
[ lang$=&amp;quot;-Hans&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Hans-&amp;quot; ],&lt;br /&gt;
[ lang=&amp;quot;zh-CN&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;zh-CN-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-hans {&lt;br /&gt;
	--font-family-base: var(--font-family-hans);&lt;br /&gt;
	--font-family-serif: var(--font-family-dflt-serif);&lt;br /&gt;
	--font-family-monospace: var(--font-family-dflt-monospace);&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
}&lt;br /&gt;
[ lang$=&amp;quot;-Qaac&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Qaac-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-qaac {&lt;br /&gt;
	--font-family-base: &amp;quot;LNNCrypt&amp;quot;, var(--font-family-hans);&lt;br /&gt;
	font-synthesis: none;&lt;br /&gt;
}&lt;br /&gt;
[ lang$=&amp;quot;-Qaaz&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Qaaz-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-qaaz {&lt;br /&gt;
	--font-family-base: &amp;quot;Zhunghua&amp;quot;, var(--font-family-dflt);&lt;br /&gt;
	font-synthesis: none;&lt;br /&gt;
}&lt;br /&gt;
[ lang$=&amp;quot;-Qaax&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Qaax-&amp;quot; ],&lt;br /&gt;
[ lang=&amp;quot;qdx&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;qdx-&amp;quot; ],&lt;br /&gt;
[ lang=&amp;quot;art-x-xdi8&amp;quot; ],&lt;br /&gt;
.lnnblog-font-qaax {&lt;br /&gt;
	--font-family-base: &amp;quot;XEGOEPUAall&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;思源黑体 CN&amp;quot;, -apple-system,&lt;br /&gt;
		&amp;quot;Roboto&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;微软雅黑&amp;quot;, system-ui, sans-serif,&lt;br /&gt;
		var(--font-family-emoji);&lt;br /&gt;
	font-synthesis: weight;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-font-lnnpua {&lt;br /&gt;
	--font-family-base: &amp;quot;Unifont LNNPUA&amp;quot;, var(--font-family-hans);&lt;br /&gt;
	font-synthesis: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
html {&lt;br /&gt;
	font-size: 16px;&lt;br /&gt;
	text-autospace: normal;&lt;br /&gt;
	text-autospace: replace;&lt;br /&gt;
	text-spacing-trim: trim-start;&lt;br /&gt;
}&lt;br /&gt;
pre, code, samp, kbd, tt, textarea, .lnnblog-font-monospace {&lt;br /&gt;
	font-family: var(--font-family-monospace) !important;&lt;br /&gt;
	tab-size: 4;&lt;br /&gt;
	text-autospace: no-autospace;&lt;br /&gt;
	text-spacing-trim: space-all;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-font-sans-serif {&lt;br /&gt;
	font-family: var(--font-family-base) !important;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-font-serif {&lt;br /&gt;
	font-family: var(--font-family-serif) !important;&lt;br /&gt;
}&lt;br /&gt;
#bodyContent {&lt;br /&gt;
	font-size: unset;&lt;br /&gt;
	font-family: unset;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a.new {&lt;br /&gt;
	text-decoration-style: dotted;&lt;br /&gt;
	-webkit-text-decoration-style: dotted;&lt;br /&gt;
	background-color: rgba(255, 0, 0, 0.08);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.mw-file-element {&lt;br /&gt;
	max-width: 100%;&lt;br /&gt;
	height: auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 分类页字母标签 */&lt;br /&gt;
.mw-category .mw-category-group h3 {&lt;br /&gt;
	float: left;&lt;br /&gt;
	clear: left;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
	line-height: 1.25;&lt;br /&gt;
	width: 1em;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	transform: translate(0, 0.125rem);&lt;br /&gt;
	border: .125rem solid transparent;&lt;br /&gt;
	border-right-width: .15em;&lt;br /&gt;
	border-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPjxwYXRoIGZpbGw9InJnYmEoMTI4LDEyOCwxMjgsLjI3KSIgZD0iTTAsMEgxTDIsMSwxLDJIMFoiLz48L3N2Zz4=)&lt;br /&gt;
		0 1 0 0 fill / 0.5em / 0.375em 0.625em;&lt;br /&gt;
}&lt;br /&gt;
.mw-category .mw-category-group ul {&lt;br /&gt;
	margin-left: 3em;&lt;br /&gt;
}&lt;br /&gt;
.client-js #mw-subcategories .mw-content-ltr ul {&lt;br /&gt;
	margin-left: 2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 按钮 */&lt;br /&gt;
.lnnblog-button-small {&lt;br /&gt;
	background: linear-gradient( #f0f0f0, #e0e0e0 );&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
	border: 1px solid #c0c0c0;&lt;br /&gt;
	padding: 2px 5px;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-button-blue {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	padding: 0.5rem 1rem;&lt;br /&gt;
	background: linear-gradient( #4060ff, #3040ff );&lt;br /&gt;
	color: white;&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
	border: 2px solid #1c2880;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-button-white {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	padding: 0.5rem 1rem;&lt;br /&gt;
	background: linear-gradient( #f0f0f0, #e0e0e0 );&lt;br /&gt;
	color: black;&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
	border: 2px solid #c0c0c0;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-button-red {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	padding: 0.5rem 1rem;&lt;br /&gt;
	background: linear-gradient( #ff6040, #ff4030 );&lt;br /&gt;
	color: white;&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
	border: 2px solid #80281c;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 代码块 */&lt;br /&gt;
pre:not(.mw-highlight-lines *) {&lt;br /&gt;
	overflow-y: auto;&lt;br /&gt;
	max-height: 70vh;&lt;br /&gt;
}&lt;br /&gt;
td &amp;gt; pre:first-child:last-child,&lt;br /&gt;
td &amp;gt; .mw-code:first-child:last-child,&lt;br /&gt;
.lnnblog-box-body &amp;gt; pre:first-child:last-child,&lt;br /&gt;
.lnnblog-box-body &amp;gt; .mw-code:first-child:last-child,&lt;br /&gt;
.lnnblog-hidebox-body &amp;gt; pre:first-child:last-child,&lt;br /&gt;
.lnnblog-hidebox-body &amp;gt; .mw-code:first-child:last-child {&lt;br /&gt;
	margin: -0.2rem;&lt;br /&gt;
	border: none;&lt;br /&gt;
	border-radius: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 引用 */&lt;br /&gt;
blockquote {&lt;br /&gt;
	border-left: 0.25rem solid gray;&lt;br /&gt;
	margin-left: 1rem;&lt;br /&gt;
	padding-left: 0.75rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@keyframes lnnblog-highlight {&lt;br /&gt;
	from {&lt;br /&gt;
		background-color: rgba(51, 191, 171, 0.75);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
:target {&lt;br /&gt;
	animation: lnnblog-highlight 5s ease-out;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Template:Documentation */&lt;br /&gt;
.lnnblog-documentation {&lt;br /&gt;
	background: rgba(48, 160, 144, 0.2);&lt;br /&gt;
	border: 1px solid #aaa;&lt;br /&gt;
	padding: 1rem;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-documentation-header {&lt;br /&gt;
	border-bottom: 1px solid #aaa;&lt;br /&gt;
	margin: 0.5rem 0 1rem;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-documentation-header-title {&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	font-size: 1.25rem;&lt;br /&gt;
	display: inline;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Template:Info&lt;br /&gt;
 * 引自&amp;lt; https://zh.moegirl.org.cn/MediaWiki:Gadget-site-styles.css &amp;gt;，有改动&lt;br /&gt;
 * CC BY-NC-SA 3.0&lt;br /&gt;
 */&lt;br /&gt;
.infoBox {&lt;br /&gt;
	margin: 0 auto;&lt;br /&gt;
	width: 80%;&lt;br /&gt;
	border-left: 10px solid;&lt;br /&gt;
}&lt;br /&gt;
.infoBoxTitle {&lt;br /&gt;
	margin: 3px auto;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
.infoBoxIcon {&lt;br /&gt;
	display: table-cell;&lt;br /&gt;
	padding: 2px 0 2px .5em;&lt;br /&gt;
	vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
.infoBoxText {&lt;br /&gt;
	display: table-cell;&lt;br /&gt;
	padding: .25em .5em .25em 1.3em;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
	vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
.infoBoxContent {&lt;br /&gt;
	border: 1px solid rgba(128, 128, 128, 0.25);&lt;br /&gt;
	border-left-width: 0;&lt;br /&gt;
	background: rgba(128, 128, 128, 0.03);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Template:Box 和 Template:Hidebox */&lt;br /&gt;
.lnnblog-box,&lt;br /&gt;
.lnnblog-hidebox {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	background: rgba(128, 128, 128, 0.05);&lt;br /&gt;
	border: 1px solid rgba(128, 128, 128, 0.67);&lt;br /&gt;
	max-width: 100%;&lt;br /&gt;
	overflow: hidden;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-box-heading,&lt;br /&gt;
.lnnblog-hidebox-heading {&lt;br /&gt;
	background: rgba(128, 128, 128, 0.06);&lt;br /&gt;
	padding: .2rem;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-box-body,&lt;br /&gt;
.lnnblog-hidebox-body {&lt;br /&gt;
	padding: .2rem;&lt;br /&gt;
	overflow-wrap: break-word;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lnnblog-box-heading:not(empty) + .lnnblog-box-body,&lt;br /&gt;
.lnnblog-hidebox-body {&lt;br /&gt;
	border-top: 1px solid rgba(128, 128, 128, 0.65);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lnnblog-hidebox-heading {&lt;br /&gt;
	cursor: pointer;&lt;br /&gt;
	list-style: none;&lt;br /&gt;
	position: relative;&lt;br /&gt;
	padding-left: 1.2rem;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-hidebox-heading::-webkit-details-marker { display: none }&lt;br /&gt;
.lnnblog-hidebox-heading::before {&lt;br /&gt;
	content: &#039;&#039;;&lt;br /&gt;
	position: absolute;&lt;br /&gt;
	left: 0.4rem;&lt;br /&gt;
	top: 0;&lt;br /&gt;
	bottom: 0;&lt;br /&gt;
	height: 0;&lt;br /&gt;
	margin: auto;&lt;br /&gt;
	border: 0.3rem solid transparent;&lt;br /&gt;
	border-left-width: 0.5rem;&lt;br /&gt;
	border-left-color: currentColor;&lt;br /&gt;
	transform: rotate(0);&lt;br /&gt;
	transform-origin: 0.25rem 50%;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-hidebox[open] &amp;gt; .lnnblog-hidebox-heading::before {&lt;br /&gt;
	transform: rotate(90deg);&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-hidebox[data-lnnblog-hidebox-state=&amp;quot;expand&amp;quot;] &amp;gt; .lnnblog-hidebox-heading::before {&lt;br /&gt;
	animation: lnnblog-hidebox-expand 250ms;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-hidebox[data-lnnblog-hidebox-state=&amp;quot;shrink&amp;quot;] &amp;gt; .lnnblog-hidebox-heading::before {&lt;br /&gt;
	transform: rotate(0);&lt;br /&gt;
	animation: lnnblog-hidebox-shrink 250ms;&lt;br /&gt;
}&lt;br /&gt;
@keyframes lnnblog-hidebox-expand {&lt;br /&gt;
	from { transform: rotate(0deg); }&lt;br /&gt;
	to { transform: rotate(90deg); }&lt;br /&gt;
}&lt;br /&gt;
@keyframes lnnblog-hidebox-shrink {&lt;br /&gt;
	from { transform: rotate(90deg); }&lt;br /&gt;
	to { transform: rotate(0deg); }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Template:Jk */&lt;br /&gt;
.lnnblog-jk {&lt;br /&gt;
	color: #808080;&lt;br /&gt;
	text-decoration: line-through;&lt;br /&gt;
	text-decoration-color: var(--color-base, black);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 信息模板 */&lt;br /&gt;
.lnnblog-infobox {&lt;br /&gt;
	background: rgba(128, 128, 128, 0.05);&lt;br /&gt;
	border: 1px solid rgba(128, 128, 128, 0.67);&lt;br /&gt;
	border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
@media (min-width: 720px) {&lt;br /&gt;
	.lnnblog-infobox {&lt;br /&gt;
		float: right;&lt;br /&gt;
		width: 300px;&lt;br /&gt;
		margin-left: 1.5rem;&lt;br /&gt;
		margin-bottom: 1.5rem;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-infobox-titlebar {&lt;br /&gt;
	background: rgba(228, 228, 228, 0.33);&lt;br /&gt;
	color: black;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-infobox th,&lt;br /&gt;
.lnnblog-infobox td {&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * 工具类&lt;br /&gt;
 */&lt;br /&gt;
/* 外边距和响应式浮动 */&lt;br /&gt;
.lnnblog-margin {&lt;br /&gt;
	margin-top: .5rem !important;&lt;br /&gt;
	margin-bottom: .5rem !important;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-margin-lg {&lt;br /&gt;
	margin-top: 1.5rem !important;&lt;br /&gt;
	margin-bottom: 1.5rem !important;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-margin-top-0 {&lt;br /&gt;
	margin-top: 0 !important;&lt;br /&gt;
}&lt;br /&gt;
@media (min-width: 720px) {&lt;br /&gt;
	.lnnblog-float {&lt;br /&gt;
		float: right;&lt;br /&gt;
		max-width: 300px;&lt;br /&gt;
		margin-left: .5rem !important;&lt;br /&gt;
	}&lt;br /&gt;
	.wikitable.lnnblog-float {&lt;br /&gt;
		margin-left: 1rem !important;&lt;br /&gt;
	}&lt;br /&gt;
	.lnnblog-margin-lg.lnnblog-float {&lt;br /&gt;
		margin-left: 1.5rem !important;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 清除浮动 */&lt;br /&gt;
.clear-both {&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
.clearfix::after {&lt;br /&gt;
	content: &amp;quot;&amp;quot;;&lt;br /&gt;
	display: block;&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 隐藏空元素hack */&lt;br /&gt;
.lnnblog-hide-empty:empty {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 首行缩进 */&lt;br /&gt;
p.lnnblog-first-line-indent:before,&lt;br /&gt;
.lnnblog-first-line-indent p:before {&lt;br /&gt;
	content: &#039;\3000\3000&#039;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 目录层数 Hack */&lt;br /&gt;
.lnnblog-toc-levels-1 .toclevel-1&amp;gt;ul,&lt;br /&gt;
.lnnblog-toc-levels-2 .toclevel-2&amp;gt;ul,&lt;br /&gt;
.lnnblog-toc-levels-3 .toclevel-3&amp;gt;ul,&lt;br /&gt;
.lnnblog-toc-levels-4 .toclevel-4&amp;gt;ul,&lt;br /&gt;
.lnnblog-toc-levels-5 .toclevel-5&amp;gt;ul {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=MediaWiki:Editpage-head-copy-warn&amp;diff=3042</id>
		<title>MediaWiki:Editpage-head-copy-warn</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=MediaWiki:Editpage-head-copy-warn&amp;diff=3042"/>
		<updated>2026-07-24T15:46:30Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#switch:{{NAMESPACENUMBER}}|2|3=|&lt;br /&gt;
{{info|color=#f04&lt;br /&gt;
|title=您正在编辑的是表站&lt;br /&gt;
|除个别不自动同步的页面外，本站一般应在里站编辑内容后通过 LNNBot 同步更改至表站。请确认您是否真的要直接在表站编辑本页。&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=%E7%94%A8%E6%88%B7:DGCK81LNN/WhatLang&amp;diff=3041</id>
		<title>用户:DGCK81LNN/WhatLang</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=%E7%94%A8%E6%88%B7:DGCK81LNN/WhatLang&amp;diff=3041"/>
		<updated>2026-07-14T10:00:55Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;…………&lt;br /&gt;
&lt;br /&gt;
WhatLang 的原始解释器，又称Koishi运行时，使用 TypeScript 编写，可作为[https://koishi.chat Koishi.js]的[https://www.npmjs.com/package/koishi-plugin-whatlang 插件]安装。使用bot指令 {{LNNBot指令链接|whatlang}}，或直接发送以 &amp;lt;code&amp;gt;¿&amp;lt;/code&amp;gt; 开头的代码即可运行。Koishi运行时内置 &amp;lt;code&amp;gt;help@&amp;lt;/code&amp;gt; 帮助函数，可返回中文帮助信息。&lt;br /&gt;
&lt;br /&gt;
WhatLang 解释器核心发布为 npm 包 [https://www.npmjs.com/package/whatlang-interpreter whatlang-interpreter]，附带一个 Node.js 可执行程序 &amp;lt;code&amp;gt;what&amp;lt;/code&amp;gt; 可在命令行使用。命令行环境暂未实现标准输入读取和文件系统交互功能。&lt;br /&gt;
&lt;br /&gt;
DGCK81LNN 还开发了另一套运行时 WhatServer，内嵌在 Koishi 机器人的网页控制台中，处理所有路径以 &amp;lt;code&amp;gt;/what&amp;lt;/code&amp;gt; 开头的 HTTP 请求。它支持 WhatNoter 与 WhatCommands，但不支持大部分Koishi运行时特有函数。&lt;br /&gt;
&lt;br /&gt;
预防计划重构新版 WhatLang，引入“拉丁-1补充”区段的字符作为新指令，新增Map数据类型与局部变量，同时会带来多处不兼容语法变更。&lt;br /&gt;
&lt;br /&gt;
== 运行机制 ==&lt;br /&gt;
&lt;br /&gt;
WhatLang 拥有四种值类型：字符串（String）、数字（Number）、数组（Array）、未定义（Undefined）。数字为64位浮点数，包含 NaN。字符串和数字是不可变的；数组可原地修改，长度动态，可存放混合类型数据。&lt;br /&gt;
&lt;br /&gt;
虚拟机内部维护一层栈中栈结构，称为&#039;&#039;&#039;帧栈&#039;&#039;&#039;（Frame Stack）。帧栈最顶层的栈称为&#039;&#039;&#039;主栈&#039;&#039;&#039;，绝大多数代码指令都针对主栈。新数据压入栈顶，读取、弹出也从栈顶操作。使用 &amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt; 或 &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; 指令创建或编辑数组时，该数组会被压入帧栈，临时成为当前主栈；执行 &amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt; 后，数组从帧栈弹出，作为数组元素放回上一级栈。&lt;br /&gt;
数组与栈互相转换时不会生成新对象；若复制数组引用后通过 &amp;lt;code&amp;gt;| ]&amp;lt;/code&amp;gt; 修改数组，所有引用该数组的位置都会同步变更。&lt;br /&gt;
&lt;br /&gt;
虚拟机同时内置字典，用于存储具名变量。&lt;br /&gt;
&lt;br /&gt;
部分运行时存在独立的「输出栈（Output Stack）」：每次打印内容都会压入输出栈。&amp;lt;code&amp;gt;send@&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;sends@&amp;lt;/code&amp;gt; 等函数可弹出输出栈内容并立即发送；程序结束时，输出栈内剩余内容会统一输出。&lt;br /&gt;
Koishi运行时的输出栈可存放文本片段、附件、消息回复引用；其他环境支持打印原始字节数据。&lt;br /&gt;
&lt;br /&gt;
本文档统一约定：&lt;br /&gt;
* 栈为空时执行弹出操作，返回未定义（Undefined）；&lt;br /&gt;
* 一次性弹出多个值时，描述顺序为从栈底到栈顶；&lt;br /&gt;
* 「返回某值」等价于将该值压入主栈；&lt;br /&gt;
* 使用参数执行字符串函数：复制当前栈生成临时栈，将参数、函数字符串依次压入临时栈，执行 &amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt; 指令；执行结果为临时栈栈顶值，若临时栈为空则为未定义；&lt;br /&gt;
* 字符串可视为字符串数组：常规遍历单位为**字符**，部分操作单位为**编码单元**。编码单元依实现不同可为单字符或UTF-16码元；官方实现采用UTF-16码元，一个「字符」可对应单个BMP平面Unicode字符，或一对UTF-16代理对。&amp;lt;br/&amp;gt;该区分至关重要：不同函数对含非BMP字符的字符串处理逻辑不同。例如 &amp;lt;code&amp;gt;len@&amp;lt;/code&amp;gt; 统计编码单元数量，&amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; 按字符遍历字符串；&amp;lt;code&amp;gt;arr@&amp;lt;/code&amp;gt; 将字符串拆分为字符数组，&amp;lt;code&amp;gt;&amp;quot;&amp;quot;split@&amp;lt;/code&amp;gt; 按编码单元分割字符串。&lt;br /&gt;
&lt;br /&gt;
;类型强制转换&lt;br /&gt;
&lt;br /&gt;
将任意值转为字符串（String）：按人类可读格式序列化；字符串自动添加引号并转义特殊字符；数字使用标准十进制输出；未定义转为 &amp;lt;code&amp;gt;undef&amp;lt;/code&amp;gt;；数组元素逗号分隔、方括号包裹；自 [https://github.com/DGCK81LNN/whatlang-interpreter/commit/5759ee099781cb7982e257f28ac95d54e3f1356b v0.4.0] 起，超长或深层嵌套数组会用省略号截断。&lt;br /&gt;
&lt;br /&gt;
将任意值强制转为数字（Number）规则如下：&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 输入值 !! 转换结果&lt;br /&gt;
|-&lt;br /&gt;
| 字符串 || 去除首尾空白后尝试解析为数字；支持二进制`0b`、八进制`0o`、十六进制`0x`前缀；支持科学计数法E/e（正负尾数、正负指数，正号可省略）；不支持千位分隔符；无法解析时返回NaN&lt;br /&gt;
|-&lt;br /&gt;
| 未定义 || NaN&lt;br /&gt;
|-&lt;br /&gt;
| 数组 || 空数组返回0；仅含单个元素时递归转换该元素为数字；其余情况返回NaN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
真值判定：除0、空字符串、未定义外均为真值；NaN、空数组均判定为真。&lt;br /&gt;
&lt;br /&gt;
== 指令集 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 指令 !! 名称 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 数字零&lt;br /&gt;
| 压入数值0。&lt;br /&gt;
|-&lt;br /&gt;
| 1~9开头、后跟任意位0~9数字&lt;br /&gt;
| 正数字面量&lt;br /&gt;
| 压入对应数字。&lt;br /&gt;
|-&lt;br /&gt;
| ASCII字母开头，后跟任意ASCII字母、数字、下划线&lt;br /&gt;
| 标识符字面量&lt;br /&gt;
| 将标识符转为全小写字符串压入栈。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt; 后跟单个字符&lt;br /&gt;
| 字符字面量&lt;br /&gt;
| 将单个字符作为字符串压入栈。&lt;br /&gt;
[https://github.com/DGCK81LNN/whatlang-interpreter/commit/8663d565a51a8f7176ac5eb8ece3ac509be2167a v0.3.0] 之前仅支持单个UTF-16编码单元，无法输入非BMP字符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;quot;&amp;lt;/code&amp;gt; 包裹文本&lt;br /&gt;
| 引号字符串字面量&lt;br /&gt;
| 将包裹文本作为完整字符串压入栈。&lt;br /&gt;
换行 `\n`、制表符 `\t` 可转义；自 [https://github.com/DGCK81LNN/whatlang-interpreter/commit/e05c5d79abbbf59b6da719a8ca65daade085c7df v0.2.0] 新增 `\r` `\f` `\v`；单独反斜杠会让后一个字符原样输出。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;`&amp;lt;/code&amp;gt; 包裹文本&lt;br /&gt;
| 直接打印字面量&lt;br /&gt;
| 逻辑同双引号字符串，但不会压入栈，直接输出文本。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
| 加法/拼接&lt;br /&gt;
| 弹出a、b两个栈顶值，执行合并运算：&lt;br /&gt;
* 双方均为数组/均为字符串：执行拼接；&lt;br /&gt;
* 一方为数组，另一方转为单元素数组后拼接；&lt;br /&gt;
* 一方为字符串，另一方强制转字符串后拼接；&lt;br /&gt;
* 任意一方为NaN/未定义，结果为NaN；&lt;br /&gt;
* 其余场景执行数值加法。&lt;br /&gt;
数组拼接功能于 [https://github.com/DGCK81LNN/whatlang-interpreter/commit/cd29132f598e289faec40bdad04d6975ed6957d6 v0.2.2] 加入，此前数组相加行为未定义。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;&lt;br /&gt;
| 四则运算&lt;br /&gt;
| 弹出a、b，统一转为数字，计算 `a 运算符 b` 并压入结果。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt;&lt;br /&gt;
| 比较&lt;br /&gt;
| 弹出a、b进行比较：宽松相等（等价JS `==`；数组仅同一引用才算相等）返回0；a大于b返回1；a小于b返回-1；无法比较返回NaN。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt;&lt;br /&gt;
| 逻辑非&lt;br /&gt;
| 弹出单个值；假值返回1，真值返回0。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;&lt;br /&gt;
| 新建数组栈&lt;br /&gt;
| 开辟一层空栈，用于构建数组。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| 切换至数组栈&lt;br /&gt;
| 弹出栈顶值，若非数组则抛出错误；将该数组设为当前操作栈。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
| 关闭数组栈&lt;br /&gt;
| 将当前栈转为数组，退回上一级栈并把数组压入栈顶。&lt;br /&gt;
&amp;lt;code&amp;gt;[ ]&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;| ]&amp;lt;/code&amp;gt; 必须成对匹配。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;()&amp;lt;/code&amp;gt; 包裹文本（允许括号嵌套）&lt;br /&gt;
| 无转义字符串&lt;br /&gt;
| 直接提取括号内全部文本为字符串，不解析转义符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
| 打印栈顶&lt;br /&gt;
| 输出栈顶元素，不弹出；栈空则输出 `undef`。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;\&amp;lt;/code&amp;gt;&lt;br /&gt;
| 交换栈顶两位&lt;br /&gt;
| 交换栈最上方两个元素；栈元素不足2个则无操作。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;&lt;br /&gt;
| 复制栈顶&lt;br /&gt;
| 复制栈顶元素压入栈；数组仅复制引用，不深拷贝；栈空无操作。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 下沉栈顶&lt;br /&gt;
| 弹出栈顶元素，插入栈底；栈空无操作。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt;&lt;br /&gt;
| 丢弃栈顶&lt;br /&gt;
| 弹出并丢弃栈顶值。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;&lt;br /&gt;
| 赋值具名变量&lt;br /&gt;
| 弹出字符串作为变量名，将剩余栈顶值赋予该变量；若无剩余值则赋值未定义。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt;&lt;br /&gt;
| 读取具名变量&lt;br /&gt;
| 弹出字符串变量名；存在该变量则返回变量值；为内置函数名则返回「函数名@」；其余返回未定义。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 函数调用/代码执行&lt;br /&gt;
| 弹出字符串：若是内置函数则直接调用；若是已定义变量，则将变量值作为代码执行（变量值必须为字符串）；其余情况直接将字符串作为代码运行。&lt;br /&gt;
未来版本计划限制变量名规则：仅允许小写ASCII字母开头，仅包含小写字母、数字、下划线；不符合规则的标识符会直接作为代码文本执行。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 打包数组&lt;br /&gt;
| 弹出n并转为整数；取出栈顶n个元素，打包为新数组压入栈。&lt;br /&gt;
n为0或负数时，保留栈底 |n| 个元素，其余打包为数组。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 展开序列&lt;br /&gt;
| 弹出数组/字符串，将内部所有元素依次压入栈；输入非数组、非字符串则报错。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&lt;br /&gt;
| 循环起始&lt;br /&gt;
| 弹出判断值；若为假，直接跳转到匹配的 &amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&lt;br /&gt;
| 循环结束&lt;br /&gt;
| 弹出判断值；若为真，跳转回匹配的 &amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;。&lt;br /&gt;
&amp;lt;code&amp;gt;{ }&amp;lt;/code&amp;gt; 必须成对匹配。&lt;br /&gt;
|-&lt;br /&gt;
| 连续多个 &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
| 跳出循环/终止执行&lt;br /&gt;
| 跳出对应层数嵌套循环；!数量超过循环嵌套层数时，终止当前代码块：退出当前@调用、终止#迭代、或直接结束程序。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;&lt;br /&gt;
| 映射遍历&lt;br /&gt;
| 弹出函数字符串func；遍历栈顶数组/字符串的每一项item，以item为参数执行func；将所有执行结果打包为数组返回。&lt;br /&gt;
栈顶必须是数组或字符串，否则报错；[https://github.com/DGCK81LNN/whatlang-interpreter/commit/e05c5d79abbbf59b6da719a8ca65daade085c7df v0.2.0] 前不支持字符串遍历。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;&lt;br /&gt;
| 读取序列下标&lt;br /&gt;
| 弹出下标n；取出栈顶数组/字符串对应下标元素。&lt;br /&gt;
n强制转为整数；栈顶非数组/字符串报错；字符串按下标取编码单元；负数下标从末尾倒数，-1代表最后一位；下标越界返回未定义。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 修改序列下标&lt;br /&gt;
| 弹出n、value；修改栈顶数组下标n的元素为value。&lt;br /&gt;
n必须可转为整数或NaN；栈顶非数组报错；负数下标倒数；n等于数组长度/NaN时将value追加至数组末尾；其余越界下标不修改数组。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;&lt;br /&gt;
| 删除数组下标元素&lt;br /&gt;
| 弹出下标n；删除栈顶数组对应下标元素。&lt;br /&gt;
n强制转为整数；栈顶非数组报错；负数下标倒数；下标越界无操作；被删除元素后方所有元素下标自动前移一位。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 内置函数 ==&lt;br /&gt;
&lt;br /&gt;
=== 核心通用函数 ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 函数 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;num@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出一个值，强制转为数字并返回。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;str@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出一个值，强制转为字符串并返回。&lt;br /&gt;
[https://github.com/DGCK81LNN/whatlang-interpreter/commit/e05c5d79abbbf59b6da719a8ca65daade085c7df v0.2.0] 旧版本行为：字符串带引号转义；全单编码单元字符串数组直接拼接，空数组返回空串。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;repr@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出值，返回可复现该值的WhatLang代码字符串。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;arr@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出值：数组返回浅拷贝；字符串拆分为字符数组；其余类型报错。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pow@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出a、b转为数字，返回a的b次幂。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;band@&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;bor@&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;bxor@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出两值转为有符号32位整数，依次执行按位与、按位或、按位异或并返回结果。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;bnot@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出值转为有符号32位整数，返回按位取反结果。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;rand@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 返回0~1之间随机浮点数。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;randint@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出两个数字，返回区间内随机整数（向下取整）。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;flr@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出数字，向下取整返回整数。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;range@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出n转为数字，n必须小于4294967296；返回 [0, n) 整数数组，小数部分直接截断。n为负则报错。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;len@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 返回栈顶数组/字符串长度；字符串统计**编码单元**数量。&lt;br /&gt;
[https://github.com/DGCK81LNN/whatlang-interpreter/commit/e05c5d79abbbf59b6da719a8ca65daade085c7df v0.2.0] 旧版本统计字符数。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;split@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出字符串、分隔符；按分隔符分割字符串为字符串数组；分隔符为空则按编码单元拆分。&lt;br /&gt;
自 [https://github.com/DGCK81LNN/whatlang-interpreter/commit/cae889d00a70db3c532c2fefce2add7ad689bc53 v0.2.1]：分隔符为数组时视作正则表达式，匹配分组全部存入结果数组。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;join@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出分隔符字符串；将栈顶数组/字符串全部转为字符串，以分隔符拼接为单一字符串；栈顶非数组/字符串报错。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;reverse@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将栈顶数组/字符串转为数组并反转元素顺序，返回浅拷贝。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;in@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出目标值；查找栈顶数组/字符串中首个匹配项下标，无匹配返回-1；栈顶非法类型报错。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;filter@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出函数字符串；遍历栈顶数组/字符串，执行函数筛选真值项，返回筛选后的新数组；栈顶非法类型报错。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;chr@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出数字/数字数组（Unicode码点），拼接为对应字符串；数值为负或超过1114111时报错。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ord@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出字符串，将每个字符/未配对代理对转为码点数字，返回数字数组。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;and@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出a、b；a为空串/0/未定义则返回a，否则返回b。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;or@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出a、b；a为空串/0/未定义则返回b，否则返回a。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nan@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 返回NaN。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;undef@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 返回未定义。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;inf@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 返回正无穷。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ninf@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 返回负无穷。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;eq@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出两值，严格相等（等价JS `===`）返回1，否则0。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;stak@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将当前主栈转为数组返回；会造成数组自包含。&lt;br /&gt;
名称含义：stack@ 去掉c（copy，不拷贝）。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;stack@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 返回主栈的浅拷贝数组。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;try@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 逻辑同@调用；运行时报错则返回 [错误名, 错误信息]；无错误返回 [未定义, 未定义]。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;throw@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出字符串作为错误信息，抛出名为Error的运行时异常。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;match@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出待匹配字符串、正则表达式；执行JS正则匹配，返回匹配结果字符串数组，无匹配返回空数组。&lt;br /&gt;
待匹配值强制转字符串；表达式为数组时对应RegExp构造参数 [正则, 修饰符]；普通字符串直接作为正则模板；正则非法则报错。带g修饰符返回全部完整匹配；无g修饰符返回完整匹配+各分组捕获内容。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;repl@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出目标字符串、匹配模板、替换文本；全局替换所有匹配项并返回新字符串。匹配模板可为字面字符串或正则数组（同match@规则）；替换文本内美元符号为分组引用，如需输出$需写两个$$。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;time@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 返回当前系统时间戳（毫秒级纪元时间）。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;type@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出值，返回类型字符串：&amp;lt;code&amp;gt;&amp;quot;String&amp;quot;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;quot;Number&amp;quot;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;quot;Array&amp;quot;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;quot;Undefined&amp;quot;&amp;lt;/code&amp;gt;。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b64@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出字节数字数组，返回Base64编码字符串。&lt;br /&gt;
[https://github.com/DGCK81LNN/whatlang-interpreter/commit/4a23a8a2cec1577c7ff6110c80c65a3d59430933 v0.3.3] 新增。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nb64@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出Base64字符串，解码为字节数字数组返回。&lt;br /&gt;
[https://github.com/DGCK81LNN/whatlang-interpreter/commit/4a23a8a2cec1577c7ff6110c80c65a3d59430933 v0.3.3] 新增。解码前自动过滤非法Base64字符，末尾补等号至长度为4的倍数。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;utf8@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出字符串，转为UTF-8字节数字数组返回。&lt;br /&gt;
[https://github.com/DGCK81LNN/whatlang-interpreter/commit/4a23a8a2cec1577c7ff6110c80c65a3d59430933 v0.3.3] 新增。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nutf8@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出UTF-8字节数字数组，解码为字符串返回。&lt;br /&gt;
[https://github.com/DGCK81LNN/whatlang-interpreter/commit/4a23a8a2cec1577c7ff6110c80c65a3d59430933 v0.3.3] 新增。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 通用扩展函数 ===&lt;br /&gt;
该组函数最初为Koishi运行时专属，现已在多数环境提供。&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 函数 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;you@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 返回运行环境标识字符串。小石心格式：&amp;lt;code&amp;gt;&amp;quot;WhatLang/2024 Environment/messaging Framework/koishi Platform/平台标识 Id/机器人平台ID&amp;quot;&amp;lt;/code&amp;gt;。&lt;br /&gt;
可在插件配置「Framework」与「Platform」之间自定义品牌字段，规范格式为 &amp;lt;code&amp;gt;Brand/机器人名称&amp;lt;/code&amp;gt;。&lt;br /&gt;
2025年6月22日并入小石心插件：[https://github.com/DGCK81LNN/yufang-koishi-plugins/commit/279e74d166c8673a984ffd7ce0b64ac6c597f9bb]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pr@&amp;lt;/code&amp;gt;&lt;br /&gt;
| Koishi运行时：等待当前频道内同一用户下一条消息，超时返回未定义；用于交互式读取用户输入。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cat@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出URL字符串，发起HTTP GET请求，返回响应文本；状态码异常/网络错误直接抛出异常。&lt;br /&gt;
命名来源LNNBot内置cat指令：传入URL则拉取网页，不传则读取下一条用户消息（逻辑近似pr@）。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 逻辑同cat@，返回原始字节数字数组而非文本。&lt;br /&gt;
2025-05-14 在WhatServer以catb@上线，05-29更名ca@，含义：cat去掉text的t；2025-06-22接入Koishi运行时：[https://github.com/DGCK81LNN/yufang-koishi-plugins/commit/b63aebce036ad8339aad7d453593697a18d27ce0]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;fetch@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 依次弹出请求方法、URL、请求头、请求体，发起HTTP请求；返回数组 [状态码数字, 状态描述字符串, 二维数组请求头, 响应文本字符串]。&lt;br /&gt;
2025年6月3日新增。&lt;br /&gt;
方法、URL必须为字符串；请求头为二维字符串数组；请求体为字节数字数组或字符串；GET/HEAD请求体必须为未定义。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;fech@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 逻辑同fetch@，响应体返回原始字节数组而非文本；名称含义fetch去掉t（text）。2025-06-03新增。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;reesc@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出字符串，转义所有JS正则元字符后返回。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sleep@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出数字n，阻塞n秒；取值范围0 ≤ n ≤ 2147483.647。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nout@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出并丢弃输出栈最后存入（栈顶）的一条内容。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nouts@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出整数n，删除输出栈顶部n条内容；n≤0时保留底部|n|条，其余全部清空；无穷值视为0。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;send@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出输出栈栈顶内容并立即发送；小石心返回发送消息的平台ID字符串数组。用于单条输出刷新。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sends@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出整数n，取出输出栈顶部n条内容批量发送；小石心返回消息ID数组。n≤0保留底部|n|条；无穷视为0。用于批量刷新输出栈。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ou@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出字节数字数组，直接打印原始二进制字节；小石心无此函数。2025-05-14 WhatServer以outb@上线，05-29更名ou@；命名类比ca/fech，out去掉t代表输出字节流。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Koishi运行时专属函数 ===&lt;br /&gt;
部分函数与机器人接收消息绑定；消息内容使用Koishi标准XML字符串格式。&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 函数 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;help@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 帮助文档函数。弹出参数字符串，返回对应帮助主题文本；空串/未定义返回语言简介与help@使用教程。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;helpall@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 生成图片，打印几乎全部内置函数名称列表。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;propt@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出用户ID；等待当前频道指定用户的下一条消息并返回内容；参数为假值则接收全体用户消息，支持传入单个/多用户平台ID。超时返回未定义。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;prompt@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出频道ID、回调函数；监听目标频道消息，每条消息传入详情数组执行回调；回调返回真值时停止监听并返回消息详情，超时返回未定义。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;me@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 返回触发解释器的消息详情数组，字段定义：&lt;br /&gt;
* 下标0：消息XML文本字符串&lt;br /&gt;
* 下标1：消息平台ID字符串&lt;br /&gt;
* 下标2：发送者用户名&lt;br /&gt;
* 下标3：发送者平台用户ID&lt;br /&gt;
* 下标4：Koishi数据库用户ID（数字）&lt;br /&gt;
* 下标5：当前频道平台ID&lt;br /&gt;
* 下标6：被回复/引用消息ID，无则未定义&lt;br /&gt;
&lt;br /&gt;
该函数在WhatServer可用，但字段语义变更（尽量保持接口兼容）：&lt;br /&gt;
* 下标0：请求方法+URL，例 &amp;lt;code&amp;gt;GET /whatfoo/bar&amp;lt;/code&amp;gt;；URL编码字符自动解码&lt;br /&gt;
* 下标1：随机字符串&lt;br /&gt;
* 下标2、3：客户端IP地址&lt;br /&gt;
* 下标4：携带X-Lnnbot-Whatserver-Login-Token请求头时为数据库用户ID数字，否则未定义&lt;br /&gt;
* 下标5：固定字符串 &amp;lt;code&amp;gt;&amp;quot;__WHATSERVER__&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* 下标6：未定义&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;outimg@&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;outaudio@&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;outvideo@&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;outfile@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出资源URL字符串，向输出栈写入对应类型附件。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;outquote@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出消息ID字符串，输出对应消息的回复引用卡片。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;outat@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出用户平台ID，输出@提及该用户。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;outimag@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出文本字符串，使用等宽字体渲染为图片存入输出栈。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;outksq@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出文本字符串，使用Kreative Square字体渲染图片输出；字体地址：[https://www.kreativekorp.com/software/fonts/ksquare/]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;outsvg@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出SVG描述数组，渲染矢量图存入输出栈；暂不支持动画。&lt;br /&gt;
数组规则：前两项为svg宽、高；后续每项为元素数组：首项元素类型字符串，第二项style样式，剩余参数随类型变化。&lt;br /&gt;
* &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;：路径标签，第三项为d路径数据；&lt;br /&gt;
* &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;：文字标签，第三项x、第四项y、第五项文本内容；&lt;br /&gt;
* &amp;lt;code&amp;gt;img&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;：图片标签，依次为x、y、宽、高、资源href地址。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;outhtml@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出HTML文本，渲染网页截图存入输出栈。&lt;br /&gt;
2025年10月3日新增：[https://github.com/DGCK81LNN/yufang-koishi-plugins/commit/6c98e706c38ca9c2adbc7645bd3ebcb04b7ca524]&lt;br /&gt;
当前不支持class=wikitable表格快捷语法，因渲染环境禁用JS；开发组正在修复该问题。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nsend@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出消息ID，撤回当前频道对应消息。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sendsto@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 依次弹出目标频道ID、整数n；逻辑同sends@，批量发送至指定频道，返回发送消息ID数组。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;findmsg@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出回调函数；遍历当前频道历史消息，每条传入详情数组执行回调；回调返回真值时停止遍历并返回该消息详情；遍历至消息上限无匹配则返回未定义。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;getmsg@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出消息ID，返回对应消息详情数组（同me@结构）。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;guildmem@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出群组ID，返回群成员二维数组，每项格式 [用户名, 平台用户ID]；机器人接收过该用户消息才会出现在列表中。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== WhatNoter 笔记存储模块 ====&lt;br /&gt;
基于Koishi数据库用户ID的简易持久化存储；每个用户ID独立拥有公开笔记、保护笔记、私有笔记。&lt;br /&gt;
无需用户真实存在即可读取对应ID的公开笔记；任意一条笔记创建后，同ID其余两类笔记自动初始化为空串；从未写入的ID读取笔记返回未定义。&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 函数 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;notewc@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出数字用户ID、字符串文本，写入该用户公开笔记。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;notewd@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出字符串文本，写入调用者的保护笔记。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;notewe@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出字符串文本，写入调用者的私有笔记。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;noterc@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出数字用户ID，读取其公开笔记内容。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;noterd@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出数字用户ID，读取其保护笔记内容。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;notere@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 读取调用者私有笔记内容并返回。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== WhatCommands 自定义指令模块 ====&lt;br /&gt;
允许使用WhatLang编写自定义指令；每条指令包含名称、执行代码、简短描述、详细帮助文档。&lt;br /&gt;
三种调用方式：发送 &amp;lt;code&amp;gt;¿¿指令名 参数&amp;lt;/code&amp;gt;、调用机器人指令 &amp;lt;code&amp;gt;whatcmd&amp;lt;/code&amp;gt;、WhatLang内置 &amp;lt;code&amp;gt;cmd@&amp;lt;/code&amp;gt; 函数。&lt;br /&gt;
指令接收单个字符串输入，存放于栈顶。&lt;br /&gt;
示例：指令greet代码 &amp;lt;code&amp;gt;`Hello, `.`!`&amp;lt;/code&amp;gt;&lt;br /&gt;
发送 &amp;lt;code&amp;gt;¿¿greet my friends&amp;lt;/code&amp;gt;、执行机器人指令 &amp;lt;code&amp;gt;whatcmd greet my friends&amp;lt;/code&amp;gt;、运行代码 &amp;lt;code&amp;gt;&amp;quot;my friends&amp;quot; greet cmd@&amp;lt;/code&amp;gt; 均输出 &amp;lt;code&amp;gt;Hello, my friends!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
使用 &amp;lt;code&amp;gt;cmd@&amp;lt;/code&amp;gt; 调用指令会返回执行结果，可作为退出状态码；¿¿前缀调用无法获取返回值。&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 函数 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cmdset@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 依次弹出代码字符串、指令名称，绑定指令执行代码。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cmdall@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 返回全部已定义指令名称数组。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cmdsethelp@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 依次弹出帮助文本、指令名，设置指令详细手册。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cmdseth@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 依次弹出描述文本、指令名，设置指令简短介绍。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cmddel@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出指令名称，删除该自定义指令。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cmdget@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出指令名称，返回指令代码，无该指令返回未定义。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cmdgethelp@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出指令名称，返回指令详细手册文本，无则未定义。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cmdgeth@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出指令名称，返回指令简短描述，无则未定义。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cmd@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 依次弹出输入参数字符串、指令名称，运行对应指令代码并返回执行结果。&lt;br /&gt;
旧版本无指令时无返回值；新版本直接抛出异常。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== WhatServer 网页服务端专属函数 ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 函数 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hset@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 依次弹出响应头键、值字符串，设置HTTP响应头。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
除内置函数外，WhatServer预定义三个全局变量：&lt;br /&gt;
&amp;lt;code&amp;gt;reqh&amp;lt;/code&amp;gt;：请求头二维字符串数组；&lt;br /&gt;
&amp;lt;code&amp;gt;reqm&amp;lt;/code&amp;gt;：请求方法字符串；&lt;br /&gt;
&amp;lt;code&amp;gt;reqb&amp;lt;/code&amp;gt;：请求体，依请求方式与Content-Type分为字符串、字节数组、未定义三种类型。&lt;br /&gt;
&lt;br /&gt;
== 惯用写法与标准范式 ==&lt;br /&gt;
* 字面量赋值变量：&amp;lt;code&amp;gt;值 变量名 =_&amp;lt;/code&amp;gt;&lt;br /&gt;
** 末尾 &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt; 丢弃赋值后栈中残留的变量名，一般无保留必要。&lt;br /&gt;
** 自定义函数写法：用括号包裹代码作为字符串存入变量；函数可从栈顶读取参数、返回任意数量结果；调用格式 &amp;lt;code&amp;gt;函数名@&amp;lt;/code&amp;gt;&lt;br /&gt;
* 获取负一/任意负整数：&amp;lt;code&amp;gt;01-&amp;lt;/code&amp;gt;&lt;br /&gt;
* 超大浮点数（例3×10¹⁰⁰）：&amp;lt;code&amp;gt;(3e100)num@&amp;lt;/code&amp;gt;&lt;br /&gt;
** 用字符串承载数字字面量，再通过num@转为数值。&lt;br /&gt;
* If条件块：&amp;lt;code&amp;gt;条件 { 执行语句 !}&amp;lt;/code&amp;gt;&lt;br /&gt;
** 利用单次循环+末尾跳出实现分支。&lt;br /&gt;
* If-Else分支方案1（借助临时变量）：&amp;lt;code&amp;gt;条件 c={ 真分支 !} c^~{ 假分支 !}&amp;lt;/code&amp;gt;&lt;br /&gt;
* If-Else方案2（无变量）：&amp;lt;code&amp;gt;1{ 条件 { 真分支 !!} 假分支 !}&amp;lt;/code&amp;gt;&lt;br /&gt;
* If-Else方案3（数组映射）：&amp;lt;code&amp;gt;条件 ~[(真分支)(假分支)] \,_@&amp;lt;/code&amp;gt;&lt;br /&gt;
* 两值比较（返回真值代表条件成立）&lt;br /&gt;
** 宽松相等（a?b==0）：&amp;lt;code&amp;gt;?~&amp;lt;/code&amp;gt;&lt;br /&gt;
** a大于b（a?b==1）：&amp;lt;code&amp;gt;?1?~&amp;lt;/code&amp;gt;&lt;br /&gt;
** a小于b：&amp;lt;code&amp;gt;?(-1)?~&amp;lt;/code&amp;gt; 或 &amp;lt;code&amp;gt;\?1?~&amp;lt;/code&amp;gt;&lt;br /&gt;
** 小于等于：&amp;lt;code&amp;gt;?1\?1?~&amp;lt;/code&amp;gt;&lt;br /&gt;
** 大于等于：&amp;lt;code&amp;gt;\?1\?1?~&amp;lt;/code&amp;gt;&lt;br /&gt;
** 删除末尾 &amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt; 可对结果取反。&lt;br /&gt;
** 通用比较模板：&amp;lt;code&amp;gt;?[相等结果 大于结果 小于结果] \,_&amp;lt;/code&amp;gt;，填入0/1自定义每种情况返回值；两值不可比较时视为相等。&lt;br /&gt;
*** 处理不可比较场景扩展模板：&amp;lt;code&amp;gt;?2+[不可比较返回 小于返回 相等返回 大于返回] \,_&amp;lt;/code&amp;gt;&lt;br /&gt;
* 向数组尾部追加元素（栈顶为数组）：&amp;lt;code&amp;gt;len@ 数值 ;&amp;lt;/code&amp;gt; 或 &amp;lt;code&amp;gt;nan@ 数值 ;&amp;lt;/code&amp;gt;&lt;br /&gt;
* 代码注释写法：&amp;lt;code&amp;gt;0{ 注释文本 }&amp;lt;/code&amp;gt; 或 &amp;lt;code&amp;gt;(注释文本)_&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 外部资源 ==&lt;br /&gt;
* [https://github.com/DGCK81LNN/whatlang-interpreter whatlang-interpreter]：DGCK81LNN维护的解释器核心分支，附带简易命令行运行时&lt;br /&gt;
** 同时发布至npm：[https://www.npmjs.com/package/whatlang-interpreter]&lt;br /&gt;
* [https://github.com/YufangProbably/koishi-plugins/tree/main/plugins/whatlang/src/ 原始解释器源码]（核心库+Koishi运行时）&lt;br /&gt;
* [https://github.com/DGCK81LNN/yufang-koishi-plugins/tree/main/plugins/whatlang DGCK81LNN 维护的Koishi运行时分支]&lt;br /&gt;
* [https://dgck81lnn.github.io/whatlang/ DGCK81LNN 网页版在线解释器]&lt;br /&gt;
** 旧版Babel转译网页端（已过时）：[http://哼.site/whatlang/]，兼容IE11、Safari5&lt;br /&gt;
* [https://yufangprobably.github.io/whatlang/ 余方网页版解释器]（内置语法高亮编辑器，存在部分bug）&lt;br /&gt;
* [https://gitee.com/DGCK81LNN/lnnbot-miniplugs/blob/master/plugins/common/-lnnbot-whatapi.js WhatServer 完整源码]&lt;br /&gt;
* [https://dgck81lnn.github.io/blog/pages/whatapi#1-whatserver WhatServer 中文文档]&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=Danny&amp;diff=3039</id>
		<title>Danny</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=Danny&amp;diff=3039"/>
		<updated>2026-07-07T04:57:20Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{同龄人信息|{{le|Danny}} {{男}}&lt;br /&gt;
|color=#a8edf1&lt;br /&gt;
|姓名={{加密通话| }}&lt;br /&gt;
|别称=&lt;br /&gt;
* {{le|Danny Luan}}&lt;br /&gt;
|所属=&lt;br /&gt;
;[[小外]]&lt;br /&gt;
:2017 级初中 8 班；&amp;lt;br&amp;gt;2020 级高一 6 班，&amp;lt;br&amp;gt;高二—高三 1 班&lt;br /&gt;
|关系=初中同班同学、高中同学&lt;br /&gt;
|生日=2005-02-18&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Danny&#039;&#039;&#039; 是[[LNN|我]]的中学同学，一名[[小马|马]]迷。&lt;br /&gt;
&lt;br /&gt;
== 印象 ==&lt;br /&gt;
&lt;br /&gt;
Danny 自幼接触国外互联网文化并受其熏陶，由此接触了《Minecraft》、[[小马]]、《[[UNDERTALE]]》，他的英语水平也强于我。他热衷英语歌曲和小马同人音乐（这二者之间有交集），爱玩解谜游戏，在B站发布过一些解谜游戏实况视频。&lt;br /&gt;
&lt;br /&gt;
== 回忆 ==&lt;br /&gt;
&lt;br /&gt;
初中时我和 Danny 同桌，我们关系很好，我在他的影响下入坑了小马和《UNDERTALE》。{{jk|在我和 [[ANGL]] 关系恶化前她曾经嗑我和 Danny 的 CP。}}升入高中后由于分班，我和 Danny 的来往减少。&lt;br /&gt;
&lt;br /&gt;
[[分类:小外同学]]&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=%E7%94%A8%E6%88%B7:DGCK81LNN/WhatLang&amp;diff=3038</id>
		<title>用户:DGCK81LNN/WhatLang</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=%E7%94%A8%E6%88%B7:DGCK81LNN/WhatLang&amp;diff=3038"/>
		<updated>2026-06-30T11:35:07Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​wtf&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
WhatLang 的原始解释器，又称Koishi运行时，使用 TypeScript 编写，可作为[https://koishi.chat Koishi.js]的[https://www.npmjs.com/package/koishi-plugin-whatlang 插件]安装。使用bot命令 {{LNNBot命令链接|whatlang}}，或直接发送以 &amp;lt;code&amp;gt;¿&amp;lt;/code&amp;gt; 开头的代码即可运行。Koishi运行时内置 &amp;lt;code&amp;gt;help@&amp;lt;/code&amp;gt; 帮助函数，可返回中文帮助信息。&lt;br /&gt;
&lt;br /&gt;
WhatLang 解释器核心发布为 npm 包 [https://www.npmjs.com/package/whatlang-interpreter whatlang-interpreter]，附带一个 Node.js 可执行程序 &amp;lt;code&amp;gt;what&amp;lt;/code&amp;gt; 可在命令行使用。命令行环境暂未实现标准输入读取和文件系统交互功能。&lt;br /&gt;
&lt;br /&gt;
DGCK81LNN 还开发了另一套运行时 WhatServer，内嵌在 Koishi 机器人的网页控制台中，处理所有路径以 &amp;lt;code&amp;gt;/what&amp;lt;/code&amp;gt; 开头的 HTTP 请求。它支持 WhatNoter 与 WhatCommands，但不支持大部分Koishi运行时特有函数。&lt;br /&gt;
&lt;br /&gt;
预防计划重构新版 WhatLang，引入“拉丁-1补充”区段的字符作为新命令，新增Map数据类型与局部变量，同时会带来多处不兼容语法变更。&lt;br /&gt;
&lt;br /&gt;
== 运行机制 ==&lt;br /&gt;
&lt;br /&gt;
WhatLang 拥有四种值类型：字符串（String）、数字（Number）、数组（Array）、未定义（Undefined）。数字为64位浮点数，包含 NaN。字符串和数字是不可变的；数组可原地修改，长度动态，可存放混合类型数据。&lt;br /&gt;
&lt;br /&gt;
虚拟机内部维护一层栈中栈结构，称为&#039;&#039;&#039;帧栈&#039;&#039;&#039;（Frame Stack）。帧栈最顶层的栈称为&#039;&#039;&#039;主栈&#039;&#039;&#039;，绝大多数代码命令都针对主栈。新数据压入栈顶，读取、弹出也从栈顶操作。使用 &amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt; 或 &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; 命令创建或编辑数组时，该数组会被压入帧栈，临时成为当前主栈；执行 &amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt; 后，数组从帧栈弹出，作为数组元素放回上一级栈。&lt;br /&gt;
数组与栈互相转换时不会生成新对象；若复制数组引用后通过 &amp;lt;code&amp;gt;| ]&amp;lt;/code&amp;gt; 修改数组，所有引用该数组的位置都会同步变更。&lt;br /&gt;
&lt;br /&gt;
虚拟机同时内置字典，用于存储具名变量。&lt;br /&gt;
&lt;br /&gt;
部分运行时存在独立的「输出栈（Output Stack）」：每次打印内容都会压入输出栈。&amp;lt;code&amp;gt;send@&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;sends@&amp;lt;/code&amp;gt; 等函数可弹出输出栈内容并立即发送；程序结束时，输出栈内剩余内容会统一输出。&lt;br /&gt;
Koishi运行时的输出栈可存放文本片段、附件、消息回复引用；其他环境支持打印原始字节数据。&lt;br /&gt;
&lt;br /&gt;
本文档统一约定：&lt;br /&gt;
* 栈为空时执行弹出操作，返回未定义（Undefined）；&lt;br /&gt;
* 一次性弹出多个值时，描述顺序为从栈底到栈顶；&lt;br /&gt;
* 「返回某值」等价于将该值压入主栈；&lt;br /&gt;
* 使用参数执行字符串函数：复制当前栈生成临时栈，将参数、函数字符串依次压入临时栈，执行 &amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt; 调用命令；执行结果为临时栈栈顶值，若临时栈为空则为未定义；&lt;br /&gt;
* 字符串可视为字符串数组：常规遍历单位为**字符**，部分操作单位为**编码单元**。编码单元依实现不同可为单字符或UTF-16码元；官方实现采用UTF-16码元，一个「字符」可对应单个BMP平面Unicode字符，或一对UTF-16代理对。&lt;br /&gt;
  该区分至关重要：不同函数对含非BMP字符的字符串处理逻辑不同。例如 &amp;lt;code&amp;gt;len@&amp;lt;/code&amp;gt; 统计编码单元数量，&amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; 按字符遍历字符串；&amp;lt;code&amp;gt;arr@&amp;lt;/code&amp;gt; 将字符串拆分为字符数组，&amp;lt;code&amp;gt;&amp;quot;&amp;quot;split@&amp;lt;/code&amp;gt; 按编码单元分割字符串。&lt;br /&gt;
&lt;br /&gt;
;类型强制转换&lt;br /&gt;
&lt;br /&gt;
将任意值转为字符串（String）：按人类可读格式序列化；字符串自动添加引号并转义特殊字符；数字使用标准十进制输出；未定义转为 &amp;lt;code&amp;gt;undef&amp;lt;/code&amp;gt;；数组元素逗号分隔、方括号包裹；自 [https://github.com/DGCK81LNN/whatlang-interpreter/commit/5759ee099781cb7982e257f28ac95d54e3f1356b v0.4.0] 起，超长或深层嵌套数组会用省略号截断。&lt;br /&gt;
&lt;br /&gt;
将任意值强制转为数字（Number）规则如下：&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 输入值 !! 转换结果&lt;br /&gt;
|-&lt;br /&gt;
| 字符串 || 去除首尾空白后尝试解析为数字；支持二进制`0b`、八进制`0o`、十六进制`0x`前缀；支持科学计数法E/e（正负尾数、正负指数，正号可省略）；不支持千位分隔符；无法解析时返回NaN&lt;br /&gt;
|-&lt;br /&gt;
| 未定义 || NaN&lt;br /&gt;
|-&lt;br /&gt;
| 数组 || 空数组返回0；仅含单个元素时递归转换该元素为数字；其余情况返回NaN&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
真值判定：除0、空字符串、未定义外均为真值；NaN、空数组均判定为真。&lt;br /&gt;
&lt;br /&gt;
== 命令集 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 命令 !! 名称 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt;&lt;br /&gt;
| 数字零&lt;br /&gt;
| 压入数值0。&lt;br /&gt;
|-&lt;br /&gt;
| 1~9开头、后跟任意位0~9数字&lt;br /&gt;
| 正数字面量&lt;br /&gt;
| 压入对应数字。&lt;br /&gt;
|-&lt;br /&gt;
| ASCII字母开头，后跟任意ASCII字母、数字、下划线&lt;br /&gt;
| 标识符字面量&lt;br /&gt;
| 将标识符转为全小写字符串压入栈。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&#039;&amp;lt;/code&amp;gt; 后跟单个字符&lt;br /&gt;
| 字符字面量&lt;br /&gt;
| 将单个字符作为字符串压入栈。&lt;br /&gt;
[https://github.com/DGCK81LNN/whatlang-interpreter/commit/8663d565a51a8f7176ac5eb8ece3ac509be2167a v0.3.0] 之前仅支持单个UTF-16编码单元，无法输入非BMP字符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;quot;&amp;lt;/code&amp;gt; 包裹文本&lt;br /&gt;
| 引号字符串字面量&lt;br /&gt;
| 将包裹文本作为完整字符串压入栈。&lt;br /&gt;
换行 `\n`、制表符 `\t` 可转义；自 [https://github.com/DGCK81LNN/whatlang-interpreter/commit/e05c5d79abbbf59b6da719a8ca65daade085c7df v0.2.0] 新增 `\r` `\f` `\v`；单独反斜杠会让后一个字符原样输出。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;`&amp;lt;/code&amp;gt; 包裹文本&lt;br /&gt;
| 直接打印字面量&lt;br /&gt;
| 逻辑同双引号字符串，但不会压入栈，直接输出文本。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;&lt;br /&gt;
| 加法/拼接&lt;br /&gt;
| 弹出a、b两个栈顶值，执行合并运算：&lt;br /&gt;
* 双方均为数组/均为字符串：执行拼接；&lt;br /&gt;
* 一方为数组，另一方转为单元素数组后拼接；&lt;br /&gt;
* 一方为字符串，另一方强制转字符串后拼接；&lt;br /&gt;
* 任意一方为NaN/未定义，结果为NaN；&lt;br /&gt;
* 其余场景执行数值加法。&lt;br /&gt;
数组拼接功能于 [https://github.com/DGCK81LNN/whatlang-interpreter/commit/cd29132f598e289faec40bdad04d6975ed6957d6 v0.2.2] 加入，此前数组相加行为未定义。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;-&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;%&amp;lt;/code&amp;gt;&lt;br /&gt;
| 四则运算&lt;br /&gt;
| 弹出a、b，统一转为数字，计算 `a 运算符 b` 并压入结果。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;?&amp;lt;/code&amp;gt;&lt;br /&gt;
| 比较&lt;br /&gt;
| 弹出a、b进行比较：宽松相等（等价JS `==`；数组仅同一引用才算相等）返回0；a大于b返回1；a小于b返回-1；无法比较返回NaN。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt;&lt;br /&gt;
| 逻辑非&lt;br /&gt;
| 弹出单个值；假值返回1，真值返回0。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;[&amp;lt;/code&amp;gt;&lt;br /&gt;
| 新建数组栈&lt;br /&gt;
| 开辟一层空栈，用于构建数组。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;nowiki&amp;gt;|&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
| 切换至数组栈&lt;br /&gt;
| 弹出栈顶值，若非数组则抛出错误；将该数组设为当前操作栈。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;]&amp;lt;/code&amp;gt;&lt;br /&gt;
| 关闭数组栈&lt;br /&gt;
| 将当前栈转为数组，退回上一级栈并把数组压入栈顶。&lt;br /&gt;
&amp;lt;code&amp;gt;[ ]&amp;lt;/code&amp;gt;、&amp;lt;code&amp;gt;| ]&amp;lt;/code&amp;gt; 必须成对匹配。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;()&amp;lt;/code&amp;gt; 包裹文本（允许括号嵌套）&lt;br /&gt;
| 无转义字符串&lt;br /&gt;
| 直接提取括号内全部文本为字符串，不解析转义符。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;.&amp;lt;/code&amp;gt;&lt;br /&gt;
| 打印栈顶&lt;br /&gt;
| 输出栈顶元素，不弹出；栈空则输出 `undef`。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;\&amp;lt;/code&amp;gt;&lt;br /&gt;
| 交换栈顶两位&lt;br /&gt;
| 交换栈最上方两个元素；栈元素不足2个则无操作。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;&lt;br /&gt;
| 复制栈顶&lt;br /&gt;
| 复制栈顶元素压入栈；数组仅复制引用，不深拷贝；栈空无操作。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 下沉栈顶&lt;br /&gt;
| 弹出栈顶元素，插入栈底；栈空无操作。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt;&lt;br /&gt;
| 丢弃栈顶&lt;br /&gt;
| 弹出并丢弃栈顶值。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;=&amp;lt;/code&amp;gt;&lt;br /&gt;
| 赋值具名变量&lt;br /&gt;
| 弹出字符串作为变量名，将剩余栈顶值赋予该变量；若无剩余值则赋值未定义。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;^&amp;lt;/code&amp;gt;&lt;br /&gt;
| 读取具名变量&lt;br /&gt;
| 弹出字符串变量名；存在该变量则返回变量值；为内置函数名则返回「函数名@」；其余返回未定义。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 函数调用/代码执行&lt;br /&gt;
| 弹出字符串：若是内置函数则直接调用；若是已定义变量，则将变量值作为代码执行（变量值必须为字符串）；其余情况直接将字符串作为代码运行。&lt;br /&gt;
未来版本计划限制变量名规则：仅允许小写ASCII字母开头，仅包含小写字母、数字、下划线；不符合规则的标识符会直接作为代码文本执行。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 打包数组&lt;br /&gt;
| 弹出n并转为整数；取出栈顶n个元素，打包为新数组压入栈。&lt;br /&gt;
n为0或负数时，保留栈底 |n| 个元素，其余打包为数组。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;&amp;lt;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 展开序列&lt;br /&gt;
| 弹出数组/字符串，将内部所有元素依次压入栈；输入非数组、非字符串则报错。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;&lt;br /&gt;
| 循环起始&lt;br /&gt;
| 弹出判断值；若为假，直接跳转到匹配的 &amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;}&amp;lt;/code&amp;gt;&lt;br /&gt;
| 循环结束&lt;br /&gt;
| 弹出判断值；若为真，跳转回匹配的 &amp;lt;code&amp;gt;{&amp;lt;/code&amp;gt;。&lt;br /&gt;
&amp;lt;code&amp;gt;{ }&amp;lt;/code&amp;gt; 必须成对匹配。&lt;br /&gt;
|-&lt;br /&gt;
| 连续多个 &amp;lt;code&amp;gt;!&amp;lt;/code&amp;gt;&lt;br /&gt;
| 跳出循环/终止执行&lt;br /&gt;
| 跳出对应层数嵌套循环；!数量超过循环嵌套层数时，终止当前代码块：退出当前@调用、终止#迭代、或直接结束程序。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt;&lt;br /&gt;
| 映射遍历&lt;br /&gt;
| 弹出函数字符串func；遍历栈顶数组/字符串的每一项item，以item为参数执行func；将所有执行结果打包为数组返回。&lt;br /&gt;
栈顶必须是数组或字符串，否则报错；[https://github.com/DGCK81LNN/whatlang-interpreter/commit/e05c5d79abbbf59b6da719a8ca65daade085c7df v0.2.0] 前不支持字符串遍历。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;,&amp;lt;/code&amp;gt;&lt;br /&gt;
| 读取序列下标&lt;br /&gt;
| 弹出下标n；取出栈顶数组/字符串对应下标元素。&lt;br /&gt;
n强制转为整数；栈顶非数组/字符串报错；字符串按下标取编码单元；负数下标从末尾倒数，-1代表最后一位；下标越界返回未定义。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;&lt;br /&gt;
| 修改序列下标&lt;br /&gt;
| 弹出n、value；修改栈顶数组下标n的元素为value。&lt;br /&gt;
n必须可转为整数或NaN；栈顶非数组报错；负数下标倒数；n等于数组长度/NaN时将value追加至数组末尾；其余越界下标不修改数组。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$&amp;lt;/code&amp;gt;&lt;br /&gt;
| 删除数组下标元素&lt;br /&gt;
| 弹出下标n；删除栈顶数组对应下标元素。&lt;br /&gt;
n强制转为整数；栈顶非数组报错；负数下标倒数；下标越界无操作；被删除元素后方所有元素下标自动前移一位。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 内置函数 ==&lt;br /&gt;
&lt;br /&gt;
=== 核心通用函数 ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 函数 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;num@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出一个值，强制转为数字并返回。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;str@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出一个值，强制转为字符串并返回。&lt;br /&gt;
[https://github.com/DGCK81LNN/whatlang-interpreter/commit/e05c5d79abbbf59b6da719a8ca65daade085c7df v0.2.0] 旧版本行为：字符串带引号转义；全单编码单元字符串数组直接拼接，空数组返回空串。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;repr@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出值，返回可复现该值的WhatLang代码字符串。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;arr@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出值：数组返回浅拷贝；字符串拆分为字符数组；其余类型报错。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pow@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出a、b转为数字，返回a的b次幂。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;band@&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;bor@&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;bxor@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出两值转为有符号32位整数，依次执行按位与、按位或、按位异或并返回结果。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;bnot@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出值转为有符号32位整数，返回按位取反结果。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;rand@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 返回0~1之间随机浮点数。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;randint@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出两个数字，返回区间内随机整数（向下取整）。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;flr@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出数字，向下取整返回整数。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;range@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出n转为数字，n必须小于4294967296；返回 [0, n) 整数数组，小数部分直接截断。n为负则报错。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;len@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 返回栈顶数组/字符串长度；字符串统计**编码单元**数量。&lt;br /&gt;
[https://github.com/DGCK81LNN/whatlang-interpreter/commit/e05c5d79abbbf59b6da719a8ca65daade085c7df v0.2.0] 旧版本统计字符数。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;split@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出字符串、分隔符；按分隔符分割字符串为字符串数组；分隔符为空则按编码单元拆分。&lt;br /&gt;
自 [https://github.com/DGCK81LNN/whatlang-interpreter/commit/cae889d00a70db3c532c2fefce2add7ad689bc53 v0.2.1]：分隔符为数组时视作正则表达式，匹配分组全部存入结果数组。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;join@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出分隔符字符串；将栈顶数组/字符串全部转为字符串，以分隔符拼接为单一字符串；栈顶非数组/字符串报错。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;reverse@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将栈顶数组/字符串转为数组并反转元素顺序，返回浅拷贝。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;in@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出目标值；查找栈顶数组/字符串中首个匹配项下标，无匹配返回-1；栈顶非法类型报错。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;filter@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出函数字符串；遍历栈顶数组/字符串，执行函数筛选真值项，返回筛选后的新数组；栈顶非法类型报错。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;chr@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出数字/数字数组（Unicode码点），拼接为对应字符串；数值为负或超过1114111时报错。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ord@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出字符串，将每个字符/未配对代理对转为码点数字，返回数字数组。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;and@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出a、b；a为空串/0/未定义则返回a，否则返回b。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;or@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出a、b；a为空串/0/未定义则返回b，否则返回a。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nan@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 返回NaN。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;undef@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 返回未定义。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;inf@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 返回正无穷。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ninf@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 返回负无穷。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;eq@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出两值，严格相等（等价JS `===`）返回1，否则0。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;stak@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 将当前主栈转为数组返回；会造成数组自包含。&lt;br /&gt;
名称含义：stack@ 去掉c（copy，不拷贝）。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;stack@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 返回主栈的浅拷贝数组。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;try@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 逻辑同@调用；运行时报错则返回 [错误名, 错误信息]；无错误返回 [未定义, 未定义]。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;throw@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出字符串作为错误信息，抛出名为Error的运行时异常。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;match@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出待匹配字符串、正则表达式；执行JS正则匹配，返回匹配结果字符串数组，无匹配返回空数组。&lt;br /&gt;
待匹配值强制转字符串；表达式为数组时对应RegExp构造参数 [正则, 修饰符]；普通字符串直接作为正则模板；正则非法则报错。带g修饰符返回全部完整匹配；无g修饰符返回完整匹配+各分组捕获内容。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;repl@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出目标字符串、匹配模板、替换文本；全局替换所有匹配项并返回新字符串。匹配模板可为字面字符串或正则数组（同match@规则）；替换文本内美元符号为分组引用，如需输出$需写两个$$。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;time@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 返回当前系统时间戳（毫秒级纪元时间）。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;type@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出值，返回类型字符串：&amp;lt;code&amp;gt;&amp;quot;String&amp;quot;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;quot;Number&amp;quot;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;quot;Array&amp;quot;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;&amp;quot;Undefined&amp;quot;&amp;lt;/code&amp;gt;。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;b64@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出字节数字数组，返回Base64编码字符串。&lt;br /&gt;
[https://github.com/DGCK81LNN/whatlang-interpreter/commit/4a23a8a2cec1577c7ff6110c80c65a3d59430933 v0.3.3] 新增。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nb64@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出Base64字符串，解码为字节数字数组返回。&lt;br /&gt;
[https://github.com/DGCK81LNN/whatlang-interpreter/commit/4a23a8a2cec1577c7ff6110c80c65a3d59430933 v0.3.3] 新增。解码前自动过滤非法Base64字符，末尾补等号至长度为4的倍数。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;utf8@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出字符串，转为UTF-8字节数字数组返回。&lt;br /&gt;
[https://github.com/DGCK81LNN/whatlang-interpreter/commit/4a23a8a2cec1577c7ff6110c80c65a3d59430933 v0.3.3] 新增。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nutf8@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出UTF-8字节数字数组，解码为字符串返回。&lt;br /&gt;
[https://github.com/DGCK81LNN/whatlang-interpreter/commit/4a23a8a2cec1577c7ff6110c80c65a3d59430933 v0.3.3] 新增。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 通用扩展函数 ===&lt;br /&gt;
该组函数最初为Koishi运行时专属，现已在多数环境提供。&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 函数 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;you@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 返回运行环境标识字符串。小石心格式：&amp;lt;code&amp;gt;&amp;quot;WhatLang/2024 Environment/messaging Framework/koishi Platform/平台标识 Id/机器人平台ID&amp;quot;&amp;lt;/code&amp;gt;。&lt;br /&gt;
可在插件配置「Framework」与「Platform」之间自定义品牌字段，规范格式为 &amp;lt;code&amp;gt;Brand/机器人名称&amp;lt;/code&amp;gt;。&lt;br /&gt;
2025年6月22日并入小石心插件：[https://github.com/DGCK81LNN/yufang-koishi-plugins/commit/279e74d166c8673a984ffd7ce0b64ac6c597f9bb]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;pr@&amp;lt;/code&amp;gt;&lt;br /&gt;
| Koishi运行时：等待当前频道内同一用户下一条消息，超时返回未定义；用于交互式读取用户输入。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cat@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出URL字符串，发起HTTP GET请求，返回响应文本；状态码异常/网络错误直接抛出异常。&lt;br /&gt;
命名来源LNNBot内置cat命令：传入URL则拉取网页，不传则读取下一条用户消息（逻辑近似pr@）。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ca@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 逻辑同cat@，返回原始字节数字数组而非文本。&lt;br /&gt;
2025-05-14 在WhatServer以catb@上线，05-29更名ca@，含义：cat去掉text的t；2025-06-22接入Koishi运行时：[https://github.com/DGCK81LNN/yufang-koishi-plugins/commit/b63aebce036ad8339aad7d453593697a18d27ce0]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;fetch@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 依次弹出请求方法、URL、请求头、请求体，发起HTTP请求；返回数组 [状态码数字, 状态描述字符串, 二维数组请求头, 响应文本字符串]。&lt;br /&gt;
2025年6月3日新增。&lt;br /&gt;
方法、URL必须为字符串；请求头为二维字符串数组；请求体为字节数字数组或字符串；GET/HEAD请求体必须为未定义。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;fech@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 逻辑同fetch@，响应体返回原始字节数组而非文本；名称含义fetch去掉t（text）。2025-06-03新增。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;reesc@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出字符串，转义所有JS正则元字符后返回。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sleep@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出数字n，阻塞n秒；取值范围0 ≤ n ≤ 2147483.647。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nout@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出并丢弃输出栈最后存入（栈顶）的一条内容。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nouts@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出整数n，删除输出栈顶部n条内容；n≤0时保留底部|n|条，其余全部清空；无穷值视为0。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;send@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出输出栈栈顶内容并立即发送；小石心返回发送消息的平台ID字符串数组。用于单条输出刷新。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sends@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出整数n，取出输出栈顶部n条内容批量发送；小石心返回消息ID数组。n≤0保留底部|n|条；无穷视为0。用于批量刷新输出栈。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ou@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出字节数字数组，直接打印原始二进制字节；小石心无此函数。2025-05-14 WhatServer以outb@上线，05-29更名ou@；命名类比ca/fech，out去掉t代表输出字节流。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Koishi运行时专属函数 ===&lt;br /&gt;
部分函数与机器人接收消息绑定；消息内容使用Koishi标准XML字符串格式。&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 函数 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;help@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 帮助文档函数。弹出参数字符串，返回对应帮助主题文本；空串/未定义返回语言简介与help@使用教程。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;helpall@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 生成图片，打印几乎全部内置函数名称列表。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;propt@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出用户ID；等待当前频道指定用户的下一条消息并返回内容；参数为假值则接收全体用户消息，支持传入单个/多用户平台ID。超时返回未定义。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;prompt@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出频道ID、回调函数；监听目标频道消息，每条消息传入详情数组执行回调；回调返回真值时停止监听并返回消息详情，超时返回未定义。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;me@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 返回触发解释器的消息详情数组，字段定义：&lt;br /&gt;
* 下标0：消息XML文本字符串&lt;br /&gt;
* 下标1：消息平台ID字符串&lt;br /&gt;
* 下标2：发送者用户名&lt;br /&gt;
* 下标3：发送者平台用户ID&lt;br /&gt;
* 下标4：Koishi数据库用户ID（数字）&lt;br /&gt;
* 下标5：当前频道平台ID&lt;br /&gt;
* 下标6：被回复/引用消息ID，无则未定义&lt;br /&gt;
&lt;br /&gt;
该函数在WhatServer可用，但字段语义变更（尽量保持接口兼容）：&lt;br /&gt;
* 下标0：请求方法+URL，例 &amp;lt;code&amp;gt;GET /whatfoo/bar&amp;lt;/code&amp;gt;；URL编码字符自动解码&lt;br /&gt;
* 下标1：随机字符串&lt;br /&gt;
* 下标2、3：客户端IP地址&lt;br /&gt;
* 下标4：携带X-Lnnbot-Whatserver-Login-Token请求头时为数据库用户ID数字，否则未定义&lt;br /&gt;
* 下标5：固定字符串 &amp;lt;code&amp;gt;&amp;quot;__WHATSERVER__&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
* 下标6：未定义&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;outimg@&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;outaudio@&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;outvideo@&amp;lt;/code&amp;gt; &amp;lt;code&amp;gt;outfile@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出资源URL字符串，向输出栈写入对应类型附件。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;outquote@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出消息ID字符串，输出对应消息的回复引用卡片。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;outat@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出用户平台ID，输出@提及该用户。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;outimag@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出文本字符串，使用等宽字体渲染为图片存入输出栈。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;outksq@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出文本字符串，使用Kreative Square字体渲染图片输出；字体地址：[https://www.kreativekorp.com/software/fonts/ksquare/]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;outsvg@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出SVG描述数组，渲染矢量图存入输出栈；暂不支持动画。&lt;br /&gt;
数组规则：前两项为svg宽、高；后续每项为元素数组：首项元素类型字符串，第二项style样式，剩余参数随类型变化。&lt;br /&gt;
* &amp;lt;code&amp;gt;path&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;p&amp;lt;/code&amp;gt;：路径标签，第三项为d路径数据；&lt;br /&gt;
* &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;t&amp;lt;/code&amp;gt;：文字标签，第三项x、第四项y、第五项文本内容；&lt;br /&gt;
* &amp;lt;code&amp;gt;img&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;i&amp;lt;/code&amp;gt;：图片标签，依次为x、y、宽、高、资源href地址。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;outhtml@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出HTML文本，渲染网页截图存入输出栈。&lt;br /&gt;
2025年10月3日新增：[https://github.com/DGCK81LNN/yufang-koishi-plugins/commit/6c98e706c38ca9c2adbc7645bd3ebcb04b7ca524]&lt;br /&gt;
当前不支持class=wikitable表格快捷语法，因渲染环境禁用JS；开发组正在修复该问题。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;nsend@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出消息ID，撤回当前频道对应消息。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;sendsto@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 依次弹出目标频道ID、整数n；逻辑同sends@，批量发送至指定频道，返回发送消息ID数组。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;findmsg@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出回调函数；遍历当前频道历史消息，每条传入详情数组执行回调；回调返回真值时停止遍历并返回该消息详情；遍历至消息上限无匹配则返回未定义。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;getmsg@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出消息ID，返回对应消息详情数组（同me@结构）。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;guildmem@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出群组ID，返回群成员二维数组，每项格式 [用户名, 平台用户ID]；机器人接收过该用户消息才会出现在列表中。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== WhatNoter 笔记存储模块 ====&lt;br /&gt;
基于Koishi数据库用户ID的简易持久化存储；每个用户ID独立拥有公开笔记、保护笔记、私有笔记。&lt;br /&gt;
无需用户真实存在即可读取对应ID的公开笔记；任意一条笔记创建后，同ID其余两类笔记自动初始化为空串；从未写入的ID读取笔记返回未定义。&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 函数 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;notewc@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出数字用户ID、字符串文本，写入该用户公开笔记。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;notewd@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出字符串文本，写入调用者的保护笔记。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;notewe@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出字符串文本，写入调用者的私有笔记。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;noterc@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出数字用户ID，读取其公开笔记内容。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;noterd@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出数字用户ID，读取其保护笔记内容。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;notere@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 读取调用者私有笔记内容并返回。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== WhatCommands 自定义命令模块 ====&lt;br /&gt;
允许使用WhatLang编写自定义命令；每条命令包含名称、执行代码、简短描述、详细帮助文档。&lt;br /&gt;
三种调用方式：发送 &amp;lt;code&amp;gt;¿¿命令名 参数&amp;lt;/code&amp;gt;、调用机器人命令 &amp;lt;code&amp;gt;whatcmd&amp;lt;/code&amp;gt;、WhatLang内置 &amp;lt;code&amp;gt;cmd@&amp;lt;/code&amp;gt; 函数。&lt;br /&gt;
命令接收单个字符串输入，存放于栈顶。&lt;br /&gt;
示例：命令greet代码 &amp;lt;code&amp;gt;`Hello, `.`!`&amp;lt;/code&amp;gt;&lt;br /&gt;
发送 &amp;lt;code&amp;gt;¿¿greet my friends&amp;lt;/code&amp;gt;、执行机器人命令 &amp;lt;code&amp;gt;whatcmd greet my friends&amp;lt;/code&amp;gt;、运行代码 &amp;lt;code&amp;gt;&amp;quot;my friends&amp;quot; greet cmd@&amp;lt;/code&amp;gt; 均输出 &amp;lt;code&amp;gt;Hello, my friends!&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
使用 &amp;lt;code&amp;gt;cmd@&amp;lt;/code&amp;gt; 调用命令会返回执行结果，可作为退出状态码；¿¿前缀调用无法获取返回值。&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 函数 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cmdset@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 依次弹出代码字符串、命令名称，绑定命令执行代码。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cmdall@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 返回全部已定义命令名称数组。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cmdsethelp@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 依次弹出帮助文本、命令名，设置命令详细手册。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cmdseth@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 依次弹出描述文本、命令名，设置命令简短介绍。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cmddel@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出命令名称，删除该自定义命令。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cmdget@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出命令名称，返回命令代码，无该命令返回未定义。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cmdgethelp@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出命令名称，返回命令详细手册文本，无则未定义。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cmdgeth@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 弹出命令名称，返回命令简短描述，无则未定义。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;cmd@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 依次弹出输入参数字符串、命令名称，运行对应命令代码并返回执行结果。&lt;br /&gt;
旧版本无命令时无返回值；新版本直接抛出异常。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== WhatServer 网页服务端专属函数 ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 函数 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;hset@&amp;lt;/code&amp;gt;&lt;br /&gt;
| 依次弹出响应头键、值字符串，设置HTTP响应头。&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
除内置函数外，WhatServer预定义三个全局变量：&lt;br /&gt;
&amp;lt;code&amp;gt;reqh&amp;lt;/code&amp;gt;：请求头二维字符串数组；&lt;br /&gt;
&amp;lt;code&amp;gt;reqm&amp;lt;/code&amp;gt;：请求方法字符串；&lt;br /&gt;
&amp;lt;code&amp;gt;reqb&amp;lt;/code&amp;gt;：请求体，依请求方式与Content-Type分为字符串、字节数组、未定义三种类型。&lt;br /&gt;
&lt;br /&gt;
== 惯用写法与标准范式 ==&lt;br /&gt;
* 字面量赋值变量：&amp;lt;code&amp;gt;值 变量名 =_&amp;lt;/code&amp;gt;&lt;br /&gt;
** 末尾 &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt; 丢弃赋值后栈中残留的变量名，一般无保留必要。&lt;br /&gt;
** 自定义函数写法：用括号包裹代码作为字符串存入变量；函数可从栈顶读取参数、返回任意数量结果；调用格式 &amp;lt;code&amp;gt;函数名@&amp;lt;/code&amp;gt;&lt;br /&gt;
* 获取负一/任意负整数：&amp;lt;code&amp;gt;01-&amp;lt;/code&amp;gt;&lt;br /&gt;
* 超大浮点数（例3×10¹⁰⁰）：&amp;lt;code&amp;gt;(3e100)num@&amp;lt;/code&amp;gt;&lt;br /&gt;
** 用字符串承载数字字面量，再通过num@转为数值。&lt;br /&gt;
* If条件块：&amp;lt;code&amp;gt;条件 { 执行语句 !}&amp;lt;/code&amp;gt;&lt;br /&gt;
** 利用单次循环+末尾跳出实现分支。&lt;br /&gt;
* If-Else分支方案1（借助临时变量）：&amp;lt;code&amp;gt;条件 c={ 真分支 !} c^~{ 假分支 !}&amp;lt;/code&amp;gt;&lt;br /&gt;
* If-Else方案2（无变量）：&amp;lt;code&amp;gt;1{ 条件 { 真分支 !!} 假分支 !}&amp;lt;/code&amp;gt;&lt;br /&gt;
* If-Else方案3（数组映射）：&amp;lt;code&amp;gt;条件 ~[(真分支)(假分支)] \,_@&amp;lt;/code&amp;gt;&lt;br /&gt;
* 两值比较（返回真值代表条件成立）&lt;br /&gt;
** 宽松相等（a?b==0）：&amp;lt;code&amp;gt;?~&amp;lt;/code&amp;gt;&lt;br /&gt;
** a大于b（a?b==1）：&amp;lt;code&amp;gt;?1?~&amp;lt;/code&amp;gt;&lt;br /&gt;
** a小于b：&amp;lt;code&amp;gt;?(-1)?~&amp;lt;/code&amp;gt; 或 &amp;lt;code&amp;gt;\?1?~&amp;lt;/code&amp;gt;&lt;br /&gt;
** 小于等于：&amp;lt;code&amp;gt;?1\?1?~&amp;lt;/code&amp;gt;&lt;br /&gt;
** 大于等于：&amp;lt;code&amp;gt;\?1\?1?~&amp;lt;/code&amp;gt;&lt;br /&gt;
** 删除末尾 &amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt; 可对结果取反。&lt;br /&gt;
** 通用比较模板：&amp;lt;code&amp;gt;?[相等结果 大于结果 小于结果] \,_&amp;lt;/code&amp;gt;，填入0/1自定义每种情况返回值；两值不可比较时视为相等。&lt;br /&gt;
*** 处理不可比较场景扩展模板：&amp;lt;code&amp;gt;?2+[不可比较返回 小于返回 相等返回 大于返回] \,_&amp;lt;/code&amp;gt;&lt;br /&gt;
* 向数组尾部追加元素（栈顶为数组）：&amp;lt;code&amp;gt;len@ 数值 ;&amp;lt;/code&amp;gt; 或 &amp;lt;code&amp;gt;nan@ 数值 ;&amp;lt;/code&amp;gt;&lt;br /&gt;
* 代码注释写法：&amp;lt;code&amp;gt;0{ 注释文本 }&amp;lt;/code&amp;gt; 或 &amp;lt;code&amp;gt;(注释文本)_&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 外部资源 ==&lt;br /&gt;
* [https://github.com/DGCK81LNN/whatlang-interpreter whatlang-interpreter]：DGCK81LNN维护的解释器核心分支，附带简易命令行运行时&lt;br /&gt;
** 同时发布至npm：[https://www.npmjs.com/package/whatlang-interpreter]&lt;br /&gt;
* [https://github.com/YufangProbably/koishi-plugins/tree/main/plugins/whatlang/src/ 原始解释器源码]（核心库+Koishi运行时）&lt;br /&gt;
* [https://github.com/DGCK81LNN/yufang-koishi-plugins/tree/main/plugins/whatlang DGCK81LNN 维护的Koishi运行时分支]&lt;br /&gt;
* [https://dgck81lnn.github.io/whatlang/ DGCK81LNN 网页版在线解释器]&lt;br /&gt;
** 旧版Babel转译网页端（已过时）：[http://哼.site/whatlang/]，兼容IE11、Safari5&lt;br /&gt;
* [https://yufangprobably.github.io/whatlang/ 余方网页版解释器]（内置语法高亮编辑器，存在部分bug）&lt;br /&gt;
* [https://gitee.com/DGCK81LNN/lnnbot-miniplugs/blob/master/plugins/common/-lnnbot-whatapi.js WhatServer 完整源码]&lt;br /&gt;
* [https://dgck81lnn.github.io/blog/pages/whatapi#1-whatserver WhatServer 中文文档]&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=MediaWiki:Sidebar&amp;diff=3036</id>
		<title>MediaWiki:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=MediaWiki:Sidebar&amp;diff=3036"/>
		<updated>2026-06-25T13:35:15Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* navigation&lt;br /&gt;
** mainpage|mainpage-description&lt;br /&gt;
** lnnblog-categories-url|lnnblog-categories&lt;br /&gt;
** lnnblog-sandbox-url|lnnblog-sandbox&lt;br /&gt;
** lnnblog-notes-url|lnnblog-notes&lt;br /&gt;
** recentchanges-url|recentchanges&lt;br /&gt;
** randompage-url|randompage&lt;br /&gt;
** specialpages-url|specialpages&lt;br /&gt;
* SEARCH&lt;br /&gt;
* TOOLBOX&lt;br /&gt;
* LANGUAGES&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=%E7%81%B5%E9%AD%82%E5%B0%8F%E7%AB%99&amp;diff=3034</id>
		<title>灵魂小站</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=%E7%81%B5%E9%AD%82%E5%B0%8F%E7%AB%99&amp;diff=3034"/>
		<updated>2026-06-25T13:15:26Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{消歧义| 2020 年建立的 GitHub Pages 站点|[[LNN|我]]小学时建立的网站|3luo}}&lt;br /&gt;
&#039;&#039;&#039;灵魂小站&#039;&#039;&#039;是[[LNN|我]]托管于 GitHub Pages 的网站。&lt;br /&gt;
&lt;br /&gt;
==历史==&lt;br /&gt;
&lt;br /&gt;
灵魂小站最初创建于 2020 年 5 月 1 日，当时名为“灵魂小站临时测试站点”。同年 9 月 13 日正式代替 [[3luo]] 成为新的“灵魂小站”。站点由主站、[[LNN的博客！|博客区]]、沙盒区和遗留区等数个 GitHub 仓库组成。网址为 https://dgck81lnn.github.io&amp;lt;nowiki/&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
2022 年 4 月 11 日起，灵魂小站主站暂时关闭，其仓库“dgck81lnn.github.io”更名为“dgck81lnn.github.io_old”，另创建了一个新的仓库取而代之。主站关闭期间我接触了新的前端技术栈，使用不同框架编译构建的需求促使了灵魂小站上的各个应用程序在层次结构上扁平化，每个应用位于独立的仓库而非集中在主站仓库。&lt;br /&gt;
&lt;br /&gt;
2026 年 6 月，我重新设计了灵魂小站主站，并仅作为个人介绍和导航使用，不再包含应用程序。&lt;br /&gt;
&lt;br /&gt;
{{DEFAULTSORT:{{SortPinyin|灵{ling2}魂{hun2}小{xiao3}站{zhan4} }}}}&lt;br /&gt;
[[分类:作品]]&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=%E7%BA%AF%E7%9C%9F%E7%81%B5%E9%AD%82&amp;diff=3032</id>
		<title>纯真灵魂</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=%E7%BA%AF%E7%9C%9F%E7%81%B5%E9%AD%82&amp;diff=3032"/>
		<updated>2026-06-25T13:03:21Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​/* 设定 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{消歧义||r=“真魂”“vudrux”| LNN 建立的网站|真魂(网站)}}&lt;br /&gt;
{{Infobox|纯真灵魂 {{男}}&lt;br /&gt;
|image=[[File:motion_er2@800.jpg|200px]]&lt;br /&gt;
|color=#3ba&lt;br /&gt;
|&lt;br /&gt;
! 姓名&lt;br /&gt;
{{!}} 纯真灵魂 / {{le|Innocent Souls}}&lt;br /&gt;
{{!-}}&lt;br /&gt;
! 曾用名&lt;br /&gt;
{{!}} {{inline-block|&lt;br /&gt;
* 诺曼 / {{le|Norman}}&lt;br /&gt;
}}&lt;br /&gt;
{{!-}}&lt;br /&gt;
! 别称&lt;br /&gt;
{{!}} {{inline-block|&lt;br /&gt;
* &amp;lt;s&amp;gt;{{le|Little Nornor}}&amp;lt;/s&amp;gt;&lt;br /&gt;
* 真魂 / {{le|Soul}}&lt;br /&gt;
* IS（[[小马 DGCK|小马字母代号]]）&lt;br /&gt;
* {{lj|la vrude pruxi}} / {{lj|la pruxi}}&lt;br /&gt;
* {{lj|.vudrux.}}（{{lj|[[jbocme]]}}）&lt;br /&gt;
}}&lt;br /&gt;
{{!-}}&lt;br /&gt;
! 种族&lt;br /&gt;
{{!}} 独角兽[[小马]]&lt;br /&gt;
{{!-}}&lt;br /&gt;
! 生日&lt;br /&gt;
{{!}} {{jk|暮光闪闪开始执政小马国前第 10 年的}} 3 月 15 日&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;纯真灵魂&#039;&#039;&#039;是我的&#039;&#039;[[小马]]自设&#039;&#039;（{{le|ponysona}}）。&lt;br /&gt;
&lt;br /&gt;
== 设定 ==&lt;br /&gt;
&lt;br /&gt;
[[File:DPA 01.png|thumb|150px|left]]纯真灵魂的脸型像母马那样是圆的，不像多数公马。他的身体为绿松色，鬃毛为黄绿色，带有浅黄色条纹；眼睛为蓝色，魔法光环为浅蓝绿色；可爱标志为三颗心，分别为红色、橙色、粉色。纯真灵魂拥有关于[[「灵魂」]]的天赋，曾制作出一种只有特定「灵魂」才能打开的「灵魂锁」。&lt;br /&gt;
&lt;br /&gt;
纯真灵魂的名字灵感来源于小马同人作者 [https://www.fimfiction.net/user/173490/Starscribe {{le|Starscribe}}] 的系列小说“{{le|&#039;&#039;Ponies after People&#039;&#039;}}”第三部《[https://fimtale.net/t/2926 孤日永存]》（[https://www.fimfiction.net/story/289382/the-eternal-lonely-day {{le|&#039;&#039;The Eternal Lonely Day&#039;&#039;}}]）中的角色“真火”（{{le|Surefire}}），当时我认为用“真”字起名非常好听；同时深受《{{lelink|UNDERTALE}}》及其同人动画《{{le|Glitchtale}}》的影响，我起了“真魂”这个名字，将“真”附会为“纯真”，并用《{{le|UNDERTALE}}》中象征「灵魂」的爱心形组成可爱标志，寓意兼爱、认识形形色色的灵魂。&lt;br /&gt;
&lt;br /&gt;
{{clear|left}}&lt;br /&gt;
&lt;br /&gt;
== 经历 ==&lt;br /&gt;
&lt;br /&gt;
由于存在平行世界的设定，纯真灵魂的经历主要有两个版本，但目前都并不完整明确。&lt;br /&gt;
&lt;br /&gt;
纯真灵魂自幼酷爱附魔学，而对其他形式的魔法只是略知一二。幼时名叫诺曼，获得可爱标志后改名纯真灵魂。在世界线 1 中，他上学时在学校比较受欢迎，成年后和白鸽同居，以售卖附魔物品为生；在世界线 2 中，他还在上学，在学校朋友不多。&lt;br /&gt;
&lt;br /&gt;
== 琐闻 ==&lt;br /&gt;
&lt;br /&gt;
* 纯真灵魂本马是个双性恋或泛性恋者，这可能与他“友谊不分种族、性别”的信念有关。&lt;br /&gt;
&lt;br /&gt;
{{hidebox|奇怪经历设定一则|2=&lt;br /&gt;
{{jk|纯真灵魂在森林中误食毒蘑菇昏迷，好心触手怪帮忙洗胃}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[分类:虚构人物]]{{DEFAULTSORT:{{SortPinyin|纯{chun2}真{zhen1}灵{ling2}魂{hun2} }}}}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=%E7%BA%AF%E7%9C%9F%E7%81%B5%E9%AD%82&amp;diff=3030</id>
		<title>纯真灵魂</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=%E7%BA%AF%E7%9C%9F%E7%81%B5%E9%AD%82&amp;diff=3030"/>
		<updated>2026-06-25T13:00:51Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​补充设定灵感来源&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{消歧义||r=“真魂”“vudrux”| LNN 建立的网站|真魂(网站)}}&lt;br /&gt;
{{Infobox|纯真灵魂 {{男}}&lt;br /&gt;
|image=[[File:motion_er2@800.jpg|200px]]&lt;br /&gt;
|color=#3ba&lt;br /&gt;
|&lt;br /&gt;
! 姓名&lt;br /&gt;
{{!}} 纯真灵魂 / {{le|Innocent Souls}}&lt;br /&gt;
{{!-}}&lt;br /&gt;
! 曾用名&lt;br /&gt;
{{!}} {{inline-block|&lt;br /&gt;
* 诺曼 / {{le|Norman}}&lt;br /&gt;
}}&lt;br /&gt;
{{!-}}&lt;br /&gt;
! 别称&lt;br /&gt;
{{!}} {{inline-block|&lt;br /&gt;
* &amp;lt;s&amp;gt;{{le|Little Nornor}}&amp;lt;/s&amp;gt;&lt;br /&gt;
* 真魂 / {{le|Soul}}&lt;br /&gt;
* IS（[[小马 DGCK|小马字母代号]]）&lt;br /&gt;
* {{lj|la vrude pruxi}} / {{lj|la pruxi}}&lt;br /&gt;
* {{lj|.vudrux.}}（{{lj|[[jbocme]]}}）&lt;br /&gt;
}}&lt;br /&gt;
{{!-}}&lt;br /&gt;
! 种族&lt;br /&gt;
{{!}} 独角兽[[小马]]&lt;br /&gt;
{{!-}}&lt;br /&gt;
! 生日&lt;br /&gt;
{{!}} {{jk|暮光闪闪开始执政小马国前第 10 年的}} 3 月 15 日&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;纯真灵魂&#039;&#039;&#039;是我的&#039;&#039;[[小马]]自设&#039;&#039;（{{le|ponysona}}）。&lt;br /&gt;
&lt;br /&gt;
== 设定 ==&lt;br /&gt;
&lt;br /&gt;
[[File:DPA 01.png|thumb|150px|left]]纯真灵魂的脸型像母马那样是圆的，不像多数公马。他的身体为绿松色，鬃毛为黄绿色，带有浅黄色条纹；眼睛为蓝色，魔法光环为浅蓝绿色；可爱标志为三颗心，分别为红色、橙色、粉色。纯真灵魂拥有关于[[「灵魂」]]的天赋，曾制作出一种只有特定「灵魂」才能打开的「灵魂锁」。&lt;br /&gt;
&lt;br /&gt;
纯真灵魂的名字灵感来源于小马同人作者 [https://www.fimfiction.net/user/173490/Starscribe {{le|Starscribe}}] 的系列小说“{{le|&#039;&#039;Ponies after People&#039;&#039;}}”第三部《[https://fimtale.net/t/2926 孤日永存]》（[https://www.fimfiction.net/story/289382/the-eternal-lonely-day {{le|&#039;&#039;The Eternal Lonely Day&#039;&#039;}}]）中的角色“真火”（{{le|Surefire}}），当时我认为用“真”字起名非常好听；同时深受《{{lelink|UNDERTALE}}》及其同人动画《{{le|Glitchtale}}》的影响，我起了“真魂”这个名字，将“真”附会为“纯真”，并用《{{le|UNDERTALE}}》中象征「灵魂」的爱心形组成了 OC 的可爱标志，寓意兼爱、认识形形色色的灵魂。&lt;br /&gt;
&lt;br /&gt;
{{clear|left}}&lt;br /&gt;
== 经历 ==&lt;br /&gt;
&lt;br /&gt;
由于存在平行世界的设定，纯真灵魂的经历主要有两个版本，但目前都并不完整明确。&lt;br /&gt;
&lt;br /&gt;
纯真灵魂自幼酷爱附魔学，而对其他形式的魔法只是略知一二。幼时名叫诺曼，获得可爱标志后改名纯真灵魂。在世界线 1 中，他上学时在学校比较受欢迎，成年后和白鸽同居，以售卖附魔物品为生；在世界线 2 中，他还在上学，在学校朋友不多。&lt;br /&gt;
&lt;br /&gt;
== 琐闻 ==&lt;br /&gt;
&lt;br /&gt;
* 纯真灵魂本马是个双性恋或泛性恋者，这可能与他“友谊不分种族、性别”的信念有关。&lt;br /&gt;
&lt;br /&gt;
{{hidebox|奇怪经历设定一则|2=&lt;br /&gt;
{{jk|纯真灵魂在森林中误食毒蘑菇昏迷，好心触手怪帮忙洗胃}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
[[分类:虚构人物]]{{DEFAULTSORT:{{SortPinyin|纯{chun2}真{zhen1}灵{ling2}魂{hun2} }}}}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=%E7%9C%9F%E9%AD%82(%E7%BD%91%E7%AB%99)&amp;diff=3028</id>
		<title>真魂(网站)</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=%E7%9C%9F%E9%AD%82(%E7%BD%91%E7%AB%99)&amp;diff=3028"/>
		<updated>2026-06-25T11:47:55Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{消歧义| [[LNN]] 建立的网站|[[小马]] OC|纯真灵魂}}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;真魂 &#039;&#039;{{lj|vudrux}}&#039;&#039;&#039;&#039;&#039; 是[[LNN|我]]的一个网站，其继承 [[3luo]] 的设计风格，用于存放一些不适合部署于[[灵魂小站]]的内容，例如需要 PHP 后端的应用。网站位于 https://vudrux.site&amp;lt;nowiki/&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
== 历史 ==&lt;br /&gt;
&lt;br /&gt;
真魂站的前身是一个创建于 2021 年 8 月底的无名站点，由 ponyicu 免费托管，网址为 http://dgck81lnn.pony.icu&amp;lt;nowiki/&amp;gt;（目前已失效）。2023 年 11 月移至现网址，并由 iFastNet 托管，服务器位于英国。2024 年 5 月前后，网站命名为“真魂 vudrux”，通称“真魂站”，名称来源于我的[[小马]] OC [[纯真灵魂]]及其 [[jbocme]]。2026 年 6 月起网站不再由 iFastNet 托管，服务器移至新加坡阿里云。&lt;br /&gt;
&lt;br /&gt;
[[分类:作品]]&lt;br /&gt;
{{DEFAULTSORT:{{SortPinyin|真{zhen1}魂{hun2}(网{wang3}站{zhan4})}}}}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=%E5%88%86%E7%B1%BB:%E4%BD%BF%E7%94%A8DynamicPageList4%E8%A7%A3%E6%9E%90%E5%99%A8%E6%A0%87%E7%AD%BE%E7%9A%84%E9%A1%B5%E9%9D%A2&amp;diff=3023</id>
		<title>分类:使用DynamicPageList4解析器标签的页面</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=%E5%88%86%E7%B1%BB:%E4%BD%BF%E7%94%A8DynamicPageList4%E8%A7%A3%E6%9E%90%E5%99%A8%E6%A0%87%E7%AD%BE%E7%9A%84%E9%A1%B5%E9%9D%A2&amp;diff=3023"/>
		<updated>2026-06-17T02:10:56Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​DGCK81LNN移动页面分类:使用DynamicPageList3解析器标签的页面至分类:使用DynamicPageList4解析器标签的页面，不留重定向&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[分类:追踪分类]]__HIDDENCAT__&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=%E5%88%86%E7%B1%BB:%E4%BD%BF%E7%94%A8DynamicPageList4%E7%9A%84%E9%A1%B5%E9%9D%A2&amp;diff=3024</id>
		<title>分类:使用DynamicPageList4的页面</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=%E5%88%86%E7%B1%BB:%E4%BD%BF%E7%94%A8DynamicPageList4%E7%9A%84%E9%A1%B5%E9%9D%A2&amp;diff=3024"/>
		<updated>2026-06-17T02:08:04Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​创建页面，内容为“分类:追踪分类__HIDDENCAT__”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[分类:追踪分类]]__HIDDENCAT__&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=%E5%88%86%E7%B1%BB:%E4%BD%BF%E7%94%A8DynamicPageList4%E8%A7%A3%E6%9E%90%E5%99%A8%E6%A0%87%E7%AD%BE%E7%9A%84%E9%A1%B5%E9%9D%A2&amp;diff=3026</id>
		<title>分类:使用DynamicPageList4解析器标签的页面</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=%E5%88%86%E7%B1%BB:%E4%BD%BF%E7%94%A8DynamicPageList4%E8%A7%A3%E6%9E%90%E5%99%A8%E6%A0%87%E7%AD%BE%E7%9A%84%E9%A1%B5%E9%9D%A2&amp;diff=3026"/>
		<updated>2026-06-17T02:06:45Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​DGCK81LNN移动页面分类:使用DynamicPageList3解析器标签的页面至分类:使用DynamicPageList4解析器标签的页面，不留重定向&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[分类:追踪分类]]__HIDDENCAT__&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=LNNBot&amp;diff=3019</id>
		<title>LNNBot</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=LNNBot&amp;diff=3019"/>
		<updated>2026-06-17T01:54:42Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;LNNBot&#039;&#039;&#039; 是[[LNN|我]]维护的 QQ 机器人，基于 [https://koishi.chat Koishi.js] 框架，目前也在 Discord 平台可用，具有〇改[[希顶语]]转写、代码运行、网站截图、字体渲染、信息查询等丰富的功能。&lt;br /&gt;
&lt;br /&gt;
== 历史 ==&lt;br /&gt;
LNNBot 的 QQ 账号原是我的第二个 QQ 账号，它曾是我初中时专门用来加学校班级群的。后来我把此账号的好友迁移到第一个 QQ 号，形成第一账号用于学校、第二账号运行 bot、第三账号用于线上娱乐活动的布局。&lt;br /&gt;
&lt;br /&gt;
LNNBot 迄今有过三代，前两代只在我家中的笔记本电脑上偶尔运行过几次，只有当前的第三代迁入了云服务器并长期运行。&lt;br /&gt;
&lt;br /&gt;
=== 初代 ===&lt;br /&gt;
初代 LNNBot 是我的第一个 TypeScript 项目，搭建于 2021 年 2 月，使用 [https://github.com/YunYouJun/mirai-ts mirai-ts] 框架，包含一个简易的入群欢迎功能和我自己编写的一个简易的指令系统，只有 {{code|/help}}、{{code|/hello}}、{{code|/l}} 三个指令，其中 {{code|/l}} 复刻了 [[3luo]] 上“外链快速查询”查询 Bilibili 视频信息的功能，另外还能读取视频的评论和展开 b23.tv 短网址。&lt;br /&gt;
&lt;br /&gt;
=== 二代 ===&lt;br /&gt;
二代 LNNBot 最初搭建于 2021 年 4 月，使用 Koishi v3，但一度搁置而未添加原创功能；2022 年 2 月更新到 Koishi v4.2 并添加了获取 Derpibooru 图片的功能，3 月添加了搜索 Derpibooru 并随机发送一张相符图片的功能，此功能的启发来自“钻石星辰”维护的 [https://v2docs.kokona.tech Dice!] 骰娘机器人“萍琪派”附带的“随机小马图”系列指令。&lt;br /&gt;
&lt;br /&gt;
按照当时的设定，LNNBot 是[[若伊]]使用[[纯真灵魂]]的记忆创造的人工智能，但智力有限，无法形成稳定长久的记忆。我将二代 LNNBot 的系统文本修改成了设想中真魂的说话风格，还曾计划添加基于模式匹配的类 Eliza 中文聊天功能，于 2022 年 7 月编写了少量相关代码，但最终不了了之。&lt;br /&gt;
&lt;br /&gt;
二代最终的 Koishi 版本为 v4.7.0，自始至终都是手动编辑配置文件，没有使用过 Koishi WebUI。&lt;br /&gt;
&lt;br /&gt;
=== 三代 ===&lt;br /&gt;
&lt;br /&gt;
三代 LNNBot 搭建于 2023 年 12 月 23 日北京时间下午 1 点，使用 Koishi v4.16，并移植了二代的 Derpibooru 功能，该功能至今依然可用。三代早期短暂地沿用了二代的真魂风格系统文本，但之后恢复了默认。2024 年 1 月 10 日首次以测试状态接入 QQ 官方开放平台，名称为“真魂bot”，但测试频道没有对外公布。搭建当天到 2024 年 2 月 10 日我曾邀请 [[LINZIS]] 测试 bot 功能，包括设置昵称、频道内调用“随机小马图”和基于公开免费 ChatGPT 接口的 AI 对话。&lt;br /&gt;
&lt;br /&gt;
2024 年 1 月 2 日 00:35:48，我将 LNNBot 拉入了希顶社区一群，当时刚刚开始实现〇改[[希顶语]]转写功能，只能将希顶词转为汉字，随后我熬夜完善了该功能。2024 年 1 月 22 日服务端迁入腾讯云服务器，开始稳定运行。此后 bot 不断添加了许多功能。2024 年 6 月安装了 [[希顶:WhatLang|WhatLang]] 解释器，引入了 [[希顶:LNNBot#架构|miniplug 插件和微指令系统]]，大大提高了新功能开发的灵活性。&lt;br /&gt;
&lt;br /&gt;
2024 年 8 月 8 日引入了点数系统以限制部分功能的使用，用户每天签到可以获得随机数量的点数，调用特定指令需要消耗点数。游玩 Wordle 游戏的经典模式时可以投入一定的点数，胜利即可获得双倍返还（此机制由于破坏平衡，于 10 月 4 日移除）。&lt;br /&gt;
&lt;br /&gt;
2024 年 8 月 11 日上午 10:31，LNNBot 因“涉嫌传播色情、暴力、敏感信息或组织相关活动”被封号 7 天，被迫紧急开放了官方接口“真魂bot”的群聊使用权限。&lt;br /&gt;
&lt;br /&gt;
2024 年 9 月 19 日起，我将 LNNBot 本地化字符串制成共享表格开放编辑并不定期同步，给 bot 增加[[道本语]]、[[希顶语]]等多语言支持。&lt;br /&gt;
&lt;br /&gt;
2025 年 1 月 17 日增加了月费赞助系统，赞助 LNNBot 的用户在赞助期内使用消耗点数的功能时可以根据赞助金额获得点数消耗减免。&lt;br /&gt;
&lt;br /&gt;
2026 年 1 月 5 日上午 10:59，LNNBot 因“涉及使用非官方QQ客户端或外挂插件行为”被封号 7 天；当天下午 LNNBot 接入 Kook 平台，1 月 7 日官方接口“真魂bot”通过审核正式上线，从此可加入测试群以外的群聊。2 月 20 日上午 09:13:05，LNNBot 因“涉嫌传播违法违规信息或组织相关活动”被封号 15 天；2 月 25 日下午 16:47:44，官方接口“真魂bot”因“违规内容，接入 AIGC 能力”被封禁 7 天（当时平台有规定“暂不支持 AIGC 机器人进入社群场景以及上架后全量对所有用户使用，若有违反，平台会执行相关拦截策略”）。3 月 1 日晚，我用自己的账号运行 LNNBot 以缓解 bot 在 QQ 完全不可用的局面，但于 3 月 4 日上午 09:56 也因“涉嫌传播违法违规信息或组织相关活动”被封号 7 天。此后 LNNBot 账号又接连因“涉嫌传播违法违规信息或组织相关活动”，于 3 月 30 日 09:06:05、5 月 6 日 09:08 两次被封号 15 天，5 月 27 日 09:33 被封号 30 天，期间曾临时借用[[希顶:User:荆哲|荆哲]]名下的 QQ 账号“72bot”运行且未被封号。6 月 9 日晚 19:12:14，换用我本人新注册的账号“453bot”运行。&lt;br /&gt;
&lt;br /&gt;
== 外部链接 ==&lt;br /&gt;
{{到希顶维基|about=LNNBot（三代）}}&lt;br /&gt;
* 初代 GitHub 仓库：[https://github.com/DGCK81LNN/lnnbot-old DGCK81LNN/lnnbot-old]&lt;br /&gt;
* 二代 GitHub 仓库：[https://github.com/DGCK81LNN/lnnbot DGCK81LNN/lnnbot]&lt;br /&gt;
* [https://github.com/DGCK81LNN?tab=repositories&amp;amp;q=koishi- 我开源在 GitHub 的三代插件市场插件]&lt;br /&gt;
* 三代 miniplug 插件和微指令 Gitee 仓库：[https://gitee.com/DGCK81LNN/lnnbot-miniplugs DGCK81LNN/lnnbot-miniplugs]&lt;br /&gt;
[[分类:作品]]&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=SB%E8%81%94%E7%9B%9F%E7%89%8C&amp;diff=3021</id>
		<title>SB联盟牌</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=SB%E8%81%94%E7%9B%9F%E7%89%8C&amp;diff=3021"/>
		<updated>2026-06-02T13:52:19Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;[[SB联盟]]牌&#039;&#039;&#039;是主要由[[老李]]设计的一款双人数字牌类游戏，核心目标是在出牌阶段率先将手牌数降至1张及以下，或在牌堆耗尽时保持最少手牌。&lt;br /&gt;
&lt;br /&gt;
== 游戏规则 ==&lt;br /&gt;
&lt;br /&gt;
===牌组构成===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;普通牌&#039;&#039;&#039;：0、1、2各6张，3、4、5各4张，共30张。&lt;br /&gt;
* &#039;&#039;&#039;王牌&#039;&#039;&#039;：6、7各2张，共4张。&lt;br /&gt;
* &#039;&#039;&#039;‫赖子‬牌&#039;&#039;&#039;：每局随机生成一组‫赖子‬牌，共三种可能，其中必定包含若干张 *（称为“哼”），可能包含一张 8 或 9（二者不会同时存在）：&lt;br /&gt;
** 5张*（50%概率，共5张）&lt;br /&gt;
** 3张* + 1张8（8仅影响手牌大小比较，无其他效果）（40%概率，共4张）&lt;br /&gt;
** 4张* + 1张9（9可触发特殊效果“九”，见下文）（10%概率，共5张）&lt;br /&gt;
&lt;br /&gt;
总牌数38或39张。&lt;br /&gt;
&lt;br /&gt;
===游戏流程===&lt;br /&gt;
&lt;br /&gt;
发牌阶段：&lt;br /&gt;
&lt;br /&gt;
# 每个玩家获得5张牌。&lt;br /&gt;
# 若初始5张中包含“9”，触发“天九”：&lt;br /&gt;
#* 额外从牌堆抓5张，手牌变为10张；&lt;br /&gt;
#* 立即弃置“9”及自选的3张牌，保留6张手牌。&lt;br /&gt;
# 完成后进入出牌阶段。&lt;br /&gt;
&lt;br /&gt;
出牌阶段开始，进行先手判定：&lt;br /&gt;
&lt;br /&gt;
* 若有玩家发牌阶段获取过“9”，则由该玩家先手。&lt;br /&gt;
* 若无，持有数值最大的一张手牌的玩家先手（* 的大小视为介于 7 与 8 之间），相同时除去最大一张继续比较。&lt;br /&gt;
&lt;br /&gt;
出牌阶段分为多轮，每轮每个玩家依次执行：&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;补牌&#039;&#039;&#039;&lt;br /&gt;
#* 游戏刚开始：补至6张手牌。&lt;br /&gt;
#* 此后：补牌数 = 上一个玩家出牌张数 − 1，若未出，最少补1张，且手牌封顶10张。&lt;br /&gt;
#* 若补牌中抽到“9”，且手牌数 + 牌堆剩余张数 &amp;gt; 6，则触发“九”效果：&lt;br /&gt;
#** 额外抓牌直至手牌满10张（或牌堆抓空），随后立即弃置“9”及自选的若干张牌，使手牌恢复至6张。&lt;br /&gt;
#** 弃置完成后本轮继续，该玩家正常出牌。&lt;br /&gt;
#* 若余牌不足，“9”效果无效，只可作为‫赖子‬使用。&lt;br /&gt;
# &#039;&#039;&#039;出牌&#039;&#039;&#039;&lt;br /&gt;
#* 每轮先手玩家必须打出符合牌型的牌。&lt;br /&gt;
#* 后手玩家需要压过先手玩家的有效出牌，或者选择“不出”。&lt;br /&gt;
#* 每人每轮仅有一次出牌机会。&lt;br /&gt;
&lt;br /&gt;
一轮中最后成功出牌的玩家下一轮先手。&lt;br /&gt;
&lt;br /&gt;
===牌型与大小===&lt;br /&gt;
&lt;br /&gt;
* 牌型由数字牌0-7构成，分为普通牌型（单张、对子、顺子、连对）和炸弹（普通炸、连炸、王炸）。&lt;br /&gt;
* &#039;&#039;&#039;赖子牌可以代替 0-5 的任意数字牌，但不能代替王牌 6、7&#039;&#039;&#039;。单次出牌不能全为‫赖子‬，必须至少包含一张数字牌0-7。&lt;br /&gt;
* 普通牌型必须&#039;&#039;&#039;同类型、同张数且数值更大&#039;&#039;&#039;才能压过。&lt;br /&gt;
* 普通炸和连炸可以压过&#039;&#039;&#039;张数相同或更少&#039;&#039;&#039;的任何普通牌型。张数多的普通炸或连炸可压过张数少的普通炸或连炸，张数相同时普通炸可压过连炸，相同种类、张数的普通炸或连炸必须数字更大才能压过。&lt;br /&gt;
* 小王炸 66 可压过王炸以外的任意至多三张牌，大王炸 77 可压过任意至多四张牌，天王炸 6677 最大，可压过所有牌型。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 牌型 !! 示例 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| 单张 || 0～7 ||&lt;br /&gt;
|-&lt;br /&gt;
| 对子 || 00～55 ||&lt;br /&gt;
|-&lt;br /&gt;
| 顺子 || 012、0123 等 || 只能为3或4连，可以包含王牌6、7&lt;br /&gt;
|-&lt;br /&gt;
| 连对 || 0011、001122、00112233 等 || 2到4连，不能包含王牌6、7&lt;br /&gt;
|-&lt;br /&gt;
| 普通炸 || 000～555、0000～5555 等 || 3张以上数字相同&lt;br /&gt;
|-&lt;br /&gt;
| 连炸 || 000111、00001111、000111222 等 || 由数值连续、张数相同的普通炸构成&lt;br /&gt;
|-&lt;br /&gt;
| 王炸 || 66、77、6677 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===胜利条件===&lt;br /&gt;
&lt;br /&gt;
* 任意玩家手牌数 ≤1 即获胜。&lt;br /&gt;
* 若牌堆耗尽且一轮完结，手牌数最少者胜。&lt;br /&gt;
** 若牌数相同，比较每人所持最大的一张手牌，其中较小的获胜（* 的大小视为介于 7 与 8 之间），相同时除去最大一张继续比较。&lt;br /&gt;
* 中彩票（极端情况）：任意玩家出牌阶段完成补牌后手牌全为‫赖子‬（无法出牌），直接获胜。&lt;br /&gt;
&lt;br /&gt;
[[分类:见闻]]{{DEFAULTSORT:{{SortPinyin|SB联{lian2}盟{meng2}牌{pai2} }}}}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=SB%E8%81%94%E7%9B%9F%E7%89%8C&amp;diff=3009</id>
		<title>SB联盟牌</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=SB%E8%81%94%E7%9B%9F%E7%89%8C&amp;diff=3009"/>
		<updated>2026-06-02T13:48:34Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​/* 牌型与大小 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;[[SB联盟]]牌&#039;&#039;&#039;是主要由[[老李]]设计的一款双人数字牌类游戏，核心目标是在出牌阶段率先将手牌数降至1张及以下，或在牌堆耗尽时保持最少手牌。&lt;br /&gt;
&lt;br /&gt;
== 游戏规则 ==&lt;br /&gt;
&lt;br /&gt;
===牌组构成===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;普通牌&#039;&#039;&#039;：0、1、2各6张，3、4、5各4张，共30张。&lt;br /&gt;
* &#039;&#039;&#039;王牌&#039;&#039;&#039;：6、7各2张，共4张。&lt;br /&gt;
* &#039;&#039;&#039;‫赖子‬牌&#039;&#039;&#039;：每局随机生成一组‫赖子‬牌，共三种可能，其中必定包含若干张 *（称为“哼”），可能包含一张 8 或 9（二者不会同时存在）：&lt;br /&gt;
** 5张*（50%概率，共5张）&lt;br /&gt;
** 3张* + 1张8（8仅影响手牌大小比较，无其他效果）（40%概率，共4张）&lt;br /&gt;
** 4张* + 1张9（9可触发特殊效果“九”，见下文）（10%概率，共5张）&lt;br /&gt;
&lt;br /&gt;
总牌数38或39张。&lt;br /&gt;
&lt;br /&gt;
===游戏流程===&lt;br /&gt;
&lt;br /&gt;
发牌阶段：&lt;br /&gt;
&lt;br /&gt;
# 每个玩家获得5张牌。&lt;br /&gt;
# 若初始5张中包含“9”，触发“天九”：&lt;br /&gt;
#* 额外从牌堆抓5张，手牌变为10张；&lt;br /&gt;
#* 立即弃置“9”及自选的3张牌，保留6张手牌。&lt;br /&gt;
# 完成后进入出牌阶段。&lt;br /&gt;
&lt;br /&gt;
出牌阶段开始，进行先手判定：&lt;br /&gt;
&lt;br /&gt;
* 若有玩家发牌阶段获取过“9”，则由该玩家先手。&lt;br /&gt;
* 若无，持有数值最大的一张手牌的玩家先手（* 的大小视为介于 7 与 8 之间），相同时除去最大一张继续比较。&lt;br /&gt;
&lt;br /&gt;
出牌阶段分为多轮，每轮每个玩家依次执行：&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;补牌&#039;&#039;&#039;&lt;br /&gt;
#* 游戏刚开始：补至6张手牌。&lt;br /&gt;
#* 此后：补牌数 = 上一个玩家出牌张数 − 1，若未出，最少补1张，且手牌封顶10张。&lt;br /&gt;
#* 若补牌中抽到“9”，且手牌数 + 牌堆剩余张数 &amp;gt; 6，则触发“九”效果：&lt;br /&gt;
#** 额外抓牌直至手牌满10张（或牌堆抓空），随后立即弃置“9”及自选的若干张牌，使手牌恢复至6张。&lt;br /&gt;
#** 弃置完成后本轮继续，该玩家正常出牌。&lt;br /&gt;
#* 若余牌不足，“9”效果无效，只可作为‫赖子‬使用。&lt;br /&gt;
# &#039;&#039;&#039;出牌&#039;&#039;&#039;&lt;br /&gt;
#* 每轮先手玩家必须打出符合牌型的牌。&lt;br /&gt;
#* 后手玩家需要压过先手玩家的有效出牌，或者选择“不出”。&lt;br /&gt;
#* 每人每轮仅有一次出牌机会。&lt;br /&gt;
&lt;br /&gt;
一轮中最后成功出牌的玩家下一轮先手。&lt;br /&gt;
&lt;br /&gt;
===牌型与大小===&lt;br /&gt;
&lt;br /&gt;
* 牌型由数字牌0-7构成，分为普通牌型（单张、对子、顺子、连对）和炸弹（普通炸、连炸、王炸）。&lt;br /&gt;
* &#039;&#039;&#039;赖子牌可以代替 0-5 的任意数字牌，但不能代替王牌 6、7&#039;&#039;&#039;。单次出牌不能全为‫赖子‬，必须至少包含一张数字牌0-7。&lt;br /&gt;
* 普通牌型必须&#039;&#039;&#039;同类型、同张数且数值更大&#039;&#039;&#039;才能压过。&lt;br /&gt;
* 普通炸和连炸可以压过&#039;&#039;&#039;张数相同或更少&#039;&#039;&#039;的任何普通牌型。张数多的普通炸或连炸可压过张数少的普通炸或连炸，张数相同时普通炸可压过连炸，相同种类、张数的普通炸或连炸必须数字更大才能压过。&lt;br /&gt;
* 小王炸 66 可压过王炸以外的任意至多三张牌，大王炸 77 可压过任意至多四张牌，天王炸 6677 最大，可压过所有牌型。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 牌型 !! 示例 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| 单张 || 0～7 ||&lt;br /&gt;
|-&lt;br /&gt;
| 对子 || 00～55 ||&lt;br /&gt;
|-&lt;br /&gt;
| 顺子 || 012、0123 等 || 只能为3或4连，可以包含王牌6、7&lt;br /&gt;
|-&lt;br /&gt;
| 连对 || 0011、001122、00112233 等 || 2到4连，不能包含王牌6、7&lt;br /&gt;
|-&lt;br /&gt;
| 普通炸 || 000～555、0000～5555 等 || 3张以上数字相同&lt;br /&gt;
|-&lt;br /&gt;
| 连炸 || 000111、00001111、000111222 等 || 由数值连续、张数相同的普通炸构成&lt;br /&gt;
|-&lt;br /&gt;
| 王炸 || 66、77、6677 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===胜利条件===&lt;br /&gt;
&lt;br /&gt;
* 任意玩家手牌数 ≤1 即获胜。&lt;br /&gt;
* 若牌堆耗尽且一轮完结，手牌数最少者胜。&lt;br /&gt;
** 若牌数相同，比较每人所持最大的一张手牌，其中较小的获胜（* 的大小视为介于 7 与 8 之间），相同时除去最大一张继续比较。&lt;br /&gt;
* 中彩票（极端情况）：任意玩家出牌阶段完成补牌后手牌全为‫赖子‬（无法出牌），直接获胜。&lt;br /&gt;
&lt;br /&gt;
[[分类:见闻]]{{DEFAULTSORT:{{SortPinyin|SB联{lian2}盟{meng2}牌{pai2} }}}}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=SB%E8%81%94%E7%9B%9F%E7%89%8C&amp;diff=3008</id>
		<title>SB联盟牌</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=SB%E8%81%94%E7%9B%9F%E7%89%8C&amp;diff=3008"/>
		<updated>2026-06-02T13:45:46Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;[[SB联盟]]牌&#039;&#039;&#039;是主要由[[老李]]设计的一款双人数字牌类游戏，核心目标是在出牌阶段率先将手牌数降至1张及以下，或在牌堆耗尽时保持最少手牌。&lt;br /&gt;
&lt;br /&gt;
== 游戏规则 ==&lt;br /&gt;
&lt;br /&gt;
===牌组构成===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;普通牌&#039;&#039;&#039;：0、1、2各6张，3、4、5各4张，共30张。&lt;br /&gt;
* &#039;&#039;&#039;王牌&#039;&#039;&#039;：6、7各2张，共4张。&lt;br /&gt;
* &#039;&#039;&#039;‫赖子‬牌&#039;&#039;&#039;：每局随机生成一组‫赖子‬牌，共三种可能，其中必定包含若干张 *（称为“哼”），可能包含一张 8 或 9（二者不会同时存在）：&lt;br /&gt;
** 5张*（50%概率，共5张）&lt;br /&gt;
** 3张* + 1张8（8仅影响手牌大小比较，无其他效果）（40%概率，共4张）&lt;br /&gt;
** 4张* + 1张9（9可触发特殊效果“九”，见下文）（10%概率，共5张）&lt;br /&gt;
&lt;br /&gt;
总牌数38或39张。&lt;br /&gt;
&lt;br /&gt;
===游戏流程===&lt;br /&gt;
&lt;br /&gt;
发牌阶段：&lt;br /&gt;
&lt;br /&gt;
# 每个玩家获得5张牌。&lt;br /&gt;
# 若初始5张中包含“9”，触发“天九”：&lt;br /&gt;
#* 额外从牌堆抓5张，手牌变为10张；&lt;br /&gt;
#* 立即弃置“9”及自选的3张牌，保留6张手牌。&lt;br /&gt;
# 完成后进入出牌阶段。&lt;br /&gt;
&lt;br /&gt;
出牌阶段开始，进行先手判定：&lt;br /&gt;
&lt;br /&gt;
* 若有玩家发牌阶段获取过“9”，则由该玩家先手。&lt;br /&gt;
* 若无，持有数值最大的一张手牌的玩家先手（* 的大小视为介于 7 与 8 之间），相同时除去最大一张继续比较。&lt;br /&gt;
&lt;br /&gt;
出牌阶段分为多轮，每轮每个玩家依次执行：&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;补牌&#039;&#039;&#039;&lt;br /&gt;
#* 游戏刚开始：补至6张手牌。&lt;br /&gt;
#* 此后：补牌数 = 上一个玩家出牌张数 − 1，若未出，最少补1张，且手牌封顶10张。&lt;br /&gt;
#* 若补牌中抽到“9”，且手牌数 + 牌堆剩余张数 &amp;gt; 6，则触发“九”效果：&lt;br /&gt;
#** 额外抓牌直至手牌满10张（或牌堆抓空），随后立即弃置“9”及自选的若干张牌，使手牌恢复至6张。&lt;br /&gt;
#** 弃置完成后本轮继续，该玩家正常出牌。&lt;br /&gt;
#* 若余牌不足，“9”效果无效，只可作为‫赖子‬使用。&lt;br /&gt;
# &#039;&#039;&#039;出牌&#039;&#039;&#039;&lt;br /&gt;
#* 每轮先手玩家必须打出符合牌型的牌。&lt;br /&gt;
#* 后手玩家需要压过先手玩家的有效出牌，或者选择“不出”。&lt;br /&gt;
#* 每人每轮仅有一次出牌机会。&lt;br /&gt;
&lt;br /&gt;
一轮中最后成功出牌的玩家下一轮先手。&lt;br /&gt;
&lt;br /&gt;
===牌型与大小===&lt;br /&gt;
&lt;br /&gt;
* 牌型由数字牌0-7构成，分为普通牌型（单张、对子、顺子、连对）和炸弹（普通炸、连炸、王炸）。&lt;br /&gt;
* &#039;&#039;&#039;赖子牌可以代替 0-5 的任意数字牌，但不能代替王牌 6、7&#039;&#039;&#039;。单次出牌不能全为‫赖子‬，必须至少包含一张数字牌0-7。&lt;br /&gt;
* 普通牌型必须&#039;&#039;&#039;同类型、同张数且数值更大&#039;&#039;&#039;才能压过。&lt;br /&gt;
* 普通炸和连炸可以压过&#039;&#039;&#039;张数相同或更少&#039;&#039;&#039;的任何普通牌型。张数多的普通炸或连炸可压过张数少的普通炸或连炸，张数相同时普通炸可压过连炸，相同种类、张数的普通炸或连炸必须数字更大才能压过。&lt;br /&gt;
* 小王炸 66 可压过王炸以外的任意至多三张牌，大王炸 77 可压过天王炸以外的任意至多四张牌，天王炸 6677 最大，可压过所有牌型。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 牌型 !! 示例 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| 单张 || 0～7 ||&lt;br /&gt;
|-&lt;br /&gt;
| 对子 || 00～55 ||&lt;br /&gt;
|-&lt;br /&gt;
| 顺子 || 012、0123 等 || 只能为3或4连，可以包含王牌6、7&lt;br /&gt;
|-&lt;br /&gt;
| 连对 || 0011、001122、00112233 等 || 2到4连，不能包含王牌6、7&lt;br /&gt;
|-&lt;br /&gt;
| 普通炸 || 000～555、0000～5555 等 || 3张以上数字相同&lt;br /&gt;
|-&lt;br /&gt;
| 连炸 || 000111、00001111、000111222 等 || 由数值连续、张数相同的普通炸构成&lt;br /&gt;
|-&lt;br /&gt;
| 王炸 || 66、77、6677 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===胜利条件===&lt;br /&gt;
&lt;br /&gt;
* 任意玩家手牌数 ≤1 即获胜。&lt;br /&gt;
* 若牌堆耗尽且一轮完结，手牌数最少者胜。&lt;br /&gt;
** 若牌数相同，比较每人所持最大的一张手牌，其中较小的获胜（* 的大小视为介于 7 与 8 之间），相同时除去最大一张继续比较。&lt;br /&gt;
* 中彩票（极端情况）：任意玩家出牌阶段完成补牌后手牌全为‫赖子‬（无法出牌），直接获胜。&lt;br /&gt;
&lt;br /&gt;
[[分类:见闻]]{{DEFAULTSORT:{{SortPinyin|SB联{lian2}盟{meng2}牌{pai2} }}}}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=SB%E8%81%94%E7%9B%9F%E7%89%8C&amp;diff=3007</id>
		<title>SB联盟牌</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=SB%E8%81%94%E7%9B%9F%E7%89%8C&amp;diff=3007"/>
		<updated>2026-06-02T13:43:40Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;[[SB联盟]]牌&#039;&#039;&#039;是主要由[[老李]]设计的一款双人数字牌类游戏，核心目标是在出牌阶段率先将手牌数降至1张及以下，或在牌堆耗尽时保持最少手牌。&lt;br /&gt;
&lt;br /&gt;
== 游戏规则 ==&lt;br /&gt;
&lt;br /&gt;
===牌组构成===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;普通牌&#039;&#039;&#039;：0、1、2各6张，3、4、5各4张，共30张。&lt;br /&gt;
* &#039;&#039;&#039;王牌&#039;&#039;&#039;：6、7各2张，共4张。&lt;br /&gt;
* &#039;&#039;&#039;‫赖子‬牌&#039;&#039;&#039;：每局随机生成一组‫赖子‬牌，共三种可能，其中必定包含若干张 *（称为“哼”），可能包含一张 8 或 9（二者不会同时存在）：&lt;br /&gt;
** 5张*（50%概率，共5张）&lt;br /&gt;
** 3张* + 1张8（8仅影响手牌大小比较，无其他效果）（40%概率，共4张）&lt;br /&gt;
** 4张* + 1张9（9可触发特殊效果“九”，见下文）（10%概率，共5张）&lt;br /&gt;
&lt;br /&gt;
总牌数38或39张。&lt;br /&gt;
&lt;br /&gt;
===游戏流程===&lt;br /&gt;
&lt;br /&gt;
发牌阶段：&lt;br /&gt;
&lt;br /&gt;
# 每个玩家获得5张牌。&lt;br /&gt;
# 若初始5张中包含“9”，触发“天九”：&lt;br /&gt;
#* 额外从牌堆抓5张，手牌变为10张；&lt;br /&gt;
#* 立即弃置“9”及自选的3张牌，保留6张手牌。&lt;br /&gt;
# 完成后进入出牌阶段。&lt;br /&gt;
&lt;br /&gt;
出牌阶段开始，进行先手判定：&lt;br /&gt;
&lt;br /&gt;
* 若有玩家发牌阶段获取过“9”，则由该玩家先手。&lt;br /&gt;
* 若无，持有数值最大的一张手牌的玩家先手（* 的大小视为介于 7 与 8 之间），相同时除去最大一张继续比较。&lt;br /&gt;
&lt;br /&gt;
出牌阶段分为多轮，每轮每个玩家依次执行：&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;补牌&#039;&#039;&#039;&lt;br /&gt;
#* 游戏刚开始：补至6张手牌。&lt;br /&gt;
#* 此后：补牌数 = 上一个玩家出牌张数 − 1，若未出，最少补1张，且手牌封顶10张。&lt;br /&gt;
#* 若补牌中抽到“9”，且手牌数 + 牌堆剩余张数 &amp;gt; 6，则触发“九”效果：&lt;br /&gt;
#** 额外抓牌直至手牌满10张（或牌堆抓空），随后立即弃置“9”及自选的若干张牌，使手牌恢复至6张。&lt;br /&gt;
#** 弃置完成后本轮继续，该玩家正常出牌。&lt;br /&gt;
#* 若余牌不足，“9”效果无效，只可作为‫赖子‬使用。&lt;br /&gt;
# &#039;&#039;&#039;出牌&#039;&#039;&#039;&lt;br /&gt;
#* 每轮先手玩家必须打出符合牌型的牌。&lt;br /&gt;
#* 后手玩家需要压过先手玩家的有效出牌，或者选择“不出”。&lt;br /&gt;
#* 每人每轮仅有一次出牌机会。&lt;br /&gt;
&lt;br /&gt;
===牌型与大小===&lt;br /&gt;
&lt;br /&gt;
* 牌型由数字牌0-7构成，分为普通牌型（单张、对子、顺子、连对）和炸弹（普通炸、连炸、王炸）。&lt;br /&gt;
* &#039;&#039;&#039;赖子牌可以代替 0-5 的任意数字牌，但不能代替王牌 6、7&#039;&#039;&#039;。单次出牌不能全为‫赖子‬，必须至少包含一张数字牌0-7。&lt;br /&gt;
* 普通牌型必须&#039;&#039;&#039;同类型、同张数且数值更大&#039;&#039;&#039;才能压过。&lt;br /&gt;
* 普通炸和连炸可以压过&#039;&#039;&#039;张数相同或更少&#039;&#039;&#039;的任何普通牌型。张数多的普通炸或连炸可压过张数少的普通炸或连炸，张数相同时普通炸可压过连炸，相同种类、张数的普通炸或连炸必须数字更大才能压过。&lt;br /&gt;
* 小王炸 66 可压过王炸以外的任意至多三张牌，大王炸 77 可压过天王炸以外的任意至多四张牌，天王炸 6677 最大，可压过所有牌型。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 牌型 !! 示例 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| 单张 || 0～7 ||&lt;br /&gt;
|-&lt;br /&gt;
| 对子 || 00～55 ||&lt;br /&gt;
|-&lt;br /&gt;
| 顺子 || 012、0123 等 || 只能为3或4连，可以包含王牌6、7&lt;br /&gt;
|-&lt;br /&gt;
| 连对 || 0011、001122、00112233 等 || 2到4连，不能包含王牌6、7&lt;br /&gt;
|-&lt;br /&gt;
| 普通炸 || 000～555、0000～5555 等 || 3张以上数字相同&lt;br /&gt;
|-&lt;br /&gt;
| 连炸 || 000111、00001111、000111222 等 || 由数值连续、张数相同的普通炸构成&lt;br /&gt;
|-&lt;br /&gt;
| 王炸 || 66、77、6677 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===胜利条件===&lt;br /&gt;
&lt;br /&gt;
* 任意玩家手牌数 ≤1 即获胜。&lt;br /&gt;
* 若牌堆耗尽且一轮完结，手牌数最少者胜。&lt;br /&gt;
** 若牌数相同，比较每人所持最大的一张手牌，其中较小的获胜（* 的大小视为介于 7 与 8 之间），相同时除去最大一张继续比较。&lt;br /&gt;
* 中彩票（极端情况）：任意玩家出牌阶段完成补牌后手牌全为‫赖子‬（无法出牌），直接获胜。&lt;br /&gt;
&lt;br /&gt;
[[分类:见闻]]{{DEFAULTSORT:{{SortPinyin|SB联{lian2}盟{meng2}牌{pai2} }}}}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=MediaWiki:Citizen.css&amp;diff=3005</id>
		<title>MediaWiki:Citizen.css</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=MediaWiki:Citizen.css&amp;diff=3005"/>
		<updated>2026-05-18T13:01:07Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;.lnnblog-button-white {&lt;br /&gt;
	color: var(--color-base);&lt;br /&gt;
	background: var(--background-color-transparent);&lt;br /&gt;
	border-radius: var(--border-radius-medium);&lt;br /&gt;
	border: var(--border-width-base) solid var(--border-color-interactive);&lt;br /&gt;
	padding: var(--space-xs) var(--space-md);&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-button-white:hover {&lt;br /&gt;
	background: var(--background-color-button-quiet--hover);&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-button-white:active {&lt;br /&gt;
	background: var(--background-color-button-quiet--active);&lt;br /&gt;
}ex&lt;br /&gt;
&lt;br /&gt;
.lnnblog-button-blue {&lt;br /&gt;
	color: var(--color-inverted-primary);&lt;br /&gt;
	background: var(--color-progressive);&lt;br /&gt;
	border-radius: var(--border-radius-medium);&lt;br /&gt;
	border: none;&lt;br /&gt;
	padding: var(--space-xs) var(--space-md);&lt;br /&gt;
	font-weight: var(--font-weight-medium);&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-button-blue:hover {&lt;br /&gt;
	background-color: var(--color-progressive--hover);&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-button-blue:active {&lt;br /&gt;
	background-color: var(--color-progressive--active);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lnnblog-button-red {&lt;br /&gt;
	color: var(--color-inverted-primary);&lt;br /&gt;
	background: var(--color-destructive);&lt;br /&gt;
	border-radius: var(--border-radius-medium);&lt;br /&gt;
	border: none;&lt;br /&gt;
	padding: var(--space-xs) var(--space-md);&lt;br /&gt;
	font-weight: var(--font-weight-medium);&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-button-red:hover {&lt;br /&gt;
	background-color: var(--color-destructive--hover);&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-button-red:active {&lt;br /&gt;
	background-color: var(--color-destructive--active);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lnnblog-documentation {&lt;br /&gt;
	border: var(--border-base);&lt;br /&gt;
	border-radius: var(--border-radius-large);&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-documentation-header {&lt;br /&gt;
	border-bottom: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a.extiw.extiw,&lt;br /&gt;
a.extiw.extiw:visited {&lt;br /&gt;
	color: #008173;&lt;br /&gt;
	color: oklch(var(--color-progressive-oklch__l) var(--color-progressive-oklch__c) 183);&lt;br /&gt;
}&lt;br /&gt;
a.extiw.extiw:hover {&lt;br /&gt;
	color: #008f7f;&lt;br /&gt;
	color: oklch(calc(var(--color-progressive-oklch__l) + var(--delta-lightness-hover-state)) var(--color-progressive-oklch__c) 183);&lt;br /&gt;
}&lt;br /&gt;
a.extiw.extiw:active {&lt;br /&gt;
	color: #007467;&lt;br /&gt;
	color: oklch(calc(var(--color-progressive-oklch__l) + var(--delta-lightness-active-state)) var(--color-progressive-oklch__c) 183);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.wikitable {&lt;br /&gt;
	background: var(--background-color-base);&lt;br /&gt;
}&lt;br /&gt;
.mw-templatedata-doc-wrap .wikitable {&lt;br /&gt;
	border-top-left-radius: 0;&lt;br /&gt;
	border-top-right-radius: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.cdx-message {&lt;br /&gt;
	border-radius: var(--border-radius-medium);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.infoBox {&lt;br /&gt;
	border-radius: var(--border-radius-medium);&lt;br /&gt;
}&lt;br /&gt;
.infoBoxContent {&lt;br /&gt;
	border: var(--border-base);&lt;br /&gt;
	border-left: none;&lt;br /&gt;
	border-radius: 0 var(--border-radius-medium) var(--border-radius-medium) 0;&lt;br /&gt;
	background: var(--background-color-base);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lnnblog-box,&lt;br /&gt;
.lnnblog-hidebox {&lt;br /&gt;
	background: var(--background-color-base);&lt;br /&gt;
	border: var(--border-base);&lt;br /&gt;
	border-radius: var(--border-radius-medium);&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-box-heading,&lt;br /&gt;
.lnnblog-hidebox-heading {&lt;br /&gt;
	color: var(--color-subtle);&lt;br /&gt;
	background: var(--color-surface-1);&lt;br /&gt;
	border-top-left-radius: var(--border-radius-medium);&lt;br /&gt;
	border-top-right-radius: var(--border-radius-medium);&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-box-heading:not(:empty) + .lnnblog-box-body,&lt;br /&gt;
.lnnblog-hidebox-body {&lt;br /&gt;
	border-top: var(--border-base);&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-hidebox:not([open]) &amp;gt; .lnnblog-hidebox-heading {&lt;br /&gt;
	border-radius: var(--border-radius-medium);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lnnblog-jk {&lt;br /&gt;
	color: var(--color-disabled);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lnnblog-infobox {&lt;br /&gt;
	background: var(--background-color-base);&lt;br /&gt;
	border: var(--border-base);&lt;br /&gt;
	border-radius: var(--border-radius-medium);&lt;br /&gt;
	display: block;&lt;br /&gt;
	max-width: max-content;&lt;br /&gt;
	overflow: clip;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-infobox-titlebar {&lt;br /&gt;
	background: var(--color-surface-1);&lt;br /&gt;
	color: var(--color-subtle);&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-infobox tr ~ tr {&lt;br /&gt;
	border-top: var(--border-base);&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-infobox tr:hover &amp;gt; * {&lt;br /&gt;
	background: var(--background-color-button-quiet--hover);&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-infobox th,&lt;br /&gt;
.lnnblog-infobox td {&lt;br /&gt;
	padding: var(--space-xxs) var(--space-xs);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
blockquote {&lt;br /&gt;
	border-left-color: var(--color-disabled);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
em:lang(ja), em:lang(ko), em:lang(mn), em:lang(zh) {&lt;br /&gt;
	text-emphasis-position: under;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 亮色主题下不给 wordmark 图片反色 */&lt;br /&gt;
.skin-citizen-light #footer-sitetitle img.mw-logo-wordmark,&lt;br /&gt;
.skin-citizen-auto #footer-sitetitle img.mw-logo-wordmark {&lt;br /&gt;
	filter: none !important;&lt;br /&gt;
}&lt;br /&gt;
@media not screen {&lt;br /&gt;
	#footer-sitetitle img.mw-logo-wordmark {&lt;br /&gt;
		filter: none !important;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
@media screen and (prefers-color-scheme: dark) {&lt;br /&gt;
	.skin-citizen-auto #footer-sitetitle img.mw-logo-wordmark {&lt;br /&gt;
		filter: invert(1) hue-rotate(180deg) !important;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 暗色主题下可以选择给部分内容反色 */&lt;br /&gt;
.skin-citizen-dark .lnnblog-invert {&lt;br /&gt;
	filter: invert(1) hue-rotate(180deg) !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 更紧凑的 editOptions */&lt;br /&gt;
.editOptions {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	flex-wrap: wrap;&lt;br /&gt;
	align-items: center;&lt;br /&gt;
	justify-content: space-between;&lt;br /&gt;
	padding: 1rem;&lt;br /&gt;
	gap: 0.5rem;&lt;br /&gt;
}&lt;br /&gt;
#wpSummaryLabel {&lt;br /&gt;
	width: 100%;&lt;br /&gt;
}&lt;br /&gt;
#wpSummaryLabel .oo-ui-fieldLayout-body {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	align-items: center;&lt;br /&gt;
}&lt;br /&gt;
#wpSummaryLabel .oo-ui-fieldLayout-field {&lt;br /&gt;
	flex: 1;&lt;br /&gt;
}&lt;br /&gt;
#wpSummaryWidget {&lt;br /&gt;
	margin-bottom: 0 !important;&lt;br /&gt;
}&lt;br /&gt;
#editpage-copywarn {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;br /&gt;
#wpSaveWidget,&lt;br /&gt;
#wpPreviewWidget,&lt;br /&gt;
#wpDiffWidget {&lt;br /&gt;
	margin-top: 0;&lt;br /&gt;
}&lt;br /&gt;
#mw-editform-cancel {&lt;br /&gt;
	margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Citizen compatibility fixes */&lt;br /&gt;
table {&lt;br /&gt;
	display: table;&lt;br /&gt;
}&lt;br /&gt;
.citizen-table-wrapper:has(&amp;gt;.lnnblog-float),&lt;br /&gt;
.citizen-table-wrapper:has(&amp;gt;.lnnblog-infobox){&lt;br /&gt;
	display: contents;&lt;br /&gt;
}&lt;br /&gt;
cite {&lt;br /&gt;
	font-style: italic;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* HotCat */&lt;br /&gt;
.mw-normal-catlinks {&lt;br /&gt;
	font-size: var(--font-size-x-small);&lt;br /&gt;
	color: var(--color-base--subtle);&lt;br /&gt;
	letter-spacing: .05em;&lt;br /&gt;
}&lt;br /&gt;
.mw-normal-catlinks&amp;gt;a {&lt;br /&gt;
	display: inline;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=MediaWiki:Editpage-head-copy-warn&amp;diff=3004</id>
		<title>MediaWiki:Editpage-head-copy-warn</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=MediaWiki:Editpage-head-copy-warn&amp;diff=3004"/>
		<updated>2026-05-12T15:43:59Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#switch:{{NAMESPACENUMBER}}|2|3=|&lt;br /&gt;
{{info|color=#f04&lt;br /&gt;
|title=您正在编辑的是“真魂”分站&lt;br /&gt;
|除个别不自动同步的页面外，本站一般应在 Miraheze 分支编辑内容后通过 LNNBot 同步更改至“真魂”分站。请确认您是否真的要直接在“真魂”分站编辑本页。&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=MediaWiki:Editpage-head-copy-warn&amp;diff=3003</id>
		<title>MediaWiki:Editpage-head-copy-warn</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=MediaWiki:Editpage-head-copy-warn&amp;diff=3003"/>
		<updated>2026-05-12T15:43:48Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#switch|{{NAMESPACENUMBER}}|2|3=|&lt;br /&gt;
{{info|color=#f04&lt;br /&gt;
|title=您正在编辑的是“真魂”分站&lt;br /&gt;
|除个别不自动同步的页面外，本站一般应在 Miraheze 分支编辑内容后通过 LNNBot 同步更改至“真魂”分站。请确认您是否真的要直接在“真魂”分站编辑本页。&lt;br /&gt;
}}&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=%E7%94%A8%E6%88%B7:DGCK81LNN/cosmokit&amp;diff=3002</id>
		<title>用户:DGCK81LNN/cosmokit</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=%E7%94%A8%E6%88%B7:DGCK81LNN/cosmokit&amp;diff=3002"/>
		<updated>2026-05-12T15:39:14Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{info|color=red|此文档由 AI 生成并人工修正表述，完整 API 以源码为准：&amp;lt;br/&amp;gt;https://github.com/shigma/cosmokit}}&lt;br /&gt;
{{DISPLAYTITLE:Cosmokit 中文文档}}&lt;br /&gt;
Cosmokit 是主要由 Shigma 开发的一组灵活的 JavaScript/TypeScript 通用工具库，涵盖常用对象、数组、字符串、二进制和时间操作。&lt;br /&gt;
&lt;br /&gt;
== 安装 ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
npm install cosmokit&lt;br /&gt;
# 或者&lt;br /&gt;
yarn add cosmokit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
import { contain, camelCase, Time } from &#039;cosmokit&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 数组工具 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;contain(array1, array2)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;判断 array2 的所有元素是否都包含在 array1 内。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;intersection(array1, array2)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;计算两数组的交集。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;difference(array1, array2)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;计算两数组的差集。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;union(array1, array2)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;计算两数组的并集。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;deduplicate(array)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;数组去重。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;remove(list, item)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;从数组里移除某元素，返回是否成功。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;makeArray(source)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;将 null/undefined/单个值/数组标准化为数组。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
import { deduplicate, union } from &#039;cosmokit&#039;&lt;br /&gt;
deduplicate([1, 2, 2, 3]) // [1, 2, 3]&lt;br /&gt;
union([1, 2], [2, 3]) // [1, 2, 3]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 对象通用工具 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;noop()&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;空函数，什么都不做。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;isNullable(value)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;判断是否为 null/undefined/void。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;isNonNullable(value)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;判断是否不是 null/undefined/void。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;isPlainObject(data)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;判断是否为普通对象（非数组）。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;filterKeys(object, fn)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;对对象的键值进行筛选。回调函数接收键、值，保留结果为真的键值并组成新的对象。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;mapValues(object, fn)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;对对象的键值进行映射。回调函数接收值、键，返回新值并保留原键不变组成新的对象。&amp;lt;br/&amp;gt;别名：&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;valueMap&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;pick(source, keys, forced)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;从对象上选出指定的键，返回对应键值组成的新对象。&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;forced&amp;lt;/syntaxhighlight&amp;gt; 为真时不存在的键会被强制添加，值为 undefined。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;omit(source, keys)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;排除对象上指定的键，返回其余键值组成的新对象。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;defineProperty(object, key, value)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;在对象上定义不可枚举属性。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
import { isNullable, pick, omit } from &#039;cosmokit&#039;&lt;br /&gt;
pick({ a:1, b:2 }, [&#039;a&#039;]) // { a: 1 }&lt;br /&gt;
omit({ a:1, b:2 }, [&#039;b&#039;]) // { a: 1 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 类型与二进制数据工具 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;is(type, value)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;判断变量是否为指定全局类型。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Binary.is(value)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;判断是否为 ArrayBuffer/SharedArrayBuffer。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Binary.isSource(value)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;判断是否为二进制源（(Shared)ArrayBuffer/ArrayBufferView）。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Binary.fromSource(source)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;获取二进制源的 ArrayBuffer。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Binary.toBase64(source)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;转 base64 字符串。&amp;lt;br/&amp;gt;全局别名：&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;arrayBufferToBase64&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Binary.fromBase64(str)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;base64 转 ArrayBuffer。&amp;lt;br/&amp;gt;全局别名：&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;base64ToArrayBuffer&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Binary.toHex(source)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;转十六进制字符串。&amp;lt;br/&amp;gt;全局别名：&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;arrayBufferToHex&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Binary.fromHex(str)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;十六进制转 ArrayBuffer。&amp;lt;br/&amp;gt;全局别名：&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;hexToArrayBuffer&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;clone(source)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;深拷贝对象，支持 Date。&lt;br /&gt;
&lt;br /&gt;
== 字符串工具 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;camelCase(source)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;连字符/下划线转小驼峰。&amp;lt;br/&amp;gt;别名：&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;camelize&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;paramCase(source)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;转 param-case。&amp;lt;br/&amp;gt;别名：&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;hyphenate&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;snakeCase(source)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;转 snake_case。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;formatProperty(key)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;格式化属性键：输入字符串或 Symbol 键，输出 &amp;lt;code&amp;gt;.key&amp;lt;/code&amp;gt; 或 &amp;lt;code&amp;gt;[value]&amp;lt;/code&amp;gt; 格式的字符串。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;trimSlash(source)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;去除末尾斜杠。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;sanitize(source)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;开头保留斜杠，并去除末尾斜杠。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
import { camelCase, paramCase } from &#039;cosmokit&#039;&lt;br /&gt;
camelCase(&#039;foo_bar&#039;) // &#039;fooBar&#039;&lt;br /&gt;
paramCase(&#039;fooBar&#039;) // &#039;foo-bar&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 时间工具 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time&amp;lt;/syntaxhighlight&amp;gt; 命名空间导出一系列时间相关常量与工具方法。&lt;br /&gt;
&lt;br /&gt;
* 毫秒单位的时间常量：&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.millisecond&amp;lt;/syntaxhighlight&amp;gt;、&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.second&amp;lt;/syntaxhighlight&amp;gt;、&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.minute&amp;lt;/syntaxhighlight&amp;gt;、&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.hour&amp;lt;/syntaxhighlight&amp;gt;、&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.day&amp;lt;/syntaxhighlight&amp;gt;、&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.week&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.setTimezoneOffset(num)&amp;lt;/syntaxhighlight&amp;gt; / &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.getTimezoneOffset()&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;设置/获取默认时区偏移（本地时间转 UTC 时间需要加上的分钟数，与 &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Date.prototype.getTimezoneOffset()&amp;lt;/syntaxhighlight&amp;gt; 一致）。该默认值会被 Time.getDateNumber 和 Time.fromDateNumber 使用，初始为系统当前时区偏移。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.getDateNumber(date, offset)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;获取本地日期编号。date 为 Date 对象或毫秒时间戳。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.fromDateNumber(val, offset)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;日期编号转 Date 对象。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.parseTime(str)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;解析形如“1d2h5m3s”的时间字符串到毫秒数。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.parseDate(str)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;解析日期字符串到 Date 对象。除了 Date 原生支持的格式外还支持下列格式：&lt;br /&gt;
** 同 &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.parseTime(str)&amp;lt;/syntaxhighlight&amp;gt; 的格式，表示当前时间的指定间隔之后。&lt;br /&gt;
** &amp;lt;code&amp;gt;年-月-日-时:分:秒&amp;lt;/code&amp;gt;（分、秒可省略），可省略年、月、日（使用当前日期）或只省略年（使用当前年份）。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.format(ms)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;将毫秒数格式化为人类可读的大致值，如 3h。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.toDigits(num, length=2)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;数字左补零到指定长度。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.template(template, time)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;格式化时间戳为指定模板字符串。模板字符串支持以下占位符：yyyy（四位年）、yy（两位年）、MM（两位月）、dd（两位日）、hh（两位小时）、mm（两位分钟）、ss（两位秒）、SSS（三位毫秒）。例如 &amp;lt;code&amp;gt;Time.template(&#039;yyyy-MM-dd hh:mm:ss&#039;, new Date())&amp;lt;/code&amp;gt;。time 必须为 Date 对象，默认取当前时间。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
import { Time } from &#039;cosmokit&#039;&lt;br /&gt;
Time.parseTime(&#039;2h5m&#039;) // 7500000&lt;br /&gt;
Time.format(60000) // &#039;1m&#039;&lt;br /&gt;
Time.template(&amp;quot;yyyy-MM-dd hh:mm:ss&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=%E7%94%A8%E6%88%B7:DGCK81LNN/cosmokit&amp;diff=3001</id>
		<title>用户:DGCK81LNN/cosmokit</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=%E7%94%A8%E6%88%B7:DGCK81LNN/cosmokit&amp;diff=3001"/>
		<updated>2026-05-12T15:38:12Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​创建页面，内容为“{{info|color=red|此文档由 AI 生成并人工修正表述，完整 API 以源码为准：&amp;lt;br/&amp;gt;https://github.com/shigma/cosmokit}}  {{DISPLAYTITLE:Cosmokit 中文文档}}  Cosmokit 是主要由 Shigma 开发的一组灵活的 JavaScript/TypeScript 通用工具库，涵盖常用对象、数组、字符串、二进制和时间操作。  == 安装 == &amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt; npm install cosmokit # 或者 yarn add cosmokit &amp;lt;/syntaxhighlight&amp;gt;  &amp;lt;syntaxhighli…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{info|color=red|此文档由 AI 生成并人工修正表述，完整 API 以源码为准：&amp;lt;br/&amp;gt;https://github.com/shigma/cosmokit}}&lt;br /&gt;
&lt;br /&gt;
{{DISPLAYTITLE:Cosmokit 中文文档}}&lt;br /&gt;
&lt;br /&gt;
Cosmokit 是主要由 Shigma 开发的一组灵活的 JavaScript/TypeScript 通用工具库，涵盖常用对象、数组、字符串、二进制和时间操作。&lt;br /&gt;
&lt;br /&gt;
== 安装 ==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;shell&amp;quot;&amp;gt;&lt;br /&gt;
npm install cosmokit&lt;br /&gt;
# 或者&lt;br /&gt;
yarn add cosmokit&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
import { contain, camelCase, Time } from &#039;cosmokit&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 数组工具 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;contain(array1, array2)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;判断 array2 的所有元素是否都包含在 array1 内。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;intersection(array1, array2)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;计算两数组的交集。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;difference(array1, array2)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;计算两数组的差集。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;union(array1, array2)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;计算两数组的并集。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;deduplicate(array)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;数组去重。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;remove(list, item)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;从数组里移除某元素，返回是否成功。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;makeArray(source)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;将 null/undefined/单个值/数组标准化为数组。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
import { deduplicate, union } from &#039;cosmokit&#039;&lt;br /&gt;
deduplicate([1, 2, 2, 3]) // [1, 2, 3]&lt;br /&gt;
union([1, 2], [2, 3]) // [1, 2, 3]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 对象通用工具 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;noop()&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;空函数，什么都不做。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;isNullable(value)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;判断是否为 null/undefined/void。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;isNonNullable(value)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;判断是否不是 null/undefined/void。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;isPlainObject(data)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;判断是否为普通对象（非数组）。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;filterKeys(object, fn)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;对对象的键值进行筛选。回调函数接收键、值，保留结果为真的键值并组成新的对象。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;mapValues(object, fn)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;对对象的键值进行映射。回调函数接收值、键，返回新值并保留原键不变组成新的对象。&amp;lt;br/&amp;gt;别名：&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;valueMap&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;pick(source, keys, forced)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;从对象上选出指定的键，返回对应键值组成的新对象。&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;forced&amp;lt;/syntaxhighlight&amp;gt; 为真时不存在的键会被强制添加，值为 undefined。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;omit(source, keys)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;排除对象上指定的键，返回其余键值组成的新对象。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;defineProperty(object, key, value)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;在对象上定义不可枚举属性。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
import { isNullable, pick, omit } from &#039;cosmokit&#039;&lt;br /&gt;
pick({ a:1, b:2 }, [&#039;a&#039;]) // { a: 1 }&lt;br /&gt;
omit({ a:1, b:2 }, [&#039;b&#039;]) // { a: 1 }&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 类型与二进制数据工具 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;is(type, value)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;判断变量是否为指定全局类型。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Binary.is(value)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;判断是否为 ArrayBuffer/SharedArrayBuffer。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Binary.isSource(value)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;判断是否为二进制源（(Shared)ArrayBuffer/ArrayBufferView）。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Binary.fromSource(source)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;获取二进制源的 ArrayBuffer。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Binary.toBase64(source)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;转 base64 字符串。&amp;lt;br/&amp;gt;全局别名：&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;arrayBufferToBase64&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Binary.fromBase64(str)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;base64 转 ArrayBuffer。&amp;lt;br/&amp;gt;全局别名：&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;base64ToArrayBuffer&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Binary.toHex(source)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;转十六进制字符串。&amp;lt;br/&amp;gt;全局别名：&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;arrayBufferToHex&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Binary.fromHex(str)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;十六进制转 ArrayBuffer。&amp;lt;br/&amp;gt;全局别名：&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;hexToArrayBuffer&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;clone(source)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;深拷贝对象，支持 Date。&lt;br /&gt;
&lt;br /&gt;
== 字符串工具 ==&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;camelCase(source)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;连字符/下划线转小驼峰。&amp;lt;br/&amp;gt;别名：&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;camelize&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;paramCase(source)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;转 param-case。&amp;lt;br/&amp;gt;别名：&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;hyphenate&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;snakeCase(source)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;转 snake_case。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;formatProperty(key)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;格式化属性键：输入字符串或 Symbol 键，输出 &amp;lt;code&amp;gt;.key&amp;lt;/code&amp;gt; 或 &amp;lt;code&amp;gt;[value]&amp;lt;/code&amp;gt; 格式的字符串。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;trimSlash(source)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;去除末尾斜杠。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;sanitize(source)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;开头保留斜杠，并去除末尾斜杠。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
import { camelCase, paramCase } from &#039;cosmokit&#039;&lt;br /&gt;
camelCase(&#039;foo_bar&#039;) // &#039;fooBar&#039;&lt;br /&gt;
paramCase(&#039;fooBar&#039;) // &#039;foo-bar&#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 时间工具 ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time&amp;lt;/syntaxhighlight&amp;gt; 命名空间导出一系列时间相关常量与工具方法。&lt;br /&gt;
&lt;br /&gt;
* 毫秒单位的时间常量：&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.millisecond&amp;lt;/syntaxhighlight&amp;gt;、&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.second&amp;lt;/syntaxhighlight&amp;gt;、&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.minute&amp;lt;/syntaxhighlight&amp;gt;、&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.hour&amp;lt;/syntaxhighlight&amp;gt;、&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.day&amp;lt;/syntaxhighlight&amp;gt;、&amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.week&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.setTimezoneOffset(num)&amp;lt;/syntaxhighlight&amp;gt; / &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.getTimezoneOffset()&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;设置/获取默认时区偏移（本地时间转 UTC 时间需要加上的分钟数，与 &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Date.prototype.getTimezoneOffset()&amp;lt;/syntaxhighlight&amp;gt; 一致）。该默认值会被 Time.getDateNumber 和 Time.fromDateNumber 使用，初始为系统当前时区偏移。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.getDateNumber(date, offset)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;获取本地日期编号。date 为 Date 对象或毫秒时间戳。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.fromDateNumber(val, offset)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;日期编号转 Date 对象。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.parseTime(str)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;解析形如“1d2h5m3s”的时间字符串到毫秒数。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.parseDate(str)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;解析日期字符串到 Date 对象。除了 Date 原生支持的格式外还支持下列格式：&lt;br /&gt;
** 同 &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.parseTime(str)&amp;lt;/syntaxhighlight&amp;gt; 的格式，表示当前时间的指定间隔之后。&lt;br /&gt;
** &amp;lt;code&amp;gt;年-月-日-时:分:秒&amp;lt;/code&amp;gt;（分、秒可省略），可省略年、月、日（使用当前日期）或只省略年（使用当前年份）。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.format(ms)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;将毫秒数格式化为人类可读的大致值，如 3h。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.toDigits(num, length=2)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;数字左补零到指定长度。&lt;br /&gt;
* &amp;lt;syntaxhighlight inline lang=&amp;quot;javascript&amp;quot;&amp;gt;Time.template(template, time)&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;br/&amp;gt;格式化时间戳为指定模板字符串。模板字符串支持以下占位符：yyyy（四位年）、yy（两位年）、MM（两位月）、dd（两位日）、hh（两位小时）、mm（两位分钟）、ss（两位秒）、SSS（三位毫秒）。例如 &amp;lt;code&amp;gt;Time.template(&#039;yyyy-MM-dd hh:mm:ss&#039;, new Date())&amp;lt;/code&amp;gt;。time 必须为 Date 对象，默认取当前时间。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
import { Time } from &#039;cosmokit&#039;&lt;br /&gt;
Time.parseTime(&#039;2h5m&#039;) // 7500000&lt;br /&gt;
Time.format(60000) // &#039;1m&#039;&lt;br /&gt;
Time.template(&amp;quot;yyyy-MM-dd hh:mm:ss&amp;quot;)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=MediaWiki:Common.css&amp;diff=2999</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=MediaWiki:Common.css&amp;diff=2999"/>
		<updated>2026-05-12T13:36:54Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* 字体 */&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;quot;LNNCrypt&amp;quot;;&lt;br /&gt;
	src: url(&amp;quot;https://fastly.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/LNNCrypt.woff&amp;quot;) format(&#039;woff&#039;);&lt;br /&gt;
	unicode-range: U+E000-E03F;&lt;br /&gt;
	font-display: block;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;quot;Zhunghua&amp;quot;;&lt;br /&gt;
	src: url(&amp;quot;https://fastly.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/Zhunghua@0.5.woff2&amp;quot;) format(&amp;quot;woff2&amp;quot;),&lt;br /&gt;
		url(&amp;quot;https://fastly.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/Zhunghua@0.5.woff&amp;quot;) format(&amp;quot;woff&amp;quot;);&lt;br /&gt;
	font-display: block;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;quot;XEGOEPUAall&amp;quot;;&lt;br /&gt;
	src: url(&amp;quot;https://fastly.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/XEGOEPUAall.woff2&amp;quot;) format(&amp;quot;woff2&amp;quot;),&lt;br /&gt;
		url(&amp;quot;https://fastly.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/XEGOEPUAall.woff&amp;quot;) format(&amp;quot;woff&amp;quot;);&lt;br /&gt;
	font-display: block;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;quot;Unifont LNNPUA&amp;quot;;&lt;br /&gt;
	src: url(&amp;quot;https://fastly.jsdelivr.net/npm/@dgck81lnn/unifont-lnnpua/dist/UnifontLNNPUA.woff2&amp;quot;) format(&#039;woff2&#039;);&lt;br /&gt;
	unicode-range: U+E000-E27F;&lt;br /&gt;
	font-display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
:root {&lt;br /&gt;
	--font-family-dflt:&lt;br /&gt;
		-apple-system, &#039;BlinkMacSystemFont&#039;, &amp;quot;Segoe UI&amp;quot;, system-ui, &#039;Roboto&#039;,&lt;br /&gt;
		&amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif,&lt;br /&gt;
		var(--font-family-emoji);&lt;br /&gt;
	--font-family-hans:&lt;br /&gt;
		&#039;Source Han Sans SC&#039;, &#039;Source Han Sans CN&#039;, &#039;PingFang SC&#039;,&lt;br /&gt;
		&#039;Microsoft YaHei UI&#039;, &#039;Microsoft YaHei&#039;, &#039;微软雅黑&#039;, &#039;DengXian&#039;, &#039;等线&#039;,&lt;br /&gt;
		&#039;Noto Sans SC&#039;, &#039;Noto Sans CJK SC&#039;, &#039;Droid Sans Fallback&#039;, sans-serif,&lt;br /&gt;
		var(--font-family-emoji);&lt;br /&gt;
	--font-family-dflt-serif:&lt;br /&gt;
		&#039;Roboto Serif&#039;, &#039;STSong&#039;, &#039;NSimSun&#039;, &#039;SimSun&#039;, &#039;Linux Libertine&#039;,&lt;br /&gt;
		&#039;Georgia&#039;, &#039;Times&#039;, &#039;Source Serif Pro&#039;, serif, var(--font-family-emoji);&lt;br /&gt;
	--font-family-hant:&lt;br /&gt;
		&#039;Source Han Sans TC&#039;, &#039;Source Han Sans TW&#039;,&lt;br /&gt;
		&#039;Noto Sans TC&#039;, &#039;Noto Sans CJK TC&#039;,&lt;br /&gt;
		&#039;Source Han Sans HC&#039;, &#039;Source Han Sans HK&#039;,&lt;br /&gt;
		&#039;Noto Sans HC&#039;, &#039;Noto Sans CJK HC&#039;,&lt;br /&gt;
		&#039;PingFang TC&#039;, &#039;LiHei Pro&#039;,&lt;br /&gt;
		&#039;Microsoft JhengHei UI&#039;, &#039;Microsoft JhengHei&#039;, &#039;微軟正黑體&#039;, sans-serif;&lt;br /&gt;
	--font-family-hant-serif:&lt;br /&gt;
		&#039;Source Han Serif TC&#039;, &#039;Source Han Serif TW&#039;,&lt;br /&gt;
		&#039;Noto Serif TC&#039;, &#039;Noto Serif CJK TC&#039;,&lt;br /&gt;
		&#039;Source Han Serif HC&#039;, &#039;Source Han Serif HK&#039;,&lt;br /&gt;
		&#039;Noto Serif HC&#039;, &#039;Noto Serif CJK HC&#039;,&lt;br /&gt;
		&#039;PMingLiU&#039;, &#039;MingLiU&#039;, serif;&lt;br /&gt;
	--font-family-dflt-monospace:&lt;br /&gt;
		&#039;Sarasa Mono SC&#039;, &#039;Sarasa Term SC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab SC&#039;, &#039;Sarasa Term Slab SC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed SC&#039;, &#039;Sarasa Fixed Slab SC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK SC&#039;,&lt;br /&gt;
		&#039;Roboto Mono&#039;, &#039;Menlo&#039;, &#039;Consolas&#039;, &#039;Liberation Mono&#039;, &#039;Fira Code&#039;,&lt;br /&gt;
		&#039;Courier New&#039;, var(--font-family-hans), monospace;&lt;br /&gt;
	--font-family-emoji: &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;,&lt;br /&gt;
		&amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
[ lang ],&lt;br /&gt;
.lnnblog-font-g {&lt;br /&gt;
	--font-family-base: var(--font-family-dflt);&lt;br /&gt;
	--font-family-serif: var(--font-family-dflt-serif);&lt;br /&gt;
	--font-family-monospace: var(--font-family-dflt-monospace);&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
	font-family: var(--font-family-base);&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-font-hant,&lt;br /&gt;
.lnnblog-font-hant-hk,&lt;br /&gt;
.lnnblog-font-lzh,&lt;br /&gt;
.lnnblog-font-hans,&lt;br /&gt;
.lnnblog-font-qaac,&lt;br /&gt;
.lnnblog-font-qaaz,&lt;br /&gt;
.lnnblog-font-qaax,&lt;br /&gt;
.lnnblog-font-lnnpua {&lt;br /&gt;
	font-family: var(--font-family-base);&lt;br /&gt;
}&lt;br /&gt;
[ lang^=&amp;quot;zh-&amp;quot; ][ lang$=&amp;quot;-TW&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;zh-&amp;quot; ][ lang~=&amp;quot;-TW-&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;cmn-&amp;quot; ][ lang$=&amp;quot;-TW&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;cmn-&amp;quot; ][ lang~=&amp;quot;-TW-&amp;quot; ],&lt;br /&gt;
[ lang$=&amp;quot;-Hant&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Hant-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-hant {&lt;br /&gt;
	--font-family-base: var(--font-family-hant);&lt;br /&gt;
	--font-family-serif: var(--font-family-hant-serif);&lt;br /&gt;
	--font-family-monospace:&lt;br /&gt;
		&#039;Sarasa Mono TC&#039;, &#039;Sarasa Term TC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab TC&#039;, &#039;Sarasa Term Slab TC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed TC&#039;, &#039;Sarasa Fixed Slab TC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK TC&#039;,&lt;br /&gt;
		&#039;Roboto Mono&#039;, &#039;Menlo&#039;, &#039;Consolas&#039;, &#039;Liberation Mono&#039;, &#039;Fira Code&#039;,&lt;br /&gt;
		&#039;Courier New&#039;, var(--font-family-hant), monospace;&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
}&lt;br /&gt;
[ lang^=&amp;quot;zh-&amp;quot; ][ lang$=&amp;quot;-HK&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;zh-&amp;quot; ][ lang~=&amp;quot;-HK-&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;cmn-&amp;quot; ][ lang$=&amp;quot;-HK&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;cmn-&amp;quot; ][ lang~=&amp;quot;-HK-&amp;quot; ],&lt;br /&gt;
[ lang~=&amp;quot;-Hant-&amp;quot; ][ lang$=&amp;quot;-HK&amp;quot; ],&lt;br /&gt;
[ lang~=&amp;quot;-Hant-&amp;quot; ][ lang$=&amp;quot;-HK&amp;quot; ],&lt;br /&gt;
.lnnblog-font-hant-hk {&lt;br /&gt;
	--font-family-base:&lt;br /&gt;
		&#039;Source Han Sans HC&#039;, &#039;Source Han Sans HK&#039;,&lt;br /&gt;
		&#039;Noto Sans HC&#039;, &#039;Noto Sans CJK HC&#039;,&lt;br /&gt;
		var(--font-family-hant);&lt;br /&gt;
	--font-family-serif:&lt;br /&gt;
		&#039;Source Han Serif HC&#039;, &#039;Source Han Serif HK&#039;,&lt;br /&gt;
		&#039;Noto Serif HC&#039;, &#039;Noto Serif CJK HC&#039;,&lt;br /&gt;
		var(--font-family-hant-serif);&lt;br /&gt;
	--font-family-monospace:&lt;br /&gt;
		&#039;Sarasa Mono HC&#039;, &#039;Sarasa Term HC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab HC&#039;, &#039;Sarasa Term Slab HC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed HC&#039;, &#039;Sarasa Fixed Slab HC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK HC&#039;,&lt;br /&gt;
		&#039;Roboto Mono&#039;, &#039;Menlo&#039;, &#039;Consolas&#039;, &#039;Liberation Mono&#039;, &#039;Fira Code&#039;,&lt;br /&gt;
		&#039;Courier New&#039;, var(--font-family-hant), monospace;&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
}&lt;br /&gt;
[ lang=&amp;quot;lzh&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;lzh-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-lzh {&lt;br /&gt;
	--font-family-base: var(--font-family-hant);&lt;br /&gt;
	--font-family-serif: var(--font-family-hant-serif);&lt;br /&gt;
	--font-family-monospace:&lt;br /&gt;
		&#039;Sarasa Mono CL&#039;, &#039;Sarasa Term CL&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab CL&#039;, &#039;Sarasa Term Slab CL&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed CL&#039;, &#039;Sarasa Fixed Slab CL&#039;,&lt;br /&gt;
		&#039;Sarasa Mono TC&#039;, &#039;Sarasa Term TC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab TC&#039;, &#039;Sarasa Term Slab TC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed TC&#039;, &#039;Sarasa Fixed Slab TC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK TC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono HC&#039;, &#039;Sarasa Term HC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab HC&#039;, &#039;Sarasa Term Slab HC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed HC&#039;, &#039;Sarasa Fixed Slab HC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK HC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono SC&#039;, &#039;Sarasa Term SC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab SC&#039;, &#039;Sarasa Term Slab SC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed SC&#039;, &#039;Sarasa Fixed Slab SC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK SC&#039;,&lt;br /&gt;
		&#039;Roboto Mono&#039;, Menlo, Consolas, &#039;Liberation Mono&#039;, &#039;Fira Code&#039;,&lt;br /&gt;
		&#039;Courier New&#039;, monospace, var(--font-family-hant);&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
}&lt;br /&gt;
[ lang$=&amp;quot;-Hans&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Hans-&amp;quot; ],&lt;br /&gt;
[ lang=&amp;quot;zh-CN&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;zh-CN-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-hans {&lt;br /&gt;
	--font-family-base: var(--font-family-hans);&lt;br /&gt;
	--font-family-serif: var(--font-family-dflt-serif);&lt;br /&gt;
	--font-family-monospace: var(--font-family-dflt-monospace);&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
}&lt;br /&gt;
[ lang$=&amp;quot;-Qaac&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Qaac-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-qaac {&lt;br /&gt;
	--font-family-base: &amp;quot;LNNCrypt&amp;quot;, var(--font-family-hans);&lt;br /&gt;
	font-synthesis: none;&lt;br /&gt;
}&lt;br /&gt;
[ lang$=&amp;quot;-Qaaz&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Qaaz-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-qaaz {&lt;br /&gt;
	--font-family-base: &amp;quot;Zhunghua&amp;quot;, var(--font-family-dflt);&lt;br /&gt;
	font-synthesis: none;&lt;br /&gt;
}&lt;br /&gt;
[ lang$=&amp;quot;-Qaax&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Qaax-&amp;quot; ],&lt;br /&gt;
[ lang=&amp;quot;qdx&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;qdx-&amp;quot; ],&lt;br /&gt;
[ lang=&amp;quot;art-x-xdi8&amp;quot; ],&lt;br /&gt;
.lnnblog-font-qaax {&lt;br /&gt;
	--font-family-base: &amp;quot;XEGOEPUAall&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;思源黑体 CN&amp;quot;, -apple-system,&lt;br /&gt;
		&amp;quot;Roboto&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;微软雅黑&amp;quot;, system-ui, sans-serif,&lt;br /&gt;
		var(--font-family-emoji);&lt;br /&gt;
	font-synthesis: weight;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-font-lnnpua {&lt;br /&gt;
	--font-family-base: &amp;quot;Unifont LNNPUA&amp;quot;, var(--font-family-hans);&lt;br /&gt;
	font-synthesis: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
html {&lt;br /&gt;
	font-size: 16px;&lt;br /&gt;
	text-autospace: normal;&lt;br /&gt;
	text-autospace: replace;&lt;br /&gt;
	text-spacing-trim: trim-start;&lt;br /&gt;
}&lt;br /&gt;
pre, code, samp, kbd, tt, textarea, .lnnblog-font-monospace {&lt;br /&gt;
	font-family: var(--font-family-monospace) !important;&lt;br /&gt;
	tab-size: 4;&lt;br /&gt;
	text-autospace: no-autospace;&lt;br /&gt;
	text-spacing-trim: space-all;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-font-sans-serif {&lt;br /&gt;
	font-family: var(--font-family-base) !important;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-font-serif {&lt;br /&gt;
	font-family: var(--font-family-serif) !important;&lt;br /&gt;
}&lt;br /&gt;
#bodyContent {&lt;br /&gt;
	font-size: unset;&lt;br /&gt;
	font-family: unset;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a.new {&lt;br /&gt;
	text-decoration-style: dotted;&lt;br /&gt;
	-webkit-text-decoration-style: dotted;&lt;br /&gt;
	background-color: rgba(255, 0, 0, 0.08);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 分类页字母标签 */&lt;br /&gt;
.mw-category .mw-category-group h3 {&lt;br /&gt;
	float: left;&lt;br /&gt;
	clear: left;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
	line-height: 1.25;&lt;br /&gt;
	width: 1em;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	transform: translate(0, 0.125rem);&lt;br /&gt;
	border: .125rem solid transparent;&lt;br /&gt;
	border-right-width: .15em;&lt;br /&gt;
	border-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPjxwYXRoIGZpbGw9InJnYmEoMTI4LDEyOCwxMjgsLjI3KSIgZD0iTTAsMEgxTDIsMSwxLDJIMFoiLz48L3N2Zz4=)&lt;br /&gt;
		0 1 0 0 fill / 0.5em / 0.375em 0.625em;&lt;br /&gt;
}&lt;br /&gt;
.mw-category .mw-category-group ul {&lt;br /&gt;
	margin-left: 3em;&lt;br /&gt;
}&lt;br /&gt;
.client-js #mw-subcategories .mw-content-ltr ul {&lt;br /&gt;
	margin-left: 2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 按钮 */&lt;br /&gt;
.lnnblog-button-small {&lt;br /&gt;
	background: linear-gradient( #f0f0f0, #e0e0e0 );&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
	border: 1px solid #c0c0c0;&lt;br /&gt;
	padding: 2px 5px;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-button-blue {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	padding: 0.5rem 1rem;&lt;br /&gt;
	background: linear-gradient( #4060ff, #3040ff );&lt;br /&gt;
	color: white;&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
	border: 2px solid #1c2880;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-button-white {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	padding: 0.5rem 1rem;&lt;br /&gt;
	background: linear-gradient( #f0f0f0, #e0e0e0 );&lt;br /&gt;
	color: black;&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
	border: 2px solid #c0c0c0;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-button-red {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	padding: 0.5rem 1rem;&lt;br /&gt;
	background: linear-gradient( #ff6040, #ff4030 );&lt;br /&gt;
	color: white;&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
	border: 2px solid #80281c;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 代码块 */&lt;br /&gt;
pre:not(.mw-highlight-lines *) {&lt;br /&gt;
	overflow-y: auto;&lt;br /&gt;
	max-height: 70vh;&lt;br /&gt;
}&lt;br /&gt;
td &amp;gt; pre:first-child:last-child,&lt;br /&gt;
td &amp;gt; .mw-code:first-child:last-child,&lt;br /&gt;
.lnnblog-box-body &amp;gt; pre:first-child:last-child,&lt;br /&gt;
.lnnblog-box-body &amp;gt; .mw-code:first-child:last-child,&lt;br /&gt;
.lnnblog-hidebox-body &amp;gt; pre:first-child:last-child,&lt;br /&gt;
.lnnblog-hidebox-body &amp;gt; .mw-code:first-child:last-child {&lt;br /&gt;
	margin: -0.2rem;&lt;br /&gt;
	border: none;&lt;br /&gt;
	border-radius: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 引用 */&lt;br /&gt;
blockquote {&lt;br /&gt;
	border-left: 0.25rem solid gray;&lt;br /&gt;
	margin-left: 1rem;&lt;br /&gt;
	padding-left: 0.75rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@keyframes lnnblog-highlight {&lt;br /&gt;
	from {&lt;br /&gt;
		background-color: rgba(51, 191, 171, 0.75);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
:target {&lt;br /&gt;
	animation: lnnblog-highlight 5s ease-out;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Template:Documentation */&lt;br /&gt;
.lnnblog-documentation {&lt;br /&gt;
	background: rgba(48, 160, 144, 0.2);&lt;br /&gt;
	border: 1px solid #aaa;&lt;br /&gt;
	padding: 1rem;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-documentation-header {&lt;br /&gt;
	border-bottom: 1px solid #aaa;&lt;br /&gt;
	margin: 0.5rem 0 1rem;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-documentation-header-title {&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	font-size: 1.25rem;&lt;br /&gt;
	display: inline;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Template:Info&lt;br /&gt;
 * 引自&amp;lt; https://zh.moegirl.org.cn/MediaWiki:Gadget-site-styles.css &amp;gt;，有改动&lt;br /&gt;
 * CC BY-NC-SA 3.0&lt;br /&gt;
 */&lt;br /&gt;
.infoBox {&lt;br /&gt;
	margin: 0 auto;&lt;br /&gt;
	width: 80%;&lt;br /&gt;
	border-left: 10px solid;&lt;br /&gt;
}&lt;br /&gt;
.infoBoxTitle {&lt;br /&gt;
	margin: 3px auto;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
.infoBoxIcon {&lt;br /&gt;
	display: table-cell;&lt;br /&gt;
	padding: 2px 0 2px .5em;&lt;br /&gt;
	vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
.infoBoxText {&lt;br /&gt;
	display: table-cell;&lt;br /&gt;
	padding: .25em .5em .25em 1.3em;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
	vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
.infoBoxContent {&lt;br /&gt;
	border: 1px solid rgba(128, 128, 128, 0.25);&lt;br /&gt;
	border-left-width: 0;&lt;br /&gt;
	background: rgba(128, 128, 128, 0.03);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Template:Box 和 Template:Hidebox */&lt;br /&gt;
.lnnblog-box,&lt;br /&gt;
.lnnblog-hidebox {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	background: rgba(128, 128, 128, 0.05);&lt;br /&gt;
	border: 1px solid rgba(128, 128, 128, 0.67);&lt;br /&gt;
	max-width: 100%;&lt;br /&gt;
	overflow: hidden;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-box-heading,&lt;br /&gt;
.lnnblog-hidebox-heading {&lt;br /&gt;
	background: rgba(128, 128, 128, 0.06);&lt;br /&gt;
	padding: .2rem;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-box-body,&lt;br /&gt;
.lnnblog-hidebox-body {&lt;br /&gt;
	padding: .2rem;&lt;br /&gt;
	overflow-wrap: break-word;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lnnblog-box-heading:not(empty) + .lnnblog-box-body,&lt;br /&gt;
.lnnblog-hidebox-body {&lt;br /&gt;
	border-top: 1px solid rgba(128, 128, 128, 0.65);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lnnblog-hidebox-heading {&lt;br /&gt;
	cursor: pointer;&lt;br /&gt;
	list-style: none;&lt;br /&gt;
	position: relative;&lt;br /&gt;
	padding-left: 1.2rem;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-hidebox-heading::-webkit-details-marker { display: none }&lt;br /&gt;
.lnnblog-hidebox-heading::before {&lt;br /&gt;
	content: &#039;&#039;;&lt;br /&gt;
	position: absolute;&lt;br /&gt;
	left: 0.4rem;&lt;br /&gt;
	top: 0;&lt;br /&gt;
	bottom: 0;&lt;br /&gt;
	height: 0;&lt;br /&gt;
	margin: auto;&lt;br /&gt;
	border: 0.3rem solid transparent;&lt;br /&gt;
	border-left-width: 0.5rem;&lt;br /&gt;
	border-left-color: currentColor;&lt;br /&gt;
	transform: rotate(0);&lt;br /&gt;
	transform-origin: 0.25rem 50%;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-hidebox[open] &amp;gt; .lnnblog-hidebox-heading::before {&lt;br /&gt;
	transform: rotate(90deg);&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-hidebox[data-lnnblog-hidebox-state=&amp;quot;expand&amp;quot;] &amp;gt; .lnnblog-hidebox-heading::before {&lt;br /&gt;
	animation: lnnblog-hidebox-expand 250ms;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-hidebox[data-lnnblog-hidebox-state=&amp;quot;shrink&amp;quot;] &amp;gt; .lnnblog-hidebox-heading::before {&lt;br /&gt;
	transform: rotate(0);&lt;br /&gt;
	animation: lnnblog-hidebox-shrink 250ms;&lt;br /&gt;
}&lt;br /&gt;
@keyframes lnnblog-hidebox-expand {&lt;br /&gt;
	from { transform: rotate(0deg); }&lt;br /&gt;
	to { transform: rotate(90deg); }&lt;br /&gt;
}&lt;br /&gt;
@keyframes lnnblog-hidebox-shrink {&lt;br /&gt;
	from { transform: rotate(90deg); }&lt;br /&gt;
	to { transform: rotate(0deg); }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Template:Jk */&lt;br /&gt;
.lnnblog-jk {&lt;br /&gt;
	color: #808080;&lt;br /&gt;
	text-decoration: line-through;&lt;br /&gt;
	text-decoration-color: var(--color-base, black);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 信息模板 */&lt;br /&gt;
.lnnblog-infobox {&lt;br /&gt;
	background: rgba(128, 128, 128, 0.05);&lt;br /&gt;
	border: 1px solid rgba(128, 128, 128, 0.67);&lt;br /&gt;
	border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
@media (min-width: 720px) {&lt;br /&gt;
	.lnnblog-infobox {&lt;br /&gt;
		float: right;&lt;br /&gt;
		width: 300px;&lt;br /&gt;
		margin-left: 1.5rem;&lt;br /&gt;
		margin-bottom: 1.5rem;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-infobox-titlebar {&lt;br /&gt;
	background: rgba(228, 228, 228, 0.33);&lt;br /&gt;
	color: black;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-infobox th,&lt;br /&gt;
.lnnblog-infobox td {&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * 工具类&lt;br /&gt;
 */&lt;br /&gt;
/* 外边距和响应式浮动 */&lt;br /&gt;
.lnnblog-margin {&lt;br /&gt;
	margin-top: .5rem !important;&lt;br /&gt;
	margin-bottom: .5rem !important;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-margin-lg {&lt;br /&gt;
	margin-top: 1.5rem !important;&lt;br /&gt;
	margin-bottom: 1.5rem !important;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-margin-top-0 {&lt;br /&gt;
	margin-top: 0 !important;&lt;br /&gt;
}&lt;br /&gt;
@media (min-width: 720px) {&lt;br /&gt;
	.lnnblog-float {&lt;br /&gt;
		float: right;&lt;br /&gt;
		max-width: 300px;&lt;br /&gt;
		margin-left: .5rem !important;&lt;br /&gt;
	}&lt;br /&gt;
	.wikitable.lnnblog-float {&lt;br /&gt;
		margin-left: 1rem !important;&lt;br /&gt;
	}&lt;br /&gt;
	.lnnblog-margin-lg.lnnblog-float {&lt;br /&gt;
		margin-left: 1.5rem !important;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 清除浮动 */&lt;br /&gt;
.clear-both {&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
.clearfix::after {&lt;br /&gt;
	content: &amp;quot;&amp;quot;;&lt;br /&gt;
	display: block;&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 隐藏空元素hack */&lt;br /&gt;
.lnnblog-hide-empty:empty {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 首行缩进 */&lt;br /&gt;
p.lnnblog-first-line-indent:before,&lt;br /&gt;
.lnnblog-first-line-indent p:before {&lt;br /&gt;
	content: &#039;\3000\3000&#039;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 目录层数 Hack */&lt;br /&gt;
.lnnblog-toc-levels-1 .toclevel-1&amp;gt;ul,&lt;br /&gt;
.lnnblog-toc-levels-2 .toclevel-2&amp;gt;ul,&lt;br /&gt;
.lnnblog-toc-levels-3 .toclevel-3&amp;gt;ul,&lt;br /&gt;
.lnnblog-toc-levels-4 .toclevel-4&amp;gt;ul,&lt;br /&gt;
.lnnblog-toc-levels-5 .toclevel-5&amp;gt;ul {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=LNN_%E9%81%97%E7%95%99%E5%AF%86%E6%96%87&amp;diff=2995</id>
		<title>LNN 遗留密文</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=LNN_%E9%81%97%E7%95%99%E5%AF%86%E6%96%87&amp;diff=2995"/>
		<updated>2026-05-11T12:14:28Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;“&#039;&#039;&#039;LNN 遗留密文&#039;&#039;&#039;”是 [[LNN 密文 PUA 编码]]中的一个区段，范围为 {{tt|U+E230..U+E27F}}。该区段目前编码了“LNN 二代密文”的字符。&lt;br /&gt;
&lt;br /&gt;
{{tt|E230..E249}} 一段曾编码了“LNN 一代密文”的字符，但由于“一代密文”实际上应界定为一种英文字体，且其字形对照表遗失，该部分代码点现已弃用并暂时留空。&lt;br /&gt;
&lt;br /&gt;
[[File:二代密文对照表.jpg|frame|upright|center|LNN 二代密文对照表]]&lt;br /&gt;
&lt;br /&gt;
== 内容 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable lnnblog-font-lnnpua&amp;quot;&lt;br /&gt;
|+ LNN Legacy Ciphers&lt;br /&gt;
! !! 0 !! 1 !! 2 !! 3 !! 4 !! 5 !! 6 !! 7 !! 8 !! 9 !! A !! B !! C !! D !! E !! F&lt;br /&gt;
|-&lt;br /&gt;
! U+E23_&lt;br /&gt;
|colspan=16 style=&amp;quot;background-color:rgba(128,128,128,.5)&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
! U+E24_&lt;br /&gt;
|colspan=16 style=&amp;quot;background-color:rgba(128,128,128,.5)&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
! U+E25_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E26_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|colspan=4 style=&amp;quot;background-color:rgba(128,128,128,.5)&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
! U+E27_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|colspan=6 style=&amp;quot;background-color:rgba(128,128,128,.5)&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{hidebox|字符名称|2=&amp;lt;pre&amp;gt;&lt;br /&gt;
E250 LNN GENERATION TWO CIPHER LETTER A&lt;br /&gt;
E251 LNN GENERATION TWO CIPHER LETTER B&lt;br /&gt;
E252 LNN GENERATION TWO CIPHER LETTER C&lt;br /&gt;
E253 LNN GENERATION TWO CIPHER LETTER D&lt;br /&gt;
E254 LNN GENERATION TWO CIPHER LETTER E&lt;br /&gt;
E255 LNN GENERATION TWO CIPHER LETTER F&lt;br /&gt;
E256 LNN GENERATION TWO CIPHER LETTER G&lt;br /&gt;
E257 LNN GENERATION TWO CIPHER LETTER H&lt;br /&gt;
E258 LNN GENERATION TWO CIPHER LETTER I&lt;br /&gt;
E259 LNN GENERATION TWO CIPHER LETTER J&lt;br /&gt;
E25A LNN GENERATION TWO CIPHER LETTER K&lt;br /&gt;
E25B LNN GENERATION TWO CIPHER LETTER L&lt;br /&gt;
E25C LNN GENERATION TWO CIPHER LETTER M&lt;br /&gt;
E25D LNN GENERATION TWO CIPHER LETTER N&lt;br /&gt;
E25E LNN GENERATION TWO CIPHER LETTER O&lt;br /&gt;
E25F LNN GENERATION TWO CIPHER LETTER P&lt;br /&gt;
E260 LNN GENERATION TWO CIPHER LETTER Q&lt;br /&gt;
E261 LNN GENERATION TWO CIPHER LETTER R&lt;br /&gt;
E262 LNN GENERATION TWO CIPHER LETTER S&lt;br /&gt;
E263 LNN GENERATION TWO CIPHER LETTER T&lt;br /&gt;
E264 LNN GENERATION TWO CIPHER LETTER U&lt;br /&gt;
E265 LNN GENERATION TWO CIPHER LETTER V&lt;br /&gt;
E266 LNN GENERATION TWO CIPHER LETTER W&lt;br /&gt;
E267 LNN GENERATION TWO CIPHER LETTER X&lt;br /&gt;
E268 LNN GENERATION TWO CIPHER LETTER Y&lt;br /&gt;
E269 LNN GENERATION TWO CIPHER LETTER Z&lt;br /&gt;
E26A LNN GENERATION TWO CIPHER LETTER UE&lt;br /&gt;
E26B LNN GENERATION TWO CIPHER LETTER MU&lt;br /&gt;
E26C &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E26D &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E26E &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E26F &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E270 LNN GENERATION TWO CIPHER DIGIT ZERO&lt;br /&gt;
E271 LNN GENERATION TWO CIPHER DIGIT ONE&lt;br /&gt;
E272 LNN GENERATION TWO CIPHER DIGIT TWO&lt;br /&gt;
E273 LNN GENERATION TWO CIPHER DIGIT THREE&lt;br /&gt;
E274 LNN GENERATION TWO CIPHER DIGIT FOUR&lt;br /&gt;
E275 LNN GENERATION TWO CIPHER DIGIT FIVE&lt;br /&gt;
E276 LNN GENERATION TWO CIPHER DIGIT SIX&lt;br /&gt;
E277 LNN GENERATION TWO CIPHER DIGIT SEVEN&lt;br /&gt;
E278 LNN GENERATION TWO CIPHER DIGIT EIGHT&lt;br /&gt;
E279 LNN GENERATION TWO CIPHER DIGIT NINE&lt;br /&gt;
E27A &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E27B &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E27C &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E27D &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E27E &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E27F &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== 支持 ==&lt;br /&gt;
&lt;br /&gt;
[[Unifont LNNPUA]] 字体支持该区段内的字符。&lt;br /&gt;
&lt;br /&gt;
[[分类:LNN 密文 PUA 编码区段]]&lt;br /&gt;
{{DEFAULTSORT:{{SortPinyin|LNN 遗{yi2}留{liu2}密{mi4}文{wen2} }}}}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=MediaWiki:Common.css&amp;diff=2997</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=MediaWiki:Common.css&amp;diff=2997"/>
		<updated>2026-05-11T12:13:30Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* 字体 */&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;quot;LNNCrypt&amp;quot;;&lt;br /&gt;
	src: url(&amp;quot;https://cdn.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/LNNCrypt.woff&amp;quot;) format(&#039;woff&#039;);&lt;br /&gt;
	unicode-range: U+E000-E03F;&lt;br /&gt;
	font-display: block;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;quot;Zhunghua&amp;quot;;&lt;br /&gt;
	src: url(&amp;quot;https://cdn.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/Zhunghua@0.5.woff2&amp;quot;) format(&amp;quot;woff2&amp;quot;),&lt;br /&gt;
		url(&amp;quot;https://cdn.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/Zhunghua@0.5.woff&amp;quot;) format(&amp;quot;woff&amp;quot;);&lt;br /&gt;
	font-display: block;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;quot;XEGOEPUAall&amp;quot;;&lt;br /&gt;
	src: url(&amp;quot;https://cdn.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/XEGOEPUAall.woff2&amp;quot;) format(&amp;quot;woff2&amp;quot;),&lt;br /&gt;
		url(&amp;quot;https://cdn.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/XEGOEPUAall.woff&amp;quot;) format(&amp;quot;woff&amp;quot;);&lt;br /&gt;
	font-display: block;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;quot;Unifont LNNPUA&amp;quot;;&lt;br /&gt;
	src: url(&amp;quot;https://vudrux.site/fonts/UnifontLNNPUA.woff2&amp;quot;) format(&#039;woff2&#039;);&lt;br /&gt;
	unicode-range: U+E000-E27F;&lt;br /&gt;
	font-display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
:root {&lt;br /&gt;
	--font-family-dflt:&lt;br /&gt;
		-apple-system, &#039;BlinkMacSystemFont&#039;, &amp;quot;Segoe UI&amp;quot;, system-ui, &#039;Roboto&#039;,&lt;br /&gt;
		&amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif,&lt;br /&gt;
		var(--font-family-emoji);&lt;br /&gt;
	--font-family-hans:&lt;br /&gt;
		&#039;Source Han Sans SC&#039;, &#039;Source Han Sans CN&#039;, &#039;PingFang SC&#039;,&lt;br /&gt;
		&#039;Microsoft YaHei UI&#039;, &#039;Microsoft YaHei&#039;, &#039;微软雅黑&#039;, &#039;DengXian&#039;, &#039;等线&#039;,&lt;br /&gt;
		&#039;Noto Sans SC&#039;, &#039;Noto Sans CJK SC&#039;, &#039;Droid Sans Fallback&#039;, sans-serif,&lt;br /&gt;
		var(--font-family-emoji);&lt;br /&gt;
	--font-family-dflt-serif:&lt;br /&gt;
		&#039;Roboto Serif&#039;, &#039;STSong&#039;, &#039;NSimSun&#039;, &#039;SimSun&#039;, &#039;Linux Libertine&#039;,&lt;br /&gt;
		&#039;Georgia&#039;, &#039;Times&#039;, &#039;Source Serif Pro&#039;, serif, var(--font-family-emoji);&lt;br /&gt;
	--font-family-hant:&lt;br /&gt;
		&#039;Source Han Sans TC&#039;, &#039;Source Han Sans TW&#039;,&lt;br /&gt;
		&#039;Noto Sans TC&#039;, &#039;Noto Sans CJK TC&#039;,&lt;br /&gt;
		&#039;Source Han Sans HC&#039;, &#039;Source Han Sans HK&#039;,&lt;br /&gt;
		&#039;Noto Sans HC&#039;, &#039;Noto Sans CJK HC&#039;,&lt;br /&gt;
		&#039;PingFang TC&#039;, &#039;LiHei Pro&#039;,&lt;br /&gt;
		&#039;Microsoft JhengHei UI&#039;, &#039;Microsoft JhengHei&#039;, &#039;微軟正黑體&#039;, sans-serif;&lt;br /&gt;
	--font-family-hant-serif:&lt;br /&gt;
		&#039;Source Han Serif TC&#039;, &#039;Source Han Serif TW&#039;,&lt;br /&gt;
		&#039;Noto Serif TC&#039;, &#039;Noto Serif CJK TC&#039;,&lt;br /&gt;
		&#039;Source Han Serif HC&#039;, &#039;Source Han Serif HK&#039;,&lt;br /&gt;
		&#039;Noto Serif HC&#039;, &#039;Noto Serif CJK HC&#039;,&lt;br /&gt;
		&#039;PMingLiU&#039;, &#039;MingLiU&#039;, serif;&lt;br /&gt;
	--font-family-dflt-monospace:&lt;br /&gt;
		&#039;Sarasa Mono SC&#039;, &#039;Sarasa Term SC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab SC&#039;, &#039;Sarasa Term Slab SC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed SC&#039;, &#039;Sarasa Fixed Slab SC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK SC&#039;,&lt;br /&gt;
		&#039;Roboto Mono&#039;, &#039;Menlo&#039;, &#039;Consolas&#039;, &#039;Liberation Mono&#039;, &#039;Fira Code&#039;,&lt;br /&gt;
		&#039;Courier New&#039;, var(--font-family-hans), monospace;&lt;br /&gt;
	--font-family-emoji: &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;,&lt;br /&gt;
		&amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
[ lang ],&lt;br /&gt;
.lnnblog-font-g {&lt;br /&gt;
	--font-family-base: var(--font-family-dflt);&lt;br /&gt;
	--font-family-serif: var(--font-family-dflt-serif);&lt;br /&gt;
	--font-family-monospace: var(--font-family-dflt-monospace);&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
	font-family: var(--font-family-base);&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-font-hant,&lt;br /&gt;
.lnnblog-font-hant-hk,&lt;br /&gt;
.lnnblog-font-lzh,&lt;br /&gt;
.lnnblog-font-hans,&lt;br /&gt;
.lnnblog-font-qaac,&lt;br /&gt;
.lnnblog-font-qaaz,&lt;br /&gt;
.lnnblog-font-qaax,&lt;br /&gt;
.lnnblog-font-lnnpua {&lt;br /&gt;
	font-family: var(--font-family-base);&lt;br /&gt;
}&lt;br /&gt;
[ lang^=&amp;quot;zh-&amp;quot; ][ lang$=&amp;quot;-TW&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;zh-&amp;quot; ][ lang~=&amp;quot;-TW-&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;cmn-&amp;quot; ][ lang$=&amp;quot;-TW&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;cmn-&amp;quot; ][ lang~=&amp;quot;-TW-&amp;quot; ],&lt;br /&gt;
[ lang$=&amp;quot;-Hant&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Hant-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-hant {&lt;br /&gt;
	--font-family-base: var(--font-family-hant);&lt;br /&gt;
	--font-family-serif: var(--font-family-hant-serif);&lt;br /&gt;
	--font-family-monospace:&lt;br /&gt;
		&#039;Sarasa Mono TC&#039;, &#039;Sarasa Term TC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab TC&#039;, &#039;Sarasa Term Slab TC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed TC&#039;, &#039;Sarasa Fixed Slab TC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK TC&#039;,&lt;br /&gt;
		&#039;Roboto Mono&#039;, &#039;Menlo&#039;, &#039;Consolas&#039;, &#039;Liberation Mono&#039;, &#039;Fira Code&#039;,&lt;br /&gt;
		&#039;Courier New&#039;, var(--font-family-hant), monospace;&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
}&lt;br /&gt;
[ lang^=&amp;quot;zh-&amp;quot; ][ lang$=&amp;quot;-HK&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;zh-&amp;quot; ][ lang~=&amp;quot;-HK-&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;cmn-&amp;quot; ][ lang$=&amp;quot;-HK&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;cmn-&amp;quot; ][ lang~=&amp;quot;-HK-&amp;quot; ],&lt;br /&gt;
[ lang~=&amp;quot;-Hant-&amp;quot; ][ lang$=&amp;quot;-HK&amp;quot; ],&lt;br /&gt;
[ lang~=&amp;quot;-Hant-&amp;quot; ][ lang$=&amp;quot;-HK&amp;quot; ],&lt;br /&gt;
.lnnblog-font-hant-hk {&lt;br /&gt;
	--font-family-base:&lt;br /&gt;
		&#039;Source Han Sans HC&#039;, &#039;Source Han Sans HK&#039;,&lt;br /&gt;
		&#039;Noto Sans HC&#039;, &#039;Noto Sans CJK HC&#039;,&lt;br /&gt;
		var(--font-family-hant);&lt;br /&gt;
	--font-family-serif:&lt;br /&gt;
		&#039;Source Han Serif HC&#039;, &#039;Source Han Serif HK&#039;,&lt;br /&gt;
		&#039;Noto Serif HC&#039;, &#039;Noto Serif CJK HC&#039;,&lt;br /&gt;
		var(--font-family-hant-serif);&lt;br /&gt;
	--font-family-monospace:&lt;br /&gt;
		&#039;Sarasa Mono HC&#039;, &#039;Sarasa Term HC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab HC&#039;, &#039;Sarasa Term Slab HC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed HC&#039;, &#039;Sarasa Fixed Slab HC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK HC&#039;,&lt;br /&gt;
		&#039;Roboto Mono&#039;, &#039;Menlo&#039;, &#039;Consolas&#039;, &#039;Liberation Mono&#039;, &#039;Fira Code&#039;,&lt;br /&gt;
		&#039;Courier New&#039;, var(--font-family-hant), monospace;&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
}&lt;br /&gt;
[ lang=&amp;quot;lzh&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;lzh-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-lzh {&lt;br /&gt;
	--font-family-base: var(--font-family-hant);&lt;br /&gt;
	--font-family-serif: var(--font-family-hant-serif);&lt;br /&gt;
	--font-family-monospace:&lt;br /&gt;
		&#039;Sarasa Mono CL&#039;, &#039;Sarasa Term CL&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab CL&#039;, &#039;Sarasa Term Slab CL&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed CL&#039;, &#039;Sarasa Fixed Slab CL&#039;,&lt;br /&gt;
		&#039;Sarasa Mono TC&#039;, &#039;Sarasa Term TC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab TC&#039;, &#039;Sarasa Term Slab TC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed TC&#039;, &#039;Sarasa Fixed Slab TC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK TC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono HC&#039;, &#039;Sarasa Term HC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab HC&#039;, &#039;Sarasa Term Slab HC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed HC&#039;, &#039;Sarasa Fixed Slab HC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK HC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono SC&#039;, &#039;Sarasa Term SC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab SC&#039;, &#039;Sarasa Term Slab SC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed SC&#039;, &#039;Sarasa Fixed Slab SC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK SC&#039;,&lt;br /&gt;
		&#039;Roboto Mono&#039;, Menlo, Consolas, &#039;Liberation Mono&#039;, &#039;Fira Code&#039;,&lt;br /&gt;
		&#039;Courier New&#039;, monospace, var(--font-family-hant);&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
}&lt;br /&gt;
[ lang$=&amp;quot;-Hans&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Hans-&amp;quot; ],&lt;br /&gt;
[ lang=&amp;quot;zh-CN&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;zh-CN-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-hans {&lt;br /&gt;
	--font-family-base: var(--font-family-hans);&lt;br /&gt;
	--font-family-serif: var(--font-family-dflt-serif);&lt;br /&gt;
	--font-family-monospace: var(--font-family-dflt-monospace);&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
}&lt;br /&gt;
[ lang$=&amp;quot;-Qaac&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Qaac-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-qaac {&lt;br /&gt;
	--font-family-base: &amp;quot;LNNCrypt&amp;quot;, var(--font-family-hans);&lt;br /&gt;
	font-synthesis: none;&lt;br /&gt;
}&lt;br /&gt;
[ lang$=&amp;quot;-Qaaz&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Qaaz-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-qaaz {&lt;br /&gt;
	--font-family-base: &amp;quot;Zhunghua&amp;quot;, var(--font-family-dflt);&lt;br /&gt;
	font-synthesis: none;&lt;br /&gt;
}&lt;br /&gt;
[ lang$=&amp;quot;-Qaax&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Qaax-&amp;quot; ],&lt;br /&gt;
[ lang=&amp;quot;qdx&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;qdx-&amp;quot; ],&lt;br /&gt;
[ lang=&amp;quot;art-x-xdi8&amp;quot; ],&lt;br /&gt;
.lnnblog-font-qaax {&lt;br /&gt;
	--font-family-base: &amp;quot;XEGOEPUAall&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;思源黑体 CN&amp;quot;, -apple-system,&lt;br /&gt;
		&amp;quot;Roboto&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;微软雅黑&amp;quot;, system-ui, sans-serif,&lt;br /&gt;
		var(--font-family-emoji);&lt;br /&gt;
	font-synthesis: weight;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-font-lnnpua {&lt;br /&gt;
	--font-family-base: &amp;quot;Unifont LNNPUA&amp;quot;, var(--font-family-hans);&lt;br /&gt;
	font-synthesis: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
html {&lt;br /&gt;
	font-size: 16px;&lt;br /&gt;
	text-autospace: normal;&lt;br /&gt;
	text-autospace: replace;&lt;br /&gt;
	text-spacing-trim: trim-start;&lt;br /&gt;
}&lt;br /&gt;
pre, code, samp, kbd, tt, textarea, .lnnblog-font-monospace {&lt;br /&gt;
	font-family: var(--font-family-monospace) !important;&lt;br /&gt;
	tab-size: 4;&lt;br /&gt;
	text-autospace: no-autospace;&lt;br /&gt;
	text-spacing-trim: space-all;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-font-sans-serif {&lt;br /&gt;
	font-family: var(--font-family-base) !important;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-font-serif {&lt;br /&gt;
	font-family: var(--font-family-serif) !important;&lt;br /&gt;
}&lt;br /&gt;
#bodyContent {&lt;br /&gt;
	font-size: unset;&lt;br /&gt;
	font-family: unset;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a.new {&lt;br /&gt;
	text-decoration-style: dotted;&lt;br /&gt;
	-webkit-text-decoration-style: dotted;&lt;br /&gt;
	background-color: rgba(255, 0, 0, 0.08);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 分类页字母标签 */&lt;br /&gt;
.mw-category .mw-category-group h3 {&lt;br /&gt;
	float: left;&lt;br /&gt;
	clear: left;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
	line-height: 1.25;&lt;br /&gt;
	width: 1em;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	transform: translate(0, 0.125rem);&lt;br /&gt;
	border: .125rem solid transparent;&lt;br /&gt;
	border-right-width: .15em;&lt;br /&gt;
	border-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPjxwYXRoIGZpbGw9InJnYmEoMTI4LDEyOCwxMjgsLjI3KSIgZD0iTTAsMEgxTDIsMSwxLDJIMFoiLz48L3N2Zz4=)&lt;br /&gt;
		0 1 0 0 fill / 0.5em / 0.375em 0.625em;&lt;br /&gt;
}&lt;br /&gt;
.mw-category .mw-category-group ul {&lt;br /&gt;
	margin-left: 3em;&lt;br /&gt;
}&lt;br /&gt;
.client-js #mw-subcategories .mw-content-ltr ul {&lt;br /&gt;
	margin-left: 2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 按钮 */&lt;br /&gt;
.lnnblog-button-small {&lt;br /&gt;
	background: linear-gradient( #f0f0f0, #e0e0e0 );&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
	border: 1px solid #c0c0c0;&lt;br /&gt;
	padding: 2px 5px;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-button-blue {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	padding: 0.5rem 1rem;&lt;br /&gt;
	background: linear-gradient( #4060ff, #3040ff );&lt;br /&gt;
	color: white;&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
	border: 2px solid #1c2880;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-button-white {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	padding: 0.5rem 1rem;&lt;br /&gt;
	background: linear-gradient( #f0f0f0, #e0e0e0 );&lt;br /&gt;
	color: black;&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
	border: 2px solid #c0c0c0;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-button-red {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	padding: 0.5rem 1rem;&lt;br /&gt;
	background: linear-gradient( #ff6040, #ff4030 );&lt;br /&gt;
	color: white;&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
	border: 2px solid #80281c;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 代码块 */&lt;br /&gt;
pre:not(.mw-highlight-lines *) {&lt;br /&gt;
	overflow-y: auto;&lt;br /&gt;
	max-height: 70vh;&lt;br /&gt;
}&lt;br /&gt;
td &amp;gt; pre:first-child:last-child,&lt;br /&gt;
td &amp;gt; .mw-code:first-child:last-child,&lt;br /&gt;
.lnnblog-box-body &amp;gt; pre:first-child:last-child,&lt;br /&gt;
.lnnblog-box-body &amp;gt; .mw-code:first-child:last-child,&lt;br /&gt;
.lnnblog-hidebox-body &amp;gt; pre:first-child:last-child,&lt;br /&gt;
.lnnblog-hidebox-body &amp;gt; .mw-code:first-child:last-child {&lt;br /&gt;
	margin: -0.2rem;&lt;br /&gt;
	border: none;&lt;br /&gt;
	border-radius: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 引用 */&lt;br /&gt;
blockquote {&lt;br /&gt;
	border-left: 0.25rem solid gray;&lt;br /&gt;
	margin-left: 1rem;&lt;br /&gt;
	padding-left: 0.75rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@keyframes lnnblog-highlight {&lt;br /&gt;
	from {&lt;br /&gt;
		background-color: rgba(51, 191, 171, 0.75);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
:target {&lt;br /&gt;
	animation: lnnblog-highlight 5s ease-out;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Template:Documentation */&lt;br /&gt;
.lnnblog-documentation {&lt;br /&gt;
	background: rgba(48, 160, 144, 0.2);&lt;br /&gt;
	border: 1px solid #aaa;&lt;br /&gt;
	padding: 1rem;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-documentation-header {&lt;br /&gt;
	border-bottom: 1px solid #aaa;&lt;br /&gt;
	margin: 0.5rem 0 1rem;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-documentation-header-title {&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	font-size: 1.25rem;&lt;br /&gt;
	display: inline;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Template:Info&lt;br /&gt;
 * 引自&amp;lt; https://zh.moegirl.org.cn/MediaWiki:Gadget-site-styles.css &amp;gt;，有改动&lt;br /&gt;
 * CC BY-NC-SA 3.0&lt;br /&gt;
 */&lt;br /&gt;
.infoBox {&lt;br /&gt;
	margin: 0 auto;&lt;br /&gt;
	width: 80%;&lt;br /&gt;
	border-left: 10px solid;&lt;br /&gt;
}&lt;br /&gt;
.infoBoxTitle {&lt;br /&gt;
	margin: 3px auto;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
.infoBoxIcon {&lt;br /&gt;
	display: table-cell;&lt;br /&gt;
	padding: 2px 0 2px .5em;&lt;br /&gt;
	vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
.infoBoxText {&lt;br /&gt;
	display: table-cell;&lt;br /&gt;
	padding: .25em .5em .25em 1.3em;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
	vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
.infoBoxContent {&lt;br /&gt;
	border: 1px solid rgba(128, 128, 128, 0.25);&lt;br /&gt;
	border-left-width: 0;&lt;br /&gt;
	background: rgba(128, 128, 128, 0.03);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Template:Box 和 Template:Hidebox */&lt;br /&gt;
.lnnblog-box,&lt;br /&gt;
.lnnblog-hidebox {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	background: rgba(128, 128, 128, 0.05);&lt;br /&gt;
	border: 1px solid rgba(128, 128, 128, 0.67);&lt;br /&gt;
	max-width: 100%;&lt;br /&gt;
	overflow: hidden;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-box-heading,&lt;br /&gt;
.lnnblog-hidebox-heading {&lt;br /&gt;
	background: rgba(128, 128, 128, 0.06);&lt;br /&gt;
	padding: .2rem;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-box-body,&lt;br /&gt;
.lnnblog-hidebox-body {&lt;br /&gt;
	padding: .2rem;&lt;br /&gt;
	overflow-wrap: break-word;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lnnblog-box-heading:not(empty) + .lnnblog-box-body,&lt;br /&gt;
.lnnblog-hidebox-body {&lt;br /&gt;
	border-top: 1px solid rgba(128, 128, 128, 0.65);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lnnblog-hidebox-heading {&lt;br /&gt;
	cursor: pointer;&lt;br /&gt;
	list-style: none;&lt;br /&gt;
	position: relative;&lt;br /&gt;
	padding-left: 1.2rem;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-hidebox-heading::-webkit-details-marker { display: none }&lt;br /&gt;
.lnnblog-hidebox-heading::before {&lt;br /&gt;
	content: &#039;&#039;;&lt;br /&gt;
	position: absolute;&lt;br /&gt;
	left: 0.4rem;&lt;br /&gt;
	top: 0;&lt;br /&gt;
	bottom: 0;&lt;br /&gt;
	height: 0;&lt;br /&gt;
	margin: auto;&lt;br /&gt;
	border: 0.3rem solid transparent;&lt;br /&gt;
	border-left-width: 0.5rem;&lt;br /&gt;
	border-left-color: currentColor;&lt;br /&gt;
	transform: rotate(0);&lt;br /&gt;
	transform-origin: 0.25rem 50%;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-hidebox[open] &amp;gt; .lnnblog-hidebox-heading::before {&lt;br /&gt;
	transform: rotate(90deg);&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-hidebox[data-lnnblog-hidebox-state=&amp;quot;expand&amp;quot;] &amp;gt; .lnnblog-hidebox-heading::before {&lt;br /&gt;
	animation: lnnblog-hidebox-expand 250ms;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-hidebox[data-lnnblog-hidebox-state=&amp;quot;shrink&amp;quot;] &amp;gt; .lnnblog-hidebox-heading::before {&lt;br /&gt;
	transform: rotate(0);&lt;br /&gt;
	animation: lnnblog-hidebox-shrink 250ms;&lt;br /&gt;
}&lt;br /&gt;
@keyframes lnnblog-hidebox-expand {&lt;br /&gt;
	from { transform: rotate(0deg); }&lt;br /&gt;
	to { transform: rotate(90deg); }&lt;br /&gt;
}&lt;br /&gt;
@keyframes lnnblog-hidebox-shrink {&lt;br /&gt;
	from { transform: rotate(90deg); }&lt;br /&gt;
	to { transform: rotate(0deg); }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Template:Jk */&lt;br /&gt;
.lnnblog-jk {&lt;br /&gt;
	color: #808080;&lt;br /&gt;
	text-decoration: line-through;&lt;br /&gt;
	text-decoration-color: var(--color-base, black);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 信息模板 */&lt;br /&gt;
.lnnblog-infobox {&lt;br /&gt;
	background: rgba(128, 128, 128, 0.05);&lt;br /&gt;
	border: 1px solid rgba(128, 128, 128, 0.67);&lt;br /&gt;
	border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
@media (min-width: 720px) {&lt;br /&gt;
	.lnnblog-infobox {&lt;br /&gt;
		float: right;&lt;br /&gt;
		width: 300px;&lt;br /&gt;
		margin-left: 1.5rem;&lt;br /&gt;
		margin-bottom: 1.5rem;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-infobox-titlebar {&lt;br /&gt;
	background: rgba(228, 228, 228, 0.33);&lt;br /&gt;
	color: black;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-infobox th,&lt;br /&gt;
.lnnblog-infobox td {&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * 工具类&lt;br /&gt;
 */&lt;br /&gt;
/* 外边距和响应式浮动 */&lt;br /&gt;
.lnnblog-margin {&lt;br /&gt;
	margin-top: .5rem !important;&lt;br /&gt;
	margin-bottom: .5rem !important;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-margin-lg {&lt;br /&gt;
	margin-top: 1.5rem !important;&lt;br /&gt;
	margin-bottom: 1.5rem !important;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-margin-top-0 {&lt;br /&gt;
	margin-top: 0 !important;&lt;br /&gt;
}&lt;br /&gt;
@media (min-width: 720px) {&lt;br /&gt;
	.lnnblog-float {&lt;br /&gt;
		float: right;&lt;br /&gt;
		max-width: 300px;&lt;br /&gt;
		margin-left: .5rem !important;&lt;br /&gt;
	}&lt;br /&gt;
	.wikitable.lnnblog-float {&lt;br /&gt;
		margin-left: 1rem !important;&lt;br /&gt;
	}&lt;br /&gt;
	.lnnblog-margin-lg.lnnblog-float {&lt;br /&gt;
		margin-left: 1.5rem !important;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 清除浮动 */&lt;br /&gt;
.clear-both {&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
.clearfix::after {&lt;br /&gt;
	content: &amp;quot;&amp;quot;;&lt;br /&gt;
	display: block;&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 隐藏空元素hack */&lt;br /&gt;
.lnnblog-hide-empty:empty {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 首行缩进 */&lt;br /&gt;
p.lnnblog-first-line-indent:before,&lt;br /&gt;
.lnnblog-first-line-indent p:before {&lt;br /&gt;
	content: &#039;\3000\3000&#039;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 目录层数 Hack */&lt;br /&gt;
.lnnblog-toc-levels-1 .toclevel-1&amp;gt;ul,&lt;br /&gt;
.lnnblog-toc-levels-2 .toclevel-2&amp;gt;ul,&lt;br /&gt;
.lnnblog-toc-levels-3 .toclevel-3&amp;gt;ul,&lt;br /&gt;
.lnnblog-toc-levels-4 .toclevel-4&amp;gt;ul,&lt;br /&gt;
.lnnblog-toc-levels-5 .toclevel-5&amp;gt;ul {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=LNN_%E5%AF%86%E6%96%87_PUA_%E7%BC%96%E7%A0%81&amp;diff=2993</id>
		<title>LNN 密文 PUA 编码</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=LNN_%E5%AF%86%E6%96%87_PUA_%E7%BC%96%E7%A0%81&amp;diff=2993"/>
		<updated>2026-05-11T12:13:17Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​/* 区段列表 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;LNN 密文 PUA 编码&#039;&#039;&#039;是[[LNN|我]]为了便于用计算机处理 {{lelink|LNNCrypt}}、[[LNN 中华语字]]等自创密文而制定的一套编码方案，利用 Unicode 私人使用区（{{le|Private Use Area}}）为密文字符编码。&lt;br /&gt;
&lt;br /&gt;
[[Unifont LNNPUA]] 字体包含 LNN 密文 PUA 编码内所有的字符，但不包含正确排版 [[LNN 中华语字]] 所需的特殊排版特性。&lt;br /&gt;
&lt;br /&gt;
== 区段列表 ==&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
! 范围&lt;br /&gt;
! 名称&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E000..U+E03F}}&lt;br /&gt;
| [[LNNCrypt#LNN 密文 PUA 编码|LNNCrypt]]&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E040..U+E08F}}&lt;br /&gt;
| [[LNN 中华语字#LNN 密文 PUA 编码|LNN 中华语字]]&amp;lt;br&amp;gt;&#039;&#039;{{le|(LNNZHYZ)}}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E090..U+E16F}}&lt;br /&gt;
| [[LNN 中华语字韵母]]&amp;lt;br&amp;gt;&#039;&#039;{{le|(LNNZHYZ Finals)}}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E170..U+E1DF}}&lt;br /&gt;
| [[LNN 中华语字希顶扩展]]&amp;lt;br&amp;gt;&#039;&#039;{{le|(LNNZHYZ Shidinn Extensions)}}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E1E0..U+E1EF}}&lt;br /&gt;
| [[LNNCrypt 补充]]&amp;lt;br&amp;gt;&#039;&#039;{{le|(LNNCrypt Supplement)}}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E200..U+E22F}}&lt;br /&gt;
| [[LNNScribble#LNN 密文 PUA 编码|LNNScribble]]&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E230..U+E27F}}&lt;br /&gt;
| [[LNN 遗留密文]]&amp;lt;br&amp;gt;&#039;&#039;{{le|(LNN Legacy Ciphers)}}&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 历史 ==&lt;br /&gt;
2021 年 4 月 30 日，在 [[LNN的博客！]]中添加了 {{lelink|LNN&#039;s Diary}} 在线存档，其中的 [[LNNCrypt]] 密文利用 PUA 编码，通过一简单的自定义字体呈现。&lt;br /&gt;
&lt;br /&gt;
大约在 2022 年初，制作了一套名为 Zhunghua 的字体用于显示 [[LNN 中华语字]]，其使用的 PUA 码位排在 LNNCrypt 的区段之后。&lt;br /&gt;
&lt;br /&gt;
大约在 2023 年 5 月，为[[希顶语 LNN 中华语字方案]]和 [[LNNScribble]] 规定了代码点位。&lt;br /&gt;
&lt;br /&gt;
2023 年 9 月，正式将该编码系统命名为“LNN 密文 PUA 编码”，添加了 [[LNNCrypt 补充]]、[[LNN 遗留密文]]区段；由于[[希顶语 LNN 中华语字方案]]修订，从 [[LNN 中华语字希顶扩展]]区段删除了 2 个字符（详见[[LNN 中华语字希顶扩展#历史]]）。&lt;br /&gt;
&lt;br /&gt;
2026 年 5 月，由于[[希顶语 LNN 中华语字方案]]修订，向 [[LNN 中华语字希顶扩展]]区段添加了 2 个字符（详见[[LNN 中华语字希顶扩展#历史]]）。&lt;br /&gt;
&lt;br /&gt;
[[分类:概念]]{{DEFAULTSORT:{{SortPinyin|LNN 密{mi4}文{wen2} PUA 编{bian1}码{ma3} }}}}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=LNNScribble&amp;diff=2985</id>
		<title>LNNScribble</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=LNNScribble&amp;diff=2985"/>
		<updated>2026-05-11T12:11:28Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​/* 支持 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;LNNScribble&#039;&#039;&#039; 是[[LNN|我]]于 2023 年设计的一种密文，用于拼写现代标准汉语。&lt;br /&gt;
&lt;br /&gt;
== 对照表 ==&lt;br /&gt;
&lt;br /&gt;
[[File:lnnscribble.jpg|frame|upright|center]]&lt;br /&gt;
&lt;br /&gt;
专名的首字母（总是声母）需要大写，主体部分写得比通常略大一些即可。&lt;br /&gt;
&lt;br /&gt;
关于声母 j、q、x 参见[[「魔改拼音」]]。&lt;br /&gt;
&lt;br /&gt;
== LNN 密文 PUA 编码 ==&lt;br /&gt;
&lt;br /&gt;
LNNScribble 在 [[LNN 密文 PUA 编码]]中有一个同名区段，范围为 {{tt|U+E200..U+E22F}}。&lt;br /&gt;
&lt;br /&gt;
声调符号使用 {{unichar|0300|Combining Grave Accent|cwith=◌}}、{{unichar|0301|Combining Acute Accent|cwith=◌}}、{{unichar|0317|Combining Acute Accent Below|cwith=◌}}、{{unichar|0316|Combining Grave Accent Below|cwith=◌}}。&lt;br /&gt;
&lt;br /&gt;
=== 内容 ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable lnnblog-font-lnnpua&amp;quot;&lt;br /&gt;
|+ LNNScribble&lt;br /&gt;
! !! 0 !! 1 !! 2 !! 3 !! 4 !! 5 !! 6 !! 7 !! 8 !! 9 !! A !! B !! C !! D !! E !! F&lt;br /&gt;
|-&lt;br /&gt;
! U+E20_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E21_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E22_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|colspan=2 style=&amp;quot;background-color:rgba(128,128,128,.5)&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{hidebox|字符名称|2=&amp;lt;pre&amp;gt;&lt;br /&gt;
E200 LNNSCRIBBLE LETTER B&lt;br /&gt;
E201 LNNSCRIBBLE CAPITAL LETTER B&lt;br /&gt;
E202 LNNSCRIBBLE LETTER P&lt;br /&gt;
E203 LNNSCRIBBLE CAPITAL LETTER P&lt;br /&gt;
E204 LNNSCRIBBLE LETTER M&lt;br /&gt;
E205 LNNSCRIBBLE CAPITAL LETTER M&lt;br /&gt;
E206 LNNSCRIBBLE LETTER F&lt;br /&gt;
E207 LNNSCRIBBLE CAPITAL LETTER F&lt;br /&gt;
E208 LNNSCRIBBLE LETTER D&lt;br /&gt;
E209 LNNSCRIBBLE CAPITAL LETTER D&lt;br /&gt;
E20A LNNSCRIBBLE LETTER T&lt;br /&gt;
E20B LNNSCRIBBLE CAPITAL LETTER T&lt;br /&gt;
E20C LNNSCRIBBLE LETTER N&lt;br /&gt;
E20D LNNSCRIBBLE CAPITAL LETTER N&lt;br /&gt;
E20E LNNSCRIBBLE LETTER L&lt;br /&gt;
E20F LNNSCRIBBLE CAPITAL LETTER L&lt;br /&gt;
E210 LNNSCRIBBLE LETTER G&lt;br /&gt;
E211 LNNSCRIBBLE CAPITAL LETTER G&lt;br /&gt;
E212 LNNSCRIBBLE LETTER K&lt;br /&gt;
E213 LNNSCRIBBLE CAPITAL LETTER K&lt;br /&gt;
E214 LNNSCRIBBLE LETTER H&lt;br /&gt;
E215 LNNSCRIBBLE CAPITAL LETTER H&lt;br /&gt;
E216 LNNSCRIBBLE LETTER J&lt;br /&gt;
E217 LNNSCRIBBLE CAPITAL LETTER J&lt;br /&gt;
E218 LNNSCRIBBLE LETTER Q&lt;br /&gt;
E219 LNNSCRIBBLE CAPITAL LETTER Q&lt;br /&gt;
E21A LNNSCRIBBLE LETTER X&lt;br /&gt;
E21B LNNSCRIBBLE CAPITAL LETTER X&lt;br /&gt;
E21C LNNSCRIBBLE LETTER R&lt;br /&gt;
E21D LNNSCRIBBLE CAPITAL LETTER R&lt;br /&gt;
E21E LNNSCRIBBLE LETTER Z&lt;br /&gt;
E21F LNNSCRIBBLE CAPITAL LETTER Z&lt;br /&gt;
E220 LNNSCRIBBLE LETTER C&lt;br /&gt;
E221 LNNSCRIBBLE CAPITAL LETTER C&lt;br /&gt;
E222 LNNSCRIBBLE LETTER S&lt;br /&gt;
E223 LNNSCRIBBLE CAPITAL LETTER S&lt;br /&gt;
E224 LNNSCRIBBLE LETTER ZERO INITIAL&lt;br /&gt;
E225 LNNSCRIBBLE CAPITAL LETTER ZERO INITIAL&lt;br /&gt;
E226 LNNSCRIBBLE LETTER I&lt;br /&gt;
E227 LNNSCRIBBLE LETTER U&lt;br /&gt;
E228 LNNSCRIBBLE LETTER Y&lt;br /&gt;
E229 LNNSCRIBBLE LETTER A&lt;br /&gt;
E22A LNNSCRIBBLE LETTER E&lt;br /&gt;
E22B LNNSCRIBBLE MODIFIER LETTER N&lt;br /&gt;
E22C LNNSCRIBBLE MODIFIER LETTER NG&lt;br /&gt;
E22D LNNSCRIBBLE MODIFIER LETTER R&lt;br /&gt;
E22E &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E22F &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== 支持 ===&lt;br /&gt;
&lt;br /&gt;
[[Unifont LNNPUA]] 字体支持该区段内的字符。&lt;br /&gt;
&lt;br /&gt;
[[分类:概念]][[分类:LNN 密文 PUA 编码区段]]&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=LNNCrypt_%E8%A1%A5%E5%85%85&amp;diff=2983</id>
		<title>LNNCrypt 补充</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=LNNCrypt_%E8%A1%A5%E5%85%85&amp;diff=2983"/>
		<updated>2026-05-11T12:11:22Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​/* 支持 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;“&#039;&#039;&#039;LNNCrypt 补充&#039;&#039;&#039;”是 [[LNN 密文 PUA 编码]]中的一个区段，范围为 {{tt|U+E1E0..U+E1EF}}，目前包含 9 个不再使用的历史 [[LNNCrypt]] 字符。&lt;br /&gt;
&lt;br /&gt;
== 内容 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable lnnblog-font-lnnpua&amp;quot;&lt;br /&gt;
|+ LNNCrypt Supplement&lt;br /&gt;
! !! 0 !! 1 !! 2 !! 3 !! 4 !! 5 !! 6 !! 7 !! 8 !! 9 !! A !! B !! C !! D !! E !! F&lt;br /&gt;
|-&lt;br /&gt;
! U+E1E_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|colspan=7 style=&amp;quot;background-color:rgba(128,128,128,.5)&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{hidebox|字符名称|2=&amp;lt;pre&amp;gt;&lt;br /&gt;
E1E0 LNNCRYPT LETTER A WITH DOUBLE VERTICAL LINE&lt;br /&gt;
E1E1 LNNCRYPT LETTER O WITH DOUBLE VERTICAL LINE&lt;br /&gt;
E1E2 LNNCRYPT LETTER I WITH VERTICAL LINE&lt;br /&gt;
E1E3 LNNCRYPT LETTER I WITH DOUBLE VERTICAL LINE&lt;br /&gt;
E1E4 LNNCRYPT LETTER U WITH VERTICAL LINE&lt;br /&gt;
E1E5 LNNCRYPT LETTER U WITH DOUBLE VERTICAL LINE&lt;br /&gt;
E1E6 LNNCRYPT LETTER EI WITH SINGLE VERTICAL LINE&lt;br /&gt;
E1E7 LNNCRYPT LETTER FOLDED L&lt;br /&gt;
E1E8 LNNCRYPT LETTER S WITH DOUBLE VERTICAL LINE&lt;br /&gt;
E1E9 &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E1EA &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E1EB &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E1EC &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E1ED &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E1EE &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E1EF &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== 支持 ==&lt;br /&gt;
&lt;br /&gt;
[[Unifont LNNPUA]] 字体支持该区段内的字符。&lt;br /&gt;
&lt;br /&gt;
== 参见 ==&lt;br /&gt;
* [[LNNCrypt]]&lt;br /&gt;
&lt;br /&gt;
[[分类:LNN 密文 PUA 编码区段]]&lt;br /&gt;
{{DEFAULTSORT:{{SortPinyin|LNNCrypt 补{bu3}充{chong1} }}}}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=LNN_%E4%B8%AD%E5%8D%8E%E8%AF%AD%E5%AD%97%E9%9F%B5%E6%AF%8D&amp;diff=2991</id>
		<title>LNN 中华语字韵母</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=LNN_%E4%B8%AD%E5%8D%8E%E8%AF%AD%E5%AD%97%E9%9F%B5%E6%AF%8D&amp;diff=2991"/>
		<updated>2026-05-11T12:10:53Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​/* 支持 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;“&#039;&#039;&#039;LNN 中华语字韵母&#039;&#039;&#039;”是 [[LNN 密文 PUA 编码]]中的一个区段，范围为 {{tt|U+E090..U+E16F}}。&lt;br /&gt;
&lt;br /&gt;
编码[[LNN 中华语字/希顶语方案|希顶语 LNN 中华语字方案]]文本除了需要用到“[[LNN 中华语字#LNN 密文 PUA 编码|LNN 中华语字]]”和“[[LNN 中华语字希顶扩展]]”区段中的字符外，还需要用到本区段中的多半字符；整个区段中的所有字符也可代替“[[LNN 中华语字#LNN 密文 PUA 编码|LNN 中华语字]]”区段中 {{unichar|E070|LNNZHYZ Syllable Tail Tone One|cclass=lnnblog-font-qaaz}} 至 {{unichar|E07F|LNNZHYZ Coda Sign R|cclass=lnnblog-font-qaaz}} 这 16 个字符的组合来直接编码单个完整的普通话韵母。&lt;br /&gt;
&lt;br /&gt;
== 内容 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable lnnblog-font-lnnpua&amp;quot;&lt;br /&gt;
|+ LNNZHYZ Finals&lt;br /&gt;
! !! 0 !! 1 !! 2 !! 3 !! 4 !! 5 !! 6 !! 7 !! 8 !! 9 !! A !! B !! C !! D !! E !! F&lt;br /&gt;
|-&lt;br /&gt;
! U+E09_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E0A_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E0B_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E0C_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E0D_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E0E_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E0F_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E10_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E11_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E12_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E13_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E14_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E15_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E16_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|colspan=4 style=&amp;quot;background-color:rgba(128,128,128,.5)&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{hidebox|字符名称|2=&amp;lt;pre&amp;gt;&lt;br /&gt;
E090 LNNZHYZ FINAL ZERO FINAL&lt;br /&gt;
E091 LNNZHYZ FINAL FLIPPED ZERO FINAL&lt;br /&gt;
E092 LNNZHYZ FINAL FLIPPED REVERSED ZERO FINAL&lt;br /&gt;
E093 LNNZHYZ FINAL REVERSED ZERO FINAL&lt;br /&gt;
E094 LNNZHYZ FINAL E&lt;br /&gt;
E095 LNNZHYZ FINAL FLIPPED E&lt;br /&gt;
E096 LNNZHYZ FINAL FLIPPED REVERSED E&lt;br /&gt;
E097 LNNZHYZ FINAL REVERSED E&lt;br /&gt;
E098 LNNZHYZ FINAL EI&lt;br /&gt;
E099 LNNZHYZ FINAL FLIPPED EI&lt;br /&gt;
E09A LNNZHYZ FINAL FLIPPED REVERSED EI&lt;br /&gt;
E09B LNNZHYZ FINAL REVERSED EI&lt;br /&gt;
E09C LNNZHYZ FINAL EU&lt;br /&gt;
E09D LNNZHYZ FINAL FLIPPED EU&lt;br /&gt;
E09E LNNZHYZ FINAL FLIPPED REVERSED EU&lt;br /&gt;
E09F LNNZHYZ FINAL REVERSED EU&lt;br /&gt;
E0A0 LNNZHYZ FINAL EN&lt;br /&gt;
E0A1 LNNZHYZ FINAL FLIPPED EN&lt;br /&gt;
E0A2 LNNZHYZ FINAL FLIPPED REVERSED EN&lt;br /&gt;
E0A3 LNNZHYZ FINAL REVERSED EN&lt;br /&gt;
E0A4 LNNZHYZ FINAL ENG&lt;br /&gt;
E0A5 LNNZHYZ FINAL FLIPPED ENG&lt;br /&gt;
E0A6 LNNZHYZ FINAL FLIPPED REVERSED ENG&lt;br /&gt;
E0A7 LNNZHYZ FINAL REVERSED ENG&lt;br /&gt;
E0A8 LNNZHYZ FINAL ER&lt;br /&gt;
E0A9 LNNZHYZ FINAL FLIPPED ER&lt;br /&gt;
E0AA LNNZHYZ FINAL FLIPPED REVERSED ER&lt;br /&gt;
E0AB LNNZHYZ FINAL REVERSED ER&lt;br /&gt;
E0AC LNNZHYZ FINAL A&lt;br /&gt;
E0AD LNNZHYZ FINAL FLIPPED A&lt;br /&gt;
E0AE LNNZHYZ FINAL FLIPPED REVERSED A&lt;br /&gt;
E0AF LNNZHYZ FINAL REVERSED A&lt;br /&gt;
E0B0 LNNZHYZ FINAL AI&lt;br /&gt;
E0B1 LNNZHYZ FINAL FLIPPED AI&lt;br /&gt;
E0B2 LNNZHYZ FINAL FLIPPED REVERSED AI&lt;br /&gt;
E0B3 LNNZHYZ FINAL REVERSED AI&lt;br /&gt;
E0B4 LNNZHYZ FINAL AU&lt;br /&gt;
E0B5 LNNZHYZ FINAL FLIPPED AU&lt;br /&gt;
E0B6 LNNZHYZ FINAL FLIPPED REVERSED AU&lt;br /&gt;
E0B7 LNNZHYZ FINAL REVERSED AU&lt;br /&gt;
E0B8 LNNZHYZ FINAL AN&lt;br /&gt;
E0B9 LNNZHYZ FINAL FLIPPED AN&lt;br /&gt;
E0BA LNNZHYZ FINAL FLIPPED REVERSED AN&lt;br /&gt;
E0BB LNNZHYZ FINAL REVERSED AN&lt;br /&gt;
E0BC LNNZHYZ FINAL ANG&lt;br /&gt;
E0BD LNNZHYZ FINAL FLIPPED ANG&lt;br /&gt;
E0BE LNNZHYZ FINAL FLIPPED REVERSED ANG&lt;br /&gt;
E0BF LNNZHYZ FINAL REVERSED ANG&lt;br /&gt;
E0C0 LNNZHYZ FINAL AR&lt;br /&gt;
E0C1 LNNZHYZ FINAL FLIPPED AR&lt;br /&gt;
E0C2 LNNZHYZ FINAL FLIPPED REVERSED AR&lt;br /&gt;
E0C3 LNNZHYZ FINAL REVERSED AR&lt;br /&gt;
E0C4 LNNZHYZ FINAL I&lt;br /&gt;
E0C5 LNNZHYZ FINAL FLIPPED I&lt;br /&gt;
E0C6 LNNZHYZ FINAL FLIPPED REVERSED I&lt;br /&gt;
E0C7 LNNZHYZ FINAL REVERSED I&lt;br /&gt;
E0C8 LNNZHYZ FINAL IE&lt;br /&gt;
E0C9 LNNZHYZ FINAL FLIPPED IE&lt;br /&gt;
E0CA LNNZHYZ FINAL FLIPPED REVERSED IE&lt;br /&gt;
E0CB LNNZHYZ FINAL REVERSED IE&lt;br /&gt;
E0CC LNNZHYZ FINAL IEI&lt;br /&gt;
E0CD LNNZHYZ FINAL FLIPPED IEI&lt;br /&gt;
E0CE LNNZHYZ FINAL FLIPPED REVERSED IEI&lt;br /&gt;
E0CF LNNZHYZ FINAL REVERSED IEI&lt;br /&gt;
E0D0 LNNZHYZ FINAL IEU&lt;br /&gt;
E0D1 LNNZHYZ FINAL FLIPPED IEU&lt;br /&gt;
E0D2 LNNZHYZ FINAL FLIPPED REVERSED IEU&lt;br /&gt;
E0D3 LNNZHYZ FINAL REVERSED IEU&lt;br /&gt;
E0D4 LNNZHYZ FINAL IEN&lt;br /&gt;
E0D5 LNNZHYZ FINAL FLIPPED IEN&lt;br /&gt;
E0D6 LNNZHYZ FINAL FLIPPED REVERSED IEN&lt;br /&gt;
E0D7 LNNZHYZ FINAL REVERSED IEN&lt;br /&gt;
E0D8 LNNZHYZ FINAL IENG&lt;br /&gt;
E0D9 LNNZHYZ FINAL FLIPPED IENG&lt;br /&gt;
E0DA LNNZHYZ FINAL FLIPPED REVERSED IENG&lt;br /&gt;
E0DB LNNZHYZ FINAL REVERSED IENG&lt;br /&gt;
E0DC LNNZHYZ FINAL IER&lt;br /&gt;
E0DD LNNZHYZ FINAL FLIPPED IER&lt;br /&gt;
E0DE LNNZHYZ FINAL FLIPPED REVERSED IER&lt;br /&gt;
E0DF LNNZHYZ FINAL REVERSED IER&lt;br /&gt;
E0E0 LNNZHYZ FINAL IA&lt;br /&gt;
E0E1 LNNZHYZ FINAL FLIPPED IA&lt;br /&gt;
E0E2 LNNZHYZ FINAL FLIPPED REVERSED IA&lt;br /&gt;
E0E3 LNNZHYZ FINAL REVERSED IA&lt;br /&gt;
E0E4 LNNZHYZ FINAL IAI&lt;br /&gt;
E0E5 LNNZHYZ FINAL FLIPPED IAI&lt;br /&gt;
E0E6 LNNZHYZ FINAL FLIPPED REVERSED IAI&lt;br /&gt;
E0E7 LNNZHYZ FINAL REVERSED IAI&lt;br /&gt;
E0E8 LNNZHYZ FINAL IAU&lt;br /&gt;
E0E9 LNNZHYZ FINAL FLIPPED IAU&lt;br /&gt;
E0EA LNNZHYZ FINAL FLIPPED REVERSED IAU&lt;br /&gt;
E0EB LNNZHYZ FINAL REVERSED IAU&lt;br /&gt;
E0EC LNNZHYZ FINAL IAN&lt;br /&gt;
E0ED LNNZHYZ FINAL FLIPPED IAN&lt;br /&gt;
E0EE LNNZHYZ FINAL FLIPPED REVERSED IAN&lt;br /&gt;
E0EF LNNZHYZ FINAL REVERSED IAN&lt;br /&gt;
E0F0 LNNZHYZ FINAL IANG&lt;br /&gt;
E0F1 LNNZHYZ FINAL FLIPPED IANG&lt;br /&gt;
E0F2 LNNZHYZ FINAL FLIPPED REVERSED IANG&lt;br /&gt;
E0F3 LNNZHYZ FINAL REVERSED IANG&lt;br /&gt;
E0F4 LNNZHYZ FINAL IAR&lt;br /&gt;
E0F5 LNNZHYZ FINAL FLIPPED IAR&lt;br /&gt;
E0F6 LNNZHYZ FINAL FLIPPED REVERSED IAR&lt;br /&gt;
E0F7 LNNZHYZ FINAL REVERSED IAR&lt;br /&gt;
E0F8 LNNZHYZ FINAL U&lt;br /&gt;
E0F9 LNNZHYZ FINAL FLIPPED U&lt;br /&gt;
E0FA LNNZHYZ FINAL FLIPPED REVERSED U&lt;br /&gt;
E0FB LNNZHYZ FINAL REVERSED U&lt;br /&gt;
E0FC LNNZHYZ FINAL UE&lt;br /&gt;
E0FD LNNZHYZ FINAL FLIPPED UE&lt;br /&gt;
E0FE LNNZHYZ FINAL FLIPPED REVERSED UE&lt;br /&gt;
E0FF LNNZHYZ FINAL REVERSED UE&lt;br /&gt;
E100 LNNZHYZ FINAL UEI&lt;br /&gt;
E101 LNNZHYZ FINAL FLIPPED UEI&lt;br /&gt;
E102 LNNZHYZ FINAL FLIPPED REVERSED UEI&lt;br /&gt;
E103 LNNZHYZ FINAL REVERSED UEI&lt;br /&gt;
E104 LNNZHYZ FINAL UEU&lt;br /&gt;
E105 LNNZHYZ FINAL FLIPPED UEU&lt;br /&gt;
E106 LNNZHYZ FINAL FLIPPED REVERSED UEU&lt;br /&gt;
E107 LNNZHYZ FINAL REVERSED UEU&lt;br /&gt;
E108 LNNZHYZ FINAL UEN&lt;br /&gt;
E109 LNNZHYZ FINAL FLIPPED UEN&lt;br /&gt;
E10A LNNZHYZ FINAL FLIPPED REVERSED UEN&lt;br /&gt;
E10B LNNZHYZ FINAL REVERSED UEN&lt;br /&gt;
E10C LNNZHYZ FINAL UENG&lt;br /&gt;
E10D LNNZHYZ FINAL FLIPPED UENG&lt;br /&gt;
E10E LNNZHYZ FINAL FLIPPED REVERSED UENG&lt;br /&gt;
E10F LNNZHYZ FINAL REVERSED UENG&lt;br /&gt;
E110 LNNZHYZ FINAL UER&lt;br /&gt;
E111 LNNZHYZ FINAL FLIPPED UER&lt;br /&gt;
E112 LNNZHYZ FINAL FLIPPED REVERSED UER&lt;br /&gt;
E113 LNNZHYZ FINAL REVERSED UER&lt;br /&gt;
E114 LNNZHYZ FINAL UA&lt;br /&gt;
E115 LNNZHYZ FINAL FLIPPED UA&lt;br /&gt;
E116 LNNZHYZ FINAL FLIPPED REVERSED UA&lt;br /&gt;
E117 LNNZHYZ FINAL REVERSED UA&lt;br /&gt;
E118 LNNZHYZ FINAL UAI&lt;br /&gt;
E119 LNNZHYZ FINAL FLIPPED UAI&lt;br /&gt;
E11A LNNZHYZ FINAL FLIPPED REVERSED UAI&lt;br /&gt;
E11B LNNZHYZ FINAL REVERSED UAI&lt;br /&gt;
E11C LNNZHYZ FINAL UAU&lt;br /&gt;
E11D LNNZHYZ FINAL FLIPPED UAU&lt;br /&gt;
E11E LNNZHYZ FINAL FLIPPED REVERSED UAU&lt;br /&gt;
E11F LNNZHYZ FINAL REVERSED UAU&lt;br /&gt;
E120 LNNZHYZ FINAL UAN&lt;br /&gt;
E121 LNNZHYZ FINAL FLIPPED UAN&lt;br /&gt;
E122 LNNZHYZ FINAL FLIPPED REVERSED UAN&lt;br /&gt;
E123 LNNZHYZ FINAL REVERSED UAN&lt;br /&gt;
E124 LNNZHYZ FINAL UANG&lt;br /&gt;
E125 LNNZHYZ FINAL FLIPPED UANG&lt;br /&gt;
E126 LNNZHYZ FINAL FLIPPED REVERSED UANG&lt;br /&gt;
E127 LNNZHYZ FINAL REVERSED UANG&lt;br /&gt;
E128 LNNZHYZ FINAL UAR&lt;br /&gt;
E129 LNNZHYZ FINAL FLIPPED UAR&lt;br /&gt;
E12A LNNZHYZ FINAL FLIPPED REVERSED UAR&lt;br /&gt;
E12B LNNZHYZ FINAL REVERSED UAR&lt;br /&gt;
E12C LNNZHYZ FINAL Y&lt;br /&gt;
E12D LNNZHYZ FINAL FLIPPED Y&lt;br /&gt;
E12E LNNZHYZ FINAL FLIPPED REVERSED Y&lt;br /&gt;
E12F LNNZHYZ FINAL REVERSED Y&lt;br /&gt;
E130 LNNZHYZ FINAL YE&lt;br /&gt;
E131 LNNZHYZ FINAL FLIPPED YE&lt;br /&gt;
E132 LNNZHYZ FINAL FLIPPED REVERSED YE&lt;br /&gt;
E133 LNNZHYZ FINAL REVERSED YE&lt;br /&gt;
E134 LNNZHYZ FINAL YEI&lt;br /&gt;
E135 LNNZHYZ FINAL FLIPPED YEI&lt;br /&gt;
E136 LNNZHYZ FINAL FLIPPED REVERSED YEI&lt;br /&gt;
E137 LNNZHYZ FINAL REVERSED YEI&lt;br /&gt;
E138 LNNZHYZ FINAL YEU&lt;br /&gt;
E139 LNNZHYZ FINAL FLIPPED YEU&lt;br /&gt;
E13A LNNZHYZ FINAL FLIPPED REVERSED YEU&lt;br /&gt;
E13B LNNZHYZ FINAL REVERSED YEU&lt;br /&gt;
E13C LNNZHYZ FINAL YEN&lt;br /&gt;
E13D LNNZHYZ FINAL FLIPPED YEN&lt;br /&gt;
E13E LNNZHYZ FINAL FLIPPED REVERSED YEN&lt;br /&gt;
E13F LNNZHYZ FINAL REVERSED YEN&lt;br /&gt;
E140 LNNZHYZ FINAL YENG&lt;br /&gt;
E141 LNNZHYZ FINAL FLIPPED YENG&lt;br /&gt;
E142 LNNZHYZ FINAL FLIPPED REVERSED YENG&lt;br /&gt;
E143 LNNZHYZ FINAL REVERSED YENG&lt;br /&gt;
E144 LNNZHYZ FINAL YER&lt;br /&gt;
E145 LNNZHYZ FINAL FLIPPED YER&lt;br /&gt;
E146 LNNZHYZ FINAL FLIPPED REVERSED YER&lt;br /&gt;
E147 LNNZHYZ FINAL REVERSED YER&lt;br /&gt;
E148 LNNZHYZ FINAL YA&lt;br /&gt;
E149 LNNZHYZ FINAL FLIPPED YA&lt;br /&gt;
E14A LNNZHYZ FINAL FLIPPED REVERSED YA&lt;br /&gt;
E14B LNNZHYZ FINAL REVERSED YA&lt;br /&gt;
E14C LNNZHYZ FINAL YAI&lt;br /&gt;
E14D LNNZHYZ FINAL FLIPPED YAI&lt;br /&gt;
E14E LNNZHYZ FINAL FLIPPED REVERSED YAI&lt;br /&gt;
E14F LNNZHYZ FINAL REVERSED YAI&lt;br /&gt;
E150 LNNZHYZ FINAL YAU&lt;br /&gt;
E151 LNNZHYZ FINAL FLIPPED YAU&lt;br /&gt;
E152 LNNZHYZ FINAL FLIPPED REVERSED YAU&lt;br /&gt;
E153 LNNZHYZ FINAL REVERSED YAU&lt;br /&gt;
E154 LNNZHYZ FINAL YAN&lt;br /&gt;
E155 LNNZHYZ FINAL FLIPPED YAN&lt;br /&gt;
E156 LNNZHYZ FINAL FLIPPED REVERSED YAN&lt;br /&gt;
E157 LNNZHYZ FINAL REVERSED YAN&lt;br /&gt;
E158 LNNZHYZ FINAL YANG&lt;br /&gt;
E159 LNNZHYZ FINAL FLIPPED YANG&lt;br /&gt;
E15A LNNZHYZ FINAL FLIPPED REVERSED YANG&lt;br /&gt;
E15B LNNZHYZ FINAL REVERSED YANG&lt;br /&gt;
E15C LNNZHYZ FINAL YAR&lt;br /&gt;
E15D LNNZHYZ FINAL FLIPPED YAR&lt;br /&gt;
E15E LNNZHYZ FINAL FLIPPED REVERSED YAR&lt;br /&gt;
E15F LNNZHYZ FINAL REVERSED YAR&lt;br /&gt;
E160 LNNZHYZ FINAL O&lt;br /&gt;
E161 LNNZHYZ FINAL FLIPPED O&lt;br /&gt;
E162 LNNZHYZ FINAL FLIPPED REVERSED O&lt;br /&gt;
E163 LNNZHYZ FINAL REVERSED O&lt;br /&gt;
E164 LNNZHYZ FINAL ONG&lt;br /&gt;
E165 LNNZHYZ FINAL FLIPPED ONG&lt;br /&gt;
E166 LNNZHYZ FINAL FLIPPED REVERSED ONG&lt;br /&gt;
E167 LNNZHYZ FINAL REVERSED ONG&lt;br /&gt;
E168 LNNZHYZ FINAL EH&lt;br /&gt;
E169 LNNZHYZ FINAL FLIPPED EH&lt;br /&gt;
E16A LNNZHYZ FINAL FLIPPED REVERSED EH&lt;br /&gt;
E16B LNNZHYZ FINAL REVERSED EH&lt;br /&gt;
E16C &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E16D &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E16E &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E16F &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== 支持 ==&lt;br /&gt;
&lt;br /&gt;
[https://www.npmjs.com/package/@dgck81lnn/lnnzhyz2svg lnnzhyz2svg] 库支持该区段内的字符；见 [[LNN 中华语字#支持]]。&lt;br /&gt;
&lt;br /&gt;
[[Unifont LNNPUA]] 字体仅包含 LNN 中华语字相关区段内字符的字形，不支持其所需的排版特性。&lt;br /&gt;
&lt;br /&gt;
== 参见 ==&lt;br /&gt;
* [[LNN 中华语字]]&lt;br /&gt;
* [[LNN 中华语字希顶扩展]]&lt;br /&gt;
* [[希顶语 LNN 中华语字方案]]&lt;br /&gt;
&lt;br /&gt;
[[分类:LNN 密文 PUA 编码区段]]&lt;br /&gt;
{{DEFAULTSORT:{{SortPinyin|LNN 中{zhong1}华{hua2}语{yu3}字{zi4}韵{yun4}母{mu3} }}}}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=LNNCrypt&amp;diff=2981</id>
		<title>LNNCrypt</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=LNNCrypt&amp;diff=2981"/>
		<updated>2026-05-11T12:02:56Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;{{le|LNNCrypt}}&#039;&#039;&#039; 是[[LNN|我]]大致于初中一年级时设计的一种密文，主要用于拼写普通话，也可以用来表示英文。&lt;br /&gt;
&lt;br /&gt;
== 写法 ==&lt;br /&gt;
&lt;br /&gt;
=== 普通话 ===&lt;br /&gt;
&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
|+ 声母表&lt;br /&gt;
|-lang=und-Qaac&lt;br /&gt;
! &amp;amp;#xe020; !! &amp;amp;#xe021; !! &amp;amp;#xe022; !! &amp;amp;#xe023; !! &amp;amp;#xe036;&lt;br /&gt;
|-&lt;br /&gt;
| b || p || m || f || (v)&lt;br /&gt;
|-lang=und-Qaac&lt;br /&gt;
! &amp;amp;#xe024; !! &amp;amp;#xe025; !! &amp;amp;#xe026; !! &amp;amp;#xe027; !!&lt;br /&gt;
|-&lt;br /&gt;
| d || t || n || l ||&lt;br /&gt;
|-lang=und-Qaac&lt;br /&gt;
! &amp;amp;#xe028; !! &amp;amp;#xe029; !! &amp;amp;#xe02a; !! &amp;amp;#xe02b; !!&lt;br /&gt;
|-&lt;br /&gt;
| g || k || (ng) || h ||&lt;br /&gt;
|-lang=und-Qaac&lt;br /&gt;
! &amp;amp;#xe02c; !! &amp;amp;#xe02d; !! !! &amp;amp;#xe02f; !!&lt;br /&gt;
|-&lt;br /&gt;
| j || q || || x ||&lt;br /&gt;
|-lang=und-Qaac&lt;br /&gt;
! &amp;amp;#xe030; !! &amp;amp;#xe031; !! !! &amp;amp;#xe033; !! &amp;amp;#xe032;&lt;br /&gt;
|-&lt;br /&gt;
| zh || ch || || sh || r&lt;br /&gt;
|-lang=und-Qaac&lt;br /&gt;
! &amp;amp;#xe034; !! &amp;amp;#xe035; !! !! &amp;amp;#xe037; !!&lt;br /&gt;
|-&lt;br /&gt;
| z || c || || s ||&lt;br /&gt;
|-lang=und-Qaac&lt;br /&gt;
!colspan=5| &amp;amp;#xe02e;&lt;br /&gt;
|-&lt;br /&gt;
|colspan=5| 零声母/隔音符号&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
以 y、w 开头的音节，视为没有声母，以 i/u/ü 开头。没有声母的音节前面一般要加上零声母符号。&lt;br /&gt;
&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
|+ 韵母成分表&lt;br /&gt;
|-lang=und-Qaac&lt;br /&gt;
! &amp;amp;#xe010; !! &amp;amp;#xe011; !! &amp;amp;#xe012; !! &amp;amp;#xe013; !! &amp;amp;#xe014; !! &amp;amp;#xe015;&lt;br /&gt;
|-&lt;br /&gt;
| a || o || e || i || u || ü&lt;br /&gt;
|-lang=und-Qaac&lt;br /&gt;
! &amp;amp;#xe016; !! &amp;amp;#xe017; !! &amp;amp;#xe018; !! &amp;amp;#xe019; !! &amp;amp;#xe01a; !!&lt;br /&gt;
|-&lt;br /&gt;
| ê || ai || ei || ao || ou ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
韵母中的鼻音用“声母表”中的“n”和“(ng)”表示；韵母 ie、üe 中的 e 要按“ê”的写法；音节 zhi、chi、shi、ri、zi、ci、si 中的 i 不写（声调标在声母上）。&lt;br /&gt;
&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
|+ 声调&lt;br /&gt;
|-lang=und-Qaac&lt;br /&gt;
! &amp;amp;#x3000;&amp;amp;#xe01b; !! &amp;amp;#x3000;&amp;amp;#xe01c; !! &amp;amp;#x3000;&amp;amp;#xe01d; !! &amp;amp;#x3000;&amp;amp;#xe01e; !! &amp;amp;#x3000;&amp;amp;#xe01f;&lt;br /&gt;
|-&lt;br /&gt;
| 轻声 || 阴平 || 阳平 || 上声 || 去声&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 英文 ===&lt;br /&gt;
&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
|+ 字母&lt;br /&gt;
|-lang=und-Qaac&lt;br /&gt;
! &amp;amp;#xe010; !! &amp;amp;#xe020; !! &amp;amp;#xe035;&lt;br /&gt;
! &amp;amp;#xe024; !! &amp;amp;#xe012; !! &amp;amp;#xe023;&lt;br /&gt;
! &amp;amp;#xe028; !! &amp;amp;#xe02b; !! &amp;amp;#xe013;&lt;br /&gt;
|-&lt;br /&gt;
| a || b || c || d || e || f || g || h || i&lt;br /&gt;
|-lang=und-Qaac&lt;br /&gt;
! &amp;amp;#xe02c; !! &amp;amp;#xe029; !! &amp;amp;#xe027;&lt;br /&gt;
! &amp;amp;#xe022; !! &amp;amp;#xe026; !! &amp;amp;#xe011;&lt;br /&gt;
! &amp;amp;#xe021; !! &amp;amp;#xe02d; !! &amp;amp;#xe032;&lt;br /&gt;
|-&lt;br /&gt;
| j || k || l || m || n || o || p || q || r&lt;br /&gt;
|-lang=und-Qaac&lt;br /&gt;
! &amp;amp;#xe037; !! &amp;amp;#xe025; !! &amp;amp;#xe014;&lt;br /&gt;
! &amp;amp;#xe036; !! &amp;amp;#xe02e; !! &amp;amp;#xe02f;&lt;br /&gt;
! &amp;amp;#xe015; !! &amp;amp;#xe034; !!&lt;br /&gt;
|-&lt;br /&gt;
| s || t || u || v || w || x || y || z ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
|+ 简写符号&lt;br /&gt;
|-lang=und-Qaac&lt;br /&gt;
! &amp;amp;#xe038; !! &amp;amp;#xe039; !! &amp;amp;#xe03a;&lt;br /&gt;
! &amp;amp;#xe03b; !! &amp;amp;#xe03c;&lt;br /&gt;
|-&lt;br /&gt;
| the || of || on || in || to&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 数字 ===&lt;br /&gt;
&lt;br /&gt;
数字的写法基于二进制，可以用来表示十六进制数，不过一般还是采用十进制。&lt;br /&gt;
&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
|-lang=und-Qaac&lt;br /&gt;
! &amp;amp;#xe000; !! &amp;amp;#xe001; !! &amp;amp;#xe002; !! &amp;amp;#xe003; !! &amp;amp;#xe004; !! &amp;amp;#xe005; !! &amp;amp;#xe006; !! &amp;amp;#xe007;&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 2 || 3 || 4 || 5 || 6 || 7&lt;br /&gt;
|-lang=und-Qaac&lt;br /&gt;
! &amp;amp;#xe008; !! &amp;amp;#xe009; !! &amp;amp;#xe00a; !! &amp;amp;#xe00b; !! &amp;amp;#xe00c; !! &amp;amp;#xe00d; !! &amp;amp;#xe00e; !! &amp;amp;#xe00f;&lt;br /&gt;
|-&lt;br /&gt;
| 8 || 9 || A || B || C || D || E || F&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 历史 ==&lt;br /&gt;
[[File:LNNCrypt old chart.jpg|frame|center|一张过时的 LNNCrypt 对照表。]]&lt;br /&gt;
&lt;br /&gt;
LNNCrypt 的写法曾经有过若干改变，设计之初的写法与当前写法的不同之处主要有：声母 l 写成一个从中间断开成上下两半的叉；零声母并非使用现在的竖线写法，而是用字母 ng 表示；zhi、chi、shi 等音节的空韵有一个单独的字母用来表示；英文字母 w、y 写成 u、i 加双竖线。经过了一定时间的打磨，LNNCrypt 的写法才演变成现在的样子。&lt;br /&gt;
{{clear}}&lt;br /&gt;
&lt;br /&gt;
== LNN 密文 PUA 编码 ==&lt;br /&gt;
&lt;br /&gt;
LNNCrypt 在 [[LNN 密文 PUA 编码]]中有一个同名区段，范围为 {{tt|U+E000..U+E03F}}。&lt;br /&gt;
&lt;br /&gt;
另有 [[LNNCrypt 补充]] 区段，编码了一些过时的 LNNCrypt 字符。&lt;br /&gt;
&lt;br /&gt;
=== 内容 ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable lnnblog-font-qaac&amp;quot;&lt;br /&gt;
|+ LNNCrypt&lt;br /&gt;
! !! 0 !! 1 !! 2 !! 3 !! 4 !! 5 !! 6 !! 7 !! 8 !! 9 !! A !! B !! C !! D !! E !! F&lt;br /&gt;
|-&lt;br /&gt;
! U+E00_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E01_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E02_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E03_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|colspan=3 style=&amp;quot;background-color:rgba(128,128,128,.5)&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{hidebox|字符名称|2=&amp;lt;pre&amp;gt;&lt;br /&gt;
E000 LNNCRYPT DIGIT ZERO&lt;br /&gt;
E001 LNNCRYPT DIGIT ONE&lt;br /&gt;
E002 LNNCRYPT DIGIT TWO&lt;br /&gt;
E003 LNNCRYPT DIGIT THREE&lt;br /&gt;
E004 LNNCRYPT DIGIT FOUR&lt;br /&gt;
E005 LNNCRYPT DIGIT FIVE&lt;br /&gt;
E006 LNNCRYPT DIGIT SIX&lt;br /&gt;
E007 LNNCRYPT DIGIT SEVEN&lt;br /&gt;
E008 LNNCRYPT DIGIT EIGHT&lt;br /&gt;
E009 LNNCRYPT DIGIT NINE&lt;br /&gt;
E00A LNNCRYPT DIGIT TEN&lt;br /&gt;
E00B LNNCRYPT DIGIT ELEVEN&lt;br /&gt;
E00C LNNCRYPT DIGIT TWELVE&lt;br /&gt;
E00D LNNCRYPT DIGIT THIRTEEN&lt;br /&gt;
E00E LNNCRYPT DIGIT FOURTEEN&lt;br /&gt;
E00F LNNCRYPT DIGIT FIFTEEN&lt;br /&gt;
E010 LNNCRYPT LETTER A&lt;br /&gt;
E011 LNNCRYPT LETTER O&lt;br /&gt;
E012 LNNCRYPT LETTER E&lt;br /&gt;
E013 LNNCRYPT LETTER I&lt;br /&gt;
E014 LNNCRYPT LETTER U&lt;br /&gt;
E015 LNNCRYPT LETTER Y&lt;br /&gt;
E016 LNNCRYPT LETTER EH&lt;br /&gt;
E017 LNNCRYPT LETTER AI&lt;br /&gt;
E018 LNNCRYPT LETTER EI&lt;br /&gt;
E019 LNNCRYPT LETTER AO&lt;br /&gt;
E01A LNNCRYPT LETTER OU&lt;br /&gt;
E01B LNNCRYPT COMBINING TONE ZERO&lt;br /&gt;
E01C LNNCRYPT COMBINING TONE ONE&lt;br /&gt;
E01D LNNCRYPT COMBINING TONE TWO&lt;br /&gt;
E01E LNNCRYPT COMBINING TONE THREE&lt;br /&gt;
E01F LNNCRYPT COMBINING TONE FOUR&lt;br /&gt;
E020 LNNCRYPT LETTER B&lt;br /&gt;
E021 LNNCRYPT LETTER P&lt;br /&gt;
E022 LNNCRYPT LETTER M&lt;br /&gt;
E023 LNNCRYPT LETTER F&lt;br /&gt;
E024 LNNCRYPT LETTER D&lt;br /&gt;
E025 LNNCRYPT LETTER T&lt;br /&gt;
E026 LNNCRYPT LETTER N&lt;br /&gt;
E027 LNNCRYPT LETTER L&lt;br /&gt;
E028 LNNCRYPT LETTER G&lt;br /&gt;
E029 LNNCRYPT LETTER K&lt;br /&gt;
E02A LNNCRYPT LETTER NG&lt;br /&gt;
E02B LNNCRYPT LETTER H&lt;br /&gt;
E02C LNNCRYPT LETTER J&lt;br /&gt;
E02D LNNCRYPT LETTER Q&lt;br /&gt;
E02E LNNCRYPT LETTER W&lt;br /&gt;
E02F LNNCRYPT LETTER X&lt;br /&gt;
E030 LNNCRYPT LETTER ZH&lt;br /&gt;
E031 LNNCRYPT LETTER CH&lt;br /&gt;
E032 LNNCRYPT LETTER R&lt;br /&gt;
E033 LNNCRYPT LETTER SH&lt;br /&gt;
E034 LNNCRYPT LETTER Z&lt;br /&gt;
E035 LNNCRYPT LETTER C&lt;br /&gt;
E036 LNNCRYPT LETTER V&lt;br /&gt;
E037 LNNCRYPT LETTER S&lt;br /&gt;
E038 LNNCRYPT SYMBOL THE&lt;br /&gt;
E039 LNNCRYPT SYMBOL OF&lt;br /&gt;
E03A LNNCRYPT SYMBOL ON&lt;br /&gt;
E03B LNNCRYPT SYMBOL IN&lt;br /&gt;
E03C LNNCRYPT SYMBOL TO&lt;br /&gt;
E03D &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E03E &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E03F &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== 支持 ===&lt;br /&gt;
&lt;br /&gt;
大约在 2021 年春，我使用 FontCreator 软件为 LNNCrypt 制作了一个同名字体，用于在 [[LNN的博客！]]上显示 LNNCrypt 密文。本站目前使用该字体显示 LNNCrypt。&lt;br /&gt;
&lt;br /&gt;
[[Unifont LNNPUA]] 字体支持该区段内的字符。&lt;br /&gt;
&lt;br /&gt;
[[分类:概念]][[分类:LNN 密文 PUA 编码区段]]&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=LNN_%E4%B8%AD%E5%8D%8E%E8%AF%AD%E5%AD%97&amp;diff=2987</id>
		<title>LNN 中华语字</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=LNN_%E4%B8%AD%E5%8D%8E%E8%AF%AD%E5%AD%97&amp;diff=2987"/>
		<updated>2026-05-11T12:01:32Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​/* 支持 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{LNN 中华语字}}&lt;br /&gt;
{{#tag:templatestyles||src=:{{FULLPAGENAME}}/style.css}}&lt;br /&gt;
[[File:Loose page02.png|thumb|[[LNN|我]]用 LNN 中华语字写成的日记]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;LNN 中华语字&#039;&#039;&#039;（{{lang|cmn-Qaaz| }}）是[[LNN|我]]于 2021 年 11 月设计的一种用于书写现代标准汉语的人造文字，也可以书写英语，设计灵感来自 {{le|Martin Luan}} 的[https://omniglot.com/conscripts/zhonghuayuzi.htm 中华语字]，是一种表音文字。&lt;br /&gt;
&lt;br /&gt;
== 基本字形 ==&lt;br /&gt;
LNN 中华语字的字形与“中华语字”有些类似，一个“字”表示一个音节，用一个“目”字形的框架表示声母，用声母和韵母的不同相对位置表示声调。不同的是，LNN 中华语字中的韵母写法也都是横平竖直的，且表示韵母的逻辑似乎更接近于注音符号而不是汉语拼音。&lt;br /&gt;
&lt;br /&gt;
=== 声母表 ===&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
|-lang=und-Qaaz class=&amp;quot;lz&amp;quot;&lt;br /&gt;
!  !!  !!  !!  !! !!  !!  !!  !! &lt;br /&gt;
|-&lt;br /&gt;
| b || p || m || f || || d || t || n || l&lt;br /&gt;
|-&lt;br /&gt;
| ㄅ || ㄆ || ㄇ || ㄈ || || ㄉ || ㄊ || ㄋ || ㄌ&lt;br /&gt;
|-lang=und-Qaaz class=&amp;quot;lz&amp;quot;&lt;br /&gt;
! !!  !!  !!  !! !!  !!  !!  !!&lt;br /&gt;
|-&lt;br /&gt;
| || g || k || h ||  || j || q || x ||&lt;br /&gt;
|-&lt;br /&gt;
| || ㄍ || ㄎ || ㄏ || || ㄐ || ㄑ || ㄒ ||&lt;br /&gt;
|-lang=und-Qaaz class=&amp;quot;lz&amp;quot;&lt;br /&gt;
! !!  !!  !!  !!  !!  !!  !!  !!&lt;br /&gt;
|-&lt;br /&gt;
| || zh || ch || sh || r || z || c || s ||&lt;br /&gt;
|-&lt;br /&gt;
| || ㄓ || ㄔ || ㄕ || ㄖ || ㄗ || ㄘ || ㄙ ||&lt;br /&gt;
|-lang=und-Qaaz class=&amp;quot;lz&amp;quot;&lt;br /&gt;
!colspan=4| !! &lt;br /&gt;
!colspan=4|&lt;br /&gt;
|-&lt;br /&gt;
|colspan=4| || Ø&lt;br /&gt;
|colspan=4|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 声调 ===&lt;br /&gt;
&lt;br /&gt;
音节尾的位置和方向表示声调：&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
|-lang=und-Qaaz class=&amp;quot;lz&amp;quot;&lt;br /&gt;
!  !!  !!  !! &lt;br /&gt;
|-&lt;br /&gt;
| ˉ || ˊ || ˇ || ˋ&lt;br /&gt;
|-&lt;br /&gt;
| 阴平 || 阳平 || 上声 || 去声&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
（对于轻声，一般虚词记作阴平，实词记作该字本音。但有例外，如助词“得”记作阳平。）&lt;br /&gt;
&lt;br /&gt;
=== 韵母表 ===&lt;br /&gt;
&lt;br /&gt;
音节尾的形状表示韵母：&lt;br /&gt;
&amp;lt;div style=&amp;quot;display:flex;flex-wrap:wrap&amp;quot;&amp;gt;&amp;lt;div&amp;gt;&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
|-lang=und-Qaaz class=&amp;quot;lz&amp;quot;&lt;br /&gt;
!  !!  !! &lt;br /&gt;
|-&lt;br /&gt;
| i || u || ü&lt;br /&gt;
|-&lt;br /&gt;
| ㄧ || ㄨ || ㄩ&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;amp;nbsp;&amp;lt;div&amp;gt;&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
|-lang=und-Qaaz class=&amp;quot;lz&amp;quot;&lt;br /&gt;
!  !!  !!  !!  !!  !! &lt;br /&gt;
!  !!  !!  !!  !!  !! &lt;br /&gt;
|-&lt;br /&gt;
| e (ê/o) || ei || ou || en || eng || er&lt;br /&gt;
| a || ai || ao || an || ang || (ar)&lt;br /&gt;
|-&lt;br /&gt;
| ㄜ (ㄝ/ㄛ) || ㄟ || ㄡ || ㄣ || ㄥ || ㄦ&lt;br /&gt;
| ㄚ || ㄞ || ㄠ || ㄢ || ㄤ ||&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
（对于拼音，-ong 和 -iong 分别用 u + eng 和 ü + eng 表示。）&lt;br /&gt;
&lt;br /&gt;
=== 英文字母 ===&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
|-lang=und-Qaaz class=&amp;quot;lz&amp;quot;&lt;br /&gt;
!  !!  !!  !!  !!  !!  !!  !!  !!  !!  !!  !!  !! &lt;br /&gt;
|-&lt;br /&gt;
| a || b || c || d || e || f || g || h || i || j || k || l || m&lt;br /&gt;
|-lang=und-Qaaz class=&amp;quot;lz&amp;quot;&lt;br /&gt;
!  !!  !!  !!  !!  !!  !!  !!  !!  !!  !!  !!  !! &lt;br /&gt;
|-&lt;br /&gt;
| n || o || p || q || r || s || t || u || v || w || x || y || z&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 单词连线 ===&lt;br /&gt;
同一个词的各字应在底部用一条线连在一起，书写时这条连线最后写。例：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span lang=zh-Qaaz class=&amp;quot;lz&amp;quot;&lt;br /&gt;
&amp;gt;  → &amp;lt;br&lt;br /&gt;
&amp;gt;  → &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
音节尾触及基线时，应适当缩短来避让连线。例：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span lang=zh-Qaaz class=&amp;quot;lz&amp;quot;&lt;br /&gt;
&amp;gt;  → &amp;lt;br&lt;br /&gt;
&amp;gt;  → &amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 零韵母 ===&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
|-lang=und-Qaaz class=&amp;quot;lz&amp;quot;&lt;br /&gt;
!  !!  !!  !!  !!  !!  !!  !!  !!  !! &lt;br /&gt;
|-&lt;br /&gt;
| zhi || chi || shi || ri || zi || ci || si || m || n || ng&lt;br /&gt;
|-&lt;br /&gt;
| ㄓ || ㄔ || ㄕ || ㄖ || ㄗ || ㄘ || ㄙ || ㄇ || ㄋ || ㄫ&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 特殊音节 ===&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
|-lang=und-Qaaz class=&amp;quot;lz&amp;quot;&lt;br /&gt;
!  !!  !!  !! &lt;br /&gt;
|-&lt;br /&gt;
| ê || o || hm || hng&lt;br /&gt;
|-&lt;br /&gt;
| ㄝ || ㄛ || ㄏㄇ || ㄏㄫ&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 符号 ==&lt;br /&gt;
&lt;br /&gt;
=== 数字 ===&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
|-lang=und-Qaaz class=&amp;quot;lz&amp;quot;&lt;br /&gt;
!  !!  !!  !!  !!  &lt;br /&gt;
|-&lt;br /&gt;
| 0 || 1 || 2 || 4 || 8&lt;br /&gt;
|}&lt;br /&gt;
用以上基本组件叠加，则表示的数值相加，这样可以表示0&amp;amp;ndash;15的数位。10&amp;amp;ndash;15的数字可以用来表示十一至十六进制数。例：&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
|-lang=und-Qaaz class=&amp;quot;lz&amp;quot;&lt;br /&gt;
!  !!  !!  !!  !! &lt;br /&gt;
|-&lt;br /&gt;
| 3 || 5 || 9 || A || F&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 儿化音 ===&lt;br /&gt;
儿化音用修饰符 &amp;lt;span lang=und-Qaaz class=&amp;quot;lz&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; 表示，例：&amp;lt;span lang=zh-Qaaz class=&amp;quot;lz&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;（huār）&lt;br /&gt;
&lt;br /&gt;
=== 连接号 ===&lt;br /&gt;
连接号用符号 &amp;lt;span lang=und-Qaaz class=&amp;quot;lz&amp;quot;&amp;gt;&amp;lt;/span&amp;gt; 表示，例：&amp;lt;span lang=zh-Qaaz class=&amp;quot;lz&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 专名标记 ===&lt;br /&gt;
字符的左上角向上出头表示该字符“大写”，是专名。例：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span lang=cmn-Qaaz class=&amp;quot;lz&amp;quot;&lt;br /&gt;
&amp;gt; → &amp;lt;/span&amp;gt;（Zhōngguó）&amp;lt;br&lt;br /&gt;
&amp;gt;&amp;lt;span lang=cmn-Qaaz class=&amp;quot;lz&amp;quot;&lt;br /&gt;
&amp;gt; → &amp;lt;/span&amp;gt;（Lěi）&amp;lt;br&lt;br /&gt;
&amp;gt;&amp;lt;span lang=en-Qaaz class=&amp;quot;lz&amp;quot;&lt;br /&gt;
&amp;gt; → &amp;lt;/span&amp;gt;（Salis）&lt;br /&gt;
&lt;br /&gt;
== 历史 ==&lt;br /&gt;
LNN 中华语字最初设计于 2021 年 11 月 11 日，当时的基本字形与现在略有不同。14 日，我将韵母的写法修改成了现在的样子，使其不会触及基线，并添加了单词连线来代替空格。后来陆续添加了特殊音节、儿化音、连字符、专名标记。&lt;br /&gt;
&lt;br /&gt;
== 变体 ==&lt;br /&gt;
我于 2022 年 11 月提出了[[希顶语 LNN 中华语字方案]]，可用类似 LNN 中华语字的字形拼写[[希顶语]]。2023 至 2024 年，先后对该方案进行了几次修订。&lt;br /&gt;
&lt;br /&gt;
2024 年 1 月，[https://wiki.xdi8.top/wiki/User:物灵 物灵]提出了一种用于转写洪武正韵的 LNN 中华语字变体，不过目前尚无完整方案文档。&lt;br /&gt;
&lt;br /&gt;
== LNN 密文 PUA 编码 ==&lt;br /&gt;
&lt;br /&gt;
LNN 中华语字在 [[LNN 密文 PUA 编码]]中拥有一个同名区段，范围为 {{tt|U+E040..U+E08F}}，该区段内字符可编码普通话 LNN 中华语字文本。&lt;br /&gt;
&lt;br /&gt;
另有 [[LNN 中华语字韵母]]、[[LNN 中华语字希顶扩展]]两个区段用于编码[[希顶语 LNN 中华语字方案]]。&lt;br /&gt;
&lt;br /&gt;
=== 内容 ===&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable unicodetable lnnblog-font-qaaz&amp;quot;&lt;br /&gt;
|+ LNN 中华语字 / {{le|LNNZHYZ}}&lt;br /&gt;
! !! 0 !! 1 !! 2 !! 3 !! 4 !! 5 !! 6 !! 7 !! 8 !! 9 !! A !! B !! C !! D !! E !! F&lt;br /&gt;
|-&lt;br /&gt;
! U+E04_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E05_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E06_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E07_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E08_&lt;br /&gt;
|  || &lt;br /&gt;
|colspan=14 style=&amp;quot;background-color:rgba(128,128,128,.5)&amp;quot;|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{hidebox|字符名称|2=&amp;lt;pre&amp;gt;&lt;br /&gt;
E040 LNNZHYZ DIGIT ZERO&lt;br /&gt;
E041 LNNZHYZ DIGIT ONE&lt;br /&gt;
E042 LNNZHYZ DIGIT TWO&lt;br /&gt;
E043 LNNZHYZ DIGIT THREE&lt;br /&gt;
E044 LNNZHYZ DIGIT FOUR&lt;br /&gt;
E045 LNNZHYZ DIGIT FIVE&lt;br /&gt;
E046 LNNZHYZ DIGIT SIX&lt;br /&gt;
E047 LNNZHYZ DIGIT SEVEN&lt;br /&gt;
E048 LNNZHYZ DIGIT EIGHT&lt;br /&gt;
E049 LNNZHYZ DIGIT NINE&lt;br /&gt;
E04A LNNZHYZ DIGIT TEN&lt;br /&gt;
E04B LNNZHYZ DIGIT ELEVEN&lt;br /&gt;
E04C LNNZHYZ DIGIT TWELVE&lt;br /&gt;
E04D LNNZHYZ DIGIT THIRTEEN&lt;br /&gt;
E04E LNNZHYZ DIGIT FOURTEEN&lt;br /&gt;
E04F LNNZHYZ DIGIT FIFTEEN&lt;br /&gt;
E050 LNNZHYZ LETTER W&lt;br /&gt;
E051 LNNZHYZ LETTER B&lt;br /&gt;
E052 LNNZHYZ LETTER P&lt;br /&gt;
E053 LNNZHYZ LETTER M&lt;br /&gt;
E054 LNNZHYZ LETTER F&lt;br /&gt;
E055 LNNZHYZ LETTER D&lt;br /&gt;
E056 LNNZHYZ LETTER T&lt;br /&gt;
E057 LNNZHYZ LETTER N&lt;br /&gt;
E058 LNNZHYZ LETTER L&lt;br /&gt;
E059 LNNZHYZ LETTER G&lt;br /&gt;
E05A LNNZHYZ LETTER K&lt;br /&gt;
E05B LNNZHYZ LETTER H&lt;br /&gt;
E05C LNNZHYZ LETTER J&lt;br /&gt;
E05D LNNZHYZ LETTER Q&lt;br /&gt;
E05E LNNZHYZ LETTER X&lt;br /&gt;
E05F LNNZHYZ LETTER ZH&lt;br /&gt;
E060 LNNZHYZ LETTER CH&lt;br /&gt;
E061 LNNZHYZ LETTER SH&lt;br /&gt;
E062 LNNZHYZ LETTER R&lt;br /&gt;
E063 LNNZHYZ LETTER Z&lt;br /&gt;
E064 LNNZHYZ LETTER C&lt;br /&gt;
E065 LNNZHYZ LETTER S&lt;br /&gt;
E066 LNNZHYZ LETTER V&lt;br /&gt;
E067 LNNZHYZ LETTER I&lt;br /&gt;
E068 LNNZHYZ LETTER U&lt;br /&gt;
E069 LNNZHYZ LETTER Y&lt;br /&gt;
E06A LNNZHYZ LETTER E&lt;br /&gt;
E06B LNNZHYZ LETTER A&lt;br /&gt;
E06C LNNZHYZ LETTER O&lt;br /&gt;
E06D LNNZHYZ MODIFIER LETTER ER&lt;br /&gt;
E06E LNNZHYZ HYPHEN&lt;br /&gt;
E06F LNNZHYZ CAPITAL MARK&lt;br /&gt;
E070 LNNZHYZ SYLLABLE TAIL TONE ONE&lt;br /&gt;
E071 LNNZHYZ SYLLABLE TAIL TONE TWO&lt;br /&gt;
E072 LNNZHYZ SYLLABLE TAIL TONE THREE&lt;br /&gt;
E073 LNNZHYZ SYLLABLE TAIL TONE FOUR&lt;br /&gt;
E074 LNNZHYZ GLIDE SIGN I&lt;br /&gt;
E075 LNNZHYZ GLIDE SIGN U&lt;br /&gt;
E076 LNNZHYZ GLIDE SIGN Y&lt;br /&gt;
E077 LNNZHYZ VOWEL SIGN E&lt;br /&gt;
E078 LNNZHYZ VOWEL SIGN A&lt;br /&gt;
E079 LNNZHYZ VOWEL SIGN O&lt;br /&gt;
E07A LNNZHYZ VOWEL SIGN EH&lt;br /&gt;
E07B LNNZHYZ CODA SIGN I&lt;br /&gt;
E07C LNNZHYZ CODA SIGN U&lt;br /&gt;
E07D LNNZHYZ CODA SIGN N&lt;br /&gt;
E07E LNNZHYZ CODA SIGN NG&lt;br /&gt;
E07F LNNZHYZ CODA SIGN R&lt;br /&gt;
E080 LNNZHYZ SYLLABLE TAIL M&lt;br /&gt;
E081 LNNZHYZ SYLLABLE TAIL NG&lt;br /&gt;
E082 &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E083 &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E084 &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E085 &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E086 &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E087 &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E088 &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E089 &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E08A &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E08B &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E08C &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E08D &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E08E &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E08F &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
=== 支持 ===&lt;br /&gt;
&lt;br /&gt;
{{box|heading=Zhunghua 字体版本&lt;br /&gt;
|1=&amp;lt;div lang=und-Qaaz style=&amp;quot;font-size:10rem;line-height:100%&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|class=lnnblog-float&lt;br /&gt;
}}&lt;br /&gt;
我为 LNN 中华语字制作了一套名为 Zhunghua（{{lang|cmn-Qaaz|}}）的字体，本站目前使用该字体显示（普通话）LNN 中华语字。该字体在 Firefox 浏览器中可能存在显示问题。该字体不支持希顶语方案。&lt;br /&gt;
&lt;br /&gt;
从 2024 年 11 月的 0.4.0 版本起，lnnzhyz2svg 库提供了在 PUA 编码与其内部使用的中间数据结构之间相互转换的函数，此后本站使用该库渲染希顶语 LNN 中华语字文本，[[LNNBot]] 的 &amp;lt;code&amp;gt;lnnzhyz&amp;lt;/code&amp;gt; 指令添加了渲染 PUA 编码的 LNN 中华语字及将普通话或希顶语输入码转换为 PUA 的功能；而网页版转写器直至 2026 年 5 月才支持输入 PUA。&lt;br /&gt;
&lt;br /&gt;
[[Unifont LNNPUA]] 字体仅包含 LNN 中华语字相关区段内字符的字形，不支持其所需的排版特性。&lt;br /&gt;
&lt;br /&gt;
== 外部链接 ==&lt;br /&gt;
* [https://dgck81lnn.github.io/lnnzhyz_ime/ LNN 中华语字网页输入法]（GitHub: [https://github.com/DGCK81LNN/lnnzhyz_ime DGCK81LNN/lnnzhyz_ime]）&lt;br /&gt;
* [https://dgck81lnn.github.io/lnnzhyz2svg/ LNN 中华语字 SVG 生成器]（网页工具和 npm 包，支持希顶语方案，npm: [https://www.npmjs.com/package/@dgck81lnn/lnnzhyz2svg @dgck81lnn/lnnzhyz2svg]，GitHub: [https://github.com/DGCK81LNN/lnnzhyz2svg DGCK81LNN/lnnzhyz2svg]）&lt;br /&gt;
{{DEFAULTSORT:{{SortPinyin|LNN 中{zhong1}华{hua2}语{yu3}字{zi4} }}}}&lt;br /&gt;
[[分类:概念]][[分类:LNN 密文 PUA 编码区段]]&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=LNN_%E4%B8%AD%E5%8D%8E%E8%AF%AD%E5%AD%97%E5%B8%8C%E9%A1%B6%E6%89%A9%E5%B1%95&amp;diff=2989</id>
		<title>LNN 中华语字希顶扩展</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=LNN_%E4%B8%AD%E5%8D%8E%E8%AF%AD%E5%AD%97%E5%B8%8C%E9%A1%B6%E6%89%A9%E5%B1%95&amp;diff=2989"/>
		<updated>2026-05-11T11:59:09Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​/* 支持 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;“&#039;&#039;&#039;LNN 中华语字希顶扩展&#039;&#039;&#039;”是 [[LNN 密文 PUA 编码]]中的一个区段，范围为 {{tt|U+E170..U+E1DF}}。&lt;br /&gt;
&lt;br /&gt;
配合“[[LNN 中华语字#LNN 密文 PUA 编码|LNN 中华语字]]”和“[[LNN 中华语字韵母]]”区段中的字符，本区段中的字符可用于编码[[希顶语 LNN 中华语字方案]]文本。&lt;br /&gt;
&lt;br /&gt;
== 内容 ==&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable lnnblog-font-lnnpua&amp;quot;&lt;br /&gt;
|+ LNNZHYZ Shidinn Extensions&lt;br /&gt;
! !! 0 !! 1 !! 2 !! 3 !! 4 !! 5 !! 6 !! 7 !! 8 !! 9 !! A !! B !! C !! D !! E !! F&lt;br /&gt;
|-&lt;br /&gt;
! U+E17_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|colspan=5 style=&amp;quot;background-color:rgba(128,128,128,.5)&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
! U+E18_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|colspan=3 style=&amp;quot;background-color:rgba(128,128,128,.5)&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
! U+E19_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E1A_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E1B_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|-&lt;br /&gt;
! U+E1C_&lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|colspan=6 style=&amp;quot;background-color:rgba(128,128,128,.5)&amp;quot;|&lt;br /&gt;
|-&lt;br /&gt;
! U+E1D_&lt;br /&gt;
|  ||  ||  ||  ||  ||  || &lt;br /&gt;
|style=&amp;quot;background-color:rgba(128,64,64,.5)&amp;quot;| &lt;br /&gt;
|  ||  ||  ||  ||  ||  ||  || &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{hidebox|字符名称|2=&amp;lt;pre&amp;gt;&lt;br /&gt;
E170 LNNZHYZ LETTER YJ&lt;br /&gt;
E171 LNNZHYZ LETTER NJ&lt;br /&gt;
E172 LNNZHYZ LETTER RZ&lt;br /&gt;
E173 LNNZHYZ LETTER NZ&lt;br /&gt;
E174 LNNZHYZ LETTER NG&lt;br /&gt;
E175 LNNZHYZ LETTER NGW&lt;br /&gt;
E176 LNNZHYZ LETTER NW&lt;br /&gt;
E177 LNNZHYZ LETTER DW&lt;br /&gt;
E178 LNNZHYZ LETTER TW&lt;br /&gt;
E179 LNNZHYZ LETTER GW&lt;br /&gt;
E17A LNNZHYZ LETTER KW&lt;br /&gt;
E17B &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E17C &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E17D &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E17E &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E17F &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E180 LNNZHYZ LETTER OO&lt;br /&gt;
E181 LNNZHYZ LETTER II&lt;br /&gt;
E182 LNNZHYZ LETTER UU&lt;br /&gt;
E183 LNNZHYZ LETTER AI&lt;br /&gt;
E184 LNNZHYZ LETTER AU&lt;br /&gt;
E185 LNNZHYZ LETTER EU&lt;br /&gt;
E186 LNNZHYZ LETTER AN&lt;br /&gt;
E187 LNNZHYZ LETTER ANG&lt;br /&gt;
E188 LNNZHYZ LETTER EN&lt;br /&gt;
E189 LNNZHYZ LETTER ENG&lt;br /&gt;
E18A LNNZHYZ LETTER EI&lt;br /&gt;
E18B LNNZHYZ LETTER ZERO FINAL&lt;br /&gt;
E18C LNNZHYZ LETTER IS&lt;br /&gt;
E18D &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E18E &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E18F &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E190 LNNZHYZ MODIFIER LETTER NARROW B&lt;br /&gt;
E191 LNNZHYZ MODIFIER LETTER FLIPPED NARROW B&lt;br /&gt;
E192 LNNZHYZ MODIFIER LETTER NARROW P&lt;br /&gt;
E193 LNNZHYZ MODIFIER LETTER FLIPPED NARROW P&lt;br /&gt;
E194 LNNZHYZ MODIFIER LETTER NARROW M&lt;br /&gt;
E195 LNNZHYZ MODIFIER LETTER FLIPPED NARROW M&lt;br /&gt;
E196 LNNZHYZ MODIFIER LETTER NARROW V&lt;br /&gt;
E197 LNNZHYZ MODIFIER LETTER FLIPPED NARROW V&lt;br /&gt;
E198 LNNZHYZ MODIFIER LETTER NARROW J&lt;br /&gt;
E199 LNNZHYZ MODIFIER LETTER FLIPPED NARROW J&lt;br /&gt;
E19A LNNZHYZ MODIFIER LETTER NARROW Q&lt;br /&gt;
E19B LNNZHYZ MODIFIER LETTER FLIPPED NARROW Q&lt;br /&gt;
E19C LNNZHYZ MODIFIER LETTER NARROW X&lt;br /&gt;
E19D LNNZHYZ MODIFIER LETTER FLIPPED NARROW X&lt;br /&gt;
E19E LNNZHYZ MODIFIER LETTER NARROW YJ&lt;br /&gt;
E19F LNNZHYZ MODIFIER LETTER FLIPPED NARROW YJ&lt;br /&gt;
E1A0 LNNZHYZ MODIFIER LETTER NARROW NJ&lt;br /&gt;
E1A1 LNNZHYZ MODIFIER LETTER FLIPPED NARROW NJ&lt;br /&gt;
E1A2 LNNZHYZ MODIFIER LETTER NARROW Z&lt;br /&gt;
E1A3 LNNZHYZ MODIFIER LETTER FLIPPED NARROW Z&lt;br /&gt;
E1A4 LNNZHYZ MODIFIER LETTER NARROW C&lt;br /&gt;
E1A5 LNNZHYZ MODIFIER LETTER FLIPPED NARROW C&lt;br /&gt;
E1A6 LNNZHYZ MODIFIER LETTER NARROW S&lt;br /&gt;
E1A7 LNNZHYZ MODIFIER LETTER FLIPPED NARROW S&lt;br /&gt;
E1A8 LNNZHYZ MODIFIER LETTER NARROW RZ&lt;br /&gt;
E1A9 LNNZHYZ MODIFIER LETTER FLIPPED NARROW RZ&lt;br /&gt;
E1AA LNNZHYZ MODIFIER LETTER NARROW NZ&lt;br /&gt;
E1AB LNNZHYZ MODIFIER LETTER FLIPPED NARROW NZ&lt;br /&gt;
E1AC LNNZHYZ MODIFIER LETTER NARROW NG&lt;br /&gt;
E1AD LNNZHYZ MODIFIER LETTER FLIPPED NARROW NG&lt;br /&gt;
E1AE LNNZHYZ MODIFIER LETTER NARROW N&lt;br /&gt;
E1AF LNNZHYZ MODIFIER LETTER FLIPPED NARROW N&lt;br /&gt;
E1B0 LNNZHYZ MODIFIER LETTER NARROW D&lt;br /&gt;
E1B1 LNNZHYZ MODIFIER LETTER FLIPPED NARROW D&lt;br /&gt;
E1B2 LNNZHYZ MODIFIER LETTER NARROW T&lt;br /&gt;
E1B3 LNNZHYZ MODIFIER LETTER FLIPPED NARROW T&lt;br /&gt;
E1B4 LNNZHYZ MODIFIER LETTER NARROW G&lt;br /&gt;
E1B5 LNNZHYZ MODIFIER LETTER FLIPPED NARROW G&lt;br /&gt;
E1B6 LNNZHYZ MODIFIER LETTER NARROW K&lt;br /&gt;
E1B7 LNNZHYZ MODIFIER LETTER FLIPPED NARROW K&lt;br /&gt;
E1B8 LNNZHYZ MODIFIER LETTER NARROW H&lt;br /&gt;
E1B9 LNNZHYZ MODIFIER LETTER FLIPPED NARROW H&lt;br /&gt;
E1BA LNNZHYZ MODIFIER LETTER NARROW W&lt;br /&gt;
E1BB LNNZHYZ MODIFIER LETTER FLIPPED NARROW W&lt;br /&gt;
E1BC LNNZHYZ MODIFIER LETTER NARROW NGW&lt;br /&gt;
E1BD LNNZHYZ MODIFIER LETTER FLIPPED NARROW NGW&lt;br /&gt;
E1BE LNNZHYZ MODIFIER LETTER NARROW NW&lt;br /&gt;
E1BF LNNZHYZ MODIFIER LETTER FLIPPED NARROW NW&lt;br /&gt;
E1C0 LNNZHYZ MODIFIER LETTER NARROW DW&lt;br /&gt;
E1C1 LNNZHYZ MODIFIER LETTER FLIPPED NARROW DW&lt;br /&gt;
E1C2 LNNZHYZ MODIFIER LETTER NARROW TW&lt;br /&gt;
E1C3 LNNZHYZ MODIFIER LETTER FLIPPED NARROW TW&lt;br /&gt;
E1C4 LNNZHYZ MODIFIER LETTER NARROW GW&lt;br /&gt;
E1C5 LNNZHYZ MODIFIER LETTER FLIPPED NARROW GW&lt;br /&gt;
E1C6 LNNZHYZ MODIFIER LETTER NARROW KW&lt;br /&gt;
E1C7 LNNZHYZ MODIFIER LETTER FLIPPED NARROW KW&lt;br /&gt;
E1C8 LNNZHYZ MODIFIER LETTER NARROW F&lt;br /&gt;
E1C9 LNNZHYZ MODIFIER LETTER FLIPPED NARROW F&lt;br /&gt;
E1CA &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E1CB &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E1CC &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E1CD &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E1CE &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E1CF &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E1D0 LNNZHYZ FINAL OO&lt;br /&gt;
E1D1 LNNZHYZ FINAL FLIPPED OO&lt;br /&gt;
E1D2 LNNZHYZ FINAL II&lt;br /&gt;
E1D3 LNNZHYZ FINAL FLIPPED II&lt;br /&gt;
E1D4 LNNZHYZ FINAL UU&lt;br /&gt;
E1D5 LNNZHYZ FINAL FLIPPED UU&lt;br /&gt;
E1D6 LNNZHYZ FINAL IS&lt;br /&gt;
E1D7 &amp;lt;OBSOLETE&amp;gt;&lt;br /&gt;
E1D8 LNNZHYZ FINAL IO&lt;br /&gt;
E1D9 LNNZHYZ FINAL FLIPPED IO&lt;br /&gt;
E1DA LNNZHYZ FINAL IU&lt;br /&gt;
E1DB LNNZHYZ FINAL FLIPPED IU&lt;br /&gt;
E1DC LNNZHYZ FINAL UO&lt;br /&gt;
E1DD LNNZHYZ FINAL FLIPPED UO&lt;br /&gt;
E1DE LNNZHYZ FINAL UI&lt;br /&gt;
E1DF LNNZHYZ FINAL FLIPPED UI&lt;br /&gt;
&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== 支持 ==&lt;br /&gt;
&lt;br /&gt;
[https://www.npmjs.com/package/@dgck81lnn/lnnzhyz2svg lnnzhyz2svg] 库支持该区段内的字符；见 [[LNN 中华语字#支持]]。&lt;br /&gt;
&lt;br /&gt;
[[Unifont LNNPUA]] 字体仅包含该区段内字符的字形，不支持 LNN 中华语字所需的排版特性。&lt;br /&gt;
&lt;br /&gt;
== 历史 ==&lt;br /&gt;
&lt;br /&gt;
2023 年 9 月，由于[[希顶语 LNN 中华语字方案]]修订，在该区段删除了 2 个字符 {{unichar|E1D6|LNNZHYZ FINAL IH|cclass=lnnblog-font-lnnpua}}、{{unichar|E1D7|LNNZHYZ FINAL FLIPPED IH|cclass=lnnblog-font-lnnpua}}。&lt;br /&gt;
&lt;br /&gt;
2026 年 5 月，由于[[希顶语 LNN 中华语字方案]]修订，向该区段添加了 2 个字符 {{unichar|E18C|LNNZHYZ LETTER IS|cclass=lnnblog-font-lnnpua}}、{{unichar|E1D6|LNNZHYZ FINAL IS|cclass=lnnblog-font-lnnpua}}（复用 2023 年 9 月修订弃用的码位和字形）。&lt;br /&gt;
&lt;br /&gt;
== 参见 ==&lt;br /&gt;
* [[希顶语 LNN 中华语字方案]]&lt;br /&gt;
* [[LNN 中华语字]]&lt;br /&gt;
* [[LNN 中华语字韵母]]&lt;br /&gt;
&lt;br /&gt;
[[分类:LNN 密文 PUA 编码区段]]&lt;br /&gt;
{{DEFAULTSORT:{{SortPinyin|LNN 中{zhong1}华{hua2}语{yu3}字{zi4}希{xi1}顶{ding3}扩{kuo4}展{zhan3} }}}}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=LNN_%E5%AF%86%E6%96%87_PUA_%E7%BC%96%E7%A0%81&amp;diff=2975</id>
		<title>LNN 密文 PUA 编码</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=LNN_%E5%AF%86%E6%96%87_PUA_%E7%BC%96%E7%A0%81&amp;diff=2975"/>
		<updated>2026-05-11T11:29:30Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;LNN 密文 PUA 编码&#039;&#039;&#039;是[[LNN|我]]为了便于用计算机处理 {{lelink|LNNCrypt}}、[[LNN 中华语字]]等自创密文而制定的一套编码方案，利用 Unicode 私人使用区（{{le|Private Use Area}}）为密文字符编码。&lt;br /&gt;
&lt;br /&gt;
[[Unifont LNNPUA]] 字体包含 LNN 密文 PUA 编码内所有的字符，但不包含正确排版 [[LNN 中华语字]] 所需的特殊排版特性。&lt;br /&gt;
&lt;br /&gt;
== 区段列表 ==&lt;br /&gt;
{|class=wikitable&lt;br /&gt;
! 范围&lt;br /&gt;
! 名称&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E000..U+E03F}}&lt;br /&gt;
| [[LNNCrypt#LNN 密文 PUA 编码|LNNCrypt]]&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E040..U+E08F}}&lt;br /&gt;
| [[LNN 中华语字#LNN 密文 PUA 编码|LNN 中华语字]]&amp;lt;br&amp;gt;&#039;&#039;{{le|(LNNZHYZ)}}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E090..U+E16F}}&lt;br /&gt;
| [[LNN 中华语字韵母]]&amp;lt;br&amp;gt;&#039;&#039;{{le|(LNNZHYZ Finals)}}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E170..U+E1DF}}&lt;br /&gt;
| [[LNN 中华语字希顶扩展]]&amp;lt;br&amp;gt;&#039;&#039;{{le|(LNNZHYZ Shidinn Extensions)}}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E1E0..U+E1EF}}&lt;br /&gt;
| [[LNNCrypt 补充]]&amp;lt;br&amp;gt;&#039;&#039;{{le|(LNNCrypt Supplement)}}&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E200..U+E22F}}&lt;br /&gt;
| [[LNNScribble#LNN 密文 PUA 编码|LNNScribble]]&lt;br /&gt;
|-&lt;br /&gt;
| {{tt|U+E230..U+E26F}}&lt;br /&gt;
| [[LNN 遗留密文]]&amp;lt;br&amp;gt;&#039;&#039;{{le|(LNN Legacy Ciphers)}}&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 历史 ==&lt;br /&gt;
2021 年 4 月 30 日，在 [[LNN的博客！]]中添加了 {{lelink|LNN&#039;s Diary}} 在线存档，其中的 [[LNNCrypt]] 密文利用 PUA 编码，通过一简单的自定义字体呈现。&lt;br /&gt;
&lt;br /&gt;
大约在 2022 年初，制作了一套名为 Zhunghua 的字体用于显示 [[LNN 中华语字]]，其使用的 PUA 码位排在 LNNCrypt 的区段之后。&lt;br /&gt;
&lt;br /&gt;
大约在 2023 年 5 月，为[[希顶语 LNN 中华语字方案]]和 [[LNNScribble]] 规定了代码点位。&lt;br /&gt;
&lt;br /&gt;
2023 年 9 月，正式将该编码系统命名为“LNN 密文 PUA 编码”，添加了 [[LNNCrypt 补充]]、[[LNN 遗留密文]]区段；由于[[希顶语 LNN 中华语字方案]]修订，从 [[LNN 中华语字希顶扩展]]区段删除了 2 个字符（详见[[LNN 中华语字希顶扩展#历史]]）。&lt;br /&gt;
&lt;br /&gt;
2026 年 5 月，由于[[希顶语 LNN 中华语字方案]]修订，向 [[LNN 中华语字希顶扩展]]区段添加了 2 个字符（详见[[LNN 中华语字希顶扩展#历史]]）。&lt;br /&gt;
&lt;br /&gt;
[[分类:概念]]{{DEFAULTSORT:{{SortPinyin|LNN 密{mi4}文{wen2} PUA 编{bian1}码{ma3} }}}}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=%E6%A8%A1%E6%9D%BF:Unichar&amp;diff=2979</id>
		<title>模板:Unichar</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=%E6%A8%A1%E6%9D%BF:Unichar&amp;diff=2979"/>
		<updated>2026-05-11T11:22:10Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;&amp;lt;span style=&amp;quot;white-space: nowrap&amp;quot;&amp;gt;&amp;lt;span class=&amp;quot;lnnblog-font-monospace&amp;quot;&amp;gt;U+{{{1}}}&amp;lt;/span&amp;gt;&amp;amp;#32;&amp;lt;/span&amp;gt;{{#ifeq:{{{nochar|0}}}|0|{{#tag:span|{{#if:{{{cwith|}}}|{{{cwith}}}}}&amp;amp;#x{{{1}}};|style=font-size:125%;line-height:1em|class={{{cclass|}}}}} &amp;lt;nowiki/&amp;gt;}}{{#if:{{{2|}}}|&amp;lt;span style=&amp;quot;text-transform: uppercase; font-size: 85%&amp;quot;&amp;gt;{{{2}}}&amp;lt;/span&amp;gt;}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;{{documentation}}&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=MediaWiki:Common.css&amp;diff=2977</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=MediaWiki:Common.css&amp;diff=2977"/>
		<updated>2026-05-11T11:19:08Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​Unifont LNNPUA&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* 字体 */&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;quot;LNNCrypt&amp;quot;;&lt;br /&gt;
	src: url(&amp;quot;https://cdn.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/LNNCrypt.woff&amp;quot;) format(&#039;woff&#039;);&lt;br /&gt;
	unicode-range: U+E000-E03F;&lt;br /&gt;
	font-display: block;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;quot;Zhunghua&amp;quot;;&lt;br /&gt;
	src: url(&amp;quot;https://cdn.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/Zhunghua@0.5.woff2&amp;quot;) format(&amp;quot;woff2&amp;quot;),&lt;br /&gt;
		url(&amp;quot;https://cdn.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/Zhunghua@0.5.woff&amp;quot;) format(&amp;quot;woff&amp;quot;);&lt;br /&gt;
	font-display: block;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;quot;XEGOEPUAall&amp;quot;;&lt;br /&gt;
	src: url(&amp;quot;https://cdn.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/XEGOEPUAall.woff2&amp;quot;) format(&amp;quot;woff2&amp;quot;),&lt;br /&gt;
		url(&amp;quot;https://cdn.jsdelivr.net/gh/DGCK81LNN/bootstrap-lnn@c0d4c78907b4ebabc6d5d34abd404abf64338816/fonts/XEGOEPUAall.woff&amp;quot;) format(&amp;quot;woff&amp;quot;);&lt;br /&gt;
	font-display: block;&lt;br /&gt;
}&lt;br /&gt;
@font-face {&lt;br /&gt;
	font-family: &amp;quot;Unifont LNNPUA&amp;quot;;&lt;br /&gt;
	src: url(&amp;quot;https://vudrux.site/fonts/UnifontLNNPUA.woff2&amp;quot;) format(&#039;woff2&#039;);&lt;br /&gt;
	unicode-range: U+E000-E26F;&lt;br /&gt;
	font-display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
:root {&lt;br /&gt;
	--font-family-dflt:&lt;br /&gt;
		-apple-system, &#039;BlinkMacSystemFont&#039;, &amp;quot;Segoe UI&amp;quot;, system-ui, &#039;Roboto&#039;,&lt;br /&gt;
		&amp;quot;Helvetica Neue&amp;quot;, Arial, &amp;quot;Noto Sans&amp;quot;, &amp;quot;Liberation Sans&amp;quot;, sans-serif,&lt;br /&gt;
		var(--font-family-emoji);&lt;br /&gt;
	--font-family-hans:&lt;br /&gt;
		&#039;Source Han Sans SC&#039;, &#039;Source Han Sans CN&#039;, &#039;PingFang SC&#039;,&lt;br /&gt;
		&#039;Microsoft YaHei UI&#039;, &#039;Microsoft YaHei&#039;, &#039;微软雅黑&#039;, &#039;DengXian&#039;, &#039;等线&#039;,&lt;br /&gt;
		&#039;Noto Sans SC&#039;, &#039;Noto Sans CJK SC&#039;, &#039;Droid Sans Fallback&#039;, sans-serif,&lt;br /&gt;
		var(--font-family-emoji);&lt;br /&gt;
	--font-family-dflt-serif:&lt;br /&gt;
		&#039;Roboto Serif&#039;, &#039;STSong&#039;, &#039;NSimSun&#039;, &#039;SimSun&#039;, &#039;Linux Libertine&#039;,&lt;br /&gt;
		&#039;Georgia&#039;, &#039;Times&#039;, &#039;Source Serif Pro&#039;, serif, var(--font-family-emoji);&lt;br /&gt;
	--font-family-hant:&lt;br /&gt;
		&#039;Source Han Sans TC&#039;, &#039;Source Han Sans TW&#039;,&lt;br /&gt;
		&#039;Noto Sans TC&#039;, &#039;Noto Sans CJK TC&#039;,&lt;br /&gt;
		&#039;Source Han Sans HC&#039;, &#039;Source Han Sans HK&#039;,&lt;br /&gt;
		&#039;Noto Sans HC&#039;, &#039;Noto Sans CJK HC&#039;,&lt;br /&gt;
		&#039;PingFang TC&#039;, &#039;LiHei Pro&#039;,&lt;br /&gt;
		&#039;Microsoft JhengHei UI&#039;, &#039;Microsoft JhengHei&#039;, &#039;微軟正黑體&#039;, sans-serif;&lt;br /&gt;
	--font-family-hant-serif:&lt;br /&gt;
		&#039;Source Han Serif TC&#039;, &#039;Source Han Serif TW&#039;,&lt;br /&gt;
		&#039;Noto Serif TC&#039;, &#039;Noto Serif CJK TC&#039;,&lt;br /&gt;
		&#039;Source Han Serif HC&#039;, &#039;Source Han Serif HK&#039;,&lt;br /&gt;
		&#039;Noto Serif HC&#039;, &#039;Noto Serif CJK HC&#039;,&lt;br /&gt;
		&#039;PMingLiU&#039;, &#039;MingLiU&#039;, serif;&lt;br /&gt;
	--font-family-dflt-monospace:&lt;br /&gt;
		&#039;Sarasa Mono SC&#039;, &#039;Sarasa Term SC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab SC&#039;, &#039;Sarasa Term Slab SC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed SC&#039;, &#039;Sarasa Fixed Slab SC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK SC&#039;,&lt;br /&gt;
		&#039;Roboto Mono&#039;, &#039;Menlo&#039;, &#039;Consolas&#039;, &#039;Liberation Mono&#039;, &#039;Fira Code&#039;,&lt;br /&gt;
		&#039;Courier New&#039;, var(--font-family-hans), monospace;&lt;br /&gt;
	--font-family-emoji: &amp;quot;Apple Color Emoji&amp;quot;, &amp;quot;Segoe UI Emoji&amp;quot;,&lt;br /&gt;
		&amp;quot;Segoe UI Symbol&amp;quot;, &amp;quot;Noto Color Emoji&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
[ lang ],&lt;br /&gt;
.lnnblog-font-g {&lt;br /&gt;
	--font-family-base: var(--font-family-dflt);&lt;br /&gt;
	--font-family-serif: var(--font-family-dflt-serif);&lt;br /&gt;
	--font-family-monospace: var(--font-family-dflt-monospace);&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
	font-family: var(--font-family-base);&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-font-hant,&lt;br /&gt;
.lnnblog-font-hant-hk,&lt;br /&gt;
.lnnblog-font-lzh,&lt;br /&gt;
.lnnblog-font-hans,&lt;br /&gt;
.lnnblog-font-qaac,&lt;br /&gt;
.lnnblog-font-qaaz,&lt;br /&gt;
.lnnblog-font-qaax,&lt;br /&gt;
.lnnblog-font-lnnpua {&lt;br /&gt;
	font-family: var(--font-family-base);&lt;br /&gt;
}&lt;br /&gt;
[ lang^=&amp;quot;zh-&amp;quot; ][ lang$=&amp;quot;-TW&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;zh-&amp;quot; ][ lang~=&amp;quot;-TW-&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;cmn-&amp;quot; ][ lang$=&amp;quot;-TW&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;cmn-&amp;quot; ][ lang~=&amp;quot;-TW-&amp;quot; ],&lt;br /&gt;
[ lang$=&amp;quot;-Hant&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Hant-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-hant {&lt;br /&gt;
	--font-family-base: var(--font-family-hant);&lt;br /&gt;
	--font-family-serif: var(--font-family-hant-serif);&lt;br /&gt;
	--font-family-monospace:&lt;br /&gt;
		&#039;Sarasa Mono TC&#039;, &#039;Sarasa Term TC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab TC&#039;, &#039;Sarasa Term Slab TC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed TC&#039;, &#039;Sarasa Fixed Slab TC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK TC&#039;,&lt;br /&gt;
		&#039;Roboto Mono&#039;, &#039;Menlo&#039;, &#039;Consolas&#039;, &#039;Liberation Mono&#039;, &#039;Fira Code&#039;,&lt;br /&gt;
		&#039;Courier New&#039;, var(--font-family-hant), monospace;&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
}&lt;br /&gt;
[ lang^=&amp;quot;zh-&amp;quot; ][ lang$=&amp;quot;-HK&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;zh-&amp;quot; ][ lang~=&amp;quot;-HK-&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;cmn-&amp;quot; ][ lang$=&amp;quot;-HK&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;cmn-&amp;quot; ][ lang~=&amp;quot;-HK-&amp;quot; ],&lt;br /&gt;
[ lang~=&amp;quot;-Hant-&amp;quot; ][ lang$=&amp;quot;-HK&amp;quot; ],&lt;br /&gt;
[ lang~=&amp;quot;-Hant-&amp;quot; ][ lang$=&amp;quot;-HK&amp;quot; ],&lt;br /&gt;
.lnnblog-font-hant-hk {&lt;br /&gt;
	--font-family-base:&lt;br /&gt;
		&#039;Source Han Sans HC&#039;, &#039;Source Han Sans HK&#039;,&lt;br /&gt;
		&#039;Noto Sans HC&#039;, &#039;Noto Sans CJK HC&#039;,&lt;br /&gt;
		var(--font-family-hant);&lt;br /&gt;
	--font-family-serif:&lt;br /&gt;
		&#039;Source Han Serif HC&#039;, &#039;Source Han Serif HK&#039;,&lt;br /&gt;
		&#039;Noto Serif HC&#039;, &#039;Noto Serif CJK HC&#039;,&lt;br /&gt;
		var(--font-family-hant-serif);&lt;br /&gt;
	--font-family-monospace:&lt;br /&gt;
		&#039;Sarasa Mono HC&#039;, &#039;Sarasa Term HC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab HC&#039;, &#039;Sarasa Term Slab HC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed HC&#039;, &#039;Sarasa Fixed Slab HC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK HC&#039;,&lt;br /&gt;
		&#039;Roboto Mono&#039;, &#039;Menlo&#039;, &#039;Consolas&#039;, &#039;Liberation Mono&#039;, &#039;Fira Code&#039;,&lt;br /&gt;
		&#039;Courier New&#039;, var(--font-family-hant), monospace;&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
}&lt;br /&gt;
[ lang=&amp;quot;lzh&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;lzh-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-lzh {&lt;br /&gt;
	--font-family-base: var(--font-family-hant);&lt;br /&gt;
	--font-family-serif: var(--font-family-hant-serif);&lt;br /&gt;
	--font-family-monospace:&lt;br /&gt;
		&#039;Sarasa Mono CL&#039;, &#039;Sarasa Term CL&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab CL&#039;, &#039;Sarasa Term Slab CL&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed CL&#039;, &#039;Sarasa Fixed Slab CL&#039;,&lt;br /&gt;
		&#039;Sarasa Mono TC&#039;, &#039;Sarasa Term TC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab TC&#039;, &#039;Sarasa Term Slab TC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed TC&#039;, &#039;Sarasa Fixed Slab TC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK TC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono HC&#039;, &#039;Sarasa Term HC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab HC&#039;, &#039;Sarasa Term Slab HC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed HC&#039;, &#039;Sarasa Fixed Slab HC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK HC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono SC&#039;, &#039;Sarasa Term SC&#039;,&lt;br /&gt;
		&#039;Sarasa Mono Slab SC&#039;, &#039;Sarasa Term Slab SC&#039;,&lt;br /&gt;
		&#039;Sarasa Fixed SC&#039;, &#039;Sarasa Fixed Slab SC&#039;,&lt;br /&gt;
		&#039;Noto Sans Mono CJK SC&#039;,&lt;br /&gt;
		&#039;Roboto Mono&#039;, Menlo, Consolas, &#039;Liberation Mono&#039;, &#039;Fira Code&#039;,&lt;br /&gt;
		&#039;Courier New&#039;, monospace, var(--font-family-hant);&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
}&lt;br /&gt;
[ lang$=&amp;quot;-Hans&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Hans-&amp;quot; ],&lt;br /&gt;
[ lang=&amp;quot;zh-CN&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;zh-CN-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-hans {&lt;br /&gt;
	--font-family-base: var(--font-family-hans);&lt;br /&gt;
	--font-family-serif: var(--font-family-dflt-serif);&lt;br /&gt;
	--font-family-monospace: var(--font-family-dflt-monospace);&lt;br /&gt;
	font-synthesis: initial;&lt;br /&gt;
}&lt;br /&gt;
[ lang$=&amp;quot;-Qaac&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Qaac-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-qaac {&lt;br /&gt;
	--font-family-base: &amp;quot;LNNCrypt&amp;quot;, var(--font-family-hans);&lt;br /&gt;
	font-synthesis: none;&lt;br /&gt;
}&lt;br /&gt;
[ lang$=&amp;quot;-Qaaz&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Qaaz-&amp;quot; ],&lt;br /&gt;
.lnnblog-font-qaaz {&lt;br /&gt;
	--font-family-base: &amp;quot;Zhunghua&amp;quot;, var(--font-family-dflt);&lt;br /&gt;
	font-synthesis: none;&lt;br /&gt;
}&lt;br /&gt;
[ lang$=&amp;quot;-Qaax&amp;quot; ],&lt;br /&gt;
[ lang*=&amp;quot;-Qaax-&amp;quot; ],&lt;br /&gt;
[ lang=&amp;quot;qdx&amp;quot; ],&lt;br /&gt;
[ lang^=&amp;quot;qdx-&amp;quot; ],&lt;br /&gt;
[ lang=&amp;quot;art-x-xdi8&amp;quot; ],&lt;br /&gt;
.lnnblog-font-qaax {&lt;br /&gt;
	--font-family-base: &amp;quot;XEGOEPUAall&amp;quot;, &amp;quot;Segoe UI&amp;quot;, &amp;quot;思源黑体 CN&amp;quot;, -apple-system,&lt;br /&gt;
		&amp;quot;Roboto&amp;quot;, &amp;quot;Microsoft YaHei UI&amp;quot;, &amp;quot;微软雅黑&amp;quot;, system-ui, sans-serif,&lt;br /&gt;
		var(--font-family-emoji);&lt;br /&gt;
	font-synthesis: weight;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-font-lnnpua {&lt;br /&gt;
	--font-family-base: &amp;quot;Unifont LNNPUA&amp;quot;, var(--font-family-hans);&lt;br /&gt;
	font-synthesis: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
html {&lt;br /&gt;
	font-size: 16px;&lt;br /&gt;
	text-autospace: normal;&lt;br /&gt;
	text-autospace: replace;&lt;br /&gt;
	text-spacing-trim: trim-start;&lt;br /&gt;
}&lt;br /&gt;
pre, code, samp, kbd, tt, textarea, .lnnblog-font-monospace {&lt;br /&gt;
	font-family: var(--font-family-monospace) !important;&lt;br /&gt;
	tab-size: 4;&lt;br /&gt;
	text-autospace: no-autospace;&lt;br /&gt;
	text-spacing-trim: space-all;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-font-sans-serif {&lt;br /&gt;
	font-family: var(--font-family-base) !important;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-font-serif {&lt;br /&gt;
	font-family: var(--font-family-serif) !important;&lt;br /&gt;
}&lt;br /&gt;
#bodyContent {&lt;br /&gt;
	font-size: unset;&lt;br /&gt;
	font-family: unset;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a.new {&lt;br /&gt;
	text-decoration-style: dotted;&lt;br /&gt;
	-webkit-text-decoration-style: dotted;&lt;br /&gt;
	background-color: rgba(255, 0, 0, 0.08);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 分类页字母标签 */&lt;br /&gt;
.mw-category .mw-category-group h3 {&lt;br /&gt;
	float: left;&lt;br /&gt;
	clear: left;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
	font-size: 0.8em;&lt;br /&gt;
	line-height: 1.25;&lt;br /&gt;
	width: 1em;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	transform: translate(0, 0.125rem);&lt;br /&gt;
	border: .125rem solid transparent;&lt;br /&gt;
	border-right-width: .15em;&lt;br /&gt;
	border-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyIiBoZWlnaHQ9IjIiPjxwYXRoIGZpbGw9InJnYmEoMTI4LDEyOCwxMjgsLjI3KSIgZD0iTTAsMEgxTDIsMSwxLDJIMFoiLz48L3N2Zz4=)&lt;br /&gt;
		0 1 0 0 fill / 0.5em / 0.375em 0.625em;&lt;br /&gt;
}&lt;br /&gt;
.mw-category .mw-category-group ul {&lt;br /&gt;
	margin-left: 3em;&lt;br /&gt;
}&lt;br /&gt;
.client-js #mw-subcategories .mw-content-ltr ul {&lt;br /&gt;
	margin-left: 2em;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 按钮 */&lt;br /&gt;
.lnnblog-button-small {&lt;br /&gt;
	background: linear-gradient( #f0f0f0, #e0e0e0 );&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
	border: 1px solid #c0c0c0;&lt;br /&gt;
	padding: 2px 5px;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-button-blue {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	padding: 0.5rem 1rem;&lt;br /&gt;
	background: linear-gradient( #4060ff, #3040ff );&lt;br /&gt;
	color: white;&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
	border: 2px solid #1c2880;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-button-white {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	padding: 0.5rem 1rem;&lt;br /&gt;
	background: linear-gradient( #f0f0f0, #e0e0e0 );&lt;br /&gt;
	color: black;&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
	border: 2px solid #c0c0c0;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-button-red {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	padding: 0.5rem 1rem;&lt;br /&gt;
	background: linear-gradient( #ff6040, #ff4030 );&lt;br /&gt;
	color: white;&lt;br /&gt;
	border-radius: 3px;&lt;br /&gt;
	border: 2px solid #80281c;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 代码块 */&lt;br /&gt;
pre:not(.mw-highlight-lines *) {&lt;br /&gt;
	overflow-y: auto;&lt;br /&gt;
	max-height: 70vh;&lt;br /&gt;
}&lt;br /&gt;
td &amp;gt; pre:first-child:last-child,&lt;br /&gt;
td &amp;gt; .mw-code:first-child:last-child,&lt;br /&gt;
.lnnblog-box-body &amp;gt; pre:first-child:last-child,&lt;br /&gt;
.lnnblog-box-body &amp;gt; .mw-code:first-child:last-child,&lt;br /&gt;
.lnnblog-hidebox-body &amp;gt; pre:first-child:last-child,&lt;br /&gt;
.lnnblog-hidebox-body &amp;gt; .mw-code:first-child:last-child {&lt;br /&gt;
	margin: -0.2rem;&lt;br /&gt;
	border: none;&lt;br /&gt;
	border-radius: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 引用 */&lt;br /&gt;
blockquote {&lt;br /&gt;
	border-left: 0.25rem solid gray;&lt;br /&gt;
	margin-left: 1rem;&lt;br /&gt;
	padding-left: 0.75rem;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@keyframes lnnblog-highlight {&lt;br /&gt;
	from {&lt;br /&gt;
		background-color: rgba(51, 191, 171, 0.75);&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
:target {&lt;br /&gt;
	animation: lnnblog-highlight 5s ease-out;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Template:Documentation */&lt;br /&gt;
.lnnblog-documentation {&lt;br /&gt;
	background: rgba(48, 160, 144, 0.2);&lt;br /&gt;
	border: 1px solid #aaa;&lt;br /&gt;
	padding: 1rem;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-documentation-header {&lt;br /&gt;
	border-bottom: 1px solid #aaa;&lt;br /&gt;
	margin: 0.5rem 0 1rem;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-documentation-header-title {&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	font-size: 1.25rem;&lt;br /&gt;
	display: inline;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Template:Info&lt;br /&gt;
 * 引自&amp;lt; https://zh.moegirl.org.cn/MediaWiki:Gadget-site-styles.css &amp;gt;，有改动&lt;br /&gt;
 * CC BY-NC-SA 3.0&lt;br /&gt;
 */&lt;br /&gt;
.infoBox {&lt;br /&gt;
	margin: 0 auto;&lt;br /&gt;
	width: 80%;&lt;br /&gt;
	border-left: 10px solid;&lt;br /&gt;
}&lt;br /&gt;
.infoBoxTitle {&lt;br /&gt;
	margin: 3px auto;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
.infoBoxIcon {&lt;br /&gt;
	display: table-cell;&lt;br /&gt;
	padding: 2px 0 2px .5em;&lt;br /&gt;
	vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
.infoBoxText {&lt;br /&gt;
	display: table-cell;&lt;br /&gt;
	padding: .25em .5em .25em 1.3em;&lt;br /&gt;
	width: 100%;&lt;br /&gt;
	vertical-align: middle;&lt;br /&gt;
}&lt;br /&gt;
.infoBoxContent {&lt;br /&gt;
	border: 1px solid rgba(128, 128, 128, 0.25);&lt;br /&gt;
	border-left-width: 0;&lt;br /&gt;
	background: rgba(128, 128, 128, 0.03);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Template:Box 和 Template:Hidebox */&lt;br /&gt;
.lnnblog-box,&lt;br /&gt;
.lnnblog-hidebox {&lt;br /&gt;
	display: inline-block;&lt;br /&gt;
	background: rgba(128, 128, 128, 0.05);&lt;br /&gt;
	border: 1px solid rgba(128, 128, 128, 0.67);&lt;br /&gt;
	max-width: 100%;&lt;br /&gt;
	overflow: hidden;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-box-heading,&lt;br /&gt;
.lnnblog-hidebox-heading {&lt;br /&gt;
	background: rgba(128, 128, 128, 0.06);&lt;br /&gt;
	padding: .2rem;&lt;br /&gt;
	font-weight: bold;&lt;br /&gt;
	text-align: center;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-box-body,&lt;br /&gt;
.lnnblog-hidebox-body {&lt;br /&gt;
	padding: .2rem;&lt;br /&gt;
	overflow-wrap: break-word;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lnnblog-box-heading:not(empty) + .lnnblog-box-body,&lt;br /&gt;
.lnnblog-hidebox-body {&lt;br /&gt;
	border-top: 1px solid rgba(128, 128, 128, 0.65);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.lnnblog-hidebox-heading {&lt;br /&gt;
	cursor: pointer;&lt;br /&gt;
	list-style: none;&lt;br /&gt;
	position: relative;&lt;br /&gt;
	padding-left: 1.2rem;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-hidebox-heading::-webkit-details-marker { display: none }&lt;br /&gt;
.lnnblog-hidebox-heading::before {&lt;br /&gt;
	content: &#039;&#039;;&lt;br /&gt;
	position: absolute;&lt;br /&gt;
	left: 0.4rem;&lt;br /&gt;
	top: 0;&lt;br /&gt;
	bottom: 0;&lt;br /&gt;
	height: 0;&lt;br /&gt;
	margin: auto;&lt;br /&gt;
	border: 0.3rem solid transparent;&lt;br /&gt;
	border-left-width: 0.5rem;&lt;br /&gt;
	border-left-color: currentColor;&lt;br /&gt;
	transform: rotate(0);&lt;br /&gt;
	transform-origin: 0.25rem 50%;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-hidebox[open] &amp;gt; .lnnblog-hidebox-heading::before {&lt;br /&gt;
	transform: rotate(90deg);&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-hidebox[data-lnnblog-hidebox-state=&amp;quot;expand&amp;quot;] &amp;gt; .lnnblog-hidebox-heading::before {&lt;br /&gt;
	animation: lnnblog-hidebox-expand 250ms;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-hidebox[data-lnnblog-hidebox-state=&amp;quot;shrink&amp;quot;] &amp;gt; .lnnblog-hidebox-heading::before {&lt;br /&gt;
	transform: rotate(0);&lt;br /&gt;
	animation: lnnblog-hidebox-shrink 250ms;&lt;br /&gt;
}&lt;br /&gt;
@keyframes lnnblog-hidebox-expand {&lt;br /&gt;
	from { transform: rotate(0deg); }&lt;br /&gt;
	to { transform: rotate(90deg); }&lt;br /&gt;
}&lt;br /&gt;
@keyframes lnnblog-hidebox-shrink {&lt;br /&gt;
	from { transform: rotate(90deg); }&lt;br /&gt;
	to { transform: rotate(0deg); }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Template:Jk */&lt;br /&gt;
.lnnblog-jk {&lt;br /&gt;
	color: #808080;&lt;br /&gt;
	text-decoration: line-through;&lt;br /&gt;
	text-decoration-color: var(--color-base, black);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 信息模板 */&lt;br /&gt;
.lnnblog-infobox {&lt;br /&gt;
	background: rgba(128, 128, 128, 0.05);&lt;br /&gt;
	border: 1px solid rgba(128, 128, 128, 0.67);&lt;br /&gt;
	border-collapse: collapse;&lt;br /&gt;
}&lt;br /&gt;
@media (min-width: 720px) {&lt;br /&gt;
	.lnnblog-infobox {&lt;br /&gt;
		float: right;&lt;br /&gt;
		width: 300px;&lt;br /&gt;
		margin-left: 1.5rem;&lt;br /&gt;
		margin-bottom: 1.5rem;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-infobox-titlebar {&lt;br /&gt;
	background: rgba(228, 228, 228, 0.33);&lt;br /&gt;
	color: black;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-infobox th,&lt;br /&gt;
.lnnblog-infobox td {&lt;br /&gt;
	text-align: center;&lt;br /&gt;
	padding: 1px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * 工具类&lt;br /&gt;
 */&lt;br /&gt;
/* 外边距和响应式浮动 */&lt;br /&gt;
.lnnblog-margin {&lt;br /&gt;
	margin-top: .5rem !important;&lt;br /&gt;
	margin-bottom: .5rem !important;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-margin-lg {&lt;br /&gt;
	margin-top: 1.5rem !important;&lt;br /&gt;
	margin-bottom: 1.5rem !important;&lt;br /&gt;
}&lt;br /&gt;
.lnnblog-margin-top-0 {&lt;br /&gt;
	margin-top: 0 !important;&lt;br /&gt;
}&lt;br /&gt;
@media (min-width: 720px) {&lt;br /&gt;
	.lnnblog-float {&lt;br /&gt;
		float: right;&lt;br /&gt;
		max-width: 300px;&lt;br /&gt;
		margin-left: .5rem !important;&lt;br /&gt;
	}&lt;br /&gt;
	.wikitable.lnnblog-float {&lt;br /&gt;
		margin-left: 1rem !important;&lt;br /&gt;
	}&lt;br /&gt;
	.lnnblog-margin-lg.lnnblog-float {&lt;br /&gt;
		margin-left: 1.5rem !important;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 清除浮动 */&lt;br /&gt;
.clear-both {&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
.clearfix::after {&lt;br /&gt;
	content: &amp;quot;&amp;quot;;&lt;br /&gt;
	display: block;&lt;br /&gt;
	clear: both;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 隐藏空元素hack */&lt;br /&gt;
.lnnblog-hide-empty:empty {&lt;br /&gt;
	display: none !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 首行缩进 */&lt;br /&gt;
p.lnnblog-first-line-indent:before,&lt;br /&gt;
.lnnblog-first-line-indent p:before {&lt;br /&gt;
	content: &#039;\3000\3000&#039;;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* 目录层数 Hack */&lt;br /&gt;
.lnnblog-toc-levels-1 .toclevel-1&amp;gt;ul,&lt;br /&gt;
.lnnblog-toc-levels-2 .toclevel-2&amp;gt;ul,&lt;br /&gt;
.lnnblog-toc-levels-3 .toclevel-3&amp;gt;ul,&lt;br /&gt;
.lnnblog-toc-levels-4 .toclevel-4&amp;gt;ul,&lt;br /&gt;
.lnnblog-toc-levels-5 .toclevel-5&amp;gt;ul {&lt;br /&gt;
	display: none;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=LNN_%E4%B8%AD%E5%8D%8E%E8%AF%AD%E5%AD%97%E5%B8%8C%E9%A1%B6%E6%89%A9%E5%B1%95&amp;diff=2971</id>
		<title>LNN 中华语字希顶扩展</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=LNN_%E4%B8%AD%E5%8D%8E%E8%AF%AD%E5%AD%97%E5%B8%8C%E9%A1%B6%E6%89%A9%E5%B1%95&amp;diff=2971"/>
		<updated>2026-05-08T16:02:01Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​添加字母is&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;“&#039;&#039;&#039;LNN 中华语字希顶扩展&#039;&#039;&#039;”是 [[LNN 密文 PUA 编码]]中的一个区段，范围为 {{tt|U+E170..U+E1DF}}。&lt;br /&gt;
&lt;br /&gt;
配合“[[LNN 中华语字#LNN 密文 PUA 编码|LNN 中华语字]]”和“[[LNN 中华语字韵母]]”区段中的字符，本区段中的字符可用于编码[[希顶语 LNN 中华语字方案]]文本。&lt;br /&gt;
&lt;br /&gt;
== 内容 ==&lt;br /&gt;
&lt;br /&gt;
{{hidebox|字符名称|2=&amp;lt;pre&amp;gt;&lt;br /&gt;
E170 LNNZHYZ LETTER YJ&lt;br /&gt;
E171 LNNZHYZ LETTER NJ&lt;br /&gt;
E172 LNNZHYZ LETTER RZ&lt;br /&gt;
E173 LNNZHYZ LETTER NZ&lt;br /&gt;
E174 LNNZHYZ LETTER NG&lt;br /&gt;
E175 LNNZHYZ LETTER NGW&lt;br /&gt;
E176 LNNZHYZ LETTER NW&lt;br /&gt;
E177 LNNZHYZ LETTER DW&lt;br /&gt;
E178 LNNZHYZ LETTER TW&lt;br /&gt;
E179 LNNZHYZ LETTER GW&lt;br /&gt;
E17A LNNZHYZ LETTER KW&lt;br /&gt;
E17B &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E17C &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E17D &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E17E &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E17F &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E180 LNNZHYZ LETTER OO&lt;br /&gt;
E181 LNNZHYZ LETTER II&lt;br /&gt;
E182 LNNZHYZ LETTER UU&lt;br /&gt;
E183 LNNZHYZ LETTER AI&lt;br /&gt;
E184 LNNZHYZ LETTER AU&lt;br /&gt;
E185 LNNZHYZ LETTER EU&lt;br /&gt;
E186 LNNZHYZ LETTER AN&lt;br /&gt;
E187 LNNZHYZ LETTER ANG&lt;br /&gt;
E188 LNNZHYZ LETTER EN&lt;br /&gt;
E189 LNNZHYZ LETTER ENG&lt;br /&gt;
E18A LNNZHYZ LETTER EI&lt;br /&gt;
E18B LNNZHYZ LETTER ZERO FINAL&lt;br /&gt;
E18C LNNZHYZ LETTER IS&lt;br /&gt;
E18D &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E18E &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E18F &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E190 LNNZHYZ MODIFIER LETTER NARROW B&lt;br /&gt;
E191 LNNZHYZ MODIFIER LETTER FLIPPED NARROW B&lt;br /&gt;
E192 LNNZHYZ MODIFIER LETTER NARROW P&lt;br /&gt;
E193 LNNZHYZ MODIFIER LETTER FLIPPED NARROW P&lt;br /&gt;
E194 LNNZHYZ MODIFIER LETTER NARROW M&lt;br /&gt;
E195 LNNZHYZ MODIFIER LETTER FLIPPED NARROW M&lt;br /&gt;
E196 LNNZHYZ MODIFIER LETTER NARROW V&lt;br /&gt;
E197 LNNZHYZ MODIFIER LETTER FLIPPED NARROW V&lt;br /&gt;
E198 LNNZHYZ MODIFIER LETTER NARROW J&lt;br /&gt;
E199 LNNZHYZ MODIFIER LETTER FLIPPED NARROW J&lt;br /&gt;
E19A LNNZHYZ MODIFIER LETTER NARROW Q&lt;br /&gt;
E19B LNNZHYZ MODIFIER LETTER FLIPPED NARROW Q&lt;br /&gt;
E19C LNNZHYZ MODIFIER LETTER NARROW X&lt;br /&gt;
E19D LNNZHYZ MODIFIER LETTER FLIPPED NARROW X&lt;br /&gt;
E19E LNNZHYZ MODIFIER LETTER NARROW YJ&lt;br /&gt;
E19F LNNZHYZ MODIFIER LETTER FLIPPED NARROW YJ&lt;br /&gt;
E1A0 LNNZHYZ MODIFIER LETTER NARROW NJ&lt;br /&gt;
E1A1 LNNZHYZ MODIFIER LETTER FLIPPED NARROW NJ&lt;br /&gt;
E1A2 LNNZHYZ MODIFIER LETTER NARROW Z&lt;br /&gt;
E1A3 LNNZHYZ MODIFIER LETTER FLIPPED NARROW Z&lt;br /&gt;
E1A4 LNNZHYZ MODIFIER LETTER NARROW C&lt;br /&gt;
E1A5 LNNZHYZ MODIFIER LETTER FLIPPED NARROW C&lt;br /&gt;
E1A6 LNNZHYZ MODIFIER LETTER NARROW S&lt;br /&gt;
E1A7 LNNZHYZ MODIFIER LETTER FLIPPED NARROW S&lt;br /&gt;
E1A8 LNNZHYZ MODIFIER LETTER NARROW RZ&lt;br /&gt;
E1A9 LNNZHYZ MODIFIER LETTER FLIPPED NARROW RZ&lt;br /&gt;
E1AA LNNZHYZ MODIFIER LETTER NARROW NZ&lt;br /&gt;
E1AB LNNZHYZ MODIFIER LETTER FLIPPED NARROW NZ&lt;br /&gt;
E1AC LNNZHYZ MODIFIER LETTER NARROW NG&lt;br /&gt;
E1AD LNNZHYZ MODIFIER LETTER FLIPPED NARROW NG&lt;br /&gt;
E1AE LNNZHYZ MODIFIER LETTER NARROW N&lt;br /&gt;
E1AF LNNZHYZ MODIFIER LETTER FLIPPED NARROW N&lt;br /&gt;
E1B0 LNNZHYZ MODIFIER LETTER NARROW D&lt;br /&gt;
E1B1 LNNZHYZ MODIFIER LETTER FLIPPED NARROW D&lt;br /&gt;
E1B2 LNNZHYZ MODIFIER LETTER NARROW T&lt;br /&gt;
E1B3 LNNZHYZ MODIFIER LETTER FLIPPED NARROW T&lt;br /&gt;
E1B4 LNNZHYZ MODIFIER LETTER NARROW G&lt;br /&gt;
E1B5 LNNZHYZ MODIFIER LETTER FLIPPED NARROW G&lt;br /&gt;
E1B6 LNNZHYZ MODIFIER LETTER NARROW K&lt;br /&gt;
E1B7 LNNZHYZ MODIFIER LETTER FLIPPED NARROW K&lt;br /&gt;
E1B8 LNNZHYZ MODIFIER LETTER NARROW H&lt;br /&gt;
E1B9 LNNZHYZ MODIFIER LETTER FLIPPED NARROW H&lt;br /&gt;
E1BA LNNZHYZ MODIFIER LETTER NARROW W&lt;br /&gt;
E1BB LNNZHYZ MODIFIER LETTER FLIPPED NARROW W&lt;br /&gt;
E1BC LNNZHYZ MODIFIER LETTER NARROW NGW&lt;br /&gt;
E1BD LNNZHYZ MODIFIER LETTER FLIPPED NARROW NGW&lt;br /&gt;
E1BE LNNZHYZ MODIFIER LETTER NARROW NW&lt;br /&gt;
E1BF LNNZHYZ MODIFIER LETTER FLIPPED NARROW NW&lt;br /&gt;
E1C0 LNNZHYZ MODIFIER LETTER NARROW DW&lt;br /&gt;
E1C1 LNNZHYZ MODIFIER LETTER FLIPPED NARROW DW&lt;br /&gt;
E1C2 LNNZHYZ MODIFIER LETTER NARROW TW&lt;br /&gt;
E1C3 LNNZHYZ MODIFIER LETTER FLIPPED NARROW TW&lt;br /&gt;
E1C4 LNNZHYZ MODIFIER LETTER NARROW GW&lt;br /&gt;
E1C5 LNNZHYZ MODIFIER LETTER FLIPPED NARROW GW&lt;br /&gt;
E1C6 LNNZHYZ MODIFIER LETTER NARROW KW&lt;br /&gt;
E1C7 LNNZHYZ MODIFIER LETTER FLIPPED NARROW KW&lt;br /&gt;
E1C8 LNNZHYZ MODIFIER LETTER NARROW F&lt;br /&gt;
E1C9 LNNZHYZ MODIFIER LETTER FLIPPED NARROW F&lt;br /&gt;
E1CA &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E1CB &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E1CC &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E1CD &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E1CE &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E1CF &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E1D0 LNNZHYZ FINAL OO&lt;br /&gt;
E1D1 LNNZHYZ FINAL FLIPPED OO&lt;br /&gt;
E1D2 LNNZHYZ FINAL II&lt;br /&gt;
E1D3 LNNZHYZ FINAL FLIPPED II&lt;br /&gt;
E1D4 LNNZHYZ FINAL UU&lt;br /&gt;
E1D5 LNNZHYZ FINAL FLIPPED UU&lt;br /&gt;
E1D6 LNNZHYZ FINAL IS&lt;br /&gt;
E1D7 &amp;lt;UNASSIGNED&amp;gt;&lt;br /&gt;
E1D8 LNNZHYZ FINAL IO&lt;br /&gt;
E1D9 LNNZHYZ FINAL FLIPPED IO&lt;br /&gt;
E1DA LNNZHYZ FINAL IU&lt;br /&gt;
E1DB LNNZHYZ FINAL FLIPPED IU&lt;br /&gt;
E1DC LNNZHYZ FINAL UO&lt;br /&gt;
E1DD LNNZHYZ FINAL FLIPPED UO&lt;br /&gt;
E1DE LNNZHYZ FINAL UI&lt;br /&gt;
E1DF LNNZHYZ FINAL FLIPPED UI&lt;br /&gt;
&amp;lt;/pre&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
== 支持 ==&lt;br /&gt;
&lt;br /&gt;
[https://www.npmjs.com/package/@dgck81lnn/lnnzhyz2svg lnnzhyz2svg] 库支持该区段内的字符；见 [[LNN 中华语字#支持]]。&lt;br /&gt;
&lt;br /&gt;
== 参见 ==&lt;br /&gt;
* [[希顶语 LNN 中华语字方案]]&lt;br /&gt;
* [[LNN 中华语字]]&lt;br /&gt;
* [[LNN 中华语字韵母]]&lt;br /&gt;
&lt;br /&gt;
[[分类:LNN 密文 PUA 编码区段]]&lt;br /&gt;
{{DEFAULTSORT:{{SortPinyin|LNN 中{zhong1}华{hua2}语{yu3}字{zi4}希{xi1}顶{ding3}扩{kuo4}展{zhan3} }}}}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=SB%E8%81%94%E7%9B%9F%E7%89%8C&amp;diff=2962</id>
		<title>SB联盟牌</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=SB%E8%81%94%E7%9B%9F%E7%89%8C&amp;diff=2962"/>
		<updated>2026-04-28T02:42:59Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​/* 胜利条件 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;[[SB联盟]]牌&#039;&#039;&#039;是主要由[[老李]]设计的一款双人数字牌类游戏，核心目标是在出牌阶段率先将手牌数降至1张及以下，或在牌堆耗尽时保持最少手牌。&lt;br /&gt;
&lt;br /&gt;
== 游戏规则 ==&lt;br /&gt;
&lt;br /&gt;
===牌组构成===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;普通牌&#039;&#039;&#039;：0、1、2各6张，3、4、5各4张，共30张。&lt;br /&gt;
* &#039;&#039;&#039;王牌&#039;&#039;&#039;：6、7各2张，共4张。&lt;br /&gt;
* &#039;&#039;&#039;‫赖子‬牌&#039;&#039;&#039;：每局随机生成一组‫赖子‬牌，共三种可能，其中必定包含若干张 *（称为“哼”），可能包含一张 8 或 9（二者不会同时存在）：&lt;br /&gt;
** 5张*（50%概率，共5张）&lt;br /&gt;
** 3张* + 1张8（8仅影响手牌大小比较，无其他效果）（40%概率，共4张）&lt;br /&gt;
** 4张* + 1张9（9可触发特殊效果“九”，见下文）（10%概率，共5张）&lt;br /&gt;
&lt;br /&gt;
总牌数38或39张。&lt;br /&gt;
&lt;br /&gt;
===游戏流程===&lt;br /&gt;
&lt;br /&gt;
发牌阶段：&lt;br /&gt;
&lt;br /&gt;
# 每个玩家获得5张牌。&lt;br /&gt;
# 若初始5张中包含“9”，触发“天九”：&lt;br /&gt;
#* 额外从牌堆抓5张，手牌变为10张；&lt;br /&gt;
#* 立即弃置“9”及自选的3张牌，保留6张手牌。&lt;br /&gt;
# 完成后进入出牌阶段。&lt;br /&gt;
&lt;br /&gt;
出牌阶段开始，进行先手判定：&lt;br /&gt;
&lt;br /&gt;
* 若有玩家发牌阶段获取过“9”，则由该玩家先手。&lt;br /&gt;
* 若无，持有数值最大的一张手牌的玩家先手（* 的大小视为介于 7 与 8 之间），相同时除去最大一张继续比较。&lt;br /&gt;
&lt;br /&gt;
出牌阶段分为多轮，每轮每个玩家依次执行：&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;补牌&#039;&#039;&#039;&lt;br /&gt;
#* 游戏开始首轮：补至6张手牌。&lt;br /&gt;
#* 此后每轮：补牌数 = 上一轮后手玩家出牌张数 − 1（若未出，最少补1张），且手牌上限不超过10张。&lt;br /&gt;
#* 若补牌中抽到“9”，且“手牌数+牌堆剩余张数”＞6，则触发“九”效果：&lt;br /&gt;
#** 额外抓牌直至手牌满10张（或牌堆抓空），随后立即弃置“9”及自选的若干张牌，使手牌恢复至6张。&lt;br /&gt;
#** 弃置完成后本回合继续，该玩家正常出牌。&lt;br /&gt;
#* 若余牌不足，“9”效果无效，只可作为‫赖子‬使用。&lt;br /&gt;
# &#039;&#039;&#039;出牌&#039;&#039;&#039;&lt;br /&gt;
#* 每轮先手玩家必须打出符合牌型的牌。&lt;br /&gt;
#* 后手玩家需要压过先手玩家的有效出牌，或者选择“不出”。&lt;br /&gt;
#* 每人每轮仅有一次出牌机会。&lt;br /&gt;
&lt;br /&gt;
===牌型与大小===&lt;br /&gt;
&lt;br /&gt;
* 牌型由数字牌0-7构成，分为普通牌型（单张、对子、顺子、连对）和炸弹（普通炸、连炸、王炸）。&lt;br /&gt;
* &#039;&#039;&#039;赖子牌可以代替 0-5 的任意数字牌，但不能代替王牌 6、7&#039;&#039;&#039;。单次出牌不能全为‫赖子‬，必须至少包含一张数字牌0-7。&lt;br /&gt;
* 普通牌型必须&#039;&#039;&#039;同类型、同张数且数值更大&#039;&#039;&#039;才能压过。&lt;br /&gt;
* 普通炸和连炸可以压过&#039;&#039;&#039;张数相同或更少&#039;&#039;&#039;的任何普通牌型。张数多的普通炸或连炸可压过张数少的普通炸或连炸，张数相同时普通炸可压过连炸，相同种类、张数的普通炸或连炸必须数字更大才能压过。&lt;br /&gt;
* 小王炸 66 可压过王炸以外的任意至多三张牌，大王炸 77 可压过天王炸以外的任意至多四张牌，天王炸 6677 最大，可压过所有牌型。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 牌型 !! 示例 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| 单张 || 0～7 ||&lt;br /&gt;
|-&lt;br /&gt;
| 对子 || 00～55 ||&lt;br /&gt;
|-&lt;br /&gt;
| 顺子 || 012、0123 等 || 只能为3或4连，可以包含王牌6、7&lt;br /&gt;
|-&lt;br /&gt;
| 连对 || 0011、001122、00112233 等 || 2到4连，不能包含王牌6、7&lt;br /&gt;
|-&lt;br /&gt;
| 普通炸 || 000～555、0000～5555 等 || 3张以上数字相同&lt;br /&gt;
|-&lt;br /&gt;
| 连炸 || 000111、00001111、000111222 等 || 由数值连续、张数相同的普通炸构成&lt;br /&gt;
|-&lt;br /&gt;
| 王炸 || 66、77、6677 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===胜利条件===&lt;br /&gt;
&lt;br /&gt;
* 任意玩家手牌数 ≤1 即获胜。&lt;br /&gt;
* 若牌堆耗尽且一轮完结，手牌数最少者胜。&lt;br /&gt;
** 若牌数相同，比较每人所持最大的一张手牌，其中较小的获胜（* 的大小视为介于 7 与 8 之间），相同时除去最大一张继续比较。&lt;br /&gt;
* 中彩票（极端情况）：任意玩家出牌阶段完成补牌后手牌全为‫赖子‬（无法出牌），直接获胜。&lt;br /&gt;
&lt;br /&gt;
[[分类:见闻]]{{DEFAULTSORT:{{SortPinyin|SB联{lian2}盟{meng2}牌{pai2} }}}}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=SB%E8%81%94%E7%9B%9F%E7%89%8C&amp;diff=2960</id>
		<title>SB联盟牌</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=SB%E8%81%94%E7%9B%9F%E7%89%8C&amp;diff=2960"/>
		<updated>2026-04-27T17:46:58Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;[[SB联盟]]牌&#039;&#039;&#039;是主要由[[老李]]设计的一款双人数字牌类游戏，核心目标是在出牌阶段率先将手牌数降至1张及以下，或在牌堆耗尽时保持最少手牌。&lt;br /&gt;
&lt;br /&gt;
== 游戏规则 ==&lt;br /&gt;
&lt;br /&gt;
===牌组构成===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;普通牌&#039;&#039;&#039;：0、1、2各6张，3、4、5各4张，共30张。&lt;br /&gt;
* &#039;&#039;&#039;王牌&#039;&#039;&#039;：6、7各2张，共4张。&lt;br /&gt;
* &#039;&#039;&#039;‫赖子‬牌&#039;&#039;&#039;：每局随机生成一组‫赖子‬牌，共三种可能，其中必定包含若干张 *（称为“哼”），可能包含一张 8 或 9（二者不会同时存在）：&lt;br /&gt;
** 5张*（50%概率，共5张）&lt;br /&gt;
** 3张* + 1张8（8仅影响手牌大小比较，无其他效果）（40%概率，共4张）&lt;br /&gt;
** 4张* + 1张9（9可触发特殊效果“九”，见下文）（10%概率，共5张）&lt;br /&gt;
&lt;br /&gt;
总牌数38或39张。&lt;br /&gt;
&lt;br /&gt;
===游戏流程===&lt;br /&gt;
&lt;br /&gt;
发牌阶段：&lt;br /&gt;
&lt;br /&gt;
# 每个玩家获得5张牌。&lt;br /&gt;
# 若初始5张中包含“9”，触发“天九”：&lt;br /&gt;
#* 额外从牌堆抓5张，手牌变为10张；&lt;br /&gt;
#* 立即弃置“9”及自选的3张牌，保留6张手牌。&lt;br /&gt;
# 完成后进入出牌阶段。&lt;br /&gt;
&lt;br /&gt;
出牌阶段开始，进行先手判定：&lt;br /&gt;
&lt;br /&gt;
* 若有玩家发牌阶段获取过“9”，则由该玩家先手。&lt;br /&gt;
* 若无，持有数值最大的一张手牌的玩家先手（* 的大小视为介于 7 与 8 之间），相同时除去最大一张继续比较。&lt;br /&gt;
&lt;br /&gt;
出牌阶段分为多轮，每轮每个玩家依次执行：&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;补牌&#039;&#039;&#039;&lt;br /&gt;
#* 游戏开始首轮：补至6张手牌。&lt;br /&gt;
#* 此后每轮：补牌数 = 上一轮后手玩家出牌张数 − 1（若未出，最少补1张），且手牌上限不超过10张。&lt;br /&gt;
#* 若补牌中抽到“9”，且“手牌数+牌堆剩余张数”＞6，则触发“九”效果：&lt;br /&gt;
#** 额外抓牌直至手牌满10张（或牌堆抓空），随后立即弃置“9”及自选的若干张牌，使手牌恢复至6张。&lt;br /&gt;
#** 弃置完成后本回合继续，该玩家正常出牌。&lt;br /&gt;
#* 若余牌不足，“9”效果无效，只可作为‫赖子‬使用。&lt;br /&gt;
# &#039;&#039;&#039;出牌&#039;&#039;&#039;&lt;br /&gt;
#* 每轮先手玩家必须打出符合牌型的牌。&lt;br /&gt;
#* 后手玩家需要压过先手玩家的有效出牌，或者选择“不出”。&lt;br /&gt;
#* 每人每轮仅有一次出牌机会。&lt;br /&gt;
&lt;br /&gt;
===牌型与大小===&lt;br /&gt;
&lt;br /&gt;
* 牌型由数字牌0-7构成，分为普通牌型（单张、对子、顺子、连对）和炸弹（普通炸、连炸、王炸）。&lt;br /&gt;
* &#039;&#039;&#039;赖子牌可以代替 0-5 的任意数字牌，但不能代替 6、7&#039;&#039;&#039;。单次出牌不能全为‫赖子‬，必须至少包含一张数字牌0-7。&lt;br /&gt;
* 普通牌型必须&#039;&#039;&#039;同类型、同张数且数值更大&#039;&#039;&#039;才能压过。&lt;br /&gt;
* 普通炸和连炸可以压过&#039;&#039;&#039;张数相同或更少&#039;&#039;&#039;的任何普通牌型。张数多的普通炸或连炸可压过张数少的普通炸或连炸，张数相同时普通炸可压过连炸，相同种类、张数的普通炸或连炸必须数字更大才能压过。&lt;br /&gt;
* 小王炸 66 可压过王炸以外的任意至多三张牌，大王炸 77 可压过天王炸以外的任意至多四张牌，天王炸 6677 最大，可压过所有牌型。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 牌型 !! 示例 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| 单张 || 0～7 ||&lt;br /&gt;
|-&lt;br /&gt;
| 对子 || 00～55 ||&lt;br /&gt;
|-&lt;br /&gt;
| 顺子 || 012、0123 等 || 只能为3或4连，可以包含王牌6、7&lt;br /&gt;
|-&lt;br /&gt;
| 连对 || 0011、001122、00112233 等 || 2到4连，不能包含王牌6、7&lt;br /&gt;
|-&lt;br /&gt;
| 普通炸 || 000～555、0000～5555 等 || 3张以上数字相同&lt;br /&gt;
|-&lt;br /&gt;
| 连炸 || 000111、00001111、000111222 等 || 由数值连续、张数相同的普通炸构成&lt;br /&gt;
|-&lt;br /&gt;
| 王炸 || 66、77、6677 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===胜利条件===&lt;br /&gt;
&lt;br /&gt;
* 任意玩家手牌数 ≤1 即获胜；&lt;br /&gt;
* 若牌堆耗尽且一轮完结，手牌数最少者胜。&lt;br /&gt;
** 若牌数相同，比较每人所持最大的一张手牌，其中较小的获胜（* 的大小视为介于 7 与 8 之间），相同时除去最大一张继续比较。&lt;br /&gt;
* 极端情况：任意玩家出牌阶段完成补牌后手牌全为‫赖子‬，直接获胜。&lt;br /&gt;
&lt;br /&gt;
[[分类:见闻]]{{DEFAULTSORT:{{SortPinyin|SB联{lian2}盟{meng2}牌{pai2} }}}}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=SB%E8%81%94%E7%9B%9F%E7%89%8C&amp;diff=2958</id>
		<title>SB联盟牌</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=SB%E8%81%94%E7%9B%9F%E7%89%8C&amp;diff=2958"/>
		<updated>2026-04-27T17:36:30Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​创建页面，内容为“&amp;#039;&amp;#039;&amp;#039;SB联盟牌&amp;#039;&amp;#039;&amp;#039;是主要由老李设计的一款双人数字牌类游戏，核心目标是在出牌阶段率先将手牌数降至1张及以下，或在牌堆耗尽时保持最少手牌。  == 游戏规则 ==  ===牌组构成===  * &amp;#039;&amp;#039;&amp;#039;普通牌&amp;#039;&amp;#039;&amp;#039;：0、1、2各6张，3、4、5各4张，共30张。 * &amp;#039;&amp;#039;&amp;#039;王牌&amp;#039;&amp;#039;&amp;#039;：6、7各2张，共4张。 * &amp;#039;&amp;#039;&amp;#039;癞子牌&amp;#039;&amp;#039;&amp;#039;：每局随机生成一组癞子牌，共三种可能，其中必定包含若干张 *（称为…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;[[SB联盟]]牌&#039;&#039;&#039;是主要由[[老李]]设计的一款双人数字牌类游戏，核心目标是在出牌阶段率先将手牌数降至1张及以下，或在牌堆耗尽时保持最少手牌。&lt;br /&gt;
&lt;br /&gt;
== 游戏规则 ==&lt;br /&gt;
&lt;br /&gt;
===牌组构成===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;普通牌&#039;&#039;&#039;：0、1、2各6张，3、4、5各4张，共30张。&lt;br /&gt;
* &#039;&#039;&#039;王牌&#039;&#039;&#039;：6、7各2张，共4张。&lt;br /&gt;
* &#039;&#039;&#039;癞子牌&#039;&#039;&#039;：每局随机生成一组癞子牌，共三种可能，其中必定包含若干张 *（称为“哼”），可能包含一张 8 或 9（二者不会同时存在）：&lt;br /&gt;
** 5张*（50%概率，共5张）&lt;br /&gt;
** 3张* + 1张8（8仅影响手牌大小比较，无其他效果）（40%概率，共4张）&lt;br /&gt;
** 4张* + 1张9（9可触发特殊效果“九”，见下文）（10%概率，共5张）&lt;br /&gt;
&lt;br /&gt;
总牌数38或39张。&lt;br /&gt;
&lt;br /&gt;
===游戏流程===&lt;br /&gt;
&lt;br /&gt;
发牌阶段：&lt;br /&gt;
&lt;br /&gt;
# 每个玩家获得5张牌。&lt;br /&gt;
# 若初始5张中包含“9”，触发“天九”：&lt;br /&gt;
#* 额外从牌堆抓5张，手牌变为10张；&lt;br /&gt;
#* 立即弃置“9”及自选的3张牌，保留6张手牌。&lt;br /&gt;
# 完成后进入出牌阶段。&lt;br /&gt;
&lt;br /&gt;
出牌阶段开始，进行先手判定：&lt;br /&gt;
&lt;br /&gt;
* 若有玩家发牌阶段获取过“9”，则由该玩家先手。&lt;br /&gt;
* 若无，持有数值最大的一张手牌的玩家先手（* 的大小视为介于 7 与 8 之间），相同时除去最大一张继续比较。&lt;br /&gt;
&lt;br /&gt;
出牌阶段分为多个回合，每回合每个玩家依次执行：&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;补牌&#039;&#039;&#039;&lt;br /&gt;
#* 游戏开始首轮：补至6张手牌。&lt;br /&gt;
#* 此后每轮：补牌数 = 上一轮后手玩家出牌张数 − 1（若未出，最少补1张），且手牌上限不超过10张。&lt;br /&gt;
#* 若补牌中抽到“9”，且“手牌数+牌堆剩余张数”＞6，则触发“九”效果：&lt;br /&gt;
#** 额外抓牌直至手牌满10张（或牌堆抓空），随后立即弃置“9”及自选的若干张牌，使手牌恢复至6张。&lt;br /&gt;
#** 弃置完成后本回合继续，该玩家正常出牌。&lt;br /&gt;
#* 若牌堆不足，“9”效果无效，只可作为癞子使用。&lt;br /&gt;
# &#039;&#039;&#039;出牌&#039;&#039;&#039;&lt;br /&gt;
#* 每轮先手玩家必须打出符合牌型的牌。&lt;br /&gt;
#* 后手玩家需要压过先手玩家的有效出牌，或者选择“不出”。&lt;br /&gt;
#* 每人每轮仅有一次出牌机会。&lt;br /&gt;
&lt;br /&gt;
===牌型与大小===&lt;br /&gt;
&lt;br /&gt;
* 牌型由数字牌0-7构成，分为普通牌型（单张、对子、顺子、连对）和炸弹（普通炸、连炸、王炸）。&lt;br /&gt;
* &#039;&#039;&#039;赖子牌可以代替 0-5 的任意数字牌，但不能代替 6、7&#039;&#039;&#039;。单次出牌不能全为癞子，必须至少包含一张数字牌0-7。&lt;br /&gt;
* 普通牌型必须&#039;&#039;&#039;同类型、同张数且数值更大&#039;&#039;&#039;才能压过。&lt;br /&gt;
* 普通炸和连炸可以压过&#039;&#039;&#039;张数相同或更少&#039;&#039;&#039;的任何普通牌型。张数多的普通炸或连炸可压过张数少的普通炸或连炸，张数相同时普通炸可压过连炸，相同种类、张数的普通炸或连炸必须数字更大才能压过。&lt;br /&gt;
* 小王炸 66 可压过王炸以外的任意至多三张牌，大王炸 77 可压过天王炸以外的任意至多四张牌，天王炸 6677 最大，可压过所有牌型。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 牌型 !! 示例 !! 说明&lt;br /&gt;
|-&lt;br /&gt;
| 单张 || 0～7 ||&lt;br /&gt;
|-&lt;br /&gt;
| 对子 || 00～55 ||&lt;br /&gt;
|-&lt;br /&gt;
| 顺子 || 012、0123 等 || 只能为3或4连，可以包含王牌6、7&lt;br /&gt;
|-&lt;br /&gt;
| 连对 || 0011、001122、00112233 等 || 2到4连，不能包含王牌6、7&lt;br /&gt;
|-&lt;br /&gt;
| 普通炸 || 000～555、0000～5555 等 || 3张以上数字相同&lt;br /&gt;
|-&lt;br /&gt;
| 连炸 || 000111、00001111、000111222 等 || 由数值连续、张数相同的普通炸构成&lt;br /&gt;
|-&lt;br /&gt;
| 王炸 || 66、77、6677 ||&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===胜利条件===&lt;br /&gt;
&lt;br /&gt;
* 任意玩家手牌数 ≤1 即获胜；&lt;br /&gt;
* 若牌堆耗尽且一轮完结，手牌数最少者胜。&lt;br /&gt;
** 若牌数相同，比较每人所持最大的一张手牌，其中最小的获胜（* 的大小视为介于 7 与 8 之间），相同时除去最大一张继续比较。&lt;br /&gt;
* 极端情况：任意玩家出牌阶段完成补牌后手牌全为癞子，直接获胜。&lt;br /&gt;
&lt;br /&gt;
[[分类:见闻]]{{DEFAULTSORT:{{SortPinyin|SB联{lian2}盟{meng2}牌{pai2} }}}}&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=%E7%94%A8%E6%88%B7:LynChern/Sandbox&amp;diff=2955</id>
		<title>用户:LynChern/Sandbox</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=%E7%94%A8%E6%88%B7:LynChern/Sandbox&amp;diff=2955"/>
		<updated>2026-04-20T11:13:27Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​导入92个版本&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Why is this page primarily written in  a non-English language?===&lt;br /&gt;
&lt;br /&gt;
A good reason for this is that the command keywords of this programming language consist mostly of Chinese characters, and its users are generally capable of recognizing Chinese. There are plans to release an English version of the language and its compiler in the future.&lt;br /&gt;
&lt;br /&gt;
===Talks===&lt;br /&gt;
&lt;br /&gt;
This article is a work in progress. If you wish to contact the author, please leave a message on [[User_talk:LynChern|my talk]] page to discuss this.&lt;br /&gt;
&lt;br /&gt;
===Authorization===&lt;br /&gt;
&lt;br /&gt;
The following users have been authorized to assist in modifying the contents of the sandbox. Please do not ban them by mistake.&lt;br /&gt;
&lt;br /&gt;
This authorization is not permanent; it will expire when this section is removed or when the users are removed from the list.&lt;br /&gt;
&lt;br /&gt;
* [[User:DGCK81LNN]]&lt;br /&gt;
&lt;br /&gt;
===The name of this language===&lt;br /&gt;
&lt;br /&gt;
Please note that the name of this language is &#039;&#039;&#039;not&#039;&#039;&#039; &amp;quot;xxx语&amp;quot;. In fact, this language does not have any official name yet. If you are using a translator, referring to this language as &amp;quot;XXX&amp;quot; is incorrect.&lt;br /&gt;
&lt;br /&gt;
===The stylistic characteristics of this language===&lt;br /&gt;
&lt;br /&gt;
Currently, the stylistic features of the language have not yet been finalized. Please note that &amp;quot;我是代码&amp;quot; is &#039;&#039;&#039;not&#039;&#039;&#039; actual code in this language; it is merely a placeholder indicating that the syntax is yet to be determined.&lt;br /&gt;
&lt;br /&gt;
===本文尚未完工！===&lt;br /&gt;
&lt;br /&gt;
该语言当前处于构想阶段，有较多内容还未完全确立。目前主要以概念形式表达，具体的语法正在设计。&lt;br /&gt;
&lt;br /&gt;
目前本文的书写方法有很多留空，这并不代表未来不会有具体的内容。&lt;br /&gt;
&lt;br /&gt;
===本文格式===&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 代表注释。在本文最终完工时，所有注释都会被移除。&lt;br /&gt;
&lt;br /&gt;
当注释被使用时，代表本段内容很可能在未来作出更改。&lt;br /&gt;
&lt;br /&gt;
=简介=&lt;br /&gt;
&lt;br /&gt;
xxx语是一门高级编程语言，声明式语言&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 是的，我们连名字都未想好&lt;br /&gt;
&lt;br /&gt;
==特点==&lt;br /&gt;
&lt;br /&gt;
==代码预览==&lt;br /&gt;
&lt;br /&gt;
=== [[Hello World]] ===&lt;br /&gt;
&lt;br /&gt;
 我是代码&lt;br /&gt;
&lt;br /&gt;
===图灵完备证明===&lt;br /&gt;
&lt;br /&gt;
该代码可以模拟一个[[]]，证明了本语言是图灵完备的。&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 这个章节不可能叫图灵完备证明，届时会更名为图灵机的名字。&lt;br /&gt;
&lt;br /&gt;
 我是代码&lt;br /&gt;
&lt;br /&gt;
=运行xxx语程序=&lt;br /&gt;
&lt;br /&gt;
要运行使用xxx语编写的程序，预期的用途是将源代码作为编译器的输入，从而被编译成可执行的目标语言的代码。&lt;br /&gt;
&lt;br /&gt;
==Python编译器==&lt;br /&gt;
&lt;br /&gt;
将Python视为机器码的编译器。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;[[解释器资源地址|Python实现]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 等待开发计划&lt;br /&gt;
&lt;br /&gt;
==[[WhatLang]]编译器==&lt;br /&gt;
&lt;br /&gt;
将WhatLang视为机器码的编译器。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;[[解释器资源地址|Python实现]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 等待开发计划&lt;br /&gt;
&lt;br /&gt;
==自编译器==&lt;br /&gt;
&lt;br /&gt;
使用xxx语表达编译器程序不是该语言的强项，实现有一定难度。在一段时间内，语言的设计者认为没有必要开发。&lt;br /&gt;
&lt;br /&gt;
=基本要素=&lt;br /&gt;
&lt;br /&gt;
让我们看一段xxx语[[#代码预览|代码]]。&lt;br /&gt;
&lt;br /&gt;
xxx语的代码可使用的字符包含了：所有ASCII可见字符(包含空格)及《通用汉字规范表》中的所有汉字。&lt;br /&gt;
&lt;br /&gt;
未指定字符所使用的编码。理论上允许使用上述字符集以外的字符作为代码的一部分，但可能发生未知的错误。&lt;br /&gt;
&lt;br /&gt;
xxx语的代码完全由以下这些要素构成：&lt;br /&gt;
&lt;br /&gt;
* 关键字&lt;br /&gt;
* 标识符&lt;br /&gt;
* 字面量&lt;br /&gt;
&lt;br /&gt;
xxx语的关键字包含了在其他语言中通常被称为运算符与结构符的词元。&lt;br /&gt;
&lt;br /&gt;
xxx语的代码是大小写敏感的，这意味着&amp;quot;&amp;quot;和&amp;quot;&amp;quot;不是同一个词元。&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 目前还未设计如何区分关键字与标识符。可能会像[[wenyan|文言]]一样标识符有统一的特殊的格式，也可能像Python一样非关键字就是标识符。&lt;br /&gt;
&lt;br /&gt;
==xxx语标识符==&lt;br /&gt;
&lt;br /&gt;
标识符是用来标识变量、函数、类、模块，或任何其他用户自定义项目的名称。&lt;br /&gt;
&lt;br /&gt;
xxx语的标识符的特点在于：&lt;br /&gt;
&lt;br /&gt;
* 第一点&lt;br /&gt;
* 第二点&lt;br /&gt;
* 第三点&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 额，我没设计好&lt;br /&gt;
&lt;br /&gt;
==xxx语关键字==&lt;br /&gt;
&lt;br /&gt;
下面列出了xxx语中的关键字。关键字承担着赋予代码明确语义的重要能力，是语言中的核心词元。你不能将其作为常量、变量、类或任何标识符的名称。&lt;br /&gt;
&lt;br /&gt;
这些词元的具体作用会在下文逐步揭示。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| entry a || entry b || entry c &lt;br /&gt;
|-&lt;br /&gt;
| entry a || entry b || entry c &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
下面列出了xxx语中的保留字。保留字是指在语言的发展中为未来可能会添加的新特性或语法结构而预先留出的词元。它们目前没有实际的语义功能，但为了保证代码在未来版本中的兼容性，你同样不能将保留字作为常量、变量、类或任何标识符的名称。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| entry a || entry b || entry c &lt;br /&gt;
|-&lt;br /&gt;
| entry a || entry b || entry c &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==xxx语字面量==&lt;br /&gt;
&lt;br /&gt;
&amp;gt; todo&lt;br /&gt;
&lt;br /&gt;
===转义符===&lt;br /&gt;
&lt;br /&gt;
=数据类型=&lt;br /&gt;
&lt;br /&gt;
xxx语中有多种数据类型&lt;br /&gt;
&lt;br /&gt;
xxx语是强类型的，它不支持自动类型转换。如果要转换类型，必须通过调用标准库函数等方法显式地将数据进行类型转换。&lt;br /&gt;
&lt;br /&gt;
==原子类型==&lt;br /&gt;
&lt;br /&gt;
===一、整型===&lt;br /&gt;
&lt;br /&gt;
xxx语实际上把整数存在你的计算机中的浮点寄存器中，所以实际上被当作浮点数看待。&lt;br /&gt;
int&lt;br /&gt;
bool&lt;br /&gt;
enum&lt;br /&gt;
&lt;br /&gt;
===二、浮点===&lt;br /&gt;
&lt;br /&gt;
float&lt;br /&gt;
&lt;br /&gt;
==结构类型==&lt;br /&gt;
&lt;br /&gt;
===三、数组===&lt;br /&gt;
&lt;br /&gt;
arrary&lt;br /&gt;
&lt;br /&gt;
===四、类===&lt;br /&gt;
&lt;br /&gt;
对象是类的实例&lt;br /&gt;
&lt;br /&gt;
&amp;gt; todo&lt;br /&gt;
&lt;br /&gt;
=声明与赋值=&lt;br /&gt;
&lt;br /&gt;
声明是告诉编译器，应该以何种方式读取或写入数据，并为存储数据做准备，这个动作被称为分配内存地址。赋值，是将具体的内容填充到声明时已经分配好的内存地址。在声明时，还需要设置标识符，这是称呼这份数据的名字；在赋值后，就可以通过直接使用标识符，指代其对应的数据。&lt;br /&gt;
&lt;br /&gt;
声明与赋值缺一不可，一个标识符只有在同时经历了声明和赋值之后，才能在代码中被正常使用。&lt;br /&gt;
&lt;br /&gt;
 我是代码&lt;br /&gt;
&lt;br /&gt;
在这行代码中，&amp;quot;&amp;quot;指明了数据类型，&amp;quot;&amp;quot;是具体的标识符，而&amp;quot;&amp;quot;则是赋予该标识符的数据。&lt;br /&gt;
&lt;br /&gt;
在声明时，如果不添加额外的关键字，那么在同一代码段内，你不能在下文再次声明或赋值同一个标识符，这样的数据也被称为常量。&#039;&#039;&#039;这意味着，xxx语默认声明的是常量。&#039;&#039;&#039;代码段的相关概念在后文介绍。&lt;br /&gt;
&lt;br /&gt;
你可以先声明，然后再赋值。例如：&lt;br /&gt;
&lt;br /&gt;
 我是代码&lt;br /&gt;
 我是代码&lt;br /&gt;
&lt;br /&gt;
上述的两种声明的写法都被称为显式声明。&lt;br /&gt;
&lt;br /&gt;
xxx语言支持自动类型推断。这意味着，你可以在不显式指明数据类型的情况下，直接给一个标识符赋值。编译器会根据赋给它的具体内容，自动推断出该标识符的数据类型并完成内存分配。这种写法也被称为隐式声明。&lt;br /&gt;
&lt;br /&gt;
例如：&lt;br /&gt;
&lt;br /&gt;
 我是代码&lt;br /&gt;
&lt;br /&gt;
在这行代码中，虽然我们没有写出代表整数类型的&amp;quot;&amp;quot;，但因为赋予的具体数据&amp;quot;&amp;quot;是一个整数，编译器就会自动将&amp;quot;&amp;quot;推断为整数类型。在实际效果上，它与 &amp;quot;&amp;quot; 是等价的。这种写法只是省去了指明数据类型，但不代表没有声明。这仍然是一行同时声明并赋值的代码。&lt;br /&gt;
&lt;br /&gt;
=注释=&lt;br /&gt;
&lt;br /&gt;
在计算机语言中，注释是计算机语言的一个重要组成部分，用于在源代码中解释代码的作用，可以增强程序的可读性、可维护性。&lt;br /&gt;
&lt;br /&gt;
xxx语注释是一种在xxx语程序中用于提供代码功能说明的文本。&lt;br /&gt;
&lt;br /&gt;
注释不会被编译器包含在最终的可执行文件中，因此不会对程序的运行结果产生任何影响。&lt;br /&gt;
&lt;br /&gt;
在程序中经常注释是良好的编程习惯，它们帮助程序员更容易地理解代码的用途和功能，并且在团队协作中非常有用。&lt;br /&gt;
&lt;br /&gt;
xxx语没有行内注释与多行注释之分，其写法如下：&lt;br /&gt;
&lt;br /&gt;
 我是代码&lt;br /&gt;
&lt;br /&gt;
或者&lt;br /&gt;
&lt;br /&gt;
 我是代码&lt;br /&gt;
&lt;br /&gt;
其中，&amp;quot;&amp;quot;被称为注释的文本。&lt;br /&gt;
&lt;br /&gt;
xxx语与其他编程语言不同，注释是需要关键字才能表达的。这是该语言的特色之一。&lt;br /&gt;
&lt;br /&gt;
=代码段=&lt;br /&gt;
&lt;br /&gt;
代码段是xxx语的核心概念，也是该语言的特色之一。&lt;br /&gt;
&lt;br /&gt;
代码段的写法如下：&lt;br /&gt;
&lt;br /&gt;
 我是代码&lt;br /&gt;
     ...&lt;br /&gt;
 &lt;br /&gt;
 我是代码&lt;br /&gt;
&lt;br /&gt;
=引入=&lt;br /&gt;
&lt;br /&gt;
=函数=&lt;br /&gt;
&lt;br /&gt;
==普通函数==&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 普通函数的创建方法要卸载这儿&lt;br /&gt;
&lt;br /&gt;
===调用普通函数===&lt;br /&gt;
&lt;br /&gt;
===使用标准库中的函数===&lt;br /&gt;
&lt;br /&gt;
==偏函数==&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 本章内容未进行严格的论证，未确定具体的副作用&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 此处应该写如何把普通函数包装成偏函数对象&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 偏函数有一些实验性语法还未进行严格的论证，比如将偏函数作为一等公民的想法还在策划&lt;br /&gt;
&lt;br /&gt;
===调用偏函数===&lt;br /&gt;
&lt;br /&gt;
==返回值函数==&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 本章内容未进行严格的论证，未确定具体的副作用&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 此处应该写如何将普通函数或偏函数包装成返回值函数，以及形成返回值函数的各种限制&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 此处会提到表达式中可以使用返回值函数&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=表达式=&lt;br /&gt;
&lt;br /&gt;
=分支=&lt;br /&gt;
&lt;br /&gt;
=变量=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 本章内容未进行严格的论证，未确定具体的副作用&lt;br /&gt;
&lt;br /&gt;
=循环=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 本章内容未进行严格的论证，未确定具体的副作用&lt;br /&gt;
&lt;br /&gt;
=面向对象=&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 本章内容未进行严格的论证，未确定具体的副作用&lt;br /&gt;
&lt;br /&gt;
概念：&lt;br /&gt;
&lt;br /&gt;
* 对象&lt;br /&gt;
* 类&lt;br /&gt;
* 结构&lt;br /&gt;
* 方法&lt;br /&gt;
&lt;br /&gt;
继承&lt;br /&gt;
改写&lt;br /&gt;
&lt;br /&gt;
=错误处理=&lt;br /&gt;
&lt;br /&gt;
=约定=&lt;br /&gt;
&lt;br /&gt;
该语言本身不具备某种数据结构，这是鼓励程序员自己实现。&lt;br /&gt;
&lt;br /&gt;
不过，这里提出了一些约定配合标准库实现了一些其他语言常见的数据结构。&lt;br /&gt;
&lt;br /&gt;
==带参数的排序==&lt;br /&gt;
&lt;br /&gt;
==字典==&lt;br /&gt;
&lt;br /&gt;
=里面有什么？=&lt;br /&gt;
&lt;br /&gt;
&amp;gt; todo&lt;br /&gt;
&lt;br /&gt;
本章介绍编译器在编译时内部会发生什么。&lt;br /&gt;
&lt;br /&gt;
==内存布局==&lt;br /&gt;
&lt;br /&gt;
编译后的可执行文件在内存中的布局只包含&#039;&#039;&#039;代码区&#039;&#039;&#039;和&#039;&#039;&#039;栈区&#039;&#039;&#039;，这是该语言的特色之一。&lt;br /&gt;
&lt;br /&gt;
==影子栈==&lt;br /&gt;
&lt;br /&gt;
xxx语言刻意向程序员隐藏了生命周期的概念。&lt;br /&gt;
&lt;br /&gt;
这为内存安全的特性保驾护航。&lt;br /&gt;
&lt;br /&gt;
=外部资源=&lt;br /&gt;
&lt;br /&gt;
=分类=&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=%E7%94%A8%E6%88%B7:LynChern/Sandbox&amp;diff=2954</id>
		<title>用户:LynChern/Sandbox</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=%E7%94%A8%E6%88%B7:LynChern/Sandbox&amp;diff=2954"/>
		<updated>2026-04-20T11:02:09Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Why is this page primarily written in  a non-English language?===&lt;br /&gt;
&lt;br /&gt;
A good reason for this is that the command keywords of this programming language consist mostly of Chinese characters, and its users are generally capable of recognizing Chinese. There are plans to release an English version of the language and its compiler in the future.&lt;br /&gt;
&lt;br /&gt;
===Talks===&lt;br /&gt;
&lt;br /&gt;
This article is a work in progress. If you wish to contact the author, please leave a message on [[User_talk:LynChern|my talk]] page to discuss this.&lt;br /&gt;
&lt;br /&gt;
===Authorization===&lt;br /&gt;
&lt;br /&gt;
The following users have been authorized to assist in modifying the contents of the sandbox. Please do not ban them by mistake.&lt;br /&gt;
&lt;br /&gt;
This authorization is not permanent; it will expire when this section is removed or when the users are removed from the list.&lt;br /&gt;
&lt;br /&gt;
* [[User:DGCK81LNN]]&lt;br /&gt;
&lt;br /&gt;
===The name of this language===&lt;br /&gt;
&lt;br /&gt;
Please note that the name of this language is &#039;&#039;&#039;not&#039;&#039;&#039; &amp;quot;xxx语&amp;quot;. In fact, this language does not have any official name yet. If you are using a translator, referring to this language as &amp;quot;XXX&amp;quot; is incorrect.&lt;br /&gt;
&lt;br /&gt;
===The stylistic characteristics of this language===&lt;br /&gt;
&lt;br /&gt;
Currently, the stylistic features of the language have not yet been finalized. Please note that &amp;quot;我是代码&amp;quot; is &#039;&#039;&#039;not&#039;&#039;&#039; actual code in this language; it is merely a placeholder indicating that the syntax is yet to be determined.&lt;br /&gt;
&lt;br /&gt;
===本文尚未完工！===&lt;br /&gt;
&lt;br /&gt;
该语言当前处于构想阶段，有较多内容还未完全确立。目前主要以概念形式表达，具体的语法正在设计。&lt;br /&gt;
&lt;br /&gt;
目前本文的书写方法有很多留空，这并不代表未来不会有具体的内容。&lt;br /&gt;
&lt;br /&gt;
===本文格式===&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 代表注释。在本文最终完工时，所有注释都会被移除。&lt;br /&gt;
&lt;br /&gt;
当注释被使用时，代表本段内容很可能在未来作出更改。&lt;br /&gt;
&lt;br /&gt;
=简介=&lt;br /&gt;
&lt;br /&gt;
xxx语是一门高级编程语言，声明式语言&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 是的，我们连名字都未想好&lt;br /&gt;
&lt;br /&gt;
==特点==&lt;br /&gt;
&lt;br /&gt;
==代码预览==&lt;br /&gt;
&lt;br /&gt;
=== [[Hello World]] ===&lt;br /&gt;
&lt;br /&gt;
 我是代码&lt;br /&gt;
&lt;br /&gt;
===图灵完备证明===&lt;br /&gt;
&lt;br /&gt;
该代码可以模拟一个[[]]，证明了本语言是图灵完备的。&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 这个章节不可能叫图灵完备证明，届时会更名为图灵机的名字。&lt;br /&gt;
&lt;br /&gt;
 我是代码&lt;br /&gt;
&lt;br /&gt;
=运行xxx语程序=&lt;br /&gt;
&lt;br /&gt;
要运行使用xxx语编写的程序，预期的用途是将源代码作为编译器的输入，从而被编译成可执行的目标语言的代码。&lt;br /&gt;
&lt;br /&gt;
==Python编译器==&lt;br /&gt;
&lt;br /&gt;
将Python视为机器码的编译器。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;[[解释器资源地址|Python实现]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 等待开发计划&lt;br /&gt;
&lt;br /&gt;
==[[WhatLang]]编译器==&lt;br /&gt;
&lt;br /&gt;
将WhatLang视为机器码的编译器。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;[[解释器资源地址|Python实现]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 等待开发计划&lt;br /&gt;
&lt;br /&gt;
==自编译器==&lt;br /&gt;
&lt;br /&gt;
使用xxx语表达编译器程序不是该语言的强项，实现有一定难度。在一段时间内，语言的设计者认为没有必要开发。&lt;br /&gt;
&lt;br /&gt;
=基本要素=&lt;br /&gt;
&lt;br /&gt;
让我们看一段xxx语[[#代码预览|代码]]。&lt;br /&gt;
&lt;br /&gt;
xxx语的代码可使用的字符包含了：所有ASCII可见字符(包含空格)及《通用汉字规范表》中的所有汉字。&lt;br /&gt;
&lt;br /&gt;
未指定字符所使用的编码。理论上允许使用上述字符集以外的字符作为代码的一部分，但可能发生未知的错误。&lt;br /&gt;
&lt;br /&gt;
xxx语的代码完全由以下这些要素构成：&lt;br /&gt;
&lt;br /&gt;
* 关键字&lt;br /&gt;
* 标识符&lt;br /&gt;
* 字面量&lt;br /&gt;
&lt;br /&gt;
xxx语的关键字包含了在其他语言中通常被称为运算符与结构符的词元。&lt;br /&gt;
&lt;br /&gt;
xxx语的代码是大小写敏感的，这意味着&amp;quot;&amp;quot;和&amp;quot;&amp;quot;不是同一个词元。&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 目前还未设计如何区分关键字与标识符。可能会像[[wenyan|文言]]一样标识符有统一的特殊的格式，也可能像Python一样非关键字就是标识符。&lt;br /&gt;
&lt;br /&gt;
==xxx语标识符==&lt;br /&gt;
&lt;br /&gt;
标识符是用来标识变量、函数、类、模块，或任何其他用户自定义项目的名称。&lt;br /&gt;
&lt;br /&gt;
xxx语的标识符的特点在于：&lt;br /&gt;
&lt;br /&gt;
* 第一点&lt;br /&gt;
* 第二点&lt;br /&gt;
* 第三点&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 额，我没设计好&lt;br /&gt;
&lt;br /&gt;
==xxx语关键字==&lt;br /&gt;
&lt;br /&gt;
下面列出了xxx语中的关键字。关键字承担着赋予代码明确语义的重要能力，是语言中的核心词元。你不能将其作为常量、变量、类或任何标识符的名称。&lt;br /&gt;
&lt;br /&gt;
这些词元的具体作用会在下文逐步揭示。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| entry a || entry b || entry c &lt;br /&gt;
|-&lt;br /&gt;
| entry a || entry b || entry c &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
下面列出了xxx语中的保留字。保留字是指在语言的发展中为未来可能会添加的新特性或语法结构而预先留出的词元。它们目前没有实际的语义功能，但为了保证代码在未来版本中的兼容性，你同样不能将保留字作为常量、变量、类或任何标识符的名称。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| entry a || entry b || entry c &lt;br /&gt;
|-&lt;br /&gt;
| entry a || entry b || entry c &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==xxx语字面量==&lt;br /&gt;
&lt;br /&gt;
&amp;gt; todo&lt;br /&gt;
&lt;br /&gt;
===转义符===&lt;br /&gt;
&lt;br /&gt;
=数据类型=&lt;br /&gt;
&lt;br /&gt;
xxx语中有多种数据类型&lt;br /&gt;
&lt;br /&gt;
xxx语是强类型的，它不支持自动类型转换。如果要转换类型，必须通过调用标准库函数等方法显式地将数据进行类型转换。&lt;br /&gt;
&lt;br /&gt;
==原子类型==&lt;br /&gt;
&lt;br /&gt;
===一、整型===&lt;br /&gt;
&lt;br /&gt;
xxx语实际上把整数存在你的计算机中的浮点寄存器中，所以实际上被当作浮点数看待。&lt;br /&gt;
int&lt;br /&gt;
bool&lt;br /&gt;
enum&lt;br /&gt;
&lt;br /&gt;
===二、浮点===&lt;br /&gt;
&lt;br /&gt;
float&lt;br /&gt;
&lt;br /&gt;
==结构类型==&lt;br /&gt;
&lt;br /&gt;
===三、数组===&lt;br /&gt;
&lt;br /&gt;
arrary&lt;br /&gt;
&lt;br /&gt;
===四、类===&lt;br /&gt;
&lt;br /&gt;
对象是类的实例&lt;br /&gt;
&lt;br /&gt;
&amp;gt; todo&lt;br /&gt;
&lt;br /&gt;
=声明与赋值=&lt;br /&gt;
&lt;br /&gt;
声明是告诉编译器，应该以何种方式读取或写入数据，并为存储数据做准备，这个动作被称为分配内存地址。赋值，是将具体的内容填充到声明时已经分配好的内存地址。在声明时，还需要设置标识符，这是称呼这份数据的名字；在赋值后，就可以通过直接使用标识符，指代其对应的数据。&lt;br /&gt;
&lt;br /&gt;
声明与赋值缺一不可，一个标识符只有在同时经历了声明和赋值之后，才能在代码中被正常使用。&lt;br /&gt;
&lt;br /&gt;
 我是代码&lt;br /&gt;
&lt;br /&gt;
在这行代码中，&amp;quot;&amp;quot;指明了数据类型，&amp;quot;&amp;quot;是具体的标识符，而&amp;quot;&amp;quot;则是赋予该标识符的数据。&lt;br /&gt;
&lt;br /&gt;
在声明时，如果不添加额外的关键字，那么在同一代码段内，你不能在下文再次声明或赋值同一个标识符，这样的数据也被称为常量。&#039;&#039;&#039;这意味着，xxx语默认声明的是常量。&#039;&#039;&#039;代码段的相关概念在后文介绍。&lt;br /&gt;
&lt;br /&gt;
你可以先声明，然后再赋值。例如：&lt;br /&gt;
&lt;br /&gt;
 我是代码&lt;br /&gt;
 我是代码&lt;br /&gt;
&lt;br /&gt;
上述的两种声明的写法都被称为显式声明。&lt;br /&gt;
&lt;br /&gt;
xxx语言支持自动类型推断。这意味着，你可以在不显式指明数据类型的情况下，直接给一个标识符赋值。编译器会根据赋给它的具体内容，自动推断出该标识符的数据类型并完成内存分配。这种写法也被称为隐式声明。&lt;br /&gt;
&lt;br /&gt;
例如：&lt;br /&gt;
&lt;br /&gt;
 我是代码&lt;br /&gt;
&lt;br /&gt;
在这行代码中，虽然我们没有写出代表整数类型的&amp;quot;&amp;quot;，但因为赋予的具体数据&amp;quot;&amp;quot;是一个整数，编译器就会自动将&amp;quot;&amp;quot;推断为整数类型。在实际效果上，它与 &amp;quot;&amp;quot; 是等价的。这种写法只是省去了指明数据类型，但不代表没有声明。这仍然是一行同时声明并赋值的代码。&lt;br /&gt;
&lt;br /&gt;
=注释=&lt;br /&gt;
&lt;br /&gt;
在计算机语言中，注释是计算机语言的一个重要组成部分，用于在源代码中解释代码的作用，可以增强程序的可读性、可维护性。&lt;br /&gt;
&lt;br /&gt;
xxx语注释是一种在xxx语程序中用于提供代码功能说明的文本。&lt;br /&gt;
&lt;br /&gt;
注释不会被编译器包含在最终的可执行文件中，因此不会对程序的运行结果产生任何影响。&lt;br /&gt;
&lt;br /&gt;
在程序中经常注释是良好的编程习惯，它们帮助程序员更容易地理解代码的用途和功能，并且在团队协作中非常有用。&lt;br /&gt;
&lt;br /&gt;
xxx语没有行内注释与多行注释之分，其写法如下：&lt;br /&gt;
&lt;br /&gt;
 我是代码&lt;br /&gt;
&lt;br /&gt;
或者&lt;br /&gt;
&lt;br /&gt;
 我是代码&lt;br /&gt;
&lt;br /&gt;
其中，&amp;quot;&amp;quot;被称为注释的文本。&lt;br /&gt;
&lt;br /&gt;
xxx语与其他编程语言不同，注释是需要关键字才能表达的。这是该语言的特色之一。&lt;br /&gt;
&lt;br /&gt;
=代码段=&lt;br /&gt;
&lt;br /&gt;
代码段是xxx语的核心概念，也是该语言的特色之一。&lt;br /&gt;
&lt;br /&gt;
代码段的写法如下：&lt;br /&gt;
&lt;br /&gt;
 我是代码&lt;br /&gt;
     ...&lt;br /&gt;
 &lt;br /&gt;
 我是代码&lt;br /&gt;
&lt;br /&gt;
=引入=&lt;br /&gt;
&lt;br /&gt;
=函数=&lt;br /&gt;
&lt;br /&gt;
==普通函数==&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 普通函数的创建方法要卸载这儿&lt;br /&gt;
&lt;br /&gt;
===调用普通函数===&lt;br /&gt;
&lt;br /&gt;
===使用标准库中的函数===&lt;br /&gt;
&lt;br /&gt;
==偏函数==&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 本章内容未进行严格的论证，未确定具体的副作用&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 此处应该写如何把普通函数包装成偏函数对象&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 偏函数有一些实验性语法还未进行严格的论证，比如将偏函数作为一等公民的想法还在策划&lt;br /&gt;
&lt;br /&gt;
===调用偏函数===&lt;br /&gt;
&lt;br /&gt;
==返回值函数==&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 本章内容未进行严格的论证，未确定具体的副作用&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 此处应该写如何将普通函数或偏函数包装成返回值函数，以及形成返回值函数的各种限制&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 此处会提到表达式中可以使用返回值函数&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=表达式=&lt;br /&gt;
&lt;br /&gt;
=分支=&lt;br /&gt;
&lt;br /&gt;
=变量=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 本章内容未进行严格的论证，未确定具体的副作用&lt;br /&gt;
&lt;br /&gt;
=循环=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 本章内容未进行严格的论证，未确定具体的副作用&lt;br /&gt;
&lt;br /&gt;
=面向对象=&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 本章内容未进行严格的论证，未确定具体的副作用&lt;br /&gt;
&lt;br /&gt;
概念：&lt;br /&gt;
&lt;br /&gt;
* 对象&lt;br /&gt;
* 类&lt;br /&gt;
* 结构&lt;br /&gt;
* 方法&lt;br /&gt;
&lt;br /&gt;
继承&lt;br /&gt;
改写&lt;br /&gt;
&lt;br /&gt;
=错误处理=&lt;br /&gt;
&lt;br /&gt;
=约定=&lt;br /&gt;
&lt;br /&gt;
该语言本身不具备某种数据结构，这是鼓励程序员自己实现。&lt;br /&gt;
&lt;br /&gt;
不过，这里提出了一些约定配合标准库实现了一些其他语言常见的数据结构。&lt;br /&gt;
&lt;br /&gt;
==带参数的排序==&lt;br /&gt;
&lt;br /&gt;
==字典==&lt;br /&gt;
&lt;br /&gt;
=里面有什么？=&lt;br /&gt;
&lt;br /&gt;
&amp;gt; todo&lt;br /&gt;
&lt;br /&gt;
本章介绍编译器在编译时内部会发生什么。&lt;br /&gt;
&lt;br /&gt;
==内存布局==&lt;br /&gt;
&lt;br /&gt;
编译后的可执行文件在内存中的布局只包含&#039;&#039;&#039;代码区&#039;&#039;&#039;和&#039;&#039;&#039;栈区&#039;&#039;&#039;，这是该语言的特色之一。&lt;br /&gt;
&lt;br /&gt;
==影子栈==&lt;br /&gt;
&lt;br /&gt;
xxx语言刻意向程序员隐藏了生命周期的概念。&lt;br /&gt;
&lt;br /&gt;
这为内存安全的特性保驾护航。&lt;br /&gt;
&lt;br /&gt;
=外部资源=&lt;br /&gt;
&lt;br /&gt;
=分类=&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
	<entry>
		<id>https://notblog.vudrux.site/index.php?title=%E7%94%A8%E6%88%B7:LynChern/Sandbox&amp;diff=2953</id>
		<title>用户:LynChern/Sandbox</title>
		<link rel="alternate" type="text/html" href="https://notblog.vudrux.site/index.php?title=%E7%94%A8%E6%88%B7:LynChern/Sandbox&amp;diff=2953"/>
		<updated>2026-04-20T10:59:18Z</updated>

		<summary type="html">&lt;p&gt;DGCK81LNN：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Why is this page primarily written in  a non-English language?===&lt;br /&gt;
&lt;br /&gt;
A good reason for this is that the command keywords of this programming language consist mostly of Chinese characters, and its users are generally capable of recognizing Chinese. There are plans to release an English version of the language and its compiler in the future.&lt;br /&gt;
&lt;br /&gt;
===Talks===&lt;br /&gt;
&lt;br /&gt;
This article is a work in progress. If you wish to contact the author, please leave a message on [[User_talk:LynChern|my talk]] page to discuss this.&lt;br /&gt;
&lt;br /&gt;
===Authorization===&lt;br /&gt;
&lt;br /&gt;
The following users have been authorized to assist in modifying the contents of the sandbox. Please do not ban them by mistake.&lt;br /&gt;
&lt;br /&gt;
This authorization is not permanent; it will expire when this section is removed or when the users are removed from the list.&lt;br /&gt;
&lt;br /&gt;
* [[User:DGCK81LNN]]&lt;br /&gt;
&lt;br /&gt;
===The name of this language===&lt;br /&gt;
&lt;br /&gt;
Please note that the name of this language is &#039;&#039;&#039;not&#039;&#039;&#039; &amp;quot;xxx语&amp;quot;. In fact, this language does not have any official name yet. If you are using a translator, referring to this language as &amp;quot;XXX&amp;quot; is incorrect.&lt;br /&gt;
&lt;br /&gt;
===The stylistic characteristics of this language===&lt;br /&gt;
&lt;br /&gt;
Currently, the stylistic features of the language have not yet been finalized. Please note that &amp;quot;我是代码&amp;quot; is &#039;&#039;&#039;not&#039;&#039;&#039; actual code in this language; it is merely a placeholder indicating that the syntax is yet to be decided.&lt;br /&gt;
&lt;br /&gt;
===本文尚未完工！===&lt;br /&gt;
&lt;br /&gt;
该语言当前处于构想阶段，有较多内容还未完全确立。目前主要以概念形式表达，具体的语法正在设计。&lt;br /&gt;
&lt;br /&gt;
目前本文的书写方法有很多留空，这并不代表未来不会有具体的内容。&lt;br /&gt;
&lt;br /&gt;
===本文格式===&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 代表注释。在本文最终完工时，所有注释都会被移除。&lt;br /&gt;
&lt;br /&gt;
当注释被使用时，代表本段内容很可能在未来作出更改。&lt;br /&gt;
&lt;br /&gt;
=简介=&lt;br /&gt;
&lt;br /&gt;
xxx语是一门高级编程语言，声明式语言&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 是的，我们连名字都未想好&lt;br /&gt;
&lt;br /&gt;
==特点==&lt;br /&gt;
&lt;br /&gt;
==代码预览==&lt;br /&gt;
&lt;br /&gt;
=== [[Hello World]] ===&lt;br /&gt;
&lt;br /&gt;
 我是代码&lt;br /&gt;
&lt;br /&gt;
===图灵完备证明===&lt;br /&gt;
&lt;br /&gt;
该代码可以模拟一个[[]]，证明了本语言是图灵完备的。&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 这个章节不可能叫图灵完备证明，届时会更名为图灵机的名字。&lt;br /&gt;
&lt;br /&gt;
 我是代码&lt;br /&gt;
&lt;br /&gt;
=运行xxx语程序=&lt;br /&gt;
&lt;br /&gt;
要运行使用xxx语编写的程序，预期的用途是将源代码作为编译器的输入，从而被编译成可执行的目标语言的代码。&lt;br /&gt;
&lt;br /&gt;
==Python编译器==&lt;br /&gt;
&lt;br /&gt;
将Python视为机器码的编译器。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;[[解释器资源地址|Python实现]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 等待开发计划&lt;br /&gt;
&lt;br /&gt;
==[[WhatLang]]编译器==&lt;br /&gt;
&lt;br /&gt;
将WhatLang视为机器码的编译器。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;[[解释器资源地址|Python实现]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 等待开发计划&lt;br /&gt;
&lt;br /&gt;
==自编译器==&lt;br /&gt;
&lt;br /&gt;
使用xxx语表达编译器程序不是该语言的强项，实现有一定难度。在一段时间内，语言的设计者认为没有必要开发。&lt;br /&gt;
&lt;br /&gt;
=基本要素=&lt;br /&gt;
&lt;br /&gt;
让我们看一段xxx语[[#代码预览|代码]]。&lt;br /&gt;
&lt;br /&gt;
xxx语的代码可使用的字符包含了：所有ASCII可见字符(包含空格)及《通用汉字规范表》中的所有汉字。&lt;br /&gt;
&lt;br /&gt;
未指定字符所使用的编码。理论上允许使用上述字符集以外的字符作为代码的一部分，但可能发生未知的错误。&lt;br /&gt;
&lt;br /&gt;
xxx语的代码完全由以下这些要素构成：&lt;br /&gt;
&lt;br /&gt;
* 关键字&lt;br /&gt;
* 标识符&lt;br /&gt;
* 字面量&lt;br /&gt;
&lt;br /&gt;
xxx语的关键字包含了在其他语言中通常被称为运算符与结构符的词元。&lt;br /&gt;
&lt;br /&gt;
xxx语的代码是大小写敏感的，这意味着&amp;quot;&amp;quot;和&amp;quot;&amp;quot;不是同一个词元。&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 目前还未设计如何区分关键字与标识符。可能会像[[wenyan|文言]]一样标识符有统一的特殊的格式，也可能像Python一样非关键字就是标识符。&lt;br /&gt;
&lt;br /&gt;
==xxx语标识符==&lt;br /&gt;
&lt;br /&gt;
标识符是用来标识变量、函数、类、模块，或任何其他用户自定义项目的名称。&lt;br /&gt;
&lt;br /&gt;
xxx语的标识符的特点在于：&lt;br /&gt;
&lt;br /&gt;
* 第一点&lt;br /&gt;
* 第二点&lt;br /&gt;
* 第三点&lt;br /&gt;
* ...&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 额，我没设计好&lt;br /&gt;
&lt;br /&gt;
==xxx语关键字==&lt;br /&gt;
&lt;br /&gt;
下面列出了xxx语中的关键字。关键字承担着赋予代码明确语义的重要能力，是语言中的核心词元。你不能将其作为常量、变量、类或任何标识符的名称。&lt;br /&gt;
&lt;br /&gt;
这些词元的具体作用会在下文逐步揭示。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| entry a || entry b || entry c &lt;br /&gt;
|-&lt;br /&gt;
| entry a || entry b || entry c &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
下面列出了xxx语中的保留字。保留字是指在语言的发展中为未来可能会添加的新特性或语法结构而预先留出的词元。它们目前没有实际的语义功能，但为了保证代码在未来版本中的兼容性，你同样不能将保留字作为常量、变量、类或任何标识符的名称。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| entry a || entry b || entry c &lt;br /&gt;
|-&lt;br /&gt;
| entry a || entry b || entry c &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==xxx语字面量==&lt;br /&gt;
&lt;br /&gt;
&amp;gt; todo&lt;br /&gt;
&lt;br /&gt;
===转义符===&lt;br /&gt;
&lt;br /&gt;
=数据类型=&lt;br /&gt;
&lt;br /&gt;
xxx语中有多种数据类型&lt;br /&gt;
&lt;br /&gt;
xxx语是强类型的，它不支持自动类型转换。如果要转换类型，必须通过调用标准库函数等方法显式地将数据进行类型转换。&lt;br /&gt;
&lt;br /&gt;
==原子类型==&lt;br /&gt;
&lt;br /&gt;
===一、整型===&lt;br /&gt;
&lt;br /&gt;
xxx语实际上把整数存在你的计算机中的浮点寄存器中，所以实际上被当作浮点数看待。&lt;br /&gt;
int&lt;br /&gt;
bool&lt;br /&gt;
enum&lt;br /&gt;
&lt;br /&gt;
===二、浮点===&lt;br /&gt;
&lt;br /&gt;
float&lt;br /&gt;
&lt;br /&gt;
==结构类型==&lt;br /&gt;
&lt;br /&gt;
===三、数组===&lt;br /&gt;
&lt;br /&gt;
arrary&lt;br /&gt;
&lt;br /&gt;
===四、类===&lt;br /&gt;
&lt;br /&gt;
对象是类的实例&lt;br /&gt;
&lt;br /&gt;
&amp;gt; todo&lt;br /&gt;
&lt;br /&gt;
=声明与赋值=&lt;br /&gt;
&lt;br /&gt;
声明是告诉编译器，应该以何种方式读取或写入数据，并为存储数据做准备，这个动作被称为分配内存地址。赋值，是将具体的内容填充到声明时已经分配好的内存地址。在声明时，还需要设置标识符，这是称呼这份数据的名字；在赋值后，就可以通过直接使用标识符，指代其对应的数据。&lt;br /&gt;
&lt;br /&gt;
声明与赋值缺一不可，一个标识符只有在同时经历了声明和赋值之后，才能在代码中被正常使用。&lt;br /&gt;
&lt;br /&gt;
 我是代码&lt;br /&gt;
&lt;br /&gt;
在这行代码中，&amp;quot;&amp;quot;指明了数据类型，&amp;quot;&amp;quot;是具体的标识符，而&amp;quot;&amp;quot;则是赋予该标识符的数据。&lt;br /&gt;
&lt;br /&gt;
在声明时，如果不添加额外的关键字，那么在同一代码段内，你不能在下文再次声明或赋值同一个标识符，这样的数据也被称为常量。&#039;&#039;&#039;这意味着，xxx语默认声明的是常量。&#039;&#039;&#039;代码段的相关概念在后文介绍。&lt;br /&gt;
&lt;br /&gt;
你可以先声明，然后再赋值。例如：&lt;br /&gt;
&lt;br /&gt;
 我是代码&lt;br /&gt;
 我是代码&lt;br /&gt;
&lt;br /&gt;
上述的两种声明的写法都被称为显式声明。&lt;br /&gt;
&lt;br /&gt;
xxx语言支持自动类型推断。这意味着，你可以在不显式指明数据类型的情况下，直接给一个标识符赋值。编译器会根据赋给它的具体内容，自动推断出该标识符的数据类型并完成内存分配。这种写法也被称为隐式声明。&lt;br /&gt;
&lt;br /&gt;
例如：&lt;br /&gt;
&lt;br /&gt;
 我是代码&lt;br /&gt;
&lt;br /&gt;
在这行代码中，虽然我们没有写出代表整数类型的&amp;quot;&amp;quot;，但因为赋予的具体数据&amp;quot;&amp;quot;是一个整数，编译器就会自动将&amp;quot;&amp;quot;推断为整数类型。在实际效果上，它与 &amp;quot;&amp;quot; 是等价的。这种写法只是省去了指明数据类型，但不代表没有声明。这仍然是一行同时声明并赋值的代码。&lt;br /&gt;
&lt;br /&gt;
=注释=&lt;br /&gt;
&lt;br /&gt;
在计算机语言中，注释是计算机语言的一个重要组成部分，用于在源代码中解释代码的作用，可以增强程序的可读性、可维护性。&lt;br /&gt;
&lt;br /&gt;
xxx语注释是一种在xxx语程序中用于提供代码功能说明的文本。&lt;br /&gt;
&lt;br /&gt;
注释不会被编译器包含在最终的可执行文件中，因此不会对程序的运行结果产生任何影响。&lt;br /&gt;
&lt;br /&gt;
在程序中经常注释是良好的编程习惯，它们帮助程序员更容易地理解代码的用途和功能，并且在团队协作中非常有用。&lt;br /&gt;
&lt;br /&gt;
xxx语没有行内注释与多行注释之分，其写法如下：&lt;br /&gt;
&lt;br /&gt;
 我是代码&lt;br /&gt;
&lt;br /&gt;
或者&lt;br /&gt;
&lt;br /&gt;
 我是代码&lt;br /&gt;
&lt;br /&gt;
其中，&amp;quot;&amp;quot;被称为注释的文本。&lt;br /&gt;
&lt;br /&gt;
xxx语与其他编程语言不同，注释是需要关键字才能表达的。这是该语言的特色之一。&lt;br /&gt;
&lt;br /&gt;
=代码段=&lt;br /&gt;
&lt;br /&gt;
代码段是xxx语的核心概念，也是该语言的特色之一。&lt;br /&gt;
&lt;br /&gt;
代码段的写法如下：&lt;br /&gt;
&lt;br /&gt;
 我是代码&lt;br /&gt;
     ...&lt;br /&gt;
 &lt;br /&gt;
 我是代码&lt;br /&gt;
&lt;br /&gt;
=引入=&lt;br /&gt;
&lt;br /&gt;
=函数=&lt;br /&gt;
&lt;br /&gt;
==普通函数==&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 普通函数的创建方法要卸载这儿&lt;br /&gt;
&lt;br /&gt;
===调用普通函数===&lt;br /&gt;
&lt;br /&gt;
===使用标准库中的函数===&lt;br /&gt;
&lt;br /&gt;
==偏函数==&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 本章内容未进行严格的论证，未确定具体的副作用&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 此处应该写如何把普通函数包装成偏函数对象&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 偏函数有一些实验性语法还未进行严格的论证，比如将偏函数作为一等公民的想法还在策划&lt;br /&gt;
&lt;br /&gt;
===调用偏函数===&lt;br /&gt;
&lt;br /&gt;
==返回值函数==&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 本章内容未进行严格的论证，未确定具体的副作用&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 此处应该写如何将普通函数或偏函数包装成返回值函数，以及形成返回值函数的各种限制&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 此处会提到表达式中可以使用返回值函数&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=表达式=&lt;br /&gt;
&lt;br /&gt;
=分支=&lt;br /&gt;
&lt;br /&gt;
=变量=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 本章内容未进行严格的论证，未确定具体的副作用&lt;br /&gt;
&lt;br /&gt;
=循环=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 本章内容未进行严格的论证，未确定具体的副作用&lt;br /&gt;
&lt;br /&gt;
=面向对象=&lt;br /&gt;
&lt;br /&gt;
&amp;gt; 本章内容未进行严格的论证，未确定具体的副作用&lt;br /&gt;
&lt;br /&gt;
概念：&lt;br /&gt;
&lt;br /&gt;
* 对象&lt;br /&gt;
* 类&lt;br /&gt;
* 结构&lt;br /&gt;
* 方法&lt;br /&gt;
&lt;br /&gt;
继承&lt;br /&gt;
改写&lt;br /&gt;
&lt;br /&gt;
=错误处理=&lt;br /&gt;
&lt;br /&gt;
=约定=&lt;br /&gt;
&lt;br /&gt;
该语言本身不具备某种数据结构，这是鼓励程序员自己实现。&lt;br /&gt;
&lt;br /&gt;
不过，这里提出了一些约定配合标准库实现了一些其他语言常见的数据结构。&lt;br /&gt;
&lt;br /&gt;
==带参数的排序==&lt;br /&gt;
&lt;br /&gt;
==字典==&lt;br /&gt;
&lt;br /&gt;
=里面有什么？=&lt;br /&gt;
&lt;br /&gt;
&amp;gt; todo&lt;br /&gt;
&lt;br /&gt;
本章介绍编译器在编译时内部会发生什么。&lt;br /&gt;
&lt;br /&gt;
==内存布局==&lt;br /&gt;
&lt;br /&gt;
编译后的可执行文件在内存中的布局只包含&#039;&#039;&#039;代码区&#039;&#039;&#039;和&#039;&#039;&#039;栈区&#039;&#039;&#039;，这是该语言的特色之一。&lt;br /&gt;
&lt;br /&gt;
==影子栈==&lt;br /&gt;
&lt;br /&gt;
xxx语言刻意向程序员隐藏了生命周期的概念。&lt;br /&gt;
&lt;br /&gt;
这为内存安全的特性保驾护航。&lt;br /&gt;
&lt;br /&gt;
=外部资源=&lt;br /&gt;
&lt;br /&gt;
=分类=&lt;/div&gt;</summary>
		<author><name>DGCK81LNN</name></author>
	</entry>
</feed>