diff --git a/.vitepress/friendLinks.ts b/.vitepress/friendLinks.ts
new file mode 100644
index 0000000..5782d0b
--- /dev/null
+++ b/.vitepress/friendLinks.ts
@@ -0,0 +1,24 @@
+export class RelatedLinkObject {
+ title: string;
+ link: string;
+ desc: string;
+
+ constructor(title: string, link: string, desc: string) {
+ this.title = title;
+ this.link = link;
+ this.desc = desc;
+ }
+}
+
+export const FriendLinks: RelatedLinkObject[] = [
+ new RelatedLinkObject('Microsoft Learn*', 'https://learn.microsoft.com/', '微软官方文档'),
+ new RelatedLinkObject('Skript Hub*', 'https://skripthub.net/', '第三方Skript文档'),
+ new RelatedLinkObject('【续】维基档案馆', 'https://continue-project.netlify.app/', 'SnowCutie的插件文档汉化合集Continue Project'),
+ new RelatedLinkObject('LeafMC Docs', 'https://www.leafmc.one/zh/docs/getting-started', '高性能优化服务端Leaf的官方文档'),
+ new RelatedLinkObject('Natsurainko\'s blog', 'https://natsurainko.github.io/', '开发者Natsurainko的博客,积累了一些相关教程。'),
+ new RelatedLinkObject('NitWikit^?', 'https://nitwikit.8aka.org', '十分详尽的第三方 MC 开服教程'),
+];
+
+export const Sponsors: RelatedLinkObject[] = [
+ new RelatedLinkObject('云联小白/集云社', 'https://idc.mcmc.run/', '专注游戏服务器租赁的服务商【云联小白】,其长期为CMFS提供免费服务器。联系QQ:395426'),
+]
\ No newline at end of file
diff --git a/.vitepress/theme/RelatedLink.vue b/.vitepress/theme/RelatedLink.vue
new file mode 100644
index 0000000..4e99cc7
--- /dev/null
+++ b/.vitepress/theme/RelatedLink.vue
@@ -0,0 +1,20 @@
+
+
+
+ {{ props.link!.title }}
+ {{ link.desc }}
+
+
\ No newline at end of file
diff --git a/.vitepress/theme/custom.css b/.vitepress/theme/custom.css
index 62eb1bd..b58b26c 100644
--- a/.vitepress/theme/custom.css
+++ b/.vitepress/theme/custom.css
@@ -1,6 +1,6 @@
:root {
- --vp-c-brand-1: #ffb900;
- --vp-c-brand-2: #ffdd4b;
+ --vp-c-brand-1: #ecb10c;
+ --vp-c-brand-2: #ffb900;
--vp-c-brand-dark: #ffd600;
--vp-c-brand-darker: #c7a500;
@@ -12,16 +12,18 @@
--vp-code-font-size: .99rem
}
-img{
+
+img {
border-radius: .39rem;
}
-*{
+
+* {
font-family: 'ms-segoe-fluent', 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif !important;
transition-property: background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;
transition-property: background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
transition-property: background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;
- transition-timing-function: cubic-bezier(0.38, 0, 0.19, 1) ;
- transition-duration: 100ms ;
+ transition-timing-function: cubic-bezier(0.38, 0, 0.19, 1);
+ transition-duration: 100ms;
}
@font-face {
@@ -29,13 +31,13 @@ img{
src: url("/segoe.ttf");
}
-.content-body{
+.content-body {
background-color: color-mix(in srgb, var(--vp-nav-bg-color), transparent 15%) !important;
backdrop-filter: blur(8px);
}
-p>em{
- opacity: .78 ;
+p>em {
+ opacity: .78;
font-weight: lighter !important;
font-style: italic !important;
display: inline-block !important;
@@ -43,35 +45,37 @@ p>em{
transition-property: all !important;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
- transition-duration: 233ms !important;
+ transition-duration: 233ms !important;
}
-p>em:hover{
+p>em:hover {
opacity: 1;
}
-.curtain::before{
+.curtain::before {
background: linear-gradient(color-mix(in srgb, var(--vp-c-bg), transparent 15%), transparent 80%) !important;
}
-table{
- width: 100% !important;
- display: table !important;
+table {
+ width: 100% !important;
+ display: table !important;
opacity: 1;
}
-div .custom-block{
+div .custom-block {
padding: 8px 16px !important;
}
-p.custom-block-title{
+
+p.custom-block-title {
margin: 7.5px 0 !important;
font-size: 15px;
}
-.custom-block > p:not(.custom-block-title){
+
+.custom-block>p:not(.custom-block-title) {
margin-top: 0 !important;
}
-.tip>.custom-block-title::before{
+.tip>.custom-block-title::before {
content: '\e82f';
font-weight: bolder;
transform: translateY(1.5px) scale(78%);
@@ -79,7 +83,8 @@ p.custom-block-title{
padding: .5px;
display: inline-block;
}
-.info>.custom-block-title::before{
+
+.info>.custom-block-title::before {
content: '\e946';
font-weight: bolder;
transform: translateY(2px);
@@ -87,7 +92,8 @@ p.custom-block-title{
padding: .5px;
display: inline-block;
}
-.warning>.custom-block-title::before{
+
+.warning>.custom-block-title::before {
content: '\e7ba';
font-weight: bolder;
transform: translateY(1.5px);
@@ -95,7 +101,8 @@ p.custom-block-title{
padding: .5px;
display: inline-block;
}
-.danger>.custom-block-title::before{
+
+.danger>.custom-block-title::before {
content: '\e894';
font-weight: bolder;
transform: translateY(2px);
@@ -105,35 +112,39 @@ p.custom-block-title{
}
-blockquote:not(strong>blockquote):hover{
+blockquote:not(strong>blockquote):hover {
opacity: 1
}
+code {
+ font-weight: bold;
+}
-
-.bitter{
- background-color: rgb(251 192 45 / 10.5%) !important;
+.bitter {
+ background-color: rgb(251 192 45 / 8.5%) !important;
transition-property: all;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
- transition-duration: 233ms !important;
+ transition-duration: 233ms !important;
box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.06), 0 4px 6px -4px rgb(0 0 0 / 0.06);
opacity: .9;
}
-.bitter:hover{
+
+.bitter:hover {
background-color: rgb(251 192 45 / 12%) !important;
box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
opacity: 1;
}
-.bitter:active{
+
+.bitter:active {
background-color: rgb(251 192 45 / 15%) !important;
box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.09), 0 4px 6px -4px rgb(0 0 0 / 0.09);
opacity: .79;
}
-blockquote{
+blockquote {
transition-property: all !important;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
- transition-duration: 233ms !important;
+ transition-duration: 233ms !important;
font-style: italic !important;
font-family: system-ui !important;
@@ -149,40 +160,46 @@ blockquote{
position: relative;
padding: 0;
}
-.exlinks{
- display:grid;
- grid-template-columns: repeat(1, minmax(0, 1fr));
- gap:.5rem;
+
+.exlinks {
+ display: grid;
+ grid-template-columns: repeat(1, minmax(0, 1fr));
+ gap: .5rem;
}
-.exlinks.two-one{
- display:grid;
- grid-template-columns: repeat(1, minmax(0, 1fr));
- gap:.5rem;
+.exlinks.two-one {
+ display: grid;
+ grid-template-columns: repeat(1, minmax(0, 1fr));
+ gap: .5rem;
}
-.card-like{
+
+.card-like {
padding: 3px;
text-decoration: none !important;
}
-.smaller{
+
+.smaller {
font-size: 1em;
line-height: normal !important;
font-style: normal !important;
text-decoration: none !important;
}
-.card-like>b{
+
+.card-like>b {
font-weight: bold;
font-size: x-large !important;
display: block;
margin-top: .3rem;
text-decoration: none !important;
}
-.card-like>p{
+
+.card-like>p {
margin-top: .69rem !important;
margin-bottom: .3rem !important;
text-decoration: none !important;
}
-blockquote:hover::before{
+
+blockquote:hover::before {
position: absolute;
display: block;
opacity: .5;
@@ -194,97 +211,122 @@ blockquote:hover::before{
transition-property: all !important;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
- transition-duration: 233ms !important;
+ transition-duration: 233ms !important;
content: '注释 | comment';
top: -.1rem;
left: 0;
transform: scale(80%) translateY(-9.5px) translateX(6.5px);
}
+
@media (min-width: 425px) {
- .exlinks{
- display:grid;grid-template-columns: repeat(1, minmax(0, 1fr)); gap:.69rem;
+ .exlinks {
+ display: grid;
+ grid-template-columns: repeat(1, minmax(0, 1fr));
+ gap: .69rem;
}
- .exlinks.two-one{
- display:grid;
- grid-template-columns: repeat(1, minmax(0, 1fr));
- gap:.5rem;
+
+ .exlinks.two-one {
+ display: grid;
+ grid-template-columns: repeat(1, minmax(0, 1fr));
+ gap: .5rem;
}
}
+
@media (min-width: 640px) {
- .exlinks{
- display:grid;grid-template-columns: repeat(2, minmax(0, 1fr)); gap:.69rem;
+ .exlinks {
+ display: grid;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ gap: .69rem;
}
- .exlinks.two-one{
- display:grid;
- grid-template-columns: repeat(2, minmax(0, 1fr));
- gap:.5rem;
+
+ .exlinks.two-one {
+ display: grid;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ gap: .5rem;
}
}
+
@media (min-width: 960px) {
- .exlinks{
- display:grid;grid-template-columns: repeat(3, minmax(0, 1fr)); gap:.69rem;
+ .exlinks {
+ display: grid;
+ grid-template-columns: repeat(3, minmax(0, 1fr));
+ gap: .69rem;
}
- .exlinks.two-one{
- display:grid;
- grid-template-columns: repeat(2, minmax(0, 1fr));
- gap:.5rem;
+
+ .exlinks.two-one {
+ display: grid;
+ grid-template-columns: repeat(2, minmax(0, 1fr));
+ gap: .5rem;
}
- blockquote:hover::before{
+
+ blockquote:hover::before {
transition-property: all !important;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
- transition-duration: 233ms !important;
+ transition-duration: 233ms !important;
content: '注释\A comment';
top: 0;
left: -1.29rem;
transform: scale(80%) translateY(1.5px) translateX(-3rem);
}
}
+
.container.f {
margin: 0 auto;
max-width: 1152px;
}
-.narrow::-webkit-scrollbar, pre.shiki::-webkit-scrollbar {
- width: 6px; /* 滚动条宽度 */
- background-color: rgba(0,0,0,0); /* 透明背景 */
+.narrow::-webkit-scrollbar,
+pre.shiki::-webkit-scrollbar {
+ width: 6px;
+ /* 滚动条宽度 */
+ background-color: rgba(0, 0, 0, 0);
+ /* 透明背景 */
}
-.narrow::-webkit-scrollbar-track, pre.shiki::-webkit-scrollbar-track {
- background: rgba(255,255,255,0.1); /* 半透明轨道 */
+.narrow::-webkit-scrollbar-track,
+pre.shiki::-webkit-scrollbar-track {
+ background: rgba(255, 255, 255, 0.1);
+ /* 半透明轨道 */
border-radius: 3px;
}
-.narrow::-webkit-scrollbar-thumb, pre.shiki::-webkit-scrollbar-thumb {
- background: rgba(255,255,255,0.3); /* 半透明滑块 */
+.narrow::-webkit-scrollbar-thumb,
+pre.shiki::-webkit-scrollbar-thumb {
+ background: rgba(255, 255, 255, 0.3);
+ /* 半透明滑块 */
border-radius: 3px;
}
/* 适用于Firefox等非WebKit浏览器 */
-.narrow, pre.shiki {
- scrollbar-width: thin; /* 窄滚动条 */
- scrollbar-color: rgba(255,255,255,0.3) rgba(0,0,0,0); /* 滑块颜色 + 透明轨道 */
+.narrow,
+pre.shiki {
+ scrollbar-width: thin;
+ /* 窄滚动条 */
+ scrollbar-color: rgba(255, 255, 255, 0.3) rgba(0, 0, 0, 0);
+ /* 滑块颜色 + 透明轨道 */
}
-.exlink{
- display:block;
+.exlink {
+ display: block;
border: 1px solid var(--vp-c-bg-soft);
border-radius: 12px;
height: 100%;
- background-color: var(--vp-c-bg-soft);
- padding:.7rem;
+ background-color: var(--vp-c-bg-soft);
+ padding: .7rem;
}
-.x-icon{
+
+.x-icon {
transform: scale(85%) translateY(.156rem) translateX(1.5px);
display: inline-block;
}
-a.c-top-link{
+a.c-top-link {
position: fixed;
top: auto;
left: auto;
@@ -301,31 +343,36 @@ a.c-top-link{
transition-property: all !important;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !important;
- transition-duration: 233ms !important;
+ transition-duration: 233ms !important;
border: 1px rgba(128, 128, 128, 0.537) solid;
- box-shadow: 1px 1px .6rem 1px rgba(220, 220, 220, 0.227) ;
+ box-shadow: 1px 1px .6rem 1px rgba(220, 220, 220, 0.227);
}
-a.c-top-link:hover{
+
+a.c-top-link:hover {
opacity: 1;
border: 1px rgba(133, 133, 133, 0.8737) solid;
- box-shadow: 2px 1px .6rem 1px rgba(180, 180, 180, 0.297) ;
+ box-shadow: 2px 1px .6rem 1px rgba(180, 180, 180, 0.297);
}
-a.c-top-link:active{
+
+a.c-top-link:active {
opacity: .7;
border: 1px rgba(128, 128, 128, 0.537) solid;
- box-shadow: 1px 1px .6rem 1px rgba(220, 220, 220, 0.227) ;
+ box-shadow: 1px 1px .6rem 1px rgba(220, 220, 220, 0.227);
}
-button.menu{
+
+button.menu {
padding-top: 11px !important;
padding-bottom: 12px !important;
}
-.table-of-contents>ul{
+
+.table-of-contents>ul {
list-style: none;
position: relative;
}
-.table-of-contents>ul::before{
+
+.table-of-contents>ul::before {
position: absolute;
content: '\e768';
font-weight: bold;
@@ -333,10 +380,16 @@ button.menu{
user-select: none;
}
-code>span.line, code>span.line>*, code>span.line>span, span.line>span, code, pre{
+code>span.line,
+code>span.line>*,
+code>span.line>span,
+span.line>span,
+code,
+pre {
font-family: 'Cascadia code', 'Monaco', 'Cascadia', 'consolas', monospace, sans-serif, system-ui !important;
}
-code{
+
+code {
margin-left: 1px;
margin-right: 1px;
}
@@ -345,31 +398,30 @@ code{
li>p,
p.text,
p.tagline,
-p.details, */
+p.details, */
-p.indent
-{
+p.indent {
text-indent: 4ch !important;
word-break: break-all !important;
}
-p.indent>*{
+p.indent>* {
text-indent: 0% !important;
}
-.hidden{
- display: none;
+.hidden {
+ display: none;
}
-.red{
+.red {
color: red !important;
}
-.bold{
+.bold {
font-weight: bolder !important;
}
-p>code{
+p>code {
word-break: keep-all;
/* display: inline-block; */
}
@@ -384,11 +436,12 @@ p>code{
/* DARK AND LIGHT COLORS */
-.dark{
+.dark {
--vp-c-divider: #66666666 !important;
}
-:root{
- --vp-c-divider: #d1d1d3;
+:root {
+ --vp-c-divider: #d1d1d3;
}
-/* END DARK AND LIGHT COLORS END */
+
+/* END DARK AND LIGHT COLORS END */
\ No newline at end of file
diff --git a/node_modules/.package_versions.json b/node_modules/.package_versions.json
deleted file mode 100644
index 9e26dfe..0000000
--- a/node_modules/.package_versions.json
+++ /dev/null
@@ -1 +0,0 @@
-{}
\ No newline at end of file
diff --git a/zhCN/guide/links.md b/zhCN/guide/links.md
index 3f21bd6..a0fcc99 100644
--- a/zhCN/guide/links.md
+++ b/zhCN/guide/links.md
@@ -1,5 +1,8 @@
# 友情链接…
-
+
## 友链!
此处展示的友情链接仅限同类的知识共享型站点。与此同时,还包含了一些参考较多的文档站(可能是单向友链)
@@ -7,12 +10,9 @@
如果你认为你的站点是与我们并肩的好伙伴,欢迎与我们交换友链!查看[我们的联系方式](/zhCN/guide/contact)
-
+
*标注 `*` 的是单向,标注 `^` 的是因为各种特殊情况导致的暂时单向。*
@@ -21,10 +21,7 @@
这里列举大力赞助我们的好心人,他们有自己的生意。
## 如何在这里展示?