diff --git a/ChangeMirrors.sh b/ChangeMirrors.sh
index c072239..91e9da4 100755
--- a/ChangeMirrors.sh
+++ b/ChangeMirrors.sh
@@ -1,6 +1,6 @@
#!/bin/bash
## Author: SuperManito
-## Modified: 2025-05-13
+## Modified: 2025-05-29
## License: MIT
## GitHub: https://github.com/SuperManito/LinuxMirrors
## Website: https://linuxmirrors.cn
@@ -798,7 +798,7 @@ function collect_system_info() {
fi
;;
"${SYSTEM_RHEL}")
- if [[ "${SYSTEM_VERSION_ID_MAJOR}" != [7-9] ]]; then
+ if [[ "${SYSTEM_VERSION_ID_MAJOR}" != [7-9] && "${SYSTEM_VERSION_ID_MAJOR}" != 10 ]]; then
is_supported="false"
fi
;;
@@ -807,11 +807,16 @@ function collect_system_info() {
is_supported="false"
fi
;;
- "${SYSTEM_CENTOS_STREAM}" | "${SYSTEM_ROCKY}" | "${SYSTEM_ALMALINUX}")
+ "${SYSTEM_CENTOS_STREAM}" | "${SYSTEM_ALMALINUX}")
if [[ "${SYSTEM_VERSION_ID_MAJOR}" != [8-9] && "${SYSTEM_VERSION_ID_MAJOR}" != 10 ]]; then
is_supported="false"
fi
;;
+ "${SYSTEM_ROCKY}")
+ if [[ "${SYSTEM_VERSION_ID_MAJOR}" != [8-9] ]]; then
+ is_supported="false"
+ fi
+ ;;
"${SYSTEM_FEDORA}")
if [[ "${SYSTEM_VERSION_ID}" != [3-4][0-9] ]]; then
is_supported="false"
@@ -912,16 +917,16 @@ function collect_system_info() {
;;
"${SYSTEM_RHEL}")
case "${SYSTEM_VERSION_ID_MAJOR}" in
- 9)
- SOURCE_BRANCH="centos-stream" # 使用 CentOS Stream 仓库
- ;;
- *)
+ 7 | 8)
if [[ "${DEVICE_ARCH_RAW}" == "x86_64" ]]; then
SOURCE_BRANCH="centos-vault"
else
SOURCE_BRANCH="centos-altarch"
fi
;;
+ *)
+ SOURCE_BRANCH="centos-stream" # 使用 CentOS Stream 仓库
+ ;;
esac
;;
"${SYSTEM_CENTOS}")
@@ -1491,16 +1496,16 @@ function remove_original_mirrors() {
case "${SYSTEM_JUDGMENT}" in
"${SYSTEM_RHEL}")
case "${SYSTEM_VERSION_ID_MAJOR}" in
- 9)
- rm -rf $Dir_YumRepos/centos.repo $Dir_YumRepos/centos-addons.repo
- ;;
- *)
+ 7 | 8)
if [ -f "${Dir_YumRepos}/epel.repo" ]; then
ls $Dir_YumRepos/ | grep -Ev epel | xargs rm -rf
else
rm -rf $Dir_YumRepos/*
fi
;;
+ *)
+ rm -rf $Dir_YumRepos/centos.repo $Dir_YumRepos/centos-addons.repo
+ ;;
esac
;;
"${SYSTEM_CENTOS}")
@@ -2173,11 +2178,11 @@ function change_mirrors_RedHat() {
case "${SYSTEM_JUDGMENT}" in
"${SYSTEM_RHEL}")
case "${SYSTEM_VERSION_ID_MAJOR}" in
- 9 | 10)
- gen_repo_files_CentOSStream "${SYSTEM_VERSION_ID_MAJOR}"
+ 7 | 8)
+ gen_repo_files_CentOS "${SYSTEM_VERSION_ID_MAJOR}"
;;
*)
- gen_repo_files_CentOS "${SYSTEM_VERSION_ID_MAJOR}"
+ gen_repo_files_CentOSStream "${SYSTEM_VERSION_ID_MAJOR}"
;;
esac
;;
@@ -2222,20 +2227,7 @@ function change_mirrors_RedHat() {
case "${SYSTEM_JUDGMENT}" in
"${SYSTEM_RHEL}")
case "${SYSTEM_VERSION_ID_MAJOR}" in
- 9)
- sed -e "s|^#baseurl=https|baseurl=${WEB_PROTOCOL}|g" \
- -e "s|^metalink=|#metalink=|g" \
- -e "s|mirror.stream.centos.org|${SOURCE}/${SOURCE_BRANCH}|g" \
- -i \
- centos.repo \
- centos-addons.repo
- # 禁用 GPG 签名检查
- sed -e "s|gpgcheck=1|gpgcheck=0|g" \
- -i \
- centos.repo \
- centos-addons.repo
- ;;
- *)
+ 7 | 8)
sed -e "s|^#baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
-e "s|^mirrorlist=|#mirrorlist=|g" \
-i \
@@ -2265,6 +2257,19 @@ function change_mirrors_RedHat() {
-i \
CentOS-*
;;
+ *)
+ sed -e "s|^#baseurl=https|baseurl=${WEB_PROTOCOL}|g" \
+ -e "s|^metalink=|#metalink=|g" \
+ -e "s|mirror.stream.centos.org|${SOURCE}/${SOURCE_BRANCH}|g" \
+ -i \
+ centos.repo \
+ centos-addons.repo
+ # 禁用 GPG 签名检查
+ sed -e "s|gpgcheck=1|gpgcheck=0|g" \
+ -i \
+ centos.repo \
+ centos-addons.repo
+ ;;
esac
;;
"${SYSTEM_CENTOS}")
@@ -2347,13 +2352,39 @@ function change_mirrors_RedHat() {
;;
"${SYSTEM_ALMALINUX}")
case "${SYSTEM_VERSION_ID_MAJOR}" in
+ 10)
+ sed -e "s|^# baseurl=https|baseurl=${WEB_PROTOCOL}|g" \
+ -e "s|^mirrorlist=|#mirrorlist=|g" \
+ -e "s|vault.almalinux.org|${SOURCE}/${SOURCE_BRANCH}|g" \
+ -i \
+ almalinux-appstream.repo \
+ almalinux-baseos.repo \
+ almalinux-crb.repo \
+ almalinux-extras.repo \
+ almalinux-highavailability.repo \
+ almalinux-nfv.repo \
+ almalinux-rt.repo \
+ almalinux-saphana.repo \
+ almalinux-sap.repo
+
+ ;;
9)
sed -e "s|^# baseurl=http|baseurl=${WEB_PROTOCOL}|g" \
-e "s|^mirrorlist=|#mirrorlist=|g" \
-e "s|repo.almalinux.org/vault|${SOURCE_VAULT:-"${SOURCE}"}/${SOURCE_VAULT_BRANCH:-almalinux-vault}|g" \
-e "s|repo.almalinux.org/almalinux|${SOURCE}/${SOURCE_BRANCH}|g" \
-i \
- almalinux-*
+ almalinux-appstream.repo \
+ almalinux-baseos.repo \
+ almalinux-crb.repo \
+ almalinux-extras.repo \
+ almalinux-highavailability.repo \
+ almalinux-nfv.repo \
+ almalinux-plus.repo \
+ almalinux-resilientstorage.repo \
+ almalinux-rt.repo \
+ almalinux-sap.repo \
+ almalinux-saphana.repo
;;
8)
sed -e "s|^mirrorlist=|#mirrorlist=|g" \
@@ -4567,6 +4598,296 @@ EOF
## 生成 AlmaLinux repo 源文件
function gen_repo_files_AlmaLinux() {
case "$1" in
+ 10)
+ cat <<'EOF' >$Dir_YumRepos/almalinux-appstream.repo
+[appstream]
+name=AlmaLinux $releasever - AppStream
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/appstream
+# baseurl=https://repo.almalinux.org/almalinux/$releasever/AppStream/$basearch/os/
+enabled=1
+gpgcheck=1
+countme=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=1
+
+[appstream-debuginfo]
+name=AlmaLinux $releasever - AppStream - Debug
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/appstream-debug
+# baseurl=https://vault.almalinux.org/$releasever/AppStream/debug/$basearch/
+enabled=0
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=0
+
+[appstream-source]
+name=AlmaLinux $releasever - AppStream - Source
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/appstream-source
+# baseurl=https://vault.almalinux.org/$releasever/AppStream/Source/
+enabled=0
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=0
+EOF
+ cat <<'EOF' >$Dir_YumRepos/almalinux-baseos.repo
+[baseos]
+name=AlmaLinux $releasever - BaseOS
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/baseos
+# baseurl=https://repo.almalinux.org/almalinux/$releasever/BaseOS/$basearch/os/
+enabled=1
+gpgcheck=1
+countme=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=1
+
+[baseos-debuginfo]
+name=AlmaLinux $releasever - BaseOS - Debug
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/baseos-debug
+# baseurl=https://vault.almalinux.org/$releasever/BaseOS/debug/$basearch/
+enabled=0
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=0
+
+[baseos-source]
+name=AlmaLinux $releasever - BaseOS - Source
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/baseos-source
+# baseurl=https://vault.almalinux.org/$releasever/BaseOS/Source/
+enabled=0
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=0
+EOF
+ cat <<'EOF' >$Dir_YumRepos/almalinux-crb.repo
+[crb]
+name=AlmaLinux $releasever - CRB
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/crb
+# baseurl=https://repo.almalinux.org/almalinux/$releasever/CRB/$basearch/os/
+enabled=0
+gpgcheck=1
+countme=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=0
+
+[crb-debuginfo]
+name=AlmaLinux $releasever - CRB - Debug
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/crb-debug
+# baseurl=https://vault.almalinux.org/$releasever/CRB/debug/$basearch/
+enabled=0
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=0
+
+[crb-source]
+name=AlmaLinux $releasever - CRB - Source
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/crb-source
+# baseurl=https://vault.almalinux.org/$releasever/CRB/Source/
+enabled=0
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=0
+EOF
+ cat <<'EOF' >$Dir_YumRepos/almalinux-extras.repo
+[extras]
+name=AlmaLinux $releasever - Extras
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/extras
+# baseurl=https://repo.almalinux.org/almalinux/$releasever/extras/$basearch/os/
+enabled=1
+gpgcheck=1
+countme=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=0
+
+[extras-debuginfo]
+name=AlmaLinux $releasever - Extras - Debug
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/extras-debug
+# baseurl=https://vault.almalinux.org/$releasever/extras/debug/$basearch/
+enabled=0
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=0
+
+[extras-source]
+name=AlmaLinux $releasever - Extras - Source
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/extras-source
+# baseurl=https://vault.almalinux.org/$releasever/extras/Source/
+enabled=0
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=0
+EOF
+ cat <<'EOF' >$Dir_YumRepos/almalinux-highavailability.repo
+[highavailability]
+name=AlmaLinux $releasever - HighAvailability
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/highavailability
+# baseurl=https://repo.almalinux.org/almalinux/$releasever/HighAvailability/$basearch/os/
+enabled=0
+gpgcheck=1
+countme=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=0
+
+[highavailability-debuginfo]
+name=AlmaLinux $releasever - HighAvailability - Debug
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/highavailability-debug
+# baseurl=https://vault.almalinux.org/$releasever/HighAvailability/debug/$basearch/
+enabled=0
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=0
+
+[highavailability-source]
+name=AlmaLinux $releasever - HighAvailability - Source
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/highavailability-source
+# baseurl=https://vault.almalinux.org/$releasever/HighAvailability/Source/
+enabled=0
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=0
+EOF
+ cat <<'EOF' >$Dir_YumRepos/almalinux-nfv.repo
+[nfv]
+name=AlmaLinux $releasever - NFV
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/nfv
+# baseurl=https://repo.almalinux.org/almalinux/$releasever/NFV/$basearch/os/
+enabled=0
+gpgcheck=1
+countme=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=0
+
+[nfv-debuginfo]
+name=AlmaLinux $releasever - NFV - Debug
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/nfv-debug
+# baseurl=https://vault.almalinux.org/$releasever/NFV/debug/$basearch/
+enabled=0
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=0
+
+[nfv-source]
+name=AlmaLinux $releasever - NFV - Source
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/nfv-source
+# baseurl=https://vault.almalinux.org/$releasever/NFV/Source/
+enabled=0
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=0
+EOF
+ cat <<'EOF' >$Dir_YumRepos/almalinux-rt.repo
+[rt]
+name=AlmaLinux $releasever - RT
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/rt
+# baseurl=https://repo.almalinux.org/almalinux/$releasever/RT/$basearch/os/
+enabled=0
+gpgcheck=1
+countme=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=0
+
+[rt-debuginfo]
+name=AlmaLinux $releasever - RT - Debug
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/rt-debug
+# baseurl=https://vault.almalinux.org/$releasever/RT/debug/$basearch/
+enabled=0
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=0
+
+[rt-source]
+name=AlmaLinux $releasever - RT - Source
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/rt-source
+# baseurl=https://vault.almalinux.org/$releasever/RT/Source/
+enabled=0
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=0
+EOF
+ cat <<'EOF' >$Dir_YumRepos/almalinux-saphana.repo
+[saphana]
+name=AlmaLinux $releasever - SAPHANA
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/saphana
+# baseurl=https://repo.almalinux.org/almalinux/$releasever/SAPHANA/$basearch/os/
+enabled=0
+gpgcheck=1
+countme=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=0
+
+[saphana-debuginfo]
+name=AlmaLinux $releasever - SAPHANA - Debug
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/saphana-debug
+# baseurl=https://vault.almalinux.org/$releasever/SAPHANA/debug/$basearch/
+enabled=0
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=0
+
+[saphana-source]
+name=AlmaLinux $releasever - SAPHANA - Source
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/saphana-source
+# baseurl=https://vault.almalinux.org/$releasever/SAPHANA/Source/
+enabled=0
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=0
+EOF
+ cat <<'EOF' >$Dir_YumRepos/almalinux-sap.repo
+[sap]
+name=AlmaLinux $releasever - SAP
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/sap
+# baseurl=https://repo.almalinux.org/almalinux/$releasever/SAP/$basearch/os/
+enabled=0
+gpgcheck=1
+countme=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=0
+
+[sap-debuginfo]
+name=AlmaLinux $releasever - SAP - Debug
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/sap-debug
+# baseurl=https://vault.almalinux.org/$releasever/SAP/debug/$basearch/
+enabled=0
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=0
+
+[sap-source]
+name=AlmaLinux $releasever - SAP - Source
+mirrorlist=https://mirrors.almalinux.org/mirrorlist/$releasever/sap-source
+# baseurl=https://vault.almalinux.org/$releasever/SAP/Source/
+enabled=0
+gpgcheck=1
+gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-10
+metadata_expire=86400
+enabled_metadata=0
+EOF
+ ;;
9)
cat <<'EOF' >$Dir_YumRepos/almalinux-appstream.repo
[appstream]
diff --git a/DockerInstallation.sh b/DockerInstallation.sh
index 01e6109..ab6db4d 100755
--- a/DockerInstallation.sh
+++ b/DockerInstallation.sh
@@ -1,6 +1,6 @@
#!/bin/bash
## Author: SuperManito
-## Modified: 2025-05-19
+## Modified: 2025-05-29
## License: MIT
## GitHub: https://github.com/SuperManito/LinuxMirrors
## Website: https://linuxmirrors.cn
@@ -446,6 +446,10 @@ function collect_system_info() {
fi
;;
"${SYSTEM_REDHAT}")
+ # 拦截最新的红帽 10 版本
+ if [[ "${SYSTEM_VERSION_ID_MAJOR}" == 10 ]]; then
+ output_error "暂不支持当前操作系统,请等待官方适配 10 版本!"
+ fi
SYSTEM_JUDGMENT="$(awk '{printf $1}' $File_RedHatRelease)"
# 拦截 Anolis OS 8.8 以下版本,不支持从 Docker 官方仓库安装
if [[ "${SYSTEM_JUDGMENT}" == "${SYSTEM_ANOLISOS}" ]]; then
@@ -506,9 +510,6 @@ function collect_system_info() {
"${SYSTEM_UBUNTU}" | "${SYSTEM_ZORIN}")
SOURCE_BRANCH="ubuntu"
;;
- "${SYSTEM_RHEL}")
- SOURCE_BRANCH="rhel"
- ;;
"${SYSTEM_RASPBERRY_PI_OS}")
case "${DEVICE_ARCH_RAW}" in
x86_64 | aarch64)
diff --git a/README.md b/README.md
index 99d1578..0ea4f98 100644
--- a/README.md
+++ b/README.md
@@ -63,7 +63,7 @@
Red Hat Enterprise Linux |
- 7 ~ 9 |
+ 7 ~ 10 |
Fedora |
@@ -79,7 +79,7 @@
AlmaLinux |
- 8 ~ 9 |
+ 8 ~ 10 |
openEuler(开源欧拉) |
@@ -132,19 +132,19 @@
### GNU/Linux 更换系统软件源
```bash
-bash <(curl -sSL https://raw.githubusercontent.com/SuperManito/LinuxMirrors/main/ChangeMirrors.sh)
+bash <(curl -sSL https://linuxmirrors.cn/main.sh)
```
### Docker 安装与换源
```bash
-bash <(curl -sSL https://raw.githubusercontent.com/SuperManito/LinuxMirrors/main/DockerInstallation.sh)
+bash <(curl -sSL https://linuxmirrors.cn/docker.sh)
```
-### 更换 Docker 镜像加速器
+### Docker 更换镜像加速器
```bash
-bash <(curl -sSL https://raw.githubusercontent.com/SuperManito/LinuxMirrors/main/DockerInstallation.sh) --only-registry
+bash <(curl -sSL https://linuxmirrors.cn/docker.sh) --only-registry
```
> 项目官方网站集成了 AI 聊天与搜索,更多使用方法详见 [**linuxmirrors.cn**](https://linuxmirrors.cn/use)
diff --git a/docs/index.md b/docs/index.md
index 3fb239a..7ccf664 100644
--- a/docs/index.md
+++ b/docs/index.md
@@ -1,142 +1,142 @@
----
-title: 一键脚本使换源更简单
-description: GNU/Linux 更换系统软件源脚本及 Docker 安装与换源脚本
-comments: true
-glightbox: false
-comments_description: 该评论区仅用于展示项目使用评价和经验分享,反馈问题或提出建议请前往社区
-hide:
- - navigation
- - toc
- - feedback
- - footer
----
-
-
-
-
-
-
-
-
-
- GNU/Linux 更换系统软件源脚本及 Docker 安装与换源脚本
- 一键脚本使换源更简单
-
-
-=== "GNU/Linux"
-
-
-
-
-
-
-=== "Docker"
-
-
-
-
-
-
-
-
-
-
-
-
-
-- :material-thumb-up-outline:{ .lg .middle } __轻松使用__
-
- ---
-
- 只需要一行命令就能直接运行,零技术门槛,无需安装任何依赖
- 文档集成了 AI 搜索与聊天,提供各种场景的解决方案
-
-- :material-vector-polyline:{ .lg .middle } __系统支持广泛__
-
- ---
-
- 已适配高达 `23+` 操作系统,涵盖各类版本,精准识别系统类型
- 脚本兼容性高,不支持的系统会有相应提示并无操作跳出
-
-- :material-vector-triangle:{ .lg .middle } __多元软件源适配__
-
- ---
-
- 深入考察了国内镜像站的系统适配情况,专为中国宝宝打造
- 还提供全网搜集的国内教育网和海外镜像站供用户选择
-
-- :material-rocket-launch-outline:{ .lg .middle } __快,且高效__
-
- ---
-
- 最快仅需 10 秒即可完成软件源的更换,高效运维,节省大量时间成本
- 项目经过数年的迭代与优化,脚本运行稳定性能卓越,场景判断完善
-
-- :octicons-globe-24:{ .lg .middle } __全球网络,调用无忧__
-
- ---
-
- 本网站提供全球边缘网络加速,不惧各种网络环境,国内轻松访问
- 同时提供了多个备用地址以确保项目脚本始终可用,真正做到使用无忧
-
-- :material-arm-flex-outline:{ .lg .middle } __功能强大,无以伦比__
-
- ---
-
- 脚本通过方向键交互逐步引导用户选择软件源配置,使换源更简单
- 此外脚本提供了丰富的命令选项,可实现各种自定义需求
-
-- :material-pencil-ruler-outline:{ .lg .middle } __高度可定制__
-
- ---
-
- 脚本命令选项遵循正式应用程序规范设计,能够满足各种高级需求
- 代码结构清晰,易于阅读和修改,支持克隆后定制
-
-- :material-scale-balance:{ .lg .middle } __自由,开源__
-
- ---
-
- 项目已设立 MIT 开源许可协议,脚本代码完全开源且免费使用
- 请尊重作者的知识成果,传播时请在显著位置标注来源或项目地址
-
-
-
-
-
-| 操作系统 | 适配版本 |
-| --- | :---: |
-|

Debian | _8~13_ |
-|

Ubuntu :material-information-outline:{ title="支持乌班图家族衍生操作系统,例如
优麒麟 Kubuntu 等
由于迭代速度较快并不直接支持所有非 LTS 的版本,具体详见文档" } | _14~25_ |
-|

Kali Linux | _all_ |
-|

Linux Mint | _19~22 / LMDE 6_ |
-|

Deepin(深度) | _all_ |
-|

Zorin OS | _all_ |
-|

Armbian | _all_ |
-|

Proxmox VE | _all_ |
-|

Raspberry Pi OS | _all_ |
-|

Red Hat Enterprise Linux :material-information-outline:{ title="使用
CentOS Stream 或
CentOS 源" } | _7~9_ |
-|

Fedora | _30~42_ |
-|

CentOS | _7~8 / Stream 8~10_ |
-|

Rocky Linux | _8~9_ |
-|

AlmaLinux | _8~9_ |
-|

openEuler(开源欧拉) | _21~25_ |
-|

OpenCloudOS(鸥栖) | _8.6~9 / Stream 23_ |
-|

openKylin(开放麒麟) | _all_ |
-|

Anolis OS(龙蜥) | _8 / 23_ |
-|

openSUSE | _Leep 15 / Tumbleweed_ |
-|

Arch Linux | _all_ |
-|

Alpine Linux | _v3 / edge_ |
-|

Gentoo | _all_ |
-|

NixOS | _19~24_ |
-
-
-
-
-
-[开 始 使 用](use/index.md){ .md-button .md-button--primary } [查看软件源列表](mirrors/index.md){ .md-button }
-
-
---8<-- "docs/sponsor/main.html"
-
-
+---
+title: 一键脚本使换源更简单
+description: GNU/Linux 更换系统软件源脚本及 Docker 安装与换源脚本
+comments: true
+glightbox: false
+comments_description: 该评论区仅用于展示项目使用评价和经验分享,反馈问题或提出建议请前往社区
+hide:
+ - navigation
+ - toc
+ - feedback
+ - footer
+---
+
+
+
+
+
+
+
+
+
+ GNU/Linux 更换系统软件源脚本及 Docker 安装与换源脚本
+ 一键脚本使换源更简单
+
+
+=== "GNU/Linux"
+
+
+
+
+
+
+=== "Docker"
+
+
+
+
+
+
+
+
+
+
+
+
+
+- :material-thumb-up-outline:{ .lg .middle } __轻松使用__
+
+ ---
+
+ 只需要一行命令就能直接运行,零技术门槛,无需安装任何依赖
+ 文档集成了 AI 搜索与聊天,提供各种场景的解决方案
+
+- :material-vector-polyline:{ .lg .middle } __系统支持广泛__
+
+ ---
+
+ 已适配高达 `23+` 操作系统,涵盖各类版本,精准识别系统类型
+ 脚本兼容性高,不支持的系统会有相应提示并无操作跳出
+
+- :material-vector-triangle:{ .lg .middle } __多元软件源适配__
+
+ ---
+
+ 深入考察了国内镜像站的系统适配情况,专为中国宝宝打造
+ 还提供全网搜集的国内教育网和海外镜像站供用户选择
+
+- :material-rocket-launch-outline:{ .lg .middle } __快,且高效__
+
+ ---
+
+ 最快仅需 10 秒即可完成软件源的更换,高效运维,节省大量时间成本
+ 项目经过数年的迭代与优化,脚本运行稳定性能卓越,场景判断完善
+
+- :octicons-globe-24:{ .lg .middle } __全球网络,调用无忧__
+
+ ---
+
+ 本网站提供全球边缘网络加速,不惧各种网络环境,国内轻松访问
+ 同时提供了多个备用地址以确保项目脚本始终可用,真正做到使用无忧
+
+- :material-arm-flex-outline:{ .lg .middle } __功能强大,无以伦比__
+
+ ---
+
+ 脚本通过方向键交互逐步引导用户选择软件源配置,使换源更简单
+ 此外脚本提供了丰富的命令选项,可实现各种自定义需求
+
+- :material-pencil-ruler-outline:{ .lg .middle } __高度可定制__
+
+ ---
+
+ 脚本命令选项遵循正式应用程序规范设计,能够满足各种高级需求
+ 代码结构清晰,易于阅读和修改,支持克隆后定制
+
+- :material-scale-balance:{ .lg .middle } __自由,开源__
+
+ ---
+
+ 项目已设立 MIT 开源许可协议,脚本代码完全开源且免费使用
+ 请尊重作者的知识成果,传播时请在显著位置标注来源或项目地址
+
+
+
+
+
+| 操作系统 | 适配版本 |
+| --- | :---: |
+|

Debian | _8~13_ |
+|

Ubuntu :material-information-outline:{ title="支持乌班图家族衍生操作系统,例如
优麒麟 Kubuntu 等
由于迭代速度较快并不直接支持所有非 LTS 的版本,具体详见文档" } | _14~25_ |
+|

Kali Linux | _all_ |
+|

Linux Mint | _19~22 / LMDE 6_ |
+|

Deepin(深度) | _all_ |
+|

Zorin OS | _all_ |
+|

Armbian | _all_ |
+|

Proxmox VE | _all_ |
+|

Raspberry Pi OS | _all_ |
+|

Red Hat Enterprise Linux :material-information-outline:{ title="使用
CentOS Stream 或
CentOS 源" } | _7~10_ |
+|

Fedora | _30~42_ |
+|

CentOS | _7~8 / Stream 8~10_ |
+|

Rocky Linux | _8~9_ |
+|

AlmaLinux | _8~10_ |
+|

openEuler(开源欧拉) | _21~25_ |
+|

OpenCloudOS(鸥栖) | _8.6~9 / Stream 23_ |
+|

openKylin(开放麒麟) | _all_ |
+|

Anolis OS(龙蜥) | _8 / 23_ |
+|

openSUSE | _Leep 15 / Tumbleweed_ |
+|

Arch Linux | _all_ |
+|

Alpine Linux | _v3 / edge_ |
+|

Gentoo | _all_ |
+|

NixOS | _19~24_ |
+
+
+
+
+
+[开 始 使 用](use/index.md){ .md-button .md-button--primary } [查看软件源列表](mirrors/index.md){ .md-button }
+
+
+--8<-- "docs/sponsor/main.html"
+
+
diff --git a/docs/other/index.md b/docs/other/index.md
index af78213..82862a8 100644
--- a/docs/other/index.md
+++ b/docs/other/index.md
@@ -5,8 +5,6 @@ hide:
- footer
---
-> _如果觉得这个项目不错对您有所帮助的话,请点击仓库右上角的 Star 并分享给更多的朋友_ :octicons-heart-fill-24:{ .heart }
-
!!! tip inline end "本项目已被众多流行项目使用,广受社区用户好评"
## :simple-docker:{style="color: #1d63ed"} Docker 安装与换源脚本
diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css
index b6c393b..2838a8f 100644
--- a/docs/stylesheets/extra.css
+++ b/docs/stylesheets/extra.css
@@ -1,454 +1,464 @@
-:root {
- --md-text-font: system-ui, -apple-system, 'Roboto', 'PingFang SC', 'Microsoft YaHei', 'Hiragino Sans GB', 'Segoe UI', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
- --md-code-font: 'SF Mono';
- --md-primary-fg-color--light: hsl(0, 0%, 100%, 0.33);
- --md-default-bg-color--light: #fff;
- --md-default-bg-color--dark: hsla(var(--md-hue), 15%, 14%, 1);
- --view-transition-z-index-foreground: 999;
- --view-transition-z-index-background: 1;
- --hero-background-image: linear-gradient(90deg, rgb(104 104 104) 50%, rgb(104 104 104) 50%);
-}
-
-[data-md-color-scheme='slate'] {
- --hero-background-image: linear-gradient(90deg, rgb(114 114 114) 50%, rgb(114 114 114) 50%);
-}
-
-[data-md-color-primary=white] {
- --md-typeset-a-color: #2080f0;
-}
-
-[data-md-color-scheme='slate'][data-md-color-primary=black] {
- --md-typeset-a-color: #2080f0;
-}
-
-/* logo */
-[data-md-color-scheme="default"] .md-logo img {
- content: url(/assets/images/brand/svg/logo-light.svg);
-}
-
-[data-md-color-scheme="slate"] .md-logo img {
- content: url(/assets/images/brand/svg/logo-dark.svg);
-}
-
-/* 字体 */
-@font-face {
- font-family: 'SF Mono';
- src: url('./fonts/SF-Mono-Regular.otf');
-}
-
-/* 告诫 */
-
-.md-typeset .admonition,
-.md-typeset details {
- border-width: 0;
- border-left-width: 4px;
-}
-
-.md-typeset .admonition.quote,
-.md-typeset details.quote {
- border-width: .075rem !important;
- border-color: var(--md-default-fg-color--lightest) !important;
-}
-
-[data-md-color-scheme='slate'] .md-typeset .admonition,
-[data-md-color-scheme='slate'] .md-typeset details {
- box-shadow: var(--md-shadow-z2) !important;
-}
-
-[data-md-color-scheme='slate'] .md-typeset .admonition.quote,
-[data-md-color-scheme='slate'] .md-typeset details.quote {
- border-color: var(--md-default-fg-color--lightest) !important;
-}
-
-.md-typeset .admonition.tip,
-.md-typeset details.tip {
- border-color: #03b803;
-}
-
-.md-typeset .tip>.admonition-title:before,
-.md-typeset .tip>summary:before {
- background-color: #03b803;
-}
-
-.md-typeset .tip>.admonition-title,
-.md-typeset .tip>summary {
- background-color: #0094001a;
-}
-
-.md-typeset .admonition.tip:focus-within,
-.md-typeset details.tip:focus-within {
- box-shadow: 0 0 0 .2rem #0094000a;
-}
-
-[data-md-color-scheme="slate"] .md-typeset .admonition.quote,
-.md-typeset details.quote {
- border-color: hsla(225deg, 15%, 90%, 0.24);
-}
-
-/* 着陆页 */
-.home-cmd pre>code {
- padding-right: 3em;
-}
-
-.home-cmd .md-clipboard {
- top: calc(100% - 60px);
-}
-
-@media screen and (max-width: 768px) {
- .home-cmd .md-clipboard {
- top: calc(100% - 50px);
- }
-}
-
-/* 主题覆盖 */
-.no-select img {
- user-select: none;
- -webkit-user-select: none;
- -webkit-user-drag: none;
-}
-
-.md-header {
- background-color: hsla(240, 9%, 75%, 0.33);
- -webkit-backdrop-filter: blur(8px);
- backdrop-filter: blur(8px);
- z-index: 999 !important;
-}
-
-[data-md-color-scheme='slate'] .md-header {
- background-color: hsla(var(--md-hue), 15%, 9%, 0.33);
-}
-
-.md-tabs {
- background-color: hsla(240, 9%, 75%, 0.33);
-}
-
-[data-md-color-scheme='slate'] .md-tabs {
- background-color: hsla(var(--md-hue), 15%, 9%, 0.33);
-}
-
-@media screen and (max-width: 768px) {
- .md-typeset .admonition .tabbed-set {
- width: calc(100vw - 3rem - 2px);
- }
-
- .md-typeset .admonition .tabbed-labels {
- width: calc(100vw - 3rem - 1.2rem);
- padding-left: .6rem;
- }
-}
-
-.md-tabs__link {
- font-size: 0.8rem !important;
- font-weight: 600 !important;
-}
-
-.md-typeset {
- font-size: 16px;
-}
-
-.md-typeset .emojione,
-.md-typeset .gemoji,
-.md-typeset .twemoji {
- height: 100%;
- vertical-align: -0.2em !important;
-}
-
-.md-typeset .middle {
- vertical-align: -0.35em !important;
-}
-
-/* HERO */
-.hero {
- width: 390px;
- max-width: 100vw;
- height: 160px;
- position: absolute;
- margin: 0 auto;
-}
-
-.hero-background {
- top: 50%;
- width: 50%;
- height: 80px;
- position: absolute;
- background-image: var(--hero-background-image);
- filter: blur(68px);
- transform: translate(-50%, -50%);
-}
-
-@media screen and (max-width: 768px) {
- .hero {
- width: calc(100% - .8rem - 40px);
- }
-}
-
-/* 赞助组件 */
-.sponsor {
- padding-top: 1rem;
- margin-top: 0;
- border-top: none;
-}
-
-.sponsor-title {
- font-size: 1.2rem;
- font-weight: 550;
- font-feature-settings: "kern", "liga";
- color: #444;
- font-family: var(--md-text-font-family);
-}
-
-[data-md-color-scheme="slate"] .sponsor-title {
- color: #ddd;
-}
-
-.sponsor-title-toc {
- font-weight: 550;
- font-feature-settings: "kern", "liga";
- color: hsl(225deg 0% 46.48% / 56%);
- font-family: var(--md-text-font-family);
-}
-
-[data-md-color-scheme="slate"] .sponsor-title-toc {
- color: hsl(225deg 5.64% 68.32% / 56%);
-}
-
-.sponsor-toc {
- margin-top: 24px !important;
- border-top: 1px solid var(--md-default-fg-color--lightest) !important;
-}
-
-.sponsor .sponsor-label {
- font-size: 0.8rem;
- text-align: center;
- margin-bottom: 0.2rem;
- color: var(--md-default-fg-color);
-}
-
-.sponsor .sponsor-wrapper {
- width: 100%;
- padding: 0.5rem 0;
-}
-
-.sponsor .sponsor-item {
- display: flex;
- align-items: center;
- justify-content: center;
- width: 100%;
- text-align: center;
- padding: 1rem;
- border-radius: 6px;
- height: 80px;
- max-height: 80px;
- transition: background-color 0.2s, filter 0.3s ease-in-out, opacity 0.3s ease-in-out !important;
-}
-
-.sponsor .sponsor-item:hover {
- background-color: rgba(0, 0, 0, 0.03);
-}
-
-[data-md-color-scheme="slate"] .sponsor .sponsor-item:hover {
- background-color: rgba(240, 241, 244, 0.024);
-}
-
-.sponsor .sponsor-item img {
- max-width: 100%;
- height: auto;
- vertical-align: middle;
-}
-
-.sponsor-item-toc {
- margin: 0;
- padding: 14px !important;
- height: 62px !important;
- border-radius: 4px !important;
- box-sizing: border-box;
- flex: 0 0 calc(50% - 2px) !important;
- background-color: var(--md-code-bg-color);
-}
-
-.sponsor-item-toc:hover {
- background-color: rgba(0, 0, 0, 0.08) !important;
-}
-
-[data-md-color-scheme="slate"] .sponsor-item-toc:hover {
- background-color: rgba(240, 241, 244, 0.1) !important;
-}
-
-.sponsor-item-toc-full-row {
- flex: 0 0 100% !important;
-}
-
-.sponsor-item-toc-full-row img {
- width: 50% !important;
-}
-
-.sponsor-item-toc img {
- width: 100%;
- object-fit: contain;
- filter: grayscale(1) invert(0.6);
- opacity: 0.7;
-}
-
-[data-md-color-scheme="slate"] .sponsor-item-toc img {
- filter: brightness(1.3) grayscale(1);
- opacity: 0.75;
-}
-
-.sponsor-item-toc:hover img {
- filter: grayscale(0%) !important;
- opacity: 1;
-}
-
-.sponsor-flex-wrapper {
- display: flex;
- flex-wrap: wrap;
- gap: 1rem;
- justify-content: center;
-}
-
-.sponsor-flex-wrapper-toc {
- display: flex !important;
- flex-direction: row !important;
- flex-wrap: wrap !important;
- gap: 4px !important;
- padding: 0;
- width: 100%;
-}
-
-.sponsor-item-flex {
- flex: 0 1 calc(33.33% - 1rem);
- min-width: 200px;
- max-width: 300px;
-}
-
-.sponsor-item-flex img {
- width: 60% !important;
-}
-
-@media screen and (max-width: 480px) {
- .sponsor-flex-wrapper {
- gap: 24px;
- }
-
- .sponsor-title {
- font-size: .8rem;
- }
-
- .sponsor .sponsor-item {
- height: 40px;
- padding: 2px;
- }
-
- .sponsor-toc {
- display: none;
- }
-
- .sponsor-item-flex {
- flex: 0 1 calc(33.33% - 1rem);
- min-width: 100px;
- max-width: calc(33.33% - 1rem);
- }
-
- .sponsor-item-flex img {
- transform: scale(1.4);
- }
-}
-
-/* 图标动画 */
-.heart {
- animation: heart 1000ms infinite;
-}
-
-@keyframes heart {
-
- 0%,
- 40%,
- 80%,
- 100% {
- transform: scale(1);
- }
-
- 20%,
- 60% {
- transform: scale(1.15);
- }
-}
-
-/* TDesign 组件相关 */
-.t-tag .t-icon {
- margin-right: 0 !important;
-}
-
-[theme-mode="dark"] .t-table {
- --td-bg-color-container: hsla(var(--md-hue), 15%, 14%, 1) !important;
- --td-component-border: hsla(225deg, 15%, 95%, 0.12) !important;
-}
-
-[theme-mode="dark"] .t-tag {
- --td-warning-color-light: #cf6e2d48 !important;
-}
-
-.t-table--hoverable tbody tr:hover {
- background-color: rgba(0, 0, 0, 0.016) !important;
-}
-
-[theme-mode="dark"] .t-table--hoverable tbody tr:hover {
- background-color: rgba(240, 241, 244, 0.016) !important;
-}
-
-.t-table--column-fixed .t-table__cell--fixed-left {
- z-index: 4;
-}
-
-/* termynal 插件 */
-.termy {
- padding: 65px 25px 35px !important;
-}
-
-[data-termynal] {
- color: #000 !important;
- background: #f7f7f7 !important;
- box-shadow: var(--md-shadow-z2);
- font-size: 14px !important;
-}
-
-[data-md-color-scheme="slate"] [data-termynal] {
- color: #eeeeee !important;
- background: #21252c !important;
- box-shadow: var(--md-shadow-z2);
-}
-
-button[data-terminal-control] {
- color: var(--md-typeset-a-color) !important;
-}
-
-[data-termynal]:after {
- color: #585858 !important;
-}
-
-[data-md-color-scheme="slate"] [data-termynal]:after {
- color: #a2a2a2 !important;
-}
-
-/* 切换主题动画 */
-::view-transition-old(root),
-::view-transition-new(root) {
- animation: none;
- mix-blend-mode: normal;
-}
-
-.dark::view-transition-old(root) {
- z-index: var(--view-transition-z-index-foreground);
-}
-
-.dark::view-transition-new(root) {
- z-index: var(--view-transition-z-index-background);
-}
-
-::view-transition-old(root) {
- z-index: var(--view-transition-z-index-background)
-}
-
-::view-transition-new(root) {
- z-index: var(--view-transition-z-index-foreground);
+:root {
+ --md-text-font: system-ui, -apple-system, 'Roboto', 'PingFang SC', 'Microsoft YaHei', 'Hiragino Sans GB', 'Segoe UI', Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
+ --md-code-font: 'SF Mono';
+ --md-primary-fg-color--light: hsl(0, 0%, 100%, 0.33);
+ --md-default-bg-color--light: #fff;
+ --md-default-bg-color--dark: hsla(var(--md-hue), 15%, 14%, 1);
+ --view-transition-z-index-foreground: 999;
+ --view-transition-z-index-background: 1;
+ --hero-background-image: linear-gradient(90deg, rgb(104 104 104) 50%, rgb(104 104 104) 50%);
+}
+
+[data-md-color-scheme='slate'] {
+ --hero-background-image: linear-gradient(90deg, rgb(114 114 114) 50%, rgb(114 114 114) 50%);
+}
+
+[data-md-color-primary=white] {
+ --md-typeset-a-color: #2080f0;
+}
+
+[data-md-color-scheme='slate'][data-md-color-primary=black] {
+ --md-typeset-a-color: #2080f0;
+}
+
+/* logo */
+[data-md-color-scheme="default"] .md-logo img {
+ content: url(/assets/images/brand/svg/logo-light.svg);
+}
+
+[data-md-color-scheme="slate"] .md-logo img {
+ content: url(/assets/images/brand/svg/logo-dark.svg);
+}
+
+/* 字体 */
+@font-face {
+ font-family: 'SF Mono';
+ src: url('./fonts/SF-Mono-Regular.otf');
+}
+
+/* 告诫 */
+
+.md-typeset .admonition,
+.md-typeset details {
+ border-width: 0;
+ border-left-width: 4px;
+}
+
+.md-typeset .admonition.quote,
+.md-typeset details.quote {
+ border-width: .075rem !important;
+ border-color: var(--md-default-fg-color--lightest) !important;
+}
+
+[data-md-color-scheme='slate'] .md-typeset .admonition,
+[data-md-color-scheme='slate'] .md-typeset details {
+ box-shadow: var(--md-shadow-z2) !important;
+}
+
+[data-md-color-scheme='slate'] .md-typeset .admonition.quote,
+[data-md-color-scheme='slate'] .md-typeset details.quote {
+ border-color: var(--md-default-fg-color--lightest) !important;
+}
+
+.md-typeset .admonition.tip,
+.md-typeset details.tip {
+ border-color: #03b803;
+}
+
+.md-typeset .tip>.admonition-title:before,
+.md-typeset .tip>summary:before {
+ background-color: #03b803;
+}
+
+.md-typeset .tip>.admonition-title,
+.md-typeset .tip>summary {
+ background-color: #0094001a;
+}
+
+.md-typeset .admonition.tip:focus-within,
+.md-typeset details.tip:focus-within {
+ box-shadow: 0 0 0 .2rem #0094000a;
+}
+
+[data-md-color-scheme="slate"] .md-typeset .admonition.quote,
+.md-typeset details.quote {
+ border-color: hsla(225deg, 15%, 90%, 0.24);
+}
+
+/* 着陆页 */
+.home-cmd pre>code {
+ padding-right: 3em;
+}
+
+.home-cmd .md-clipboard {
+ top: calc(100% - 60px);
+}
+
+@media screen and (max-width: 768px) {
+ .home-cmd .md-clipboard {
+ top: calc(100% - 50px);
+ }
+}
+
+/* 主题覆盖 */
+.no-select img {
+ user-select: none;
+ -webkit-user-select: none;
+ -webkit-user-drag: none;
+}
+
+.md-header {
+ background-color: hsla(240, 9%, 75%, 0.33);
+ -webkit-backdrop-filter: blur(8px);
+ backdrop-filter: blur(8px);
+ z-index: 999 !important;
+}
+
+[data-md-color-scheme='slate'] .md-header {
+ background-color: hsla(var(--md-hue), 15%, 9%, 0.33);
+}
+
+.md-tabs {
+ background-color: hsla(240, 9%, 75%, 0.33);
+}
+
+[data-md-color-scheme='slate'] .md-tabs {
+ background-color: hsla(var(--md-hue), 15%, 9%, 0.33);
+}
+
+.md-banner {
+ font-style: italic;
+ color: var(--md-default-fg-color--light);
+ background-color: hsla(240, 9%, 75%, 0.53);
+}
+
+[data-md-color-scheme='slate'] .md-banner {
+ background-color: hsla(var(--md-hue), 15%, 9%, 0.83);
+}
+
+@media screen and (max-width: 768px) {
+ .md-typeset .admonition .tabbed-set {
+ width: calc(100vw - 3rem - 2px);
+ }
+
+ .md-typeset .admonition .tabbed-labels {
+ width: calc(100vw - 3rem - 1.2rem);
+ padding-left: .6rem;
+ }
+}
+
+.md-tabs__link {
+ font-size: 0.8rem !important;
+ font-weight: 600 !important;
+}
+
+.md-typeset {
+ font-size: 16px;
+}
+
+.md-typeset .emojione,
+.md-typeset .gemoji,
+.md-typeset .twemoji {
+ height: 100%;
+ vertical-align: -0.2em !important;
+}
+
+.md-typeset .middle {
+ vertical-align: -0.35em !important;
+}
+
+/* HERO */
+.hero {
+ width: 390px;
+ max-width: 100vw;
+ height: 160px;
+ position: absolute;
+ margin: 0 auto;
+}
+
+.hero-background {
+ top: 50%;
+ width: 50%;
+ height: 80px;
+ position: absolute;
+ background-image: var(--hero-background-image);
+ filter: blur(68px);
+ transform: translate(-50%, -50%);
+}
+
+@media screen and (max-width: 768px) {
+ .hero {
+ width: calc(100% - .8rem - 40px);
+ }
+}
+
+/* 赞助组件 */
+.sponsor {
+ padding-top: 1rem;
+ margin-top: 0;
+ border-top: none;
+}
+
+.sponsor-title {
+ font-size: 1.2rem;
+ font-weight: 550;
+ font-feature-settings: "kern", "liga";
+ color: #444;
+ font-family: var(--md-text-font-family);
+}
+
+[data-md-color-scheme="slate"] .sponsor-title {
+ color: #ddd;
+}
+
+.sponsor-title-toc {
+ font-weight: 550;
+ font-feature-settings: "kern", "liga";
+ color: hsl(225deg 0% 46.48% / 56%);
+ font-family: var(--md-text-font-family);
+}
+
+[data-md-color-scheme="slate"] .sponsor-title-toc {
+ color: hsl(225deg 5.64% 68.32% / 56%);
+}
+
+.sponsor-toc {
+ margin-top: 24px !important;
+ border-top: 1px solid var(--md-default-fg-color--lightest) !important;
+}
+
+.sponsor .sponsor-label {
+ font-size: 0.8rem;
+ text-align: center;
+ margin-bottom: 0.2rem;
+ color: var(--md-default-fg-color);
+}
+
+.sponsor .sponsor-wrapper {
+ width: 100%;
+ padding: 0.5rem 0;
+}
+
+.sponsor .sponsor-item {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 100%;
+ text-align: center;
+ padding: 1rem;
+ border-radius: 6px;
+ height: 80px;
+ max-height: 80px;
+ transition: background-color 0.2s, filter 0.3s ease-in-out, opacity 0.3s ease-in-out !important;
+}
+
+.sponsor .sponsor-item:hover {
+ background-color: rgba(0, 0, 0, 0.03);
+}
+
+[data-md-color-scheme="slate"] .sponsor .sponsor-item:hover {
+ background-color: rgba(240, 241, 244, 0.024);
+}
+
+.sponsor .sponsor-item img {
+ max-width: 100%;
+ height: auto;
+ vertical-align: middle;
+}
+
+.sponsor-item-toc {
+ margin: 0;
+ padding: 14px !important;
+ height: 62px !important;
+ border-radius: 4px !important;
+ box-sizing: border-box;
+ flex: 0 0 calc(50% - 2px) !important;
+ background-color: var(--md-code-bg-color);
+}
+
+.sponsor-item-toc:hover {
+ background-color: rgba(0, 0, 0, 0.08) !important;
+}
+
+[data-md-color-scheme="slate"] .sponsor-item-toc:hover {
+ background-color: rgba(240, 241, 244, 0.1) !important;
+}
+
+.sponsor-item-toc-full-row {
+ flex: 0 0 100% !important;
+}
+
+.sponsor-item-toc-full-row img {
+ width: 50% !important;
+}
+
+.sponsor-item-toc img {
+ width: 100%;
+ object-fit: contain;
+ filter: grayscale(1) invert(0.6);
+ opacity: 0.7;
+}
+
+[data-md-color-scheme="slate"] .sponsor-item-toc img {
+ filter: brightness(1.3) grayscale(1);
+ opacity: 0.75;
+}
+
+.sponsor-item-toc:hover img {
+ filter: grayscale(0%) !important;
+ opacity: 1;
+}
+
+.sponsor-flex-wrapper {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 1rem;
+ justify-content: center;
+}
+
+.sponsor-flex-wrapper-toc {
+ display: flex !important;
+ flex-direction: row !important;
+ flex-wrap: wrap !important;
+ gap: 4px !important;
+ padding: 0;
+ width: 100%;
+}
+
+.sponsor-item-flex {
+ flex: 0 1 calc(33.33% - 1rem);
+ min-width: 200px;
+ max-width: 300px;
+}
+
+.sponsor-item-flex img {
+ width: 60% !important;
+}
+
+@media screen and (max-width: 480px) {
+ .sponsor-flex-wrapper {
+ gap: 24px;
+ }
+
+ .sponsor-title {
+ font-size: .8rem;
+ }
+
+ .sponsor .sponsor-item {
+ height: 40px;
+ padding: 2px;
+ }
+
+ .sponsor-toc {
+ display: none;
+ }
+
+ .sponsor-item-flex {
+ flex: 0 1 calc(33.33% - 1rem);
+ min-width: 100px;
+ max-width: calc(33.33% - 1rem);
+ }
+
+ .sponsor-item-flex img {
+ transform: scale(1.4);
+ }
+}
+
+/* 图标动画 */
+.heart {
+ animation: heart 1000ms infinite;
+}
+
+@keyframes heart {
+
+ 0%,
+ 40%,
+ 80%,
+ 100% {
+ transform: scale(1);
+ }
+
+ 20%,
+ 60% {
+ transform: scale(1.15);
+ }
+}
+
+/* TDesign 组件相关 */
+.t-tag .t-icon {
+ margin-right: 0 !important;
+}
+
+[theme-mode="dark"] .t-table {
+ --td-bg-color-container: hsla(var(--md-hue), 15%, 14%, 1) !important;
+ --td-component-border: hsla(225deg, 15%, 95%, 0.12) !important;
+}
+
+[theme-mode="dark"] .t-tag {
+ --td-warning-color-light: #cf6e2d48 !important;
+}
+
+.t-table--hoverable tbody tr:hover {
+ background-color: rgba(0, 0, 0, 0.016) !important;
+}
+
+[theme-mode="dark"] .t-table--hoverable tbody tr:hover {
+ background-color: rgba(240, 241, 244, 0.016) !important;
+}
+
+.t-table--column-fixed .t-table__cell--fixed-left {
+ z-index: 4;
+}
+
+/* termynal 插件 */
+.termy {
+ padding: 65px 25px 35px !important;
+}
+
+[data-termynal] {
+ color: #000 !important;
+ background: #f7f7f7 !important;
+ box-shadow: var(--md-shadow-z2);
+ font-size: 14px !important;
+}
+
+[data-md-color-scheme="slate"] [data-termynal] {
+ color: #eeeeee !important;
+ background: #21252c !important;
+ box-shadow: var(--md-shadow-z2);
+}
+
+button[data-terminal-control] {
+ color: var(--md-typeset-a-color) !important;
+}
+
+[data-termynal]:after {
+ color: #585858 !important;
+}
+
+[data-md-color-scheme="slate"] [data-termynal]:after {
+ color: #a2a2a2 !important;
+}
+
+/* 切换主题动画 */
+::view-transition-old(root),
+::view-transition-new(root) {
+ animation: none;
+ mix-blend-mode: normal;
+}
+
+.dark::view-transition-old(root) {
+ z-index: var(--view-transition-z-index-foreground);
+}
+
+.dark::view-transition-new(root) {
+ z-index: var(--view-transition-z-index-background);
+}
+
+::view-transition-old(root) {
+ z-index: var(--view-transition-z-index-background)
+}
+
+::view-transition-new(root) {
+ z-index: var(--view-transition-z-index-foreground);
}
\ No newline at end of file
diff --git a/docs/theme/main.html b/docs/theme/main.html
index cafec26..04426ff 100644
--- a/docs/theme/main.html
+++ b/docs/theme/main.html
@@ -5,3 +5,7 @@
{{ super() }}
{% endblock %}
+
+{% block announce %}
+ 如果觉得这个项目不错对您有所帮助的话,请点击仓库右上角的 Star 并分享给更多的朋友
+{% endblock %}
diff --git a/docs/theme/partials/toc.html b/docs/theme/partials/toc.html
index 00ae909..adf3aed 100644
--- a/docs/theme/partials/toc.html
+++ b/docs/theme/partials/toc.html
@@ -46,7 +46,7 @@