├── .gitee └── issue_template.md ├── .github ├── ISSUE_TEMPLATE │ ├── bug.yml │ ├── config.yml │ └── feature.yml └── workflows │ ├── auto-sync.yml │ └── build-docs.yml ├── .gitignore ├── CODE_OF_CONDUCT.md ├── ChangeMirrors.sh ├── DockerInstallation.sh ├── LICENSE ├── README.md ├── docs ├── assets │ ├── css │ │ ├── orama-ui.css │ │ ├── tdesign.min.css │ │ └── tdesign.min.css.map │ ├── favicon.ico │ ├── images │ │ ├── brand │ │ │ ├── command │ │ │ │ ├── docker-dark.png │ │ │ │ ├── docker-light.png │ │ │ │ ├── linux-dark.png │ │ │ │ └── linux-light.png │ │ │ ├── dark │ │ │ │ ├── 1.png │ │ │ │ ├── 2.png │ │ │ │ └── 3.png │ │ │ ├── img │ │ │ │ ├── 1.jpg │ │ │ │ ├── 2.jpg │ │ │ │ ├── 3.jpg │ │ │ │ ├── 4.jpg │ │ │ │ ├── 5.jpg │ │ │ │ └── 6.jpg │ │ │ ├── light │ │ │ │ ├── 1.png │ │ │ │ ├── 2.png │ │ │ │ └── 3.png │ │ │ └── svg │ │ │ │ ├── 1.svg │ │ │ │ ├── 2.svg │ │ │ │ ├── 3.svg │ │ │ │ ├── logo-dark.svg │ │ │ │ └── logo-light.svg │ │ ├── icon │ │ │ ├── almalinux.svg │ │ │ ├── alpine.png │ │ │ ├── anolis.png │ │ │ ├── arch-linux.ico │ │ │ ├── armbian.png │ │ │ ├── centos.svg │ │ │ ├── debian.svg │ │ │ ├── deepin.png │ │ │ ├── fedora.ico │ │ │ ├── gentoo.svg │ │ │ ├── kali-linux.svg │ │ │ ├── linux-mint.ico │ │ │ ├── linux.svg │ │ │ ├── netlify.svg │ │ │ ├── nixos.svg │ │ │ ├── opencloudos.png │ │ │ ├── openeuler.ico │ │ │ ├── openkylin.ico │ │ │ ├── opensuse.svg │ │ │ ├── proxmox.svg │ │ │ ├── raspberry-pi.png │ │ │ ├── red-hat-enterprise-linux.svg │ │ │ ├── redhat.svg │ │ │ ├── rocky-linux.svg │ │ │ ├── ubuntu.svg │ │ │ └── zorin-os.png │ │ ├── logo.png │ │ ├── sponsor │ │ │ ├── 1panel.png │ │ │ ├── arcadia-dark.png │ │ │ ├── arcadia-light.png │ │ │ ├── bueryun.svg │ │ │ ├── businiaocdn.png │ │ │ ├── duotuyun-dark.svg │ │ │ ├── duotuyun-light.svg │ │ │ ├── fufuyun.png │ │ │ ├── ifdian.png │ │ │ ├── linfengyun-dark.png │ │ │ ├── linfengyun-light.png │ │ │ ├── qiaoxh-dark.svg │ │ │ ├── qiaoxh-light.svg │ │ │ ├── runxinyun.png │ │ │ ├── sutuoyun.svg │ │ │ ├── xinniaoyun.png │ │ │ ├── yuluyundun-dark.png │ │ │ ├── yuluyundun-light.png │ │ │ └── yunyoo.png │ │ └── support │ │ │ ├── jetbrains-dark.svg │ │ │ ├── jetbrains-light.svg │ │ │ ├── netlify-dark.png │ │ │ └── netlify-light.png │ └── js │ │ ├── common.js │ │ ├── component.js │ │ ├── components │ │ ├── mirrors-table │ │ │ ├── data.js │ │ │ └── index.js │ │ └── orama-ui │ │ │ ├── config.js │ │ │ ├── index-native.js │ │ │ └── index.js │ │ ├── modules │ │ ├── tdesign-theme.js │ │ ├── tdesign.min.js │ │ ├── tdesign.min.js.map │ │ └── vue.global.prod.js │ │ └── useThemeTransition.js ├── community │ └── index.md ├── index.md ├── mirrors │ └── index.md ├── other │ └── index.md ├── sponsor │ ├── index.md │ └── main.html ├── stylesheets │ ├── extra.css │ └── fonts │ │ └── SF-Mono-Regular.otf ├── theme │ ├── flag │ │ ├── AR.svg │ │ ├── AU.svg │ │ ├── BE.svg │ │ ├── BR.svg │ │ ├── CA.svg │ │ ├── CH.svg │ │ ├── CN.svg │ │ ├── CZ.svg │ │ ├── DE.svg │ │ ├── DK.svg │ │ ├── EE.svg │ │ ├── FR.svg │ │ ├── GB.svg │ │ ├── GR.svg │ │ ├── HK.svg │ │ ├── JP.svg │ │ ├── KE.svg │ │ ├── KR.svg │ │ ├── MY.svg │ │ ├── NL.svg │ │ ├── NZ.svg │ │ ├── RU.svg │ │ ├── SE.svg │ │ ├── SG.svg │ │ ├── TH.svg │ │ ├── TW.svg │ │ ├── US.svg │ │ ├── ZA.svg │ │ ├── world-map.svg │ │ └── world.svg │ ├── gitcode.svg │ ├── incompatible.svg │ ├── linuxmirrors.svg │ ├── main.html │ ├── netlify.svg │ ├── partials │ │ ├── comments.html │ │ ├── content.html │ │ ├── header.html │ │ ├── search.html │ │ └── toc.html │ ├── supported.svg │ └── unsupport.svg └── use │ └── index.md ├── giscus.json ├── mkdocs.yml └── requirements.txt /.gitee/issue_template.md: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | ## 1. 操作系统 21 | 22 | - [ ] `Debian` 23 | - [ ] `Ubuntu` 24 | - [ ] `Kali Linux` 25 | - [ ] `Linux Mint` 26 | - [ ] `Deepin` 27 | - [ ] `Zorin OS` 28 | - [ ] `Armbian` 29 | - [ ] `Proxmox VE` 30 | - [ ] `Raspberry Pi OS` 31 | - [ ] `Red Hat Enterprise Linux` 32 | - [ ] `Fedora` 33 | - [ ] `CentOS` 34 | - [ ] `Rocky Linux` 35 | - [ ] `AlmaLinux` 36 | - [ ] `openEuler` 37 | - [ ] `OpenCloudOS` 38 | - [ ] `openKylin` 39 | - [ ] `Anolis OS` 40 | - [ ] `openSUSE` 41 | - [ ] `Arch Linux` 42 | - [ ] `Alpine Linux` 43 | - [ ] `Gentoo` 44 | - [ ] `NixOS` 45 | 46 | ## 2. 处理器架构 47 | 48 | - [ ] `x86_64` `x86_32` 49 | - [ ] `arm64` `arm/v8` `arm/v7` `arm/v6` 50 | - [ ] `ppc64le` `s390x` 51 | - [ ] `Other` 52 | 53 | ## 3. 系统详细信息 54 | 55 | ``` 56 | 57 | ``` 58 | 59 | ## 4. 环境信息 60 | 61 | ``` 62 | 63 | ``` 64 | 65 | ## 5. 详细叙述你的问题 66 | ### (1) 具体问题 67 | A: 68 | 69 | 70 | ### (2) 详细的执行日志 71 | 72 | ``` 73 | 74 | ``` 75 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug.yml: -------------------------------------------------------------------------------- 1 | name: 🐞 上报错误 2 | description: Report bug 3 | labels: ["bug"] 4 | body: 5 | - type: dropdown 6 | id: os 7 | attributes: 8 | label: 操作系统 9 | options: 10 | - Debian 11 | - Ubuntu 12 | - Kali Linux 13 | - Linux Mint 14 | - Deepin 15 | - Zorin OS 16 | - Armbian 17 | - Proxmox VE 18 | - Raspberry Pi OS 19 | - Red Hat Enterprise Linux 20 | - Fedora 21 | - CentOS 22 | - Rocky Linux 23 | - AlmaLinux 24 | - openEuler 25 | - OpenCloudOS 26 | - openKylin 27 | - Anolis OS 28 | - openSUSE 29 | - Arch Linux 30 | - Alpine Linux 31 | - Gentoo 32 | - NixOS 33 | validations: 34 | required: true 35 | 36 | - type: dropdown 37 | id: architecture 38 | attributes: 39 | label: 处理器架构 40 | options: 41 | - x86_64 / x86_32 42 | - arm64 / arm/v8 / arm/v7 / arm/v6 43 | - ppc64le / s390x 44 | - 其它 45 | validations: 46 | required: true 47 | 48 | - type: textarea 49 | id: release 50 | attributes: 51 | label: 系统详细信息 52 | description: '请执行命令 `cat /etc/os-release`,并将输出结果粘贴在下方' 53 | render: 'shell' 54 | validations: 55 | required: true 56 | 57 | - type: input 58 | id: uname 59 | attributes: 60 | label: 环境信息 61 | description: '请执行命令 `uname -a`,并将输出结果粘贴在下方' 62 | validations: 63 | required: true 64 | 65 | - type: textarea 66 | id: what-happened 67 | attributes: 68 | label: 描述您遇到的问题 69 | validations: 70 | required: true 71 | 72 | - type: textarea 73 | id: logs 74 | attributes: 75 | label: 详细的执行日志 76 | placeholder: 日志内容 77 | render: 'shell' 78 | validations: 79 | required: true 80 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature.yml: -------------------------------------------------------------------------------- 1 | name: 💡 功能请求与建议 2 | description: Feature request 3 | labels: ["enhancement"] 4 | body: 5 | - type: textarea 6 | id: content 7 | attributes: 8 | label: '描述您的功能请求或建议' 9 | validations: 10 | required: false 11 | -------------------------------------------------------------------------------- /.github/workflows/auto-sync.yml: -------------------------------------------------------------------------------- 1 | name: Sync to mirror repo 2 | on: 3 | push: 4 | branches: 5 | - main 6 | jobs: 7 | repo-sync: 8 | env: 9 | dst_key: ${{ secrets.GITEE_PRIVATE_KEY }} 10 | dst_token: ${{ secrets.GITEE_TOKEN }} 11 | gitee_user: ${{ secrets.GITEE_USER }} 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/checkout@v4 15 | with: 16 | persist-credentials: false 17 | - name: sync to gitee 18 | uses: Yikun/hub-mirror-action@master 19 | if: env.dst_key && env.dst_token && env.gitee_user 20 | with: 21 | src: github/SuperManito 22 | dst: gitee/SuperManito 23 | dst_key: ${{ secrets.GITEE_PRIVATE_KEY }} 24 | dst_token: ${{ secrets.GITEE_TOKEN }} 25 | static_list: "LinuxMirrors" 26 | force_update: true -------------------------------------------------------------------------------- /.github/workflows/build-docs.yml: -------------------------------------------------------------------------------- 1 | name: Build docs website 2 | on: 3 | push: 4 | branches: 5 | - master 6 | - main 7 | permissions: 8 | contents: write 9 | jobs: 10 | deploy: 11 | runs-on: ubuntu-latest 12 | steps: 13 | - uses: actions/checkout@v4 14 | - name: Configure Git Credentials 15 | run: | 16 | git config user.name github-actions[bot] 17 | git config user.email 41898282+github-actions[bot]@users.noreply.github.com 18 | - uses: actions/setup-python@v5 19 | with: 20 | python-version: 3.x 21 | - run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV 22 | - uses: actions/cache@v4 23 | with: 24 | key: mkdocs-material-${{ env.cache_id }} 25 | path: .cache 26 | restore-keys: | 27 | mkdocs-material- 28 | - run: pip install -r ./requirements.txt 29 | - run: cp -rvf ./ChangeMirrors.sh ./docs/main.sh 30 | - run: cp -rvf ./DockerInstallation.sh ./docs/docker.sh 31 | - run: mkdocs gh-deploy --force 32 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | site/ 3 | dist/ 4 | node_modules 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | 10 | # Log files 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | pnpm-debug.log* 15 | 16 | # Editor directories and files 17 | .idea 18 | *.suo 19 | *.ntvs* 20 | *.njsproj 21 | *.sln 22 | *.sw? 23 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | We as members, contributors, and leaders pledge to make participation in our 6 | community a harassment-free experience for everyone, regardless of age, body 7 | size, visible or invisible disability, ethnicity, sex characteristics, gender 8 | identity and expression, level of experience, education, socio-economic status, 9 | nationality, personal appearance, race, religion, or sexual identity 10 | and orientation. 11 | 12 | We pledge to act and interact in ways that contribute to an open, welcoming, 13 | diverse, inclusive, and healthy community. 14 | 15 | ## Our Standards 16 | 17 | Examples of behavior that contributes to a positive environment for our 18 | community include: 19 | 20 | * Demonstrating empathy and kindness toward other people 21 | * Being respectful of differing opinions, viewpoints, and experiences 22 | * Giving and gracefully accepting constructive feedback 23 | * Accepting responsibility and apologizing to those affected by our mistakes, 24 | and learning from the experience 25 | * Focusing on what is best not just for us as individuals, but for the 26 | overall community 27 | 28 | Examples of unacceptable behavior include: 29 | 30 | * The use of sexualized language or imagery, and sexual attention or 31 | advances of any kind 32 | * Trolling, insulting or derogatory comments, and personal or political attacks 33 | * Public or private harassment 34 | * Publishing others' private information, such as a physical or email 35 | address, without their explicit permission 36 | * Other conduct which could reasonably be considered inappropriate in a 37 | professional setting 38 | 39 | ## Enforcement Responsibilities 40 | 41 | Community leaders are responsible for clarifying and enforcing our standards of 42 | acceptable behavior and will take appropriate and fair corrective action in 43 | response to any behavior that they deem inappropriate, threatening, offensive, 44 | or harmful. 45 | 46 | Community leaders have the right and responsibility to remove, edit, or reject 47 | comments, commits, code, wiki edits, issues, and other contributions that are 48 | not aligned to this Code of Conduct, and will communicate reasons for moderation 49 | decisions when appropriate. 50 | 51 | ## Scope 52 | 53 | This Code of Conduct applies within all community spaces, and also applies when 54 | an individual is officially representing the community in public spaces. 55 | Examples of representing our community include using an official e-mail address, 56 | posting via an official social media account, or acting as an appointed 57 | representative at an online or offline event. 58 | 59 | ## Enforcement 60 | 61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 | reported to the community leaders responsible for enforcement at 63 | . 64 | All complaints will be reviewed and investigated promptly and fairly. 65 | 66 | All community leaders are obligated to respect the privacy and security of the 67 | reporter of any incident. 68 | 69 | ## Enforcement Guidelines 70 | 71 | Community leaders will follow these Community Impact Guidelines in determining 72 | the consequences for any action they deem in violation of this Code of Conduct: 73 | 74 | ### 1. Correction 75 | 76 | **Community Impact**: Use of inappropriate language or other behavior deemed 77 | unprofessional or unwelcome in the community. 78 | 79 | **Consequence**: A private, written warning from community leaders, providing 80 | clarity around the nature of the violation and an explanation of why the 81 | behavior was inappropriate. A public apology may be requested. 82 | 83 | ### 2. Warning 84 | 85 | **Community Impact**: A violation through a single incident or series 86 | of actions. 87 | 88 | **Consequence**: A warning with consequences for continued behavior. No 89 | interaction with the people involved, including unsolicited interaction with 90 | those enforcing the Code of Conduct, for a specified period of time. This 91 | includes avoiding interactions in community spaces as well as external channels 92 | like social media. Violating these terms may lead to a temporary or 93 | permanent ban. 94 | 95 | ### 3. Temporary Ban 96 | 97 | **Community Impact**: A serious violation of community standards, including 98 | sustained inappropriate behavior. 99 | 100 | **Consequence**: A temporary ban from any sort of interaction or public 101 | communication with the community for a specified period of time. No public or 102 | private interaction with the people involved, including unsolicited interaction 103 | with those enforcing the Code of Conduct, is allowed during this period. 104 | Violating these terms may lead to a permanent ban. 105 | 106 | ### 4. Permanent Ban 107 | 108 | **Community Impact**: Demonstrating a pattern of violation of community 109 | standards, including sustained inappropriate behavior, harassment of an 110 | individual, or aggression toward or disparagement of classes of individuals. 111 | 112 | **Consequence**: A permanent ban from any sort of public interaction within 113 | the community. 114 | 115 | ## Attribution 116 | 117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 | version 2.0, available at 119 | https://www.contributor-covenant.org/version/2/0/code_of_conduct.html. 120 | 121 | Community Impact Guidelines were inspired by [Mozilla's code of conduct 122 | enforcement ladder](https://github.com/mozilla/diversity). 123 | 124 | [homepage]: https://www.contributor-covenant.org 125 | 126 | For answers to common questions about this code of conduct, see the FAQ at 127 | https://www.contributor-covenant.org/faq. Translations are available at 128 | https://www.contributor-covenant.org/translations. -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 SuperManito 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /docs/assets/css/orama-ui.css: -------------------------------------------------------------------------------- 1 | .orama-ui { 2 | -webkit-font-smoothing: antialiased; 3 | -moz-osx-font-smoothing: grayscale; 4 | font-family: var(--md-text-font); 5 | font-weight: 400; 6 | text-rendering: optimizeLegibility; 7 | vertical-align: baseline; 8 | -webkit-text-size-adjust: none; 9 | -moz-text-size-adjust: none; 10 | text-size-adjust: none; 11 | --orama-base-font-size: 18; 12 | 13 | --font-size-xxs: calc(10rem/var(--orama-base-font-size, 16)); 14 | --font-size-xs: calc(12rem/var(--orama-base-font-size, 16)); 15 | --font-size-sm: calc(14rem/var(--orama-base-font-size, 16)); 16 | --font-size-md: calc(16rem/var(--orama-base-font-size, 16)); 17 | --font-size-lg: calc(20rem/var(--orama-base-font-size, 16)); 18 | --font-weight-normal: 400; 19 | --font-weight-semibold: 600; 20 | --font-line-height-s: 1.25; 21 | --font-line-height-m: 1.5; 22 | --radius-xs: calc(6rem/var(--orama-base-font-size, 16)); 23 | --radius-s: calc(8rem/var(--orama-base-font-size, 16)); 24 | --radius-m: calc(12rem/var(--orama-base-font-size, 16)); 25 | --radius-l: calc(16rem/var(--orama-base-font-size, 16)); 26 | --radius-3xl: calc(40rem/var(--orama-base-font-size, 16)); 27 | --textarea-radius: calc(16rem/var(--orama-base-font-size, 16)); 28 | --spacing-2xs: calc(2rem/var(--orama-base-font-size, 16)); 29 | --spacing-xs: calc(4rem/var(--orama-base-font-size, 16)); 30 | --spacing-s: calc(8rem/var(--orama-base-font-size, 16)); 31 | --spacing-m: calc(12rem/var(--orama-base-font-size, 16)); 32 | --spacing-l: calc(16rem/var(--orama-base-font-size, 16)); 33 | --spacing-xl: calc(24rem/var(--orama-base-font-size, 16)); 34 | --spacing-2xl: calc(32rem/var(--orama-base-font-size, 16)); 35 | --spacing-3xl: calc(40rem/var(--orama-base-font-size, 16)); 36 | --textarea-shadow: var(--md-shadow-z1); 37 | 38 | --text-color-primary: #151515; 39 | --text-color-secondary: #838289; 40 | --text-color-tertiary: #99989d; 41 | --text-color-accent: var(--md-accent-fg-color); 42 | --text-color-inactive: #99989d; 43 | --text-color-reverse: #fff; 44 | --background-color-primary: #fbfbfb; 45 | --background-color-secondary: #fff; 46 | --background-color-tertiary: var(--md-accent-fg-color--transparent); 47 | --background-color-fourth: #efefef; 48 | --background-color-reverse: #000; 49 | --background-color-accent: var(--md-accent-fg-color); 50 | --border-color-primary: #dadada; 51 | --border-color-secondary: #efefef; 52 | --border-color-tertiary: #151515; 53 | --border-color-accent: var(--md-accent-fg-color); 54 | --icon-color-primary: #151515; 55 | --icon-color-secondary: #dadada; 56 | --icon-color-tertiary: #838289; 57 | --icon-color-inactive: #99989d; 58 | --icon-color-reverse: #fbfbfb; 59 | --shadow-color-primary: #fff; 60 | --button-text-color-primary: #fbfbfb; 61 | --button-text-color-secondary: #838289; 62 | --button-background-color-primary: var(--md-accent-fg-color); 63 | --button-background-color-secondary: hsla(240, 9%, 75%, 0.33); 64 | --button-background-color-secondary-hover: var(--md-accent-fg-color--transparent); 65 | --button-border-color-secondary: #dadada; 66 | --backdrop-background-color-primary: hsla(0, 0%, 98%, .7); 67 | --chat-button-border-color-gradientOne: transparent; 68 | --chat-button-border-color-gradientTwo: transparent; 69 | --chat-button-border-color-gradientThree: var(--md-accent-fg-color); 70 | --chat-button-border-color-gradientFour: var(--md-accent-fg-color); 71 | --chat-button-border-color-gradientFive: transparent; 72 | --chat-button-border-color-gradientSix: transparent; 73 | --chat-button-background-color-gradientOne: var(--md-accent-fg-color); 74 | --chat-button-background-color-gradientTwo: transparent; 75 | 76 | } 77 | 78 | .orama-ui *, 79 | .orama-ui:after, 80 | .orama-ui:before { 81 | box-sizing: border-box 82 | } 83 | 84 | [data-md-color-scheme="slate"] .orama-ui { 85 | --text-color-primary: #fbfbfb; 86 | --text-color-secondary: #dadada; 87 | --text-color-tertiary: #838289; 88 | --text-color-accent: var(--md-accent-fg-color); 89 | --text-color-inactive: #99989d; 90 | --text-color-reverse: #000; 91 | --background-color-primary: var(--md-default-bg-color--dark); 92 | --background-color-secondary: #1a1b20; 93 | --background-color-tertiary: var(--md-accent-fg-color--transparent); 94 | --background-color-fourth: #2e2e2e; 95 | --background-color-reverse: #fff; 96 | --background-color-accent: var(--md-accent-fg-color); 97 | --border-color-primary: #2e2e2e; 98 | --border-color-secondary: #151515; 99 | --border-color-tertiary: #afafb1; 100 | --border-color-accent: var(--md-accent-fg-color); 101 | --icon-color-primary: #fbfbfb; 102 | --icon-color-secondary: #dadada; 103 | --icon-color-tertiary: #838289; 104 | --icon-color-inactive: #99989d; 105 | --icon-color-reverse: var(--md-default-bg-color--dark); 106 | --shadow-color-primary: #000; 107 | --button-text-color-primary: #fbfbfb; 108 | --button-text-color-secondary: #99989d; 109 | --button-background-color-primary: var(--md-accent-fg-color); 110 | --button-background-color-secondary: hsla(var(--md-hue), 15%, 9%, 0.33); 111 | --button-background-color-secondary-hover: var(--md-accent-fg-color--transparent); 112 | --button-border-color-secondary: #2e2e2e; 113 | --backdrop-background-color-primary: rgba(5, 5, 5, .7); 114 | --chat-button-border-color-gradientOne: transparent; 115 | --chat-button-border-color-gradientTwo: transparent; 116 | --chat-button-border-color-gradientThree: var(--md-accent-fg-color); 117 | --chat-button-border-color-gradientFour: var(--md-accent-fg-color); 118 | --chat-button-border-color-gradientFive: transparent; 119 | --chat-button-border-color-gradientSix: transparent; 120 | --chat-button-background-color-gradientOne: var(--md-accent-fg-color); 121 | --chat-button-background-color-gradientTwo: transparent; 122 | } -------------------------------------------------------------------------------- /docs/assets/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/favicon.ico -------------------------------------------------------------------------------- /docs/assets/images/brand/command/docker-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/brand/command/docker-dark.png -------------------------------------------------------------------------------- /docs/assets/images/brand/command/docker-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/brand/command/docker-light.png -------------------------------------------------------------------------------- /docs/assets/images/brand/command/linux-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/brand/command/linux-dark.png -------------------------------------------------------------------------------- /docs/assets/images/brand/command/linux-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/brand/command/linux-light.png -------------------------------------------------------------------------------- /docs/assets/images/brand/dark/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/brand/dark/1.png -------------------------------------------------------------------------------- /docs/assets/images/brand/dark/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/brand/dark/2.png -------------------------------------------------------------------------------- /docs/assets/images/brand/dark/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/brand/dark/3.png -------------------------------------------------------------------------------- /docs/assets/images/brand/img/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/brand/img/1.jpg -------------------------------------------------------------------------------- /docs/assets/images/brand/img/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/brand/img/2.jpg -------------------------------------------------------------------------------- /docs/assets/images/brand/img/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/brand/img/3.jpg -------------------------------------------------------------------------------- /docs/assets/images/brand/img/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/brand/img/4.jpg -------------------------------------------------------------------------------- /docs/assets/images/brand/img/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/brand/img/5.jpg -------------------------------------------------------------------------------- /docs/assets/images/brand/img/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/brand/img/6.jpg -------------------------------------------------------------------------------- /docs/assets/images/brand/light/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/brand/light/1.png -------------------------------------------------------------------------------- /docs/assets/images/brand/light/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/brand/light/2.png -------------------------------------------------------------------------------- /docs/assets/images/brand/light/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/brand/light/3.png -------------------------------------------------------------------------------- /docs/assets/images/brand/svg/1.svg: -------------------------------------------------------------------------------- 1 | 3 | 5 | 17 | 20 | 23 | 26 | 32 | 37 | 42 | 49 | 54 | 58 | 62 | 63 | 68 | 74 | 77 | 78 | -------------------------------------------------------------------------------- /docs/assets/images/brand/svg/2.svg: -------------------------------------------------------------------------------- 1 | 3 | 5 | 18 | 19 | 21 | 24 | 31 | 36 | 40 | 45 | 50 | 54 | 61 | 64 | 69 | 76 | 78 | 79 | -------------------------------------------------------------------------------- /docs/assets/images/brand/svg/3.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 22 | 23 | -------------------------------------------------------------------------------- /docs/assets/images/brand/svg/logo-dark.svg: -------------------------------------------------------------------------------- 1 | 3 | 5 | 23 | 24 | -------------------------------------------------------------------------------- /docs/assets/images/brand/svg/logo-light.svg: -------------------------------------------------------------------------------- 1 | 3 | 5 | 23 | 24 | -------------------------------------------------------------------------------- /docs/assets/images/icon/almalinux.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /docs/assets/images/icon/alpine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/icon/alpine.png -------------------------------------------------------------------------------- /docs/assets/images/icon/anolis.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/icon/anolis.png -------------------------------------------------------------------------------- /docs/assets/images/icon/arch-linux.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/icon/arch-linux.ico -------------------------------------------------------------------------------- /docs/assets/images/icon/armbian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/icon/armbian.png -------------------------------------------------------------------------------- /docs/assets/images/icon/centos.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/assets/images/icon/debian.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/assets/images/icon/deepin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/icon/deepin.png -------------------------------------------------------------------------------- /docs/assets/images/icon/fedora.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/icon/fedora.ico -------------------------------------------------------------------------------- /docs/assets/images/icon/gentoo.svg: -------------------------------------------------------------------------------- 1 | Gentoo Logo Vector -------------------------------------------------------------------------------- /docs/assets/images/icon/kali-linux.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/assets/images/icon/linux-mint.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/icon/linux-mint.ico -------------------------------------------------------------------------------- /docs/assets/images/icon/linux.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/assets/images/icon/netlify.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /docs/assets/images/icon/nixos.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/assets/images/icon/opencloudos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/icon/opencloudos.png -------------------------------------------------------------------------------- /docs/assets/images/icon/openeuler.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/icon/openeuler.ico -------------------------------------------------------------------------------- /docs/assets/images/icon/openkylin.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/icon/openkylin.ico -------------------------------------------------------------------------------- /docs/assets/images/icon/opensuse.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/assets/images/icon/raspberry-pi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/icon/raspberry-pi.png -------------------------------------------------------------------------------- /docs/assets/images/icon/red-hat-enterprise-linux.svg: -------------------------------------------------------------------------------- 1 | Logo-Red_Hat-Enterprise_Linux-A-Standard-RGB -------------------------------------------------------------------------------- /docs/assets/images/icon/redhat.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/assets/images/icon/rocky-linux.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/assets/images/icon/ubuntu.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/assets/images/icon/zorin-os.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/icon/zorin-os.png -------------------------------------------------------------------------------- /docs/assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/logo.png -------------------------------------------------------------------------------- /docs/assets/images/sponsor/1panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/sponsor/1panel.png -------------------------------------------------------------------------------- /docs/assets/images/sponsor/arcadia-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/sponsor/arcadia-dark.png -------------------------------------------------------------------------------- /docs/assets/images/sponsor/arcadia-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/sponsor/arcadia-light.png -------------------------------------------------------------------------------- /docs/assets/images/sponsor/bueryun.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 6 | 8 | 9 | 10 | 11 | 13 | 14 | 15 | 16 | 18 | 20 | 22 | 24 | 26 | 28 | 30 | 32 | 34 | 36 | 38 | 40 | 41 | 43 | 45 | 47 | 49 | 51 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 61 | 62 | -------------------------------------------------------------------------------- /docs/assets/images/sponsor/businiaocdn.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/sponsor/businiaocdn.png -------------------------------------------------------------------------------- /docs/assets/images/sponsor/duotuyun-dark.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 7 | 8 | 9 | 10 | 11 | 12 | 14 | 15 | 17 | 19 | 21 | 22 | -------------------------------------------------------------------------------- /docs/assets/images/sponsor/duotuyun-light.svg: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 7 | 8 | 9 | 10 | 11 | 12 | 14 | 15 | 17 | 19 | 21 | 22 | -------------------------------------------------------------------------------- /docs/assets/images/sponsor/fufuyun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/sponsor/fufuyun.png -------------------------------------------------------------------------------- /docs/assets/images/sponsor/ifdian.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/sponsor/ifdian.png -------------------------------------------------------------------------------- /docs/assets/images/sponsor/linfengyun-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/sponsor/linfengyun-dark.png -------------------------------------------------------------------------------- /docs/assets/images/sponsor/linfengyun-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/sponsor/linfengyun-light.png -------------------------------------------------------------------------------- /docs/assets/images/sponsor/qiaoxh-dark.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/assets/images/sponsor/runxinyun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/sponsor/runxinyun.png -------------------------------------------------------------------------------- /docs/assets/images/sponsor/xinniaoyun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/sponsor/xinniaoyun.png -------------------------------------------------------------------------------- /docs/assets/images/sponsor/yuluyundun-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/sponsor/yuluyundun-dark.png -------------------------------------------------------------------------------- /docs/assets/images/sponsor/yuluyundun-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/sponsor/yuluyundun-light.png -------------------------------------------------------------------------------- /docs/assets/images/sponsor/yunyoo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/sponsor/yunyoo.png -------------------------------------------------------------------------------- /docs/assets/images/support/jetbrains-dark.svg: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 10 | 11 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /docs/assets/images/support/jetbrains-light.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 12 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /docs/assets/images/support/netlify-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/support/netlify-dark.png -------------------------------------------------------------------------------- /docs/assets/images/support/netlify-light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/assets/images/support/netlify-light.png -------------------------------------------------------------------------------- /docs/assets/js/common.js: -------------------------------------------------------------------------------- 1 | // 防抖 2 | function debounce(func, wait) { 3 | let timeout 4 | return function () { 5 | const context = this 6 | const args = arguments 7 | clearTimeout(timeout) 8 | timeout = setTimeout(() => func.apply(context, args), wait) 9 | } 10 | } 11 | 12 | // 组件管理系统(每个组件都是一个 Vue 实例) 13 | const ComponentSystem = { 14 | // 组件状态数据 15 | components: {}, 16 | 17 | // 注册组件 18 | register: function (componentId, componentDef) { 19 | // 为每个组件创建自己的状态 20 | this.components[componentId] = { 21 | id: componentId, 22 | instance: null, 23 | isInitializing: false, 24 | lastInitTime: 0, 25 | def: componentDef, 26 | debouncedInit: null, 27 | } 28 | // 创建组件初始化函数 29 | const initFunc = function () { 30 | const component = ComponentSystem.components[componentId] 31 | // 如果正在初始化或者距离上次初始化时间太短,则跳过 32 | const now = Date.now() 33 | if (component.isInitializing || now - component.lastInitTime < 1000) { 34 | return 35 | } 36 | // 使用缓存,如果没有则查询 37 | if (!component.instance) { 38 | component.instance = document.getElementById(componentId) 39 | } 40 | // 如果找不到容器,不执行后续操作 41 | if (!component.instance) { 42 | return 43 | } 44 | // 如果组件已经初始化过,且DOM没有变化,则跳过 45 | if (component.instance.hasAttribute('data-initialized')) { 46 | return 47 | } 48 | // console.log(`找到组件 ${componentId} 容器,开始初始化`) 49 | component.isInitializing = true 50 | component.lastInitTime = now 51 | try { 52 | // 清空容器内容,防止重复初始化 53 | while (component.instance.firstChild) { 54 | component.instance.removeChild(component.instance.firstChild) 55 | } 56 | // 确保容器有适当的尺寸 57 | if (!component.instance.style.width) { 58 | component.instance.style.width = '100%' 59 | } 60 | // 确保 Vue 和 TDesign 已加载 61 | if (typeof Vue !== 'undefined' && typeof TDesign !== 'undefined') { 62 | // 创建 Vue 应用 63 | const App = Vue.createApp(component.def) 64 | // 注册 TDesign 组件 65 | App.use(TDesign.default) 66 | // 挂载应用 67 | App.mount(component.instance) 68 | // console.log(`组件 ${componentId} 初始化成功`) 69 | // 标记组件已初始化 70 | component.instance.setAttribute('data-initialized', 'true') 71 | // 立即更新主题 72 | updateTDesignGlobalTheme() 73 | } else if (typeof Vue !== 'undefined') { 74 | console.error('Vue 未找到') 75 | const errorDiv = document.createElement('div') 76 | errorDiv.innerHTML = `

组件 ${componentId} 加载失败,请检查 Vue 是否存在!

` 77 | component.instance.appendChild(errorDiv) 78 | } else if (typeof TDesign !== 'undefined') { 79 | console.error('TDesign UI 未找到') 80 | const errorDiv = document.createElement('div') 81 | errorDiv.innerHTML = `

组件 ${componentId} 加载失败,请检查 TDesign UI 是否存在!

` 82 | component.instance.appendChild(errorDiv) 83 | } 84 | } catch (error) { 85 | console.error(`组件 ${componentId} 初始化时发生错误:${error}`) 86 | } finally { 87 | component.isInitializing = false 88 | } 89 | } 90 | // 为每个组件创建防抖初始化函数 91 | this.components[componentId].debouncedInit = debounce(initFunc, 300) 92 | return this.components[componentId].debouncedInit 93 | }, 94 | 95 | // 初始化所有组件 96 | initAll: function () { 97 | Object.values(this.components).forEach((component) => { 98 | if (component.debouncedInit) { 99 | component.debouncedInit() 100 | } 101 | }) 102 | }, 103 | 104 | // 重新初始化组件 105 | reinitialize: function (componentId) { 106 | const component = this.components[componentId] 107 | if (component) { 108 | component.instance = document.getElementById(componentId) 109 | if (component.instance) { 110 | component.instance.removeAttribute('data-initialized') 111 | setTimeout(component.debouncedInit, 300) 112 | } 113 | } 114 | }, 115 | 116 | // 重新初始化所有组件 117 | reinitializeAll: function () { 118 | Object.keys(this.components).forEach((id) => { 119 | this.reinitialize(id) 120 | }) 121 | }, 122 | } 123 | -------------------------------------------------------------------------------- /docs/assets/js/component.js: -------------------------------------------------------------------------------- 1 | // 使用 mkdocs-material 与第三方 JavaScript 库集成的方法 2 | document$.subscribe(function () { 3 | ComponentSystem.reinitializeAll() 4 | // Orama AI Search 5 | loadOramaWebComponent() 6 | }) 7 | -------------------------------------------------------------------------------- /docs/assets/js/components/mirrors-table/index.js: -------------------------------------------------------------------------------- 1 | ComponentSystem.register('mirrors-table', { 2 | template: ` 3 |
4 | 10 | 21 | 42 | 43 |
44 | `, 45 | data() { 46 | return { 47 | columns: mirrorsTableColumns, 48 | data: mirrorsTableData, 49 | } 50 | }, 51 | }) 52 | -------------------------------------------------------------------------------- /docs/assets/js/components/orama-ui/config.js: -------------------------------------------------------------------------------- 1 | // get search box config 2 | function getOramaSearchBoxConfig() { 3 | return { 4 | themeConfig: { 5 | // colors: { 6 | // light: { 7 | // '--text-color-accent': 'var(--md-accent-fg-color)', 8 | // '--background-color-tertiary': 'var(--md-accent-fg-color--transparent)', 9 | // '--background-color-accent': 'var(--md-accent-fg-color)', 10 | // '--border-color-accent': 'var(--md-accent-fg-color)', 11 | // '--button-background-color-primary': 'var(--md-accent-fg-color)', 12 | // '--button-background-color-secondary': 'hsla(240, 9%, 75%, 0.33)', 13 | // '--button-background-color-secondary-hover': 'var(--md-accent-fg-color--transparent)', 14 | // '--chat-button-border-color-gradientThree': 'var(--md-accent-fg-color)', 15 | // '--chat-button-border-color-gradientFour': 'var(--md-accent-fg-color)', 16 | // '--chat-button-background-color-gradientOne': 'var(--md-accent-fg-color)', 17 | // }, 18 | // dark: { 19 | // '--text-color-accent': 'var(--md-accent-fg-color)', 20 | // '--background-color-primary': 'var(--md-default-bg-color--dark)', 21 | // '--background-color-secondary': '#1a1b20', 22 | // '--background-color-tertiary': 'var(--md-accent-fg-color--transparent)', 23 | // '--background-color-accent': 'var(--md-accent-fg-color)', 24 | // '--border-color-accent': 'var(--md-accent-fg-color)', 25 | // '--icon-color-reverse': 'var(--md-default-bg-color--dark)', 26 | // '--button-background-color-primary': 'var(--md-accent-fg-color)', 27 | // '--button-background-color-secondary': 'hsla(var(--md-hue), 15%, 9%, 0.33)', 28 | // '--button-background-color-secondary-hover': 'var(--md-accent-fg-color--transparent)', 29 | // '--chat-button-border-color-gradientThree': 'var(--md-accent-fg-color)', 30 | // '--chat-button-border-color-gradientFour': 'var(--md-accent-fg-color)', 31 | // '--chat-button-background-color-gradientOne': 'var(--md-accent-fg-color)', 32 | // }, 33 | // }, 34 | // shadow: { 35 | // '--textarea-shadow': 'var(--md-shadow-z1)', 36 | // }, 37 | // typography: { 38 | // '--font-primary': 'var(--md-font-family)', 39 | // }, 40 | }, 41 | index: { 42 | endpoint: 'https://cloud.orama.run/v1/indexes/linuxmirrors-cn-imxypv', 43 | api_key: 'mBJ0b68dZIk79DqCkdUSJI6yQMo4L4o3', 44 | }, 45 | facetProperty: 'category', 46 | sourceBaseUrl: 'https://linuxmirrors.cn', 47 | sourcesMap: { 48 | title: 'title', 49 | }, 50 | resultMap: { 51 | title: 'title', 52 | description: 'content', 53 | section: 'category', 54 | }, 55 | searchPlaceholder: '请输入要搜索的内容...', 56 | chatPlaceholder: '有什么可以帮你的吗?', 57 | suggestions: ['如何使用', '支持哪些系统'], 58 | } 59 | } 60 | 61 | // localization search box component 62 | function localizationOramaSearchBox(searchBox) { 63 | if (!searchBox) return 64 | const observer = new MutationObserver((mutations, obs) => { 65 | const shadowRoot = searchBox.shadowRoot 66 | if (shadowRoot) { 67 | // Get a summary (Only PC) 68 | const chatButton = shadowRoot.querySelector('.chat-button') 69 | if (chatButton) { 70 | const element = chatButton.querySelector('.button-label') 71 | if (element && element.textContent !== '询问 AI') { 72 | element.textContent = '询问 AI' 73 | } 74 | } 75 | // Hide "Orama can make mistakes. Please verify the information." 76 | const chatFormWrapper = shadowRoot.querySelector('.chat-form-wrapper') 77 | if (chatFormWrapper) { 78 | const element = chatFormWrapper.querySelector('p.small.text-center') 79 | if (element) { 80 | element.style = 'display: none;' 81 | } 82 | } 83 | // Navigation bar (Only Mobile) 84 | const navigationBar = shadowRoot.querySelector('orama-navigation-bar') 85 | if (navigationBar) { 86 | const toggler = navigationBar.querySelector('orama-toggler') 87 | if (toggler) { 88 | const searchSpan = toggler.querySelector('span:nth-child(1)') 89 | if (searchSpan && searchSpan.textContent !== '搜索') { 90 | searchSpan.textContent = '搜索' 91 | searchSpan.style = 'max-height: fit-content;' 92 | } 93 | const askAISpan = toggler.querySelector('span:nth-child(2)') 94 | if (askAISpan && askAISpan.textContent !== '询问 AI') { 95 | askAISpan.textContent = '询问 AI' 96 | askAISpan.style = 'max-height: fit-content;' 97 | } 98 | } 99 | } 100 | } 101 | }) 102 | observer.observe(searchBox, { childList: true, subtree: true, attributes: true }) 103 | setTimeout(() => observer.disconnect(), 2000) 104 | } 105 | -------------------------------------------------------------------------------- /docs/assets/js/components/orama-ui/index-native.js: -------------------------------------------------------------------------------- 1 | function loadOramaWebComponent() { 2 | const searchBox = document.querySelector('orama-search-box') 3 | if (searchBox) { 4 | Object.assign(searchBox, getOramaSearchBoxConfig()) 5 | } 6 | 7 | // custom button style and localization 8 | const searchButton = document.querySelector('orama-search-button') 9 | if (searchButton) { 10 | searchButton.textContent = '搜索' 11 | const observer = new MutationObserver((mutations, obs) => { 12 | if (searchButton.shadowRoot) { 13 | const button = searchButton.shadowRoot.querySelector('button') 14 | if (button) { 15 | button.style = 'border-radius: 8px !important;' 16 | button.querySelector('.button__label').style = 'height: 22px; padding: 2px 8px; font-size: 0.75rem;' 17 | button.querySelector('span[slot="adorment-end"], .kyb-shortcut').style = 'display: none;' 18 | // search icon style 19 | const magnifyingGlassShadowRoot = button.querySelector('ph-magnifying-glass').shadowRoot 20 | const styleElement = document.createElement('style') 21 | styleElement.textContent = ` 22 | svg { 23 | font-size: 24px; 24 | }` 25 | if (!magnifyingGlassShadowRoot.querySelector('style[data-custom="icon-style"]')) { 26 | styleElement.setAttribute('data-custom', 'icon-style') 27 | magnifyingGlassShadowRoot.appendChild(styleElement) 28 | } 29 | obs.disconnect() 30 | } 31 | } 32 | }) 33 | observer.observe(searchButton, { 34 | childList: true, 35 | subtree: true, 36 | attributes: true, 37 | characterData: true, 38 | }) 39 | setTimeout(() => observer.disconnect(), 2000) 40 | } 41 | 42 | searchButton.addEventListener('click', function () { 43 | const searchBox = document.querySelector('orama-search-box') 44 | // localization chat box component 45 | localizationOramaSearchBox(searchBox) 46 | }) 47 | } -------------------------------------------------------------------------------- /docs/assets/js/components/orama-ui/index.js: -------------------------------------------------------------------------------- 1 | function loadOramaWebComponent() { 2 | const searchBox = document.querySelector('orama-search-box') 3 | if (searchBox) { 4 | Object.assign(searchBox, getOramaSearchBoxConfig()) 5 | } 6 | 7 | // define global function 8 | window.openOramaSearch = function (event) { 9 | const element = document.querySelector('orama-search-box') 10 | if (element) { 11 | element.open = true 12 | localizationOramaSearchBox(element) 13 | } 14 | return false 15 | } 16 | // localization chat box component 17 | if (searchBox) { 18 | const openObserver = new MutationObserver((mutations) => { 19 | mutations.forEach((mutation) => { 20 | if (mutation.type === 'attributes' && mutation.attributeName === 'open' && searchBox.hasAttribute('open')) { 21 | localizationOramaSearchBox(searchBox) 22 | } 23 | }) 24 | }) 25 | openObserver.observe(searchBox, { attributes: true }) 26 | if (searchBox.hasAttribute('open')) { 27 | localizationOramaSearchBox(searchBox) 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /docs/assets/js/modules/tdesign-theme.js: -------------------------------------------------------------------------------- 1 | // 更新 TDesign 主题 2 | function updateTDesignGlobalTheme() { 3 | const scheme = document.querySelector('[data-md-color-scheme]')?.getAttribute('data-md-color-scheme') 4 | const isDarkMode = scheme === 'slate' || scheme === 'dark' 5 | if (isDarkMode) { 6 | document.documentElement.setAttribute('theme-mode', 'dark') 7 | } else { 8 | document.documentElement.removeAttribute('theme-mode') 9 | } 10 | } 11 | 12 | // 主题监听器 13 | function setupThemeObserver() { 14 | // 监听主题变化 15 | const observer = new MutationObserver(() => { 16 | updateTDesignGlobalTheme() 17 | }) 18 | const element = document.querySelector('[data-md-color-scheme]') 19 | if (element) { 20 | observer.observe(element, { 21 | attributes: true, 22 | attributeFilter: ['data-md-color-scheme'], 23 | }) 24 | } else { 25 | // 如果元素不存在,等待页面加载完成后重试 26 | setTimeout(setupThemeObserver, 1000) 27 | } 28 | } 29 | 30 | document.addEventListener('DOMContentLoaded', function () { 31 | setupThemeObserver() 32 | }) 33 | -------------------------------------------------------------------------------- /docs/assets/js/useThemeTransition.js: -------------------------------------------------------------------------------- 1 | function useThemeTransition() { 2 | // 更新过渡样式变量 3 | function updateViewTransitionVariables(isDarkTheme) { 4 | document.documentElement.style.setProperty('--view-transition-z-index-foreground', isDarkTheme ? '999' : '1') 5 | document.documentElement.style.setProperty('--view-transition-z-index-background', isDarkTheme ? '1' : '999') 6 | } 7 | // 切换主题按钮点击事件 8 | function handleThemeToggle(e) { 9 | // 阻止默认点击事件 10 | e.preventDefault() 11 | e.stopPropagation() 12 | // 获取目标输入元素 13 | const targetId = this.getAttribute('for') 14 | const targetInput = document.getElementById(targetId) 15 | if (!targetInput) return 16 | // 获取主题状态 17 | const targetTheme = targetInput.getAttribute('data-md-color-scheme') // 目标主题(system、default、slate) 18 | const systemTheme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'slate' : 'default' // 系统主题(default、slate) 19 | const currentScheme = document.body.getAttribute('data-md-color-scheme') // 当前主题(default、slate) 20 | // 当目标主题与当前主题相同时不触发动画 21 | if (targetTheme === 'system') { 22 | if (systemTheme === currentScheme) { 23 | targetInput.click() 24 | return 25 | } 26 | } else if (targetTheme === currentScheme) { 27 | targetInput.click() 28 | return 29 | } 30 | // 当前主题状态 31 | const isSystemDarkTheme = systemTheme === 'slate' // 系统是否为深色主题 32 | const isCurrentDarkTheme = currentScheme.includes('slate') // 当前是否为深色主题 33 | const isSwitchToDarkTheme = !isCurrentDarkTheme // 是否将切换到深色主题 34 | // 根据系统主题设置动画样式 35 | updateViewTransitionVariables(isSystemDarkTheme) 36 | // 判断切换方向是否与系统主题一致 37 | // 如果系统是深色,切换到深色是"靠近系统";如果系统是浅色,切换到浅色是"靠近系统" 38 | const isMovingTowardsSystemTheme = (isSwitchToDarkTheme && isSystemDarkTheme) || (!isSwitchToDarkTheme && !isSystemDarkTheme) 39 | // 动画参数 40 | const x = e.clientX 41 | const y = e.clientY 42 | const endRadius = Math.hypot(Math.max(x, window.innerWidth - x), Math.max(y, window.innerHeight - y)) 43 | const clipPath = [`circle(0px at ${x}px ${y}px)`, `circle(${endRadius}px at ${x}px ${y}px)`] 44 | // 启动视图过渡 45 | document 46 | .startViewTransition(async () => { 47 | // 切换主题 48 | targetInput.click() 49 | // 添加CSS类用于动画控制 50 | document.documentElement.classList.remove(isSwitchToDarkTheme ? 'light' : 'dark') 51 | document.documentElement.classList.add(isSwitchToDarkTheme ? 'dark' : 'light') 52 | // 等待主题变化完成 53 | await new Promise((resolve) => setTimeout(resolve, 100)) 54 | }) 55 | .ready.then(() => { 56 | // 当朝向系统主题方向变化时使用使用缩小效果(reversed clipPath),反之放大效果(clipPath) 57 | document.documentElement.animate( 58 | { 59 | clipPath: isMovingTowardsSystemTheme ? [...clipPath].reverse() : clipPath, 60 | transform: 'translateZ(0)', 61 | }, 62 | { 63 | duration: 500, 64 | easing: 'ease-in', 65 | pseudoElement: isMovingTowardsSystemTheme ? '::view-transition-old(root)' : '::view-transition-new(root)', 66 | } 67 | ) 68 | }) 69 | } 70 | 71 | // 不支持此特性 72 | if (typeof document.startViewTransition !== 'function') { 73 | return 74 | } 75 | // 获取主题切换按钮Dom 76 | const themeToggles = document.querySelectorAll('form[data-md-component="palette"] .md-header__button.md-icon') 77 | themeToggles.forEach((toggle) => { 78 | toggle.addEventListener('click', handleThemeToggle, { capture: true }) 79 | }) 80 | // 初始化主题状态类 81 | const currentScheme = document.body.getAttribute('data-md-color-scheme') 82 | const isDark = currentScheme.includes('slate') 83 | document.documentElement.classList.add(isDark ? 'dark' : 'light') 84 | // 初始化过渡样式变量 85 | updateViewTransitionVariables(isDark) 86 | } 87 | 88 | document.addEventListener('DOMContentLoaded', function () { 89 | useThemeTransition() 90 | }) 91 | -------------------------------------------------------------------------------- /docs/community/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | comments: true 3 | comments_description: 请确保讨论内容与项目的相关性,不得发布广告等违规内容 4 | hide: 5 | - navigation 6 | - toc 7 | - feedback 8 | - footer 9 | --- 10 | -------------------------------------------------------------------------------- /docs/sponsor/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | hide: 3 | - navigation 4 | - toc 5 | - feedback 6 | - footer 7 | --- 8 | 9 | --8<-- "docs/sponsor/main.html" 10 | 11 | # 12 | 13 |
14 |
成为赞助商
15 |
16 | 19 |
20 |

请前往作者爱发电主页查看说明并与作者取得联系

21 |
22 | -------------------------------------------------------------------------------- /docs/sponsor/main.html: -------------------------------------------------------------------------------- 1 | 54 | 55 | 73 | -------------------------------------------------------------------------------- /docs/stylesheets/fonts/SF-Mono-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SuperManito/LinuxMirrors/4d0d5256a26919016e8d82df73c019f38d2a701f/docs/stylesheets/fonts/SF-Mono-Regular.otf -------------------------------------------------------------------------------- /docs/theme/flag/AR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/AU.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/BE.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/BR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/CA.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/CH.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/CN.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/CZ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/DE.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/DK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/EE.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/FR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/GB.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/GR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/HK.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/JP.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/KE.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/KR.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/MY.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/NL.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/NZ.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/RU.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/SE.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/SG.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/TH.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/TW.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/US.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/ZA.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/world-map.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/flag/world.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/gitcode.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/incompatible.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/linuxmirrors.svg: -------------------------------------------------------------------------------- 1 | 3 | 5 | 23 | 24 | -------------------------------------------------------------------------------- /docs/theme/main.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block scripts %} 4 | 5 | 6 | {{ super() }} 7 | {% endblock %} 8 | 9 | {% block announce %} 10 | 如果觉得这个项目不错对您有所帮助的话,请点击仓库右上角的 Star 并分享给更多的朋友   11 | {% endblock %} 12 | -------------------------------------------------------------------------------- /docs/theme/netlify.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/partials/comments.html: -------------------------------------------------------------------------------- 1 | {% if page.meta.comments %} 2 |

{{ lang.t("meta.comments") }}

3 | {% if page.meta.comments_description %} 4 |
{{ page.meta.comments_description }}
5 | {% endif %} 6 | 23 | 24 | 54 | {% endif %} 55 | -------------------------------------------------------------------------------- /docs/theme/partials/content.html: -------------------------------------------------------------------------------- 1 | {% include "partials/tags.html" %} 2 | 3 | {% include "partials/actions.html" %} 4 | 5 | {% if "\x3ch1" not in page.content %} 6 |

{{ page.title | d(config.site_name, true)}}

7 | {% endif %} 8 | 9 | {{ page.content }} 10 | 11 | {% include "partials/source-file.html" %} 12 | 13 | {% include "partials/feedback.html" %} 14 | 15 | {% include "partials/comments.html" %} 16 | 17 | -------------------------------------------------------------------------------- /docs/theme/partials/header.html: -------------------------------------------------------------------------------- 1 | {% set class = "md-header" %} 2 | {% if "navigation.tabs.sticky" in features %} 3 | {% set class = class ~ " md-header--shadow md-header--lifted" %} 4 | {% elif "navigation.tabs" not in features %} 5 | {% set class = class ~ " md-header--shadow" %} 6 | {% endif %} 7 | 8 |
9 | 82 | 83 | {% if "navigation.tabs.sticky" in features %} 84 | {% if "navigation.tabs" in features %} 85 | {% include "partials/tabs.html" %} 86 | {% endif %} 87 | {% endif %} 88 |
89 | -------------------------------------------------------------------------------- /docs/theme/partials/toc.html: -------------------------------------------------------------------------------- 1 | 77 | -------------------------------------------------------------------------------- /docs/theme/supported.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /docs/theme/unsupport.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /giscus.json: -------------------------------------------------------------------------------- 1 | { 2 | "defaultCommentOrder": "newest" 3 | } -------------------------------------------------------------------------------- /mkdocs.yml: -------------------------------------------------------------------------------- 1 | site_name: LinuxMirrors 2 | repo_name: LinuxMirrors 3 | repo_url: https://github.com/SuperManito/LinuxMirrors 4 | edit_uri: edit/main/docs/ 5 | copyright: 'Copyright © 2025 SuperManito
本网站由 Netlify 部署并提供全球 CDN 边缘网络加速 ' 6 | 7 | extra_javascript: 8 | - assets/js/modules/vue.global.prod.js 9 | - assets/js/modules/tdesign.min.js 10 | - assets/js/modules/tdesign-theme.js 11 | - assets/js/components/orama-ui/config.js 12 | - assets/js/components/orama-ui/index.js 13 | - assets/js/useThemeTransition.js 14 | - assets/js/common.js 15 | - assets/js/component.js 16 | - assets/js/components/mirrors-table/data.js 17 | - assets/js/components/mirrors-table/index.js 18 | extra_css: 19 | - assets/css/tdesign.min.css 20 | - assets/css/orama-ui.css 21 | - stylesheets/extra.css 22 | 23 | theme: 24 | logo: assets/images/brand/svg/logo-light.svg 25 | name: material 26 | custom_dir: docs/theme 27 | language: zh 28 | favicon: assets/favicon.ico 29 | font: false 30 | icon: 31 | repo: simple/github 32 | edit: material/file-document-edit-outline 33 | view: material/file-eye-outline 34 | admonition: 35 | note: octicons/tag-16 36 | abstract: octicons/checklist-16 37 | info: octicons/info-16 38 | tip: fontawesome/regular/lightbulb 39 | success: octicons/check-16 40 | question: octicons/question-16 41 | warning: octicons/alert-16 42 | danger: octicons/zap-16 43 | bug: octicons/bug-16 44 | example: octicons/beaker-16 45 | quote: octicons/quote-16 46 | palette: 47 | - media: "(prefers-color-scheme)" 48 | scheme: system 49 | toggle: 50 | icon: material/brightness-auto 51 | name: 跟随系统 52 | - media: "(prefers-color-scheme: light)" 53 | scheme: default 54 | primary: white 55 | accent: blue 56 | toggle: 57 | icon: octicons/sun-16 58 | name: 亮色模式 59 | - media: "(prefers-color-scheme: dark)" 60 | scheme: slate 61 | primary: black 62 | accent: blue 63 | toggle: 64 | icon: octicons/moon-16 65 | name: 暗黑模式 66 | features: 67 | - header.autohide 68 | - navigation.top 69 | - navigation.tabs 70 | - navigation.path 71 | - navigation.instant 72 | - navigation.instant.progress 73 | - navigation.indexes 74 | - navigation.footer 75 | - navigation.tracking 76 | - navigation.sections 77 | - content.tooltips 78 | - content.code.copy 79 | - content.code.annotate 80 | - search.suggest 81 | - search.highlight 82 | - search.share 83 | - announce.dismiss 84 | extra: 85 | generator: false 86 | homepage: https://linuxmirrors.cn 87 | social: 88 | - icon: simple/google 89 | link: https://gitcode.com/SuperManito/LinuxMirrors 90 | name: GitCode 91 | - icon: simple/gitee 92 | link: https://gitee.com/SuperManito/LinuxMirrors 93 | name: Gitee 94 | - icon: simple/github 95 | link: https://github.com/SuperManito/LinuxMirrors 96 | name: GitHub 97 | analytics: 98 | provider: google 99 | property: G-WG7T40F7YP 100 | feedback: 101 | title: 此页面上的内容对你有帮助吗? 102 | ratings: 103 | - icon: material/thumb-up-outline 104 | name: This page was helpful 105 | data: 1 106 | note: >- 107 | 感谢反馈! 108 | - icon: material/thumb-down-outline 109 | name: This page could be improved 110 | data: 0 111 | note: >- 112 | 感谢反馈!使用反馈表单
帮助我们改进此页面。 113 | markdown_extensions: 114 | - toc: 115 | permalink: "#" 116 | permalink_title: 永久链接 117 | toc_depth: 3 118 | slugify: !!python/object/apply:pymdownx.slugs.slugify 119 | kwds: 120 | case: lower 121 | - abbr 122 | - tables 123 | - def_list 124 | - attr_list 125 | - footnotes 126 | - md_in_html 127 | - admonition 128 | - pymdownx.details 129 | - pymdownx.betterem 130 | - pymdownx.snippets 131 | - pymdownx.inlinehilite 132 | - pymdownx.superfences 133 | - pymdownx.critic 134 | - pymdownx.caret 135 | - pymdownx.keys 136 | - pymdownx.mark 137 | - pymdownx.tilde 138 | - pymdownx.tasklist: 139 | custom_checkbox: true 140 | - pymdownx.emoji: 141 | emoji_index: !!python/name:material.extensions.emoji.twemoji 142 | emoji_generator: !!python/name:material.extensions.emoji.to_svg 143 | options: 144 | custom_icons: 145 | - docs/theme 146 | - pymdownx.highlight: 147 | anchor_linenums: true 148 | use_pygments: true 149 | - pymdownx.tabbed: 150 | alternate_style: true 151 | slugify: !!python/object/apply:pymdownx.slugs.slugify 152 | kwds: 153 | case: lower 154 | - pymdownx.tasklist: 155 | custom_checkbox: true 156 | plugins: 157 | - search: 158 | lang: en 159 | separator: '[\s\-,:!=\[\]()"/]+|(?!\b)(?=[A-Z][a-z])|\.(?!\d)|&[lg]t;' 160 | - tags 161 | - termynal 162 | - minify: 163 | minify_js: true 164 | minify_css: true 165 | htmlmin_opts: 166 | remove_comments: true 167 | cache_safe: true 168 | js_files: 169 | - assets/js/useThemeTransition.js 170 | - assets/js/common.js 171 | - assets/js/component.js 172 | - assets/js/components/mirrors-table/data.js 173 | - assets/js/components/mirrors-table/index.js 174 | nav: 175 | - "介绍": index.md 176 | - "使用方法": use/index.md 177 | - "软件源列表": mirrors/index.md 178 | - "其它工具": other/index.md 179 | - "社区": community/index.md 180 | - "赞助": sponsor/index.md 181 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | mkdocs-material==9.6.14 2 | mkdocs-glightbox==0.4.0 3 | mkdocs-exclude-search==0.6.6 4 | mkdocs-minify-plugin==0.8.0 5 | termynal==0.13.0 --------------------------------------------------------------------------------