diff --git a/_config.yml b/_config.yml index 88a5084..f0b42d0 100644 --- a/_config.yml +++ b/_config.yml @@ -31,16 +31,4 @@ babel_js_extensions: 'es6' exclude: [Gemfile, Gemfile.lock, README.md, gen_robot.sh, vendor, geninfo/, gen_robot.sh, gen_desc.py, Dockerfile*] -# Content Related -new_mirrors: - - gnu-alpha - - mxlinux - - mxlinux-isos - - armbian - - armbian-releases - - rustup - - nix - - dart-pub - - flutter - # vim: ts=2 sts=2 sw=2 expandtab diff --git a/_data/mirror_desc.json b/_data/mirror_desc.json deleted file mode 100644 index 942380b..0000000 --- a/_data/mirror_desc.json +++ /dev/null @@ -1,646 +0,0 @@ -[ - { - "name": "AOSP", - "desc": "Android 操作系统源代码" - }, - { - "name": "AUR", - "desc": "Arch Linux 用户软件库" - }, - { - "name": "Bananian", - "desc": "为 Banana Pi 制作的,基于官方 Debian 仓库的发行版镜像和软件包仓库" - }, - { - "name": "CPAN", - "desc": "" - }, - { - "name": "CRAN", - "desc": "R 语言的可执行文件、源代码和说明文件,也收录了各种用户撰写的软件包" - }, - { - "name": "CTAN", - "desc": "TeX 的各种发行版、软件包和文档" - }, - { - "name": "CocoaPods", - "desc": "Objective-C 和 Swift 的依赖管理器" - }, - { - "name": "ELK", - "desc": "现已更名为 Elastic Stack,仅保留用作向后兼容" - }, - { - "name": "HHVM", - "desc": "Facebook 开发的高性能 PHP 语言虚拟机" - }, - { - "name": "Homebrew", - "desc": "Homebrew 的 formula 索引的镜像,二进制预编译包的镜像请见 homebrew-bottles" - }, - { - "name": "NetBSD", - "desc": "NetBSD 的安装镜像和部分系统源码" - }, - { - "name": "OpenBSD", - "desc": "OpenBSD 的安装镜像和官方软件包仓库" - }, - { - "name": "adobe-fonts", - "desc": "Adobe 公司的开源字体" - }, - { - "name": "alpine", - "desc": "Alpine Linux 的安装镜像和官方软件包仓库" - }, - { - "name": "anaconda", - "desc": "用于科学计算的 Python 发行版" - }, - { - "name": "antergos", - "desc": "基于 Arch Linux 的使用 GNOME 3 的发行版,曾用名 Cinnarch" - }, - { - "name": "anthon", - "desc": "Anthon Linux (安同 Linux)的安装镜像和官方软件包仓库" - }, - { - "name": "aosp-monthly", - "desc": "AOSP 镜像每月打包" - }, - { - "name": "apache", - "desc": "Apache 基金会赞助的各个项目" - }, - { - "name": "arch4edu", - "desc": "用于 Arch Linux 和 Arch Linux ARM 的非官方软件仓库,主要包含科研、教学所需的各种常用软件" - }, - { - "name": "archlinux", - "desc": "Arch Linux 的安装镜像和官方软件包仓库" - }, - { - "name": "archlinuxarm", - "desc": "用于 arm 平台的 Arch Linux 镜像和软件包仓库" - }, - { - "name": "archlinuxcn", - "desc": "由 Arch Linux 中文社区驱动的非官方用户仓库,包含中文用户常用软件、工具、字体/美化包等" - }, - { - "name": "armbian", - "desc": "" - }, - { - "name": "armbian-releases", - "desc": "" - }, - { - "name": "artixlinux", - "desc": "" - }, - { - "name": "bananian", - "desc": "用于 Banana Pi 的 Debian 操作系统" - }, - { - "name": "bioconductor", - "desc": "开源的基因数据分析处理工具" - }, - { - "name": "bjlx", - "desc": "北京龙芯 & Debian 俱乐部 的公开软件源" - }, - { - "name": "blackarch", - "desc": "用于安全评估的基于 Arch Linux 的轻量级发行版" - }, - { - "name": "cc", - "desc": "CERN CentOS" - }, - { - "name": "centos", - "desc": "CentOS 的安装镜像和官方软件包仓库" - }, - { - "name": "centos-altarch", - "desc": "CentOS 额外平台的安装镜像和官方软件包仓库" - }, - { - "name": "centos-vault", - "desc": "" - }, - { - "name": "ceph", - "desc": "高性能对象存储和文件系统" - }, - { - "name": "chakra", - "desc": "专注于 Qt 与 KDE 软件的 Linux 发行版" - }, - { - "name": "chakra-releases", - "desc": "Chakra 发行版的安装镜像" - }, - { - "name": "chromiumos", - "desc": "Google Chrome OS的开放源代码开发版本" - }, - { - "name": "clojars", - "desc": "Clojure 语言的第三方软件包仓库" - }, - { - "name": "ctex", - "desc": "旧版 CTEX 安装镜像存档" - }, - { - "name": "cygwin", - "desc": "Cygwin 官方软件包仓库" - }, - { - "name": "dart-pub", - "desc": "Dart 语言的软件包仓库" - }, - { - "name": "debian", - "desc": "Debian Linux 的官方软件包仓库" - }, - { - "name": "debian-cd", - "desc": "Debian Linux 的安装镜像" - }, - { - "name": "debian-multimedia", - "desc": "Debian Linux 第三方多媒体软件源" - }, - { - "name": "debian-nonfree", - "desc": "Debian Linux 的非自由软件包仓库" - }, - { - "name": "debian-security", - "desc": "Debian Linux 的安全更新" - }, - { - "name": "deepin", - "desc": "Deepin Linux 的官方软件包仓库" - }, - { - "name": "deepin-cd", - "desc": "Deepin Linux 的安装镜像" - }, - { - "name": "dell", - "desc": "Dell 服务器管理工具" - }, - { - "name": "docker-ce", - "desc": "Docker Community Edition 的安装包" - }, - { - "name": "dotdeb", - "desc": "用于 Debian 服务器的额外镜像源" - }, - { - "name": "eclipse", - "desc": "著名的IDE Eclipse" - }, - { - "name": "elasticstack", - "desc": "ELK 系列数据分析工具,5.x 之后改名为 Elastic Stack" - }, - { - "name": "elpa", - "desc": "Emacs 内建包管理器 package.el 的软件源" - }, - { - "name": "elrepo", - "desc": "RHEL 及其变体的 RPM 软件包仓库" - }, - { - "name": "elvish", - "desc": "TUNA 前会长 xiaq 开发的革命性 Shell" - }, - { - "name": "epel", - "desc": "企业版 Linux 附加软件包" - }, - { - "name": "erlang-solutions", - "desc": "" - }, - { - "name": "fedora", - "desc": "Fedora Linux 的安装镜像和官方软件包仓库" - }, - { - "name": "fedora-altarch", - "desc": "Fedora Linux 额外平台的安装镜像和官方软件包仓库" - }, - { - "name": "flightgear", - "desc": "多平台的飞行模拟器" - }, - { - "name": "flutter", - "desc": "Flutter 框架 SDK 镜像" - }, - { - "name": "fzug", - "desc": "Fedora 中文用户组的软件包仓库" - }, - { - "name": "gentoo", - "desc": "Gentoo Linux 的 Stage 3 镜像" - }, - { - "name": "gentoo-portage", - "desc": "Gentoo Linux 的 Portage 包管理器镜像源" - }, - { - "name": "gentoo-portage-prefix", - "desc": "Gentoo/Prefix 的 Portage 包管理器镜像源" - }, - { - "name": "git-repo", - "desc": "Google 开发的项目依赖下载工具 repo 的镜像" - }, - { - "name": "gitlab-ce", - "desc": "Gitlab 社区版" - }, - { - "name": "gitlab-ci-multi-runner", - "desc": "GitLab 持续集成框架" - }, - { - "name": "gitlab-ee", - "desc": "Gitlab 企业版" - }, - { - "name": "gitlab-runner", - "desc": "GitLab 持续集成框架版本 10 及以上" - }, - { - "name": "gnu", - "desc": "GNU项目的软件包(源代码、文档和部分平台的二进制文件)" - }, - { - "name": "gnu-alpha", - "desc": "" - }, - { - "name": "grafana", - "desc": "开源的数据可视化工具" - }, - { - "name": "hackage", - "desc": "Haskell 社区的中心软件包仓库" - }, - { - "name": "homebrew", - "desc": "Homebrew 的软件包描述文件" - }, - { - "name": "homebrew-bottles", - "desc": "预编译的 Homebrew 软件包" - }, - { - "name": "iina", - "desc": "macOS 上的现代化开源视频播放器" - }, - { - "name": "infinality-bundle", - "desc": "Arch Linux 的字体渲染软件包" - }, - { - "name": "influxdata", - "desc": "时间序列数据平台" - }, - { - "name": "ius", - "desc": "为企业版 Linux 提供最新软件包的镜像源" - }, - { - "name": "jenkins", - "desc": "用 Java 编写的持续集成框架" - }, - { - "name": "kali", - "desc": "Kali Linux 的官方软件包仓库" - }, - { - "name": "kali-images", - "desc": "Kali Linux 的安装镜像" - }, - { - "name": "kali-security", - "desc": "Kali Linux 的安全更新" - }, - { - "name": "kernel", - "desc": "各个版本的Linux 内核源代码" - }, - { - "name": "kodi", - "desc": "开源的多媒体播放器,原名 XBMC" - }, - { - "name": "lede", - "desc": "OpenWRT 与 LEDE 再次合并后的源码仓库" - }, - { - "name": "libreoffice", - "desc": "" - }, - { - "name": "lineage-rom", - "desc": "最大的社区Android发行版之一Lineage的ROM" - }, - { - "name": "lineageOS", - "desc": "最大的社区Android发行版之一Lineage的源代码" - }, - { - "name": "linux-next.git", - "desc": "Linux 内核源代码的 Git 仓库,开发分支(包含为下一个 merge windows 开发的 patch)" - }, - { - "name": "linux-stable.git", - "desc": "Linux 内核源代码的 Git 仓库, 稳定版分支" - }, - { - "name": "linux.git", - "desc": "Linux 内核源代码的 Git 仓库" - }, - { - "name": "linuxmint", - "desc": "Linux Mint 的官方软件源" - }, - { - "name": "linuxmint-cd", - "desc": "Linux Mint 的安装镜像" - }, - { - "name": "llvm", - "desc": "LLVM 编译器套件的多个 git repo 的镜像" - }, - { - "name": "loongson", - "desc": "用于龙芯电脑的软件包" - }, - { - "name": "lxc-images", - "desc": "Linux 容器的镜像" - }, - { - "name": "lyx", - "desc": "" - }, - { - "name": "macports", - "desc": "macOS 的一个开源软件包管理系统" - }, - { - "name": "mageia", - "desc": "Mageia Linux (衍生于Mandriva Linux)的安装镜像和官方软件包仓库" - }, - { - "name": "manjaro", - "desc": "Manjaro Linux 的官方软件源" - }, - { - "name": "manjaro-cd", - "desc": "Manjanro Linux 的安装镜像" - }, - { - "name": "mariadb", - "desc": "衍生于 MySQL 的开源关系数据库" - }, - { - "name": "mongodb", - "desc": "开源的跨平台 NoSQL 文档型数据库" - }, - { - "name": "msys2", - "desc": "用于编译原生 Windows 程序的类 Linux 开发环境" - }, - { - "name": "mxlinux", - "desc": "" - }, - { - "name": "mxlinux-isos", - "desc": "" - }, - { - "name": "mysql", - "desc": "MySQL 安装包及各种工具下载" - }, - { - "name": "neurodebian", - "desc": "用于神经科学研究的 Debian 软件包源" - }, - { - "name": "nix", - "desc": "" - }, - { - "name": "nodejs-release", - "desc": "预编译的 nodejs 二进制程序" - }, - { - "name": "nodesource", - "desc": "为 Debian, Ubuntu, Fedora, RHEL 等发行版提供预编译的 nodejs 和 npm 等软件包" - }, - { - "name": "openresty", - "desc": "基于 Nginx 与 Lua 的高性能 Web 平台" - }, - { - "name": "opensuse", - "desc": "openSUSE 的安装镜像和官方软件包仓库" - }, - { - "name": "openthos", - "desc": "OpenTHOS 的二进制发行包" - }, - { - "name": "openthos-src", - "desc": "OpenTHOS 源代码仓库" - }, - { - "name": "openwrt", - "desc": "OpenWrt 软件包镜像源(仅包含Chaos Calmer版本,请前往 lede 目录获取最新源码)" - }, - { - "name": "osdn", - "desc": "" - }, - { - "name": "osmc", - "desc": "免费、开源的媒体中心解决方案" - }, - { - "name": "packman", - "desc": "为 Debian、Fedora、openSUSE、Ubuntu 提供额外和过期软件包的仓库" - }, - { - "name": "parrot", - "desc": "Parrot Linux(专注于安全审计的 Linux 发行版)的安装映像和官方软件源" - }, - { - "name": "percona", - "desc": "开源的数据库解决方案,详见 http://www.percona.com" - }, - { - "name": "pkgsrc", - "desc": "NetBSD 的第三方软件源" - }, - { - "name": "postgresql", - "desc": "著名的开源关系型数据库 PostgreSQL 的镜像" - }, - { - "name": "puppy", - "desc": "为家用电脑设计的轻量级 Linux 发行版" - }, - { - "name": "pybombs", - "desc": "为 GNU Radio 设计的编译管理系统" - }, - { - "name": "pypi", - "desc": "Python 软件包索引源" - }, - { - "name": "qt", - "desc": "跨平台软件开发库 Qt 的源码、开发工具、文档等" - }, - { - "name": "raspberrypi", - "desc": "" - }, - { - "name": "raspbian", - "desc": "为 Raspberry Pi 编译的 Debian" - }, - { - "name": "redhat", - "desc": "Red Hat Enterprise Linux 官方软件源" - }, - { - "name": "remi", - "desc": "包含最新版本 PHP 和 MySQL 的第三方 yum 源" - }, - { - "name": "repo-ck", - "desc": "repo-ck 是 Arch 的非官方仓库,内有包含 ck 补丁、BFS 调度器等" - }, - { - "name": "repoforge", - "desc": "Repoforge 是 RHEL 系统下的软件仓库,拥有 10000 多个软件包,被认为是最安全、最稳定的一个软件仓库" - }, - { - "name": "ros", - "desc": "ROS (Robot Operating System) 提供一系列程序库和工具以帮助软件开发者创建机器人应用软件" - }, - { - "name": "rpmfusion", - "desc": "RPM Fusion 提供了一些 Fedora Project 和 Red Hat 不包含的软件" - }, - { - "name": "rubygems", - "desc": "Ruby 的一个包管理器" - }, - { - "name": "rustup", - "desc": "Rust 的官方安装工具" - }, - { - "name": "sagemath", - "desc": "构建在 NumPy, SciPy 等工具之上的开源数学软件系统" - }, - { - "name": "saltstack", - "desc": "基于 python 的配置管理与运维自动化工具" - }, - { - "name": "slackware", - "desc": "Linux 发行版 Slackware 的源代码和官方软件包仓库" - }, - { - "name": "slackwarearm", - "desc": "用于 ARM 设备的 Slackware 发行版源代码和官方软件包仓库" - }, - { - "name": "solus", - "desc": "Solus 的软件仓库,致力于制作对新手友好的发行版" - }, - { - "name": "stackage", - "desc": "Haskell 项目管理器 stack 所需的元数据与 ghc 安装包的镜像" - }, - { - "name": "steamos", - "desc": "Valve 开发的基于 Debian 的操作系统,包含安装镜像和官方软件包仓库" - }, - { - "name": "tensorflow", - "desc": "采用数据流图、用于数值计算的开源深度学习框架 TensorFlow" - }, - { - "name": "termux", - "desc": " 运行在 Android 上的终端模拟器 Termux 的官方软件包仓库" - }, - { - "name": "tinycorelinux", - "desc": "为嵌入式开发的微型 Linux 发行版" - }, - { - "name": "ubuntu", - "desc": "流行的 Linux 发行版 Ubuntu 的安装镜像和官方软件包仓库" - }, - { - "name": "ubuntu-cdimage", - "desc": "Ubuntu 及 Ubuntu 衍生版各版本安装镜像" - }, - { - "name": "ubuntu-cloud-images", - "desc": "适用于公有云的 Ubuntu 安装镜像" - }, - { - "name": "ubuntu-ports", - "desc": "armhf, arm64 以及 powerpc 等平台的 Ubuntu 软件仓库" - }, - { - "name": "ubuntu-releases", - "desc": "包含近几年发行的 Ubuntu 的镜像" - }, - { - "name": "videolan-ftp", - "desc": "简称VLC,是一款自由、开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件" - }, - { - "name": "virtualbox", - "desc": "Oracle 的开源的 x86 架构虚拟机" - }, - { - "name": "weave", - "desc": "Google 开发的物联网(IoT)设备通信平台" - }, - { - "name": "winehq", - "desc": "Wine (允许类 Unix 操作系统运行 Windows 程序)" - }, - { - "name": "zabbix", - "desc": "著名的网络监视、管理系统" - } -] diff --git a/_data/options.yml b/_data/options.yml new file mode 100644 index 0000000..df3a8fe --- /dev/null +++ b/_data/options.yml @@ -0,0 +1,364 @@ +# Content Related +mirror_desc: + - name: AOSP + desc: Android 操作系统源代码 + - name: AUR + desc: Arch Linux 用户软件库 + - name: Bananian + desc: 为 Banana Pi 制作的,基于官方 Debian 仓库的发行版镜像和软件包仓库 + - name: CPAN + desc: '' + - name: CRAN + desc: R 语言的可执行文件、源代码和说明文件,也收录了各种用户撰写的软件包 + - name: CTAN + desc: TeX 的各种发行版、软件包和文档 + - name: CocoaPods + desc: Objective-C 和 Swift 的依赖管理器 + - name: ELK + desc: 现已更名为 Elastic Stack,仅保留用作向后兼容 + - name: HHVM + desc: Facebook 开发的高性能 PHP 语言虚拟机 + - name: Homebrew + desc: Homebrew 的 formula 索引的镜像,二进制预编译包的镜像请见 homebrew-bottles + - name: NetBSD + desc: NetBSD 的安装镜像和部分系统源码 + - name: OpenBSD + desc: OpenBSD 的安装镜像和官方软件包仓库 + - name: adobe-fonts + desc: Adobe 公司的开源字体 + - name: alpine + desc: Alpine Linux 的安装镜像和官方软件包仓库 + - name: anaconda + desc: 用于科学计算的 Python 发行版 + - name: antergos + desc: 基于 Arch Linux 的使用 GNOME 3 的发行版,曾用名 Cinnarch + - name: anthon + desc: Anthon Linux (安同 Linux)的安装镜像和官方软件包仓库 + - name: aosp-monthly + desc: AOSP 镜像每月打包 + - name: apache + desc: Apache 基金会赞助的各个项目 + - name: arch4edu + desc: 用于 Arch Linux 和 Arch Linux ARM 的非官方软件仓库,主要包含科研、教学所需的各种常用软件 + - name: archlinux + desc: Arch Linux 的安装镜像和官方软件包仓库 + - name: archlinuxarm + desc: 用于 arm 平台的 Arch Linux 镜像和软件包仓库 + - name: archlinuxcn + desc: 由 Arch Linux 中文社区驱动的非官方用户仓库,包含中文用户常用软件、工具、字体/美化包等 + - name: armbian + desc: '' + - name: armbian-releases + desc: '' + - name: artixlinux + desc: '' + - name: bananian + desc: 用于 Banana Pi 的 Debian 操作系统 + - name: bioconductor + desc: 开源的基因数据分析处理工具 + - name: bjlx + desc: 北京龙芯 & Debian 俱乐部 的公开软件源 + - name: blackarch + desc: 用于安全评估的基于 Arch Linux 的轻量级发行版 + - name: cc + desc: CERN CentOS + - name: centos + desc: CentOS 的安装镜像和官方软件包仓库 + - name: centos-altarch + desc: CentOS 额外平台的安装镜像和官方软件包仓库 + - name: centos-vault + desc: '' + - name: ceph + desc: 高性能对象存储和文件系统 + - name: chakra + desc: 专注于 Qt 与 KDE 软件的 Linux 发行版 + - name: chakra-releases + desc: Chakra 发行版的安装镜像 + - name: chromiumos + desc: Google Chrome OS的开放源代码开发版本 + - name: clojars + desc: Clojure 语言的第三方软件包仓库 + - name: ctex + desc: 旧版 CTEX 安装镜像存档 + - name: cygwin + desc: Cygwin 官方软件包仓库 + - name: dart-pub + desc: Dart 语言的软件包仓库 + - name: debian + desc: Debian Linux 的官方软件包仓库 + - name: debian-cd + desc: Debian Linux 的安装镜像 + - name: debian-multimedia + desc: Debian Linux 第三方多媒体软件源 + - name: debian-nonfree + desc: Debian Linux 的非自由软件包仓库 + - name: debian-security + desc: Debian Linux 的安全更新 + - name: deepin + desc: Deepin Linux 的官方软件包仓库 + - name: deepin-cd + desc: Deepin Linux 的安装镜像 + - name: dell + desc: Dell 服务器管理工具 + - name: docker-ce + desc: Docker Community Edition 的安装包 + - name: dotdeb + desc: 用于 Debian 服务器的额外镜像源 + - name: eclipse + desc: 著名的IDE Eclipse + - name: elasticstack + desc: ELK 系列数据分析工具,5.x 之后改名为 Elastic Stack + - name: elpa + desc: Emacs 内建包管理器 package.el 的软件源 + - name: elrepo + desc: RHEL 及其变体的 RPM 软件包仓库 + - name: elvish + desc: TUNA 前会长 xiaq 开发的革命性 Shell + - name: epel + desc: 企业版 Linux 附加软件包 + - name: erlang-solutions + desc: '' + - name: fedora + desc: Fedora Linux 的安装镜像和官方软件包仓库 + - name: fedora-altarch + desc: Fedora Linux 额外平台的安装镜像和官方软件包仓库 + - name: flightgear + desc: 多平台的飞行模拟器 + - name: flutter + desc: Flutter 框架 SDK 镜像 + - name: fzug + desc: Fedora 中文用户组的软件包仓库 + - name: gentoo + desc: Gentoo Linux 的 Stage 3 镜像 + - name: gentoo-portage + desc: Gentoo Linux 的 Portage 包管理器镜像源 + - name: gentoo-portage-prefix + desc: Gentoo/Prefix 的 Portage 包管理器镜像源 + - name: git-repo + desc: Google 开发的项目依赖下载工具 repo 的镜像 + - name: gitlab-ce + desc: Gitlab 社区版 + - name: gitlab-ci-multi-runner + desc: GitLab 持续集成框架 + - name: gitlab-ee + desc: Gitlab 企业版 + - name: gitlab-runner + desc: GitLab 持续集成框架版本 10 及以上 + - name: gnu + desc: GNU项目的软件包(源代码、文档和部分平台的二进制文件) + - name: gnu-alpha + desc: '' + - name: grafana + desc: 开源的数据可视化工具 + - name: hackage + desc: Haskell 社区的中心软件包仓库 + - name: homebrew + desc: Homebrew 的软件包描述文件 + - name: homebrew-bottles + desc: 预编译的 Homebrew 软件包 + - name: iina + desc: macOS 上的现代化开源视频播放器 + - name: infinality-bundle + desc: Arch Linux 的字体渲染软件包 + - name: influxdata + desc: 时间序列数据平台 + - name: ius + desc: 为企业版 Linux 提供最新软件包的镜像源 + - name: jenkins + desc: 用 Java 编写的持续集成框架 + - name: kali + desc: Kali Linux 的官方软件包仓库 + - name: kali-images + desc: Kali Linux 的安装镜像 + - name: kali-security + desc: Kali Linux 的安全更新 + - name: kernel + desc: 各个版本的Linux 内核源代码 + - name: kodi + desc: 开源的多媒体播放器,原名 XBMC + - name: lede + desc: OpenWRT 与 LEDE 再次合并后的源码仓库 + - name: libreoffice + desc: '' + - name: lineage-rom + desc: 最大的社区Android发行版之一Lineage的ROM + - name: lineageOS + desc: 最大的社区Android发行版之一Lineage的源代码 + - name: linux-next.git + desc: Linux 内核源代码的 Git 仓库,开发分支(包含为下一个 merge windows 开发的 patch) + - name: linux-stable.git + desc: Linux 内核源代码的 Git 仓库, 稳定版分支 + - name: linux.git + desc: Linux 内核源代码的 Git 仓库 + - name: linuxmint + desc: Linux Mint 的官方软件源 + - name: linuxmint-cd + desc: Linux Mint 的安装镜像 + - name: llvm + desc: LLVM 编译器套件的多个 git repo 的镜像 + - name: loongson + desc: 用于龙芯电脑的软件包 + - name: lxc-images + desc: Linux 容器的镜像 + - name: lyx + desc: '' + - name: macports + desc: macOS 的一个开源软件包管理系统 + - name: mageia + desc: Mageia Linux (衍生于Mandriva Linux)的安装镜像和官方软件包仓库 + - name: manjaro + desc: Manjaro Linux 的官方软件源 + - name: manjaro-cd + desc: Manjanro Linux 的安装镜像 + - name: mariadb + desc: 衍生于 MySQL 的开源关系数据库 + - name: mongodb + desc: 开源的跨平台 NoSQL 文档型数据库 + - name: msys2 + desc: 用于编译原生 Windows 程序的类 Linux 开发环境 + - name: mxlinux + desc: '' + - name: mxlinux-isos + desc: '' + - name: mysql + desc: MySQL 安装包及各种工具下载 + - name: neurodebian + desc: 用于神经科学研究的 Debian 软件包源 + - name: nix + desc: '' + - name: nodejs-release + desc: 预编译的 nodejs 二进制程序 + - name: nodesource + desc: 为 Debian, Ubuntu, Fedora, RHEL 等发行版提供预编译的 nodejs 和 npm 等软件包 + - name: openresty + desc: 基于 Nginx 与 Lua 的高性能 Web 平台 + - name: opensuse + desc: openSUSE 的安装镜像和官方软件包仓库 + - name: openthos + desc: OpenTHOS 的二进制发行包 + - name: openthos-src + desc: OpenTHOS 源代码仓库 + - name: openwrt + desc: OpenWrt 软件包镜像源(仅包含Chaos Calmer版本,请前往 lede 目录获取最新源码) + - name: osdn + desc: '' + - name: osmc + desc: 免费、开源的媒体中心解决方案 + - name: packman + desc: 为 Debian、Fedora、openSUSE、Ubuntu 提供额外和过期软件包的仓库 + - name: parrot + desc: Parrot Linux(专注于安全审计的 Linux 发行版)的安装映像和官方软件源 + - name: percona + desc: 开源的数据库解决方案,详见 http://www.percona.com + - name: pkgsrc + desc: NetBSD 的第三方软件源 + - name: postgresql + desc: 著名的开源关系型数据库 PostgreSQL 的镜像 + - name: puppy + desc: 为家用电脑设计的轻量级 Linux 发行版 + - name: pybombs + desc: 为 GNU Radio 设计的编译管理系统 + - name: pypi + desc: Python 软件包索引源 + - name: qt + desc: 跨平台软件开发库 Qt 的源码、开发工具、文档等 + - name: raspberrypi + desc: '' + - name: raspbian + desc: 为 Raspberry Pi 编译的 Debian + - name: redhat + desc: Red Hat Enterprise Linux 官方软件源 + - name: remi + desc: 包含最新版本 PHP 和 MySQL 的第三方 yum 源 + - name: repo-ck + desc: repo-ck 是 Arch 的非官方仓库,内有包含 ck 补丁、BFS 调度器等 + - name: repoforge + desc: Repoforge 是 RHEL 系统下的软件仓库,拥有 10000 多个软件包,被认为是最安全、最稳定的一个软件仓库 + - name: ros + desc: ROS (Robot Operating System) 提供一系列程序库和工具以帮助软件开发者创建机器人应用软件 + - name: rpmfusion + desc: RPM Fusion 提供了一些 Fedora Project 和 Red Hat 不包含的软件 + - name: rubygems + desc: Ruby 的一个包管理器 + - name: rustup + desc: Rust 的官方安装工具 + - name: sagemath + desc: 构建在 NumPy, SciPy 等工具之上的开源数学软件系统 + - name: saltstack + desc: 基于 python 的配置管理与运维自动化工具 + - name: slackware + desc: Linux 发行版 Slackware 的源代码和官方软件包仓库 + - name: slackwarearm + desc: 用于 ARM 设备的 Slackware 发行版源代码和官方软件包仓库 + - name: solus + desc: Solus 的软件仓库,致力于制作对新手友好的发行版 + - name: stackage + desc: Haskell 项目管理器 stack 所需的元数据与 ghc 安装包的镜像 + - name: steamos + desc: Valve 开发的基于 Debian 的操作系统,包含安装镜像和官方软件包仓库 + - name: tensorflow + desc: 采用数据流图、用于数值计算的开源深度学习框架 TensorFlow + - name: termux + desc: " 运行在 Android 上的终端模拟器 Termux 的官方软件包仓库" + - name: tinycorelinux + desc: 为嵌入式开发的微型 Linux 发行版 + - name: ubuntu + desc: 流行的 Linux 发行版 Ubuntu 的安装镜像和官方软件包仓库 + - name: ubuntu-cdimage + desc: Ubuntu 及 Ubuntu 衍生版各版本安装镜像 + - name: ubuntu-cloud-images + desc: 适用于公有云的 Ubuntu 安装镜像 + - name: ubuntu-ports + desc: armhf, arm64 以及 powerpc 等平台的 Ubuntu 软件仓库 + - name: ubuntu-releases + desc: 包含近几年发行的 Ubuntu 的镜像 + - name: videolan-ftp + desc: 简称VLC,是一款自由、开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件 + - name: virtualbox + desc: Oracle 的开源的 x86 架构虚拟机 + - name: weave + desc: Google 开发的物联网(IoT)设备通信平台 + - name: winehq + desc: Wine (允许类 Unix 操作系统运行 Windows 程序) + - name: zabbix + desc: 著名的网络监视、管理系统 + +new_mirrors: + - gnu-alpha + - mxlinux + - mxlinux-isos + - armbian + - armbian-releases + - rustup + - nix + - dart-pub + - flutter + +unlisted_mirrors: + - status: 'success' + last_update: '-' + name: "AUR" + url: 'https://aur.tuna.tsinghua.edu.cn/' + upstream: 'https://aur.archlinux.org/' + is_master: true + +force_help_mirrors: + - AOSP + - lineageOS + - homebrew + - linux.git + - linux-stable.git + - git-repo + - chromiumos + - weave + - CocoaPods + - llvm + - openthos-src + +label_map: + unknown: label-default + syncing: label-info + success: label-success + fail: label-warning + failed: label-warning + paused: label-warning diff --git a/_includes/footer.html b/_includes/footer.html index c2c6503..3cd2125 100644 --- a/_includes/footer.html +++ b/_includes/footer.html @@ -9,7 +9,6 @@

本站相关源码可在 这里(镜像管理器)这里(镜像站网页) 获取。

根据相关法律法规,本站不对欧盟用户提供服务。

-

Contact Us

@@ -29,7 +28,6 @@
-
diff --git a/_includes/options.json b/_includes/options.json new file mode 100644 index 0000000..64f9063 --- /dev/null +++ b/_includes/options.json @@ -0,0 +1,4 @@ +{ +"options": {{ site.data.options | jsonify }}, +"helps": {{ site.categories['help'] | select: "mirrorid", "url" | jsonify }} +} diff --git a/_layouts/index.html b/_layouts/index.html index 56db9bd..261d00f 100644 --- a/_layouts/index.html +++ b/_layouts/index.html @@ -8,7 +8,6 @@ {% include nav.html %}
-
@@ -27,18 +26,26 @@ {% if page.legacy %} - + {% raw %} + {{mirs}} + - - test - new - + + {{name}} + {{if is_new}} + new + {{/if}} + {{if help_url}} + + {{/if}} - 0000-00-00 00:00:00Syncing + {{last_update}}{{if show_status}}{{status}}{{/if}} + {{/mirs}} + {% endraw %} {% else %} {% raw %} @@ -121,7 +128,6 @@
- {% include footer.html %} {% unless page.legacy %} @@ -160,19 +166,17 @@
- {% endraw %} {% endunless %} - {% raw %} {% endraw %} - {% unless page.legacy %} + {% endunless %} diff --git a/_plugins/select.rb b/_plugins/select.rb new file mode 100644 index 0000000..7a6b934 --- /dev/null +++ b/_plugins/select.rb @@ -0,0 +1,9 @@ +require "rubygems" +require "json" + +module SelectFilter +def select(input, *selected) + input.map{ |o| o.to_liquid.hash_for_json.reject! { |k| not selected.include? k } } +end +Liquid::Template.register_filter self +end diff --git a/static/js/index.es6 b/static/js/index.es6 index c938553..4c492d9 100644 --- a/static/js/index.es6 +++ b/static/js/index.es6 @@ -8,69 +8,17 @@ $('a#eib1gieB') $('.selectpicker').selectpicker() -var mir_tmpl = $("#template").text(), - label_map = { - 'unknown': 'label-default', - 'syncing': 'label-info', - 'success': 'label-success', - 'fail': 'label-warning', - 'failed': 'label-warning', - 'paused': 'label-warning', - }, - help_url = { - {% for h in site.categories['help'] %}"{{h.mirrorid}}": "{{h.url}}"{% if forloop.index < forloop.length %},{% endif %}{% endfor %} - }, - new_mirrors = { - {% for n in site.new_mirrors %}"{{n}}": true{% if forloop.index < forloop.length %},{% endif %}{% endfor %} - }, - - unlisted = [ - { - 'status': 'success', - 'last_update': '-', - 'name': "AUR", - 'url': 'https://aur.tuna.tsinghua.edu.cn/', - 'upstream': 'https://aur.archlinux.org/' - } - ], - options = { - 'AOSP': { - 'url': "/help/AOSP/" - }, - 'lineageOS': { - 'url': "/help/lineageOS/" - }, - 'homebrew': { - 'url': "/help/homebrew/" - }, - 'linux.git': { - 'url': "/help/linux.git/" - }, - 'linux-stable.git': { - 'url': "/help/linux-stable.git/" - }, - 'git-repo': { - 'url': "/help/git-repo/" - }, - 'chromiumos': { - 'url': "/help/chromiumos/" - }, - 'weave': { - 'url': "/help/weave/" - }, - 'CocoaPods': { - 'url': "/help/CocoaPods/" - }, - 'llvm': { - 'url': "/help/llvm/" - }, - 'openthos-src': { - 'url': "/help/openthos-src/" - } - }, - descriptions = { - {% for mir in site.data.mirror_desc %} '{{mir.name}}': '{{mir.desc}}' {% if forloop.index < forloop.length %},{% endif %}{% endfor %} - } +var global_options = {% include options.json %}; +var label_map = global_options.options.label_map; +var help_url = {}; +global_options.helps.forEach((h) => help_url[h.mirrorid] = h.url); +var new_mirrors = {}; +global_options.options.new_mirrors.forEach((m) => new_mirrors[m] = true); +var unlisted = global_options.options.unlisted_mirrors; +var options = {}; +global_options.options.force_help_mirrors.forEach((m) => options[m] = {'url': "/help/" + m + "/"}) +var descriptions = {}; +global_options.options.mirror_desc.forEach((m) => descriptions[m.name] = m.desc); new Vue({ el: "#upgrade-mask", diff --git a/static/njs/legacy_index.njs b/static/njs/legacy_index.njs new file mode 100644 index 0000000..03c5fe2 --- /dev/null +++ b/static/njs/legacy_index.njs @@ -0,0 +1,87 @@ +import Mark from 'markup.min.njs'; + +function legacyIndexRender(r){ + function getMirDate(d){ + var result; + if (d.last_update_ts) { + var date = new Date(d.last_update_ts * 1000); + if (date.getFullYear() > 2000) { + result = `${('000'+date.getFullYear()).substr(-4)}-${('0'+(date.getMonth()+1)).substr(-2)}-${('0'+date.getDate()).substr(-2)}` + + ` ${('0'+date.getHours()).substr(-2)}:${('0'+date.getMinutes()).substr(-2)}`; + } else { + result = "0000-00-00 00:00"; + } + } else { + result = d.last_update.replace(/(\d\d:\d\d):\d\d(\s\+\d\d\d\d)?/, '$1'); + } + return result; + } + r.subrequest('/legacy_index.html', { + args: '', + body: '', + method: 'GET' + }, function(rTmpl){ + if(rTmpl.status != 200){ + return r.return(rTmpl.status); + } + var tmpl = rTmpl.responseBody; + + r.subrequest('/static/njs/options.json', { + args: '', + body: '', + method: 'GET' + }, function(rOpt){ + if(rOpt.status != 200){ + return r.return(rOpt.status); + } + var global_options; + try{ + global_options = JSON.parse(rOpt.responseBody); + }catch(e){ + return r.return(500); + } + var label_map = global_options.options.label_map; + var help_url = {}; + global_options.helps.forEach((h) => help_url[h.mirrorid] = h.url); + var new_mirrors = {}; + global_options.options.new_mirrors.forEach((m) => new_mirrors[m] = true); + var unlisted = global_options.options.unlisted_mirrors; + var force_help = {} + global_options.options.force_help_mirrors.forEach((m) => force_help[m] = true); + var descriptions = {}; + global_options.options.mirror_desc.forEach((m) => descriptions[m.name] = m.desc); + r.subrequest('/static/tunasync.json', { + args: '', + body: '', + method: 'GET' + }, function(rMirs){ + var mirs = unlisted; + if(rMirs.status == 200){ + try{ + mirs = mirs.concat(JSON.parse(rMirs.responseBody)); + }catch(e){ + } + } + var renMirs = mirs.filter(m => m.status != "disabled" && m.is_master).map(m => ({ + status: m.status, + name: m.name, + description: descriptions[m.name], + url: force_help[m.name] ? help_url[m.name] : m.url ? m.url : '/' + m.name + '/', + is_new: !!new_mirrors[m.name], + help_url: help_url[m.name], + last_update: getMirDate(m), + label: label_map[m.status], + show_status: m.status != 'success' + })); + renMirs.sort((a, b) => a.name < b.name ? -1: 1 ); + var result = Mark.up(tmpl, {mirs: renMirs}); + r.status = 200; + r.headersOut['Content-Type'] = 'text/html'; + r.sendHeader(); + r.send(result); + r.finish(); + }) + }) + }); + +} diff --git a/static/njs/markup.min.njs b/static/njs/markup.min.njs new file mode 100644 index 0000000..dd22ffd --- /dev/null +++ b/static/njs/markup.min.njs @@ -0,0 +1,7 @@ +/* + Markup.js v1.5.21: http://github.com/adammark/Markup.js + MIT License + (c) 2011 - 2014 Adam Mark +*/ +var Mark={includes:{},globals:{},delimiter:">",compact:false,_copy:function(d,c){c=c||[];for(var e in d){c[e]=d[e]}return c},_size:function(b){return b instanceof Array?b.length:(b||0)},_iter:function(a,b){this.idx=a;this.size=b;this.length=b;this.sign="#";this.toString=function(){return this.idx+this.sign.length-1}},_pipe:function(h,c){var g,f,b,a;if((g=c.shift())){f=g.split(this.delimiter);b=f.shift().trim();try{a=Mark.pipes[b].apply(null,[h].concat(f));h=this._pipe(a,c)}catch(d){}}return h},_eval:function(e,g,h){var a=this._pipe(e,g),b=a,d=-1,c,f;if(a instanceof Array){a="";c=b.length;while(++d-1){l++}else{m++}if(m===l){break}}m=h.indexOf(p[0]);l=m+p[0].length;j=k+p[o].length;return[h.substring(m,j),h.substring(l,k)]}};Mark.up=function(s,b,e){b=b||{};e=e||{};var m=/\{\{(.+?)\}\}/g,l=s.match(m)||[],t,d,g,h=[],r,c,f,k,o,a,n,q=0,p=0;if(e.pipes){this._copy(e.pipes,this.pipes)}if(e.includes){this._copy(e.includes,this.includes)}if(e.globals){this._copy(e.globals,this.globals)}if(e.delimiter){this.delimiter=e.delimiter}if(e.compact!==undefined){this.compact=e.compact}while((t=l[q++])){k=undefined;f="";r=t.indexOf("/}}")>-1;d=t.substr(2,t.length-(r?5:4));d=d.replace(/`(.+?)`/g,function(i,j){return Mark.up("{{"+j+"}}",b)});c=d.trim().indexOf("if ")===0;h=d.split("|");h.shift();d=d.replace(/^\s*if/,"").split("|").shift().trim();g=c?"if":d.split("|")[0];n=b[d];if(c&&!h.length){h=["notempty"]}if(!r&&s.indexOf("{{/"+g)>-1){k=this._bridge(s,g);t=k[0];f=k[1];q+=t.match(m).length-1}if(/^\{\{\s*else\s*\}\}$/.test(t)){continue}else{if((o=this.globals[d])!==undefined){k=this._eval(o,h,f)}else{if((a=this.includes[d])){if(a instanceof Function){a=a()}k=this._pipe(Mark.up(a,b,e),h)}else{if(d.indexOf("#")>-1){e.iter.sign=d;k=this._pipe(e.iter,h)}else{if(d==="."){k=this._pipe(b,h)}else{if(d.indexOf(".")>-1){d=d.split(".");n=Mark.globals[d[0]];if(n){p=1}else{p=0;n=b}while(n&&p\s+<"):s};Mark.pipes={empty:function(a){return !a||(a+"").trim().length===0?a:false},notempty:function(a){return a&&(a+"").trim().length?a:false},blank:function(b,a){return !!b||b===0?b:a},more:function(d,c){return Mark._size(d)>c?d:false},less:function(d,c){return Mark._size(d)=c?d:false},orless:function(d,c){return Mark._size(d)<=c?d:false},between:function(e,d,f){e=Mark._size(e);return e>=d&&e<=f?e:false},equals:function(d,c){return d==c?d:false},notequals:function(d,c){return d!=c?d:false},like:function(b,a){return new RegExp(a,"i").test(b)?b:false},notlike:function(b,a){return !Mark.pipes.like(b,a)?b:false},upcase:function(a){return String(a).toUpperCase()},downcase:function(a){return String(a).toLowerCase()},capcase:function(a){return a.replace(/(?:^|\s)\S/g,function(b){return b.toUpperCase()})},chop:function(a,b){return a.length>b?a.substr(0,b)+"...":a},tease:function(c,d){var b=c.split(/\s+/);return b.slice(0,d).join(" ")+(b.length>d?"...":"")},trim:function(a){return a.trim()},pack:function(a){return a.trim().replace(/\s{2,}/g," ")},round:function(a){return Math.round(+a)},clean:function(a){return String(a).replace(/<\/?[^>]+>/gi,"")},size:function(a){return a.length},length:function(a){return a.length},reverse:function(a){return[].concat(a).reverse()},join:function(a,b){return a.join(b)},limit:function(b,c,a){return b.slice(+a||0,+c+(+a||0))},split:function(b,a){return b.split(a||",")},choose:function(b,c,a){return !!b?c:(a||"")},toggle:function(c,b,a,d){return a.split(",")[b.match(/\w+/g).indexOf(c+"")]||d},sort:function(a,c){var b=function(e,d){return e[c]>d[c]?1:-1};return[].concat(a).sort(c?b:undefined)},fix:function(a,b){return(+a).toFixed(b)},mod:function(a,b){return(+a)%(+b)},divisible:function(a,b){return a&&(+a%b)===0?a:false},even:function(a){return a&&(+a&1)===0?a:false},odd:function(a){return a&&(+a&1)===1?a:false},number:function(a){return parseFloat(a.replace(/[^\-\d\.]/g,""))},url:function(a){return encodeURI(a)},bool:function(a){return !!a},falsy:function(a){return !a},first:function(a){return a.idx===0},last:function(a){return a.idx===a.size-1},call:function(b,a){return b[a].apply(b,[].slice.call(arguments,2))},set:function(b,a){Mark.globals[a]=b;return""},log:function(a){console.log(a);return a}};if(typeof String.prototype.trim!=="function"){String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}}if(typeof module!=="undefined"&&module.exports){module.exports=Mark}else{if(typeof define==="function"&&define.amd){define(function(){return Mark})}}; +export default Mark; diff --git a/static/njs/options.json b/static/njs/options.json new file mode 100644 index 0000000..53d19cd --- /dev/null +++ b/static/njs/options.json @@ -0,0 +1,3 @@ +--- +--- +{% include options.json %}