From 50ed9c959b57b15017dcdedc982899503356b183 Mon Sep 17 00:00:00 2001 From: bigeagle Date: Fri, 1 Apr 2016 14:40:28 +0800 Subject: [PATCH 001/257] disable openwrt trunk --- _posts/news/2016-04-01-openwrt-trunk.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 _posts/news/2016-04-01-openwrt-trunk.md diff --git a/_posts/news/2016-04-01-openwrt-trunk.md b/_posts/news/2016-04-01-openwrt-trunk.md new file mode 100644 index 0000000..8ff53d9 --- /dev/null +++ b/_posts/news/2016-04-01-openwrt-trunk.md @@ -0,0 +1,13 @@ +--- +category: news +layout: news +title: "暂停 OpenWRT Trunk 镜像" +author: Justin Wong +--- + +由于 OpenWRT Trunk 部分几乎每天都会完全重建,给镜像站带来较大流量压力,经调研后,发现用户很少直接使用未经测试的 Trunk 内容, +因此我们决定暂停 OpenWRT Trunk 镜像。 + +OpenWRT Release 镜像不受影响。 + +如有疑问,请到 https://github.com/tuna/issues 提交意见反馈。 From 80523a917c38843a55e2f9c7dd662a1895489f8c Mon Sep 17 00:00:00 2001 From: bigeagle Date: Fri, 1 Apr 2016 21:32:44 +0800 Subject: [PATCH 002/257] add open source mirror to title --- _includes/head.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_includes/head.html b/_includes/head.html index 5603233..b0c20d3 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -6,7 +6,7 @@ -清华大学 TUNA 镜像源 +清华大学 TUNA 镜像源 | Tsinghua Open Source Mirror From 09a68010f31ba2f005c3e7267dc63181f7acfe3d Mon Sep 17 00:00:00 2001 From: bigeagle Date: Sun, 3 Apr 2016 14:36:48 +0800 Subject: [PATCH 003/257] update aosp monthly --- _posts/help/1970-01-01-aosp.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/_posts/help/1970-01-01-aosp.md b/_posts/help/1970-01-01-aosp.md index 8e4178f..f2cc6eb 100644 --- a/_posts/help/1970-01-01-aosp.md +++ b/_posts/help/1970-01-01-aosp.md @@ -13,6 +13,9 @@ permalink: /help/AOSP/ 将 `https://android.googlesource.com/` 全部使用 `https://aosp.tuna.tsinghua.edu.cn/` 或 `git://aosp.tuna.tsinghua.edu.cn/aosp/` 代替即可。 +由于使用 HTTPS 协议更安全,并且更便于我们灵活处理,所以强烈推荐使用 HTTPS 协议同步 AOSP 镜像。 + +- **2016-04-03 : 删除每月初始化包中的冗余内容,使用方法更新** - **2015-12-21 : 增加每月初始化包,少量修正文档错误** - **2015-10-13 : 修复上游替换文档错误** - **2015-10-13 : 修复次级镜像文档错误** @@ -64,18 +67,20 @@ repo sync ### 使用每月更新的初始化包 -由于首次同步需要下载 37GB 数据,过程中任何网络故障都可能造成同步失败,因此你可以选择使用每月更新的初始化包。 +由于首次同步需要下载 24GB 数据,过程中任何网络故障都可能造成同步失败,因此你可以选择使用每月更新的初始化包。 -首先到 http://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/ 选择合适自己的构建包,aosp-latest.tar.xz 经过了 xz 压缩, -相对 aosp-latest.tar 小一些,但是解压的时间也要考虑进来,27G的压缩包呢!(如果CPU核多可以使用pxz解压) +下载 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar ,下载完成后记得根据 checksum.txt 的内容校验一下。 +由于所有代码都是从隐藏的 `.repo` 目录中 checkout 出来的,所以最新的每月包中,我们只保留了 `.repo` 目录,下载后解压 +再 `repo sync` 一遍即可得到完整的目录。 使用方法如下: ``` -wget http://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar # 下载初始化包 +wget https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar # 下载初始化包 tar xf aosp-latest.tar cd AOSP # 解压得到的 AOSP 工程目录 -repo sync # 正常同步 +# 这是 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录 +repo sync # 正常同步一遍即可得到完整目录 ``` ### 建立次级镜像 From 949313855112525f7e0bc388605523d787d31081 Mon Sep 17 00:00:00 2001 From: bigeagle Date: Sun, 3 Apr 2016 14:38:05 +0800 Subject: [PATCH 004/257] fix typo --- _posts/help/1970-01-01-aosp.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/_posts/help/1970-01-01-aosp.md b/_posts/help/1970-01-01-aosp.md index f2cc6eb..d1f3de7 100644 --- a/_posts/help/1970-01-01-aosp.md +++ b/_posts/help/1970-01-01-aosp.md @@ -69,17 +69,17 @@ repo sync 由于首次同步需要下载 24GB 数据,过程中任何网络故障都可能造成同步失败,因此你可以选择使用每月更新的初始化包。 -下载 https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar ,下载完成后记得根据 checksum.txt 的内容校验一下。 +下载 ,下载完成后记得根据 checksum.txt 的内容校验一下。 由于所有代码都是从隐藏的 `.repo` 目录中 checkout 出来的,所以最新的每月包中,我们只保留了 `.repo` 目录,下载后解压 再 `repo sync` 一遍即可得到完整的目录。 使用方法如下: -``` +```bash wget https://mirrors.tuna.tsinghua.edu.cn/aosp-monthly/aosp-latest.tar # 下载初始化包 tar xf aosp-latest.tar cd AOSP # 解压得到的 AOSP 工程目录 -# 这是 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录 +# 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录 repo sync # 正常同步一遍即可得到完整目录 ``` From cdf32dd7722fa824f219f2da5c2044f94dba9d17 Mon Sep 17 00:00:00 2001 From: bigeagle Date: Sun, 3 Apr 2016 15:37:09 +0800 Subject: [PATCH 005/257] fix mongodb help --- _posts/help/1970-01-01-mongodb.md | 9 ++++----- static/js/help.es6 | 20 +++++++++++--------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/_posts/help/1970-01-01-mongodb.md b/_posts/help/1970-01-01-mongodb.md index 3693f18..a68fe59 100644 --- a/_posts/help/1970-01-01-mongodb.md +++ b/_posts/help/1970-01-01-mongodb.md @@ -23,10 +23,9 @@ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
@@ -39,7 +38,7 @@ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927 {% raw %} {%endraw%} diff --git a/static/js/help.es6 b/static/js/help.es6 index 822ac7c..766bb02 100644 --- a/static/js/help.es6 +++ b/static/js/help.es6 @@ -6,18 +6,20 @@ $(document).ready(() => { .addClass("table table-bordered table-striped"); var update_apt_file = (ev) => { - var sel = $(ev.target); - var os_name=sel.find("option:selected").data('os'), + var sel = $(ev.target), + os_name=sel.find("option:selected").data('os'), release_name=sel.find("option:selected").data('release'), + opt=sel.find('option:selected').data('opt'), tmpl_selector=sel.data("template"), target_selector=sel.data("target"), - apt_template = $.trim($(tmpl_selector).text()), - apt_content = Mark.up( - apt_template, - { - os_name: os_name, - release_name: release_name - } + apt_template=$.trim($(tmpl_selector).text()), + tmpl_data=$.extend({}, { + os_name: os_name, + release_name: release_name + }, opt), + apt_content=Mark.up( + apt_template, + tmpl_data ); $(target_selector).html(apt_content); }; From b967c68b033688bfb46cde017bf5e2c0abc88e36 Mon Sep 17 00:00:00 2001 From: bigeagle Date: Sun, 3 Apr 2016 19:34:27 +0800 Subject: [PATCH 006/257] AOSP: add sync -l doc --- _posts/help/1970-01-01-aosp.md | 1 + 1 file changed, 1 insertion(+) diff --git a/_posts/help/1970-01-01-aosp.md b/_posts/help/1970-01-01-aosp.md index d1f3de7..80bfaa4 100644 --- a/_posts/help/1970-01-01-aosp.md +++ b/_posts/help/1970-01-01-aosp.md @@ -81,6 +81,7 @@ tar xf aosp-latest.tar cd AOSP # 解压得到的 AOSP 工程目录 # 这时 ls 的话什么也看不到,因为只有一个隐藏的 .repo 目录 repo sync # 正常同步一遍即可得到完整目录 +# 或 repo sync -l 仅checkout代码 ``` ### 建立次级镜像 From 9d71e659605a8560f917bc6de8df665290fabaf1 Mon Sep 17 00:00:00 2001 From: bigeagle Date: Mon, 4 Apr 2016 14:13:29 +0800 Subject: [PATCH 007/257] new mirror: bananian --- _config.yml | 2 +- _posts/help/1970-01-01-bananian.md | 54 ++++++++++++++++++++++++++++++ _posts/news/2016-04-03-bananian.md | 11 ++++++ robots.txt | 1 + 4 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 _posts/help/1970-01-01-bananian.md create mode 100644 _posts/news/2016-04-03-bananian.md diff --git a/_config.yml b/_config.yml index f28d13a..0f4376b 100644 --- a/_config.yml +++ b/_config.yml @@ -28,4 +28,4 @@ gems: exclude: [Gemfile, Gemfile.lock, README.md, gen_robot.sh] # Content Related -new_mirrors: [openwrt, mongodb, anaconda, packman, gnu, osmc] +new_mirrors: [openwrt, mongodb, anaconda, packman, gnu, osmc, bananian] diff --git a/_posts/help/1970-01-01-bananian.md b/_posts/help/1970-01-01-bananian.md new file mode 100644 index 0000000..49ad550 --- /dev/null +++ b/_posts/help/1970-01-01-bananian.md @@ -0,0 +1,54 @@ +--- +category: help +layout: help +mirrorid: bananian +--- + +## Bananian 镜像使用帮助 + +[Bananian](https://www.bananian.org/) 是为 [Banana Pi](http://www.bananapi.org/) 制作的,基于官方 Debian 仓库的发行版, +其内核和 bootloader 为 Banana Pi 做了定制化。 + +安装镜像可以到 获取。 + +### 使用 TUNA 镜像作为软件仓库 + +首先需要信任 Bananian 的 GPG 公钥 + +``` +gpg --recv-keys 24BFF712 +gpg --armor --export 24BFF712 | sudo apt-key add - +``` + +之后添加 Bananian 仓库,运行以下命令即可 + +
+
+ + +
+
+ +{% raw %} + +{% endraw %} + +

+ +
+
+
+
+ +更新软件包缓存 + +``` +sudo apt-get update +``` diff --git a/_posts/news/2016-04-03-bananian.md b/_posts/news/2016-04-03-bananian.md new file mode 100644 index 0000000..ac4a3f2 --- /dev/null +++ b/_posts/news/2016-04-03-bananian.md @@ -0,0 +1,11 @@ +--- +category: news +layout: news +title: "新增 Bananian 镜像" +author: Justin Wong +--- + +[Bananian](https://www.bananian.org/) 是为 [Banana Pi](http://www.bananapi.org/) 制作的,基于官方 Debian 仓库的发行版, +其内核和 bootloader 为 Banana Pi 做了定制化。 + +使用方法请见[Bananian镜像帮助](/help/bananian/)。 diff --git a/robots.txt b/robots.txt index 4456db3..8af2d61 100644 --- a/robots.txt +++ b/robots.txt @@ -10,6 +10,7 @@ Disallow: /apache Disallow: /archlinux Disallow: /archlinuxarm Disallow: /archlinuxcn +Disallow: /bananian Disallow: /centos Disallow: /chakra Disallow: /cygwin From ad97695c59610cd5ae2beed7a6b29b8bdf393281 Mon Sep 17 00:00:00 2001 From: bigeagle Date: Mon, 4 Apr 2016 15:54:35 +0800 Subject: [PATCH 008/257] added sitemap --- _config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/_config.yml b/_config.yml index 0f4376b..6417c21 100644 --- a/_config.yml +++ b/_config.yml @@ -24,6 +24,7 @@ sass: gems: - jekyll-babel + - jekyll-sitemap exclude: [Gemfile, Gemfile.lock, README.md, gen_robot.sh] From f497a75e83a5c434b08de947e8e9a72d107ea892 Mon Sep 17 00:00:00 2001 From: bigeagle Date: Mon, 4 Apr 2016 16:02:06 +0800 Subject: [PATCH 009/257] add site url --- _config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/_config.yml b/_config.yml index 6417c21..8d3cca0 100644 --- a/_config.yml +++ b/_config.yml @@ -10,6 +10,7 @@ title: 清华大学 TUNA 镜像源 brand: TUNA mirrors baseurl: "" # the subpath of your site, e.g. /blog permalink: "/:categories/:title/" +url: "https://mirrors.tuna.tsinghua.edu.cn" # Build settings highlighter: rouge From f88a15428c2af1f5c8cd6862a8ff233bd352d821 Mon Sep 17 00:00:00 2001 From: bigeagle Date: Mon, 4 Apr 2016 19:03:22 +0800 Subject: [PATCH 010/257] Bananian Help: add debian configuration, and update official website url --- _posts/help/1970-01-01-bananian.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/_posts/help/1970-01-01-bananian.md b/_posts/help/1970-01-01-bananian.md index 49ad550..56868b3 100644 --- a/_posts/help/1970-01-01-bananian.md +++ b/_posts/help/1970-01-01-bananian.md @@ -6,7 +6,7 @@ mirrorid: bananian ## Bananian 镜像使用帮助 -[Bananian](https://www.bananian.org/) 是为 [Banana Pi](http://www.bananapi.org/) 制作的,基于官方 Debian 仓库的发行版, +[Bananian](https://www.bananian.org/) 是为 [Banana Pi](http://www.banana-pi.org/) 制作的,基于官方 Debian 仓库的发行版, 其内核和 bootloader 为 Banana Pi 做了定制化。 安装镜像可以到 获取。 @@ -34,9 +34,22 @@ gpg --armor --export 24BFF712 | sudo apt-key add - {% raw %} {% endraw %} From 34f7271c7bdfb948f1bf48bed1939b714bcac0a2 Mon Sep 17 00:00:00 2001 From: bigeagle Date: Mon, 4 Apr 2016 19:03:39 +0800 Subject: [PATCH 011/257] Ubuntu Help: utopic is gone, long live xenial --- _posts/help/1970-01-01-ubuntu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/help/1970-01-01-ubuntu.md b/_posts/help/1970-01-01-ubuntu.md index 72f6eba..8186c97 100644 --- a/_posts/help/1970-01-01-ubuntu.md +++ b/_posts/help/1970-01-01-ubuntu.md @@ -19,7 +19,7 @@ TUNA 的软件源镜像。 - + From a02252243c2945d3cb4214f612bb895962a38033 Mon Sep 17 00:00:00 2001 From: bigeagle Date: Wed, 6 Apr 2016 11:24:44 +0800 Subject: [PATCH 012/257] alpine is added to robot --- robots.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/robots.txt b/robots.txt index 8af2d61..6f80828 100644 --- a/robots.txt +++ b/robots.txt @@ -5,6 +5,7 @@ Disallow: /AOSP Disallow: /CRAN Disallow: /CTAN Disallow: /OpenBSD +Disallow: /alpine Disallow: /anaconda Disallow: /apache Disallow: /archlinux From d36cb010cf3971f049ba3c3ec251657e87b6d6cd Mon Sep 17 00:00:00 2001 From: bigeagle Date: Thu, 7 Apr 2016 22:29:08 +0800 Subject: [PATCH 013/257] new mirrors: anaconda and alpine --- _config.yml | 2 +- _posts/help/1970-01-01-anaconda.md | 24 +++++++++++++++++++++++ _posts/news/2016-04-07-alpine-anaconda.md | 11 +++++++++++ 3 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 _posts/help/1970-01-01-anaconda.md create mode 100644 _posts/news/2016-04-07-alpine-anaconda.md diff --git a/_config.yml b/_config.yml index 8d3cca0..81c070e 100644 --- a/_config.yml +++ b/_config.yml @@ -30,4 +30,4 @@ gems: exclude: [Gemfile, Gemfile.lock, README.md, gen_robot.sh] # Content Related -new_mirrors: [openwrt, mongodb, anaconda, packman, gnu, osmc, bananian] +new_mirrors: [anaconda, packman, gnu, osmc, bananian, alpine] diff --git a/_posts/help/1970-01-01-anaconda.md b/_posts/help/1970-01-01-anaconda.md new file mode 100644 index 0000000..0db4a62 --- /dev/null +++ b/_posts/help/1970-01-01-anaconda.md @@ -0,0 +1,24 @@ +--- +layout: help +category: help +mirrorid: anaconda +--- + +## Anaconda 镜像使用帮助 + +Anaconda 是一个用于科学计算的 Python 发行版,支持 Linux, Mac, Windows, 包含了众多流行的科学计算、数据分析的 Python 包。 + +Anaconda 安装包可以到 下载。 + +TUNA 还提供了 Anaconda 仓库的镜像,运行以下命令: + +``` +conda config --add channels 'https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/' +conda config --set show_channel_urls yes +``` + +即可添加 Anaconda Python 免费仓库。 + +运行 `conda install numpy` 测试一下吧。 + + diff --git a/_posts/news/2016-04-07-alpine-anaconda.md b/_posts/news/2016-04-07-alpine-anaconda.md new file mode 100644 index 0000000..9e59c13 --- /dev/null +++ b/_posts/news/2016-04-07-alpine-anaconda.md @@ -0,0 +1,11 @@ +--- +category: news +layout: news +title: "新增 Alpine, Anaconda 镜像" +author: Justin Wong +--- + +[Alpine Linux](http://www.alpinelinux.org/) 是一个轻量级 Linux 发行版,具有安全性高、系统体积小等特点,非常适合 docker 等容器使用。 + +[Anaconda](https://www.continuum.io/why-anaconda) 是一个面向科学计算的 Python 发行版,支持全平台,提供了大量的科学计算、数据分析包, +我们提供了 Anaconda 安装包和仓库镜像。使用方法请见[Anaconda镜像帮助](/help/anaconda/)。 From 639078e1999c4760e1ad6e3c49b3eef15fd5e3e4 Mon Sep 17 00:00:00 2001 From: bigeagle Date: Sun, 10 Apr 2016 13:34:03 +0800 Subject: [PATCH 014/257] gitlab-ci-multi-runner help --- _config.yml | 2 +- .../help/1970-01-01-gitlab-ci-multi-runner.md | 92 +++++++++++++++++++ robots.txt | 1 + 3 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 _posts/help/1970-01-01-gitlab-ci-multi-runner.md diff --git a/_config.yml b/_config.yml index 81c070e..291b92c 100644 --- a/_config.yml +++ b/_config.yml @@ -30,4 +30,4 @@ gems: exclude: [Gemfile, Gemfile.lock, README.md, gen_robot.sh] # Content Related -new_mirrors: [anaconda, packman, gnu, osmc, bananian, alpine] +new_mirrors: [anaconda, packman, gnu, osmc, bananian, alpine, gitlab-ci-multi-runner] diff --git a/_posts/help/1970-01-01-gitlab-ci-multi-runner.md b/_posts/help/1970-01-01-gitlab-ci-multi-runner.md new file mode 100644 index 0000000..8a1b5c1 --- /dev/null +++ b/_posts/help/1970-01-01-gitlab-ci-multi-runner.md @@ -0,0 +1,92 @@ +--- +category: help +layout: help +mirrorid: gitlab-ci-multi-runner +--- + +## Gitlab CI Multi Runner 镜像使用帮助 + +**注意: gitlab-ci-multi-runner 镜像仅支持 x86-64 架构** + +### Debian/Ubuntu 用户 + +首先信任 GitLab 的 GPG 公钥: + +``` +curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null +``` + +再选择你的 Debian/Ubuntu 版本,文本框中内容写进 `/etc/apt/sources.list.d/gitlab-ci-multi-runner.list` + +
+
+ + +
+
+ +

+
+
+
+
+ + +安装 gitlab-ci-multi-runner: + +``` +sudo apt-get update +sudo apt-get install gitlab-ci-multi-runner +``` + +{% raw %} + +{%endraw%} + +### CentOS/RHEL + +新建 `/etc/yum.repos.d/gitlab-ci-multi-runner.repo`,内容为 + +
+
+ + +
+
+ +

+
+
+
+
+ + +再执行 + +``` +sudo yum makecache +sudo yum install gitlab-ci-multi-runner +``` + +{% raw %} + +{% endraw %} diff --git a/robots.txt b/robots.txt index 6f80828..1efb353 100644 --- a/robots.txt +++ b/robots.txt @@ -29,6 +29,7 @@ Disallow: /fedora Disallow: /gentoo Disallow: /gentoo-portage Disallow: /gitlab-ce +Disallow: /gitlab-ci-multi-runner Disallow: /gnu Disallow: /hackage Disallow: /homebrew From 6aac51bd402c6753e178fab6884549b71d57c16a Mon Sep 17 00:00:00 2001 From: bigeagle Date: Sun, 10 Apr 2016 16:45:10 +0800 Subject: [PATCH 015/257] new mirror: ctex --- _config.yml | 2 +- robots.txt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/_config.yml b/_config.yml index 291b92c..4458851 100644 --- a/_config.yml +++ b/_config.yml @@ -30,4 +30,4 @@ gems: exclude: [Gemfile, Gemfile.lock, README.md, gen_robot.sh] # Content Related -new_mirrors: [anaconda, packman, gnu, osmc, bananian, alpine, gitlab-ci-multi-runner] +new_mirrors: [anaconda, packman, gnu, osmc, bananian, alpine, gitlab-ci-multi-runner, ctex] diff --git a/robots.txt b/robots.txt index 1efb353..f47d6ae 100644 --- a/robots.txt +++ b/robots.txt @@ -14,6 +14,7 @@ Disallow: /archlinuxcn Disallow: /bananian Disallow: /centos Disallow: /chakra +Disallow: /ctex Disallow: /cygwin Disallow: /debian Disallow: /debian-cd From 69d2be1a4426b4221618284596d530ac749c1c97 Mon Sep 17 00:00:00 2001 From: bigeagle Date: Fri, 15 Apr 2016 18:34:40 +0800 Subject: [PATCH 016/257] fix docker help for yum --- _posts/help/1970-01-01-docker.md | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/_posts/help/1970-01-01-docker.md b/_posts/help/1970-01-01-docker.md index acc2880..3682dcc 100644 --- a/_posts/help/1970-01-01-docker.md +++ b/_posts/help/1970-01-01-docker.md @@ -70,13 +70,10 @@ echo "deb https://mirrors.tuna.tsinghua.edu.cn/docker/apt/repo {{release_name}}
@@ -99,7 +96,7 @@ sudo yum install docker-engine {% endraw %} diff --git a/static/js/index.es6 b/static/js/index.es6 index 09dd904..c647fa2 100644 --- a/static/js/index.es6 +++ b/static/js/index.es6 @@ -51,6 +51,9 @@ window.refreshMirrorList = () => { d['help_url'] = help_url[d['name']]; d['is_new'] = new_mirrors[d['name']]; d['show_status'] = (d.status != "success"); + if (d['is_master'] === undefined) { + d['is_master'] = true; + } // Strip the second component of last_update if (d['last_update_ts']) { let date = new Date(d['last_update_ts'] * 1000); From 7d4801c1f25db31af519612b39c0decb8ab0c079 Mon Sep 17 00:00:00 2001 From: bigeagle Date: Fri, 6 May 2016 10:54:54 +0800 Subject: [PATCH 021/257] added detailed syncing status page --- index.html | 3 ++- static/css/style.scss | 17 ++++++++++++++++ static/js/status.es6 | 45 +++++++++++++++++++++++++++++++++++++++++++ status.html | 39 ++++++++++++++++++++++++++----------- 4 files changed, 92 insertions(+), 12 deletions(-) create mode 100644 static/js/status.es6 diff --git a/index.html b/index.html index 6401963..72e8ab2 100644 --- a/index.html +++ b/index.html @@ -69,7 +69,8 @@ permalink: /

相关链接

diff --git a/static/css/style.scss b/static/css/style.scss index ea853fc..ecfca6b 100644 --- a/static/css/style.scss +++ b/static/css/style.scss @@ -97,6 +97,23 @@ $font_local: 'Heiti SC', 'Hiragino Sans GB', 'STHeiti', 'Source Han Sans CN', 'W } } +#status-page { + .thead { + font-weight: bold; + } + #mirror-list { + .status-syncing { + background-color: #e3fffd; + } + :hover { + background-color: #e0f3fc; + } + .status-fail, .status-failed { + background-color: #fff4e3; + } + } +} + #help-page { margin-top: 40px; margin-bottom: 40px; diff --git a/static/js/status.es6 b/static/js/status.es6 new file mode 100644 index 0000000..78685c7 --- /dev/null +++ b/static/js/status.es6 @@ -0,0 +1,45 @@ +--- +--- +$(document).ready(() => { + var mir_tmpl = $("#template").text(); + + $.get("/static/status/disk.json", (d) => { + var used_percent = Math.round(d.used_kb * 100 / d.total_kb); + $('#disk-usage-bar') + .attr("aria-valuenow", used_percent) + .css("width", used_percent + "%") + .html("" + d.used_readable + " / " + d.total_readable + ""); + }); + + window.refreshMirrorList = () => { + $.getJSON("/static/tunasync.json", (status_data) => { + var mirrors=[], mir_data=status_data; + + mir_data.sort((a, b) => { return a.name < b.name ? -1: 1 }); + + for(var k in mir_data) { + var d = mir_data[k]; + if (d.is_master === undefined) { + d.is_master = true; + } + // Strip the second component of last_update + if (d.last_update_ts) { + let date = new Date(d.last_update_ts * 1000); + if (date.getFullYear() > 2000) { + d.last_update = `${('000'+date.getFullYear()).substr(-4)}-${('0'+(date.getMonth()+1)).substr(-2)}-${('0'+(date.getDay()+1)).substr(-2)}` + + ` ${('0'+date.getHours()).substr(-2)}:${('0'+date.getMinutes()).substr(-2)}`; + } else { + d.last_update = "0000-00-00 00:00"; + } + } else { + d.last_update = d.last_update.replace(/(\d\d:\d\d):\d\d(\s\+\d\d\d\d)?/, '$1'); + } + mirrors.push(d); + } + var result = Mark.up(mir_tmpl, {mirrors: mirrors}); + $('#mirror-list').html(result); + }); + setTimeout(refreshMirrorList, 10000); + }; + refreshMirrorList(); +}); diff --git a/status.html b/status.html index d8d69d2..28449a1 100644 --- a/status.html +++ b/status.html @@ -9,7 +9,7 @@ permalink: /status/
-

# 服务器监控

+

# 服务器监控

# 网络流量

@@ -56,20 +56,37 @@ permalink: /status/
+

# 同步状态

+
+
+
+
Name
+
Last Update
+
Upstream
+
Status
+
Size
+
+
+
+
+
{% include footer.html %} - + {% endraw %} + + +

新闻公告

    @@ -68,6 +74,32 @@ permalink: /
{% include footer.html %} + + + + {% raw %} {% endraw %} diff --git a/_posts/news/2016-11-06-tensorflow-and-others.md b/_posts/news/2016-11-06-tensorflow-and-others.md index 6fa98b9..b97da94 100644 --- a/_posts/news/2016-11-06-tensorflow-and-others.md +++ b/_posts/news/2016-11-06-tensorflow-and-others.md @@ -15,4 +15,4 @@ TUNA 镜像站新增一系列镜像。 - steamos: 不解释,剁手专用 - bjlx: [北京龙芯 & Debian 俱乐部](http://www.bjlx.org.cn/) 的公开源 - loongson: 用于龙芯电脑的软件包 -- elastic: 数据可视化与分析工具 \ No newline at end of file +- elasticstack: ELK 系列数据分析工具,5.x 之后改名为 elastic stack From 52bd306e500a0b664a4cefed26ae2e3d1e53b433 Mon Sep 17 00:00:00 2001 From: bigeagle Date: Mon, 7 Nov 2016 11:05:07 +0800 Subject: [PATCH 095/257] make centos 7 default --- _posts/help/1970-01-01-centos.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/_posts/help/1970-01-01-centos.md b/_posts/help/1970-01-01-centos.md index 36061a7..4ca3c2b 100644 --- a/_posts/help/1970-01-01-centos.md +++ b/_posts/help/1970-01-01-centos.md @@ -17,9 +17,9 @@ sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
@@ -45,7 +45,6 @@ baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-{{release_name}} - #released updates [updates] name=CentOS-$releasever - Updates From 7d6f2b1d71a68db139a45c640414af6eccc3c23e Mon Sep 17 00:00:00 2001 From: Harry Chen Date: Mon, 7 Nov 2016 11:30:33 +0800 Subject: [PATCH 096/257] Change font for authors in news page and fix a typo Signed-off-by: Harry Chen --- _posts/news/2016-11-06-tensorflow-and-others.md | 2 +- static/css/style.scss | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/_posts/news/2016-11-06-tensorflow-and-others.md b/_posts/news/2016-11-06-tensorflow-and-others.md index 6fa98b9..865e866 100644 --- a/_posts/news/2016-11-06-tensorflow-and-others.md +++ b/_posts/news/2016-11-06-tensorflow-and-others.md @@ -8,7 +8,7 @@ author: Xavier Yao & Harry Chen TUNA 镜像站新增一系列镜像。 - tensorflow: Google 开发的、采用数据流图(data flow graphs)、用于数值计算的开源软件库,被广泛应用于深度学习等领域。使用方法见 [TensorFlow 镜像使用帮助](/help/tensorflow/)。 -- arch4edu: 用于 ArchLnux 的一系列科研、教学所需工具 +- arch4edu: 用于 ArchLinux 的一系列科研、教学所需工具 - ros: 用于开发机器人的工具包 - elvish: TUNA 前会长 [xiaq](https://github.com/xiaq) 开发的革命性 Shell ,详见 [这里](https://elvish.io/) - HHVM: 由 Facebook 开发的高性能 PHP 虚拟机 diff --git a/static/css/style.scss b/static/css/style.scss index c42edd2..217e255 100644 --- a/static/css/style.scss +++ b/static/css/style.scss @@ -125,6 +125,9 @@ $font_local: 'Heiti SC', 'Hiragino Sans GB', 'STHeiti', 'Source Han Sans CN', 'W color: $color_grey; } } + .fa-user { + font-family: #{$font_default}, 'FontAwesome'; + } } /* Footer */ From 4d166a629762433309e673d9fc3caa240e17a420 Mon Sep 17 00:00:00 2001 From: Xavier Yao Date: Fri, 11 Nov 2016 20:58:54 +0800 Subject: [PATCH 097/257] remove close button --- index.html | 1 - 1 file changed, 1 deletion(-) diff --git a/index.html b/index.html index f193e73..159b15f 100644 --- a/index.html +++ b/index.html @@ -93,7 +93,6 @@ permalink: /

From 1141e3adcb85cd2e5f7f184da5018021696447b0 Mon Sep 17 00:00:00 2001 From: Xavier Yao Date: Fri, 11 Nov 2016 21:39:23 +0800 Subject: [PATCH 098/257] use bootstrap-select --- _includes/head.html | 2 ++ index.html | 4 ++-- static/css/bootstrap-select.min.css | 6 ++++++ static/js/bootstrap-select.min.js | 9 +++++++++ static/js/index.es6 | 3 ++- 5 files changed, 21 insertions(+), 3 deletions(-) create mode 100755 static/css/bootstrap-select.min.css create mode 100755 static/js/bootstrap-select.min.js diff --git a/_includes/head.html b/_includes/head.html index 283fa08..366455f 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -8,10 +8,12 @@ 清华大学开源软件镜像站 | Tsinghua Open Source Mirror + + diff --git a/index.html b/index.html index 159b15f..4d53877 100644 --- a/index.html +++ b/index.html @@ -86,8 +86,8 @@ permalink: / ');t[2]&&(u=u.replace("{var}",t[2][n>1?0:1]),v=v.replace("{var}",t[2][o>1?0:1])),k.prop("selected",!1),b.$menu.append(w),n&&p&&(w.append(a("
"+u+"
")),i=!1,b.$element.trigger("maxReached.bs.select")),o&&q&&(w.append(a("
"+v+"
")),i=!1,b.$element.trigger("maxReachedGrp.bs.select")),setTimeout(function(){b.setSelected(e,!1)},10),w.delay(750).fadeOut(300,function(){a(this).remove()})}}}else j.prop("selected",!1),k.prop("selected",!0),b.$menuInner.find(".selected").removeClass("selected").find("a").attr("aria-selected",!1),b.setSelected(e,!0);!b.multiple||b.multiple&&1===b.options.maxOptions?b.$button.focus():b.options.liveSearch&&b.$searchbox.focus(),i&&(g!=b.$element.val()&&b.multiple||h!=b.$element.prop("selectedIndex")&&!b.multiple)&&(f=[e,k.prop("selected"),l],b.$element.triggerNative("change"))}}),this.$menu.on("click","li.disabled a, .popover-title, .popover-title :not(.close)",function(c){c.currentTarget==this&&(c.preventDefault(),c.stopPropagation(),b.options.liveSearch&&!a(c.target).hasClass("close")?b.$searchbox.focus():b.$button.focus())}),this.$menuInner.on("click",".divider, .dropdown-header",function(a){a.preventDefault(),a.stopPropagation(),b.options.liveSearch?b.$searchbox.focus():b.$button.focus()}),this.$menu.on("click",".popover-title .close",function(){b.$button.click()}),this.$searchbox.on("click",function(a){a.stopPropagation()}),this.$menu.on("click",".actions-btn",function(c){b.options.liveSearch?b.$searchbox.focus():b.$button.focus(),c.preventDefault(),c.stopPropagation(),a(this).hasClass("bs-select-all")?b.selectAll():b.deselectAll()}),this.$element.change(function(){b.render(!1),b.$element.trigger("changed.bs.select",f),f=null})},liveSearchListener:function(){var d=this,e=a('
  • ');this.$button.on("click.dropdown.data-api touchstart.dropdown.data-api",function(){d.$menuInner.find(".active").removeClass("active"),d.$searchbox.val()&&(d.$searchbox.val(""),d.$lis.not(".is-hidden").removeClass("hidden"),e.parent().length&&e.remove()),d.multiple||d.$menuInner.find(".selected").addClass("active"),setTimeout(function(){d.$searchbox.focus()},10)}),this.$searchbox.on("click.dropdown.data-api focus.dropdown.data-api touchend.dropdown.data-api",function(a){a.stopPropagation()}),this.$searchbox.on("input propertychange",function(){if(d.$searchbox.val()){var f=d.$lis.not(".is-hidden").removeClass("hidden").children("a");f=d.options.liveSearchNormalize?f.not(":a"+d._searchStyle()+'("'+b(d.$searchbox.val())+'")'):f.not(":"+d._searchStyle()+'("'+d.$searchbox.val()+'")'),f.parent().addClass("hidden"),d.$lis.filter(".dropdown-header").each(function(){var b=a(this),c=b.data("optgroup");0===d.$lis.filter("[data-optgroup="+c+"]").not(b).not(".hidden").length&&(b.addClass("hidden"),d.$lis.filter("[data-optgroup="+c+"div]").addClass("hidden"))});var g=d.$lis.not(".hidden");g.each(function(b){var c=a(this);c.hasClass("divider")&&(c.index()===g.first().index()||c.index()===g.last().index()||g.eq(b+1).hasClass("divider"))&&c.addClass("hidden")}),d.$lis.not(".hidden, .no-results").length?e.parent().length&&e.remove():(e.parent().length&&e.remove(),e.html(d.options.noneResultsText.replace("{0}",'"'+c(d.$searchbox.val())+'"')).show(),d.$menuInner.append(e))}else d.$lis.not(".is-hidden").removeClass("hidden"),e.parent().length&&e.remove();d.$lis.filter(".active").removeClass("active"),d.$searchbox.val()&&d.$lis.not(".hidden, .divider, .dropdown-header").eq(0).addClass("active").children("a").focus(),a(this).focus()})},_searchStyle:function(){var a={begins:"ibegins",startsWith:"ibegins"};return a[this.options.liveSearchStyle]||"icontains"},val:function(a){return"undefined"!=typeof a?(this.$element.val(a),this.render(),this.$element):this.$element.val()},changeAll:function(b){if(this.multiple){"undefined"==typeof b&&(b=!0),this.findLis();var c=this.$element.find("option"),d=this.$lis.not(".divider, .dropdown-header, .disabled, .hidden"),e=d.length,f=[];if(b){if(d.filter(".selected").length===d.length)return}else if(0===d.filter(".selected").length)return;d.toggleClass("selected",b);for(var g=0;e>g;g++){var h=d[g].getAttribute("data-original-index");f[f.length]=c.eq(h)[0]}a(f).prop("selected",b),this.render(!1),this.togglePlaceholder(),this.$element.triggerNative("change")}},selectAll:function(){return this.changeAll(!0)},deselectAll:function(){return this.changeAll(!1)},toggle:function(a){a=a||window.event,a&&a.stopPropagation(),this.$button.trigger("click")},keydown:function(c){var d,e,f,g,h,i,j,k,l,m=a(this),n=m.is("input")?m.parent().parent():m.parent(),o=n.data("this"),p=":not(.disabled, .hidden, .dropdown-header, .divider)",q={32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9"};if(o.options.liveSearch&&(n=m.parent().parent()),o.options.container&&(n=o.$menu),d=a('[role="listbox"] li',n),l=o.$newElement.hasClass("open"),!l&&(c.keyCode>=48&&c.keyCode<=57||c.keyCode>=96&&c.keyCode<=105||c.keyCode>=65&&c.keyCode<=90))return o.options.container?o.$button.trigger("click"):(o.setSize(),o.$menu.parent().addClass("open"),l=!0),void o.$searchbox.focus();if(o.options.liveSearch&&(/(^9$|27)/.test(c.keyCode.toString(10))&&l&&(c.preventDefault(),c.stopPropagation(),o.$button.click().focus()),d=a('[role="listbox"] li'+p,n),m.val()||/(38|40)/.test(c.keyCode.toString(10))||0===d.filter(".active").length&&(d=o.$menuInner.find("li"),d=o.options.liveSearchNormalize?d.filter(":a"+o._searchStyle()+"("+b(q[c.keyCode])+")"):d.filter(":"+o._searchStyle()+"("+q[c.keyCode]+")"))),d.length){if(/(38|40)/.test(c.keyCode.toString(10)))e=d.index(d.find("a").filter(":focus").parent()),g=d.filter(p).first().index(),h=d.filter(p).last().index(),f=d.eq(e).nextAll(p).eq(0).index(),i=d.eq(e).prevAll(p).eq(0).index(),j=d.eq(f).prevAll(p).eq(0).index(),o.options.liveSearch&&(d.each(function(b){a(this).hasClass("disabled")||a(this).data("index",b)}),e=d.index(d.filter(".active")),g=d.first().data("index"),h=d.last().data("index"),f=d.eq(e).nextAll().eq(0).data("index"),i=d.eq(e).prevAll().eq(0).data("index"),j=d.eq(f).prevAll().eq(0).data("index")),k=m.data("prevIndex"),38==c.keyCode?(o.options.liveSearch&&e--,e!=j&&e>i&&(e=i),g>e&&(e=g),e==k&&(e=h)):40==c.keyCode&&(o.options.liveSearch&&e++,-1==e&&(e=0),e!=j&&f>e&&(e=f),e>h&&(e=h),e==k&&(e=g)),m.data("prevIndex",e),o.options.liveSearch?(c.preventDefault(),m.hasClass("dropdown-toggle")||(d.removeClass("active").eq(e).addClass("active").children("a").focus(),m.focus())):d.eq(e).children("a").focus();else if(!m.is("input")){var r,s,t=[];d.each(function(){a(this).hasClass("disabled")||a.trim(a(this).children("a").text().toLowerCase()).substring(0,1)==q[c.keyCode]&&t.push(a(this).index())}),r=a(document).data("keycount"),r++,a(document).data("keycount",r),s=a.trim(a(":focus").text().toLowerCase()).substring(0,1),s!=q[c.keyCode]?(r=1,a(document).data("keycount",r)):r>=t.length&&(a(document).data("keycount",0),r>t.length&&(r=1)),d.eq(t[r-1]).children("a").focus()}if((/(13|32)/.test(c.keyCode.toString(10))||/(^9$)/.test(c.keyCode.toString(10))&&o.options.selectOnTab)&&l){ +if(/(32)/.test(c.keyCode.toString(10))||c.preventDefault(),o.options.liveSearch)/(32)/.test(c.keyCode.toString(10))||(o.$menuInner.find(".active a").click(),m.focus());else{var u=a(":focus");u.click(),u.focus(),c.preventDefault(),a(document).data("spaceSelect",!0)}a(document).data("keycount",0)}(/(^9$|27)/.test(c.keyCode.toString(10))&&l&&(o.multiple||o.options.liveSearch)||/(27)/.test(c.keyCode.toString(10))&&!l)&&(o.$menu.parent().removeClass("open"),o.options.container&&o.$newElement.removeClass("open"),o.$button.focus())}},mobile:function(){this.$element.addClass("mobile-device")},refresh:function(){this.$lis=null,this.liObj={},this.reloadLi(),this.render(),this.checkDisabled(),this.liHeight(!0),this.setStyle(),this.setWidth(),this.$lis&&this.$searchbox.trigger("propertychange"),this.$element.trigger("refreshed.bs.select")},hide:function(){this.$newElement.hide()},show:function(){this.$newElement.show()},remove:function(){this.$newElement.remove(),this.$element.remove()},destroy:function(){this.$newElement.before(this.$element).remove(),this.$bsContainer?this.$bsContainer.remove():this.$menu.remove(),this.$element.off(".bs.select").removeData("selectpicker").removeClass("bs-select-hidden selectpicker")}};var h=a.fn.selectpicker;a.fn.selectpicker=d,a.fn.selectpicker.Constructor=g,a.fn.selectpicker.noConflict=function(){return a.fn.selectpicker=h,this},a(document).data("keycount",0).on("keydown.bs.select",'.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="listbox"], .bs-searchbox input',g.prototype.keydown).on("focusin.modal",'.bootstrap-select [data-toggle=dropdown], .bootstrap-select [role="listbox"], .bs-searchbox input',function(a){a.stopPropagation()}),a(window).on("load.bs.select.data-api",function(){a(".selectpicker").each(function(){var b=a(this);d.call(b,b.data())})})}(a)}); +//# sourceMappingURL=bootstrap-select.js.map \ No newline at end of file diff --git a/static/js/index.es6 b/static/js/index.es6 index 8367968..2a3994f 100644 --- a/static/js/index.es6 +++ b/static/js/index.es6 @@ -6,7 +6,7 @@ $('a#eib1gieB') .text(lei3Po8h) .attr('href', atob('bWFpbHRvOgo=') + lei3Po8h); - +$('.selectpicker').selectpicker() var mir_tmpl = $("#template").text(), label_map = { @@ -105,6 +105,7 @@ var refreshISOList = () => { for (var i = 0; i < isoinfo.length; i++) { s.options[s.options.length] = new Option(isoinfo[i].distro, i); } + $('.selectpicker').selectpicker('refresh') switchDistro(); }); } From 621cd0cfdb4187dd392e616027041a8c2a700766 Mon Sep 17 00:00:00 2001 From: Xavier Yao Date: Fri, 11 Nov 2016 22:09:51 +0800 Subject: [PATCH 099/257] refresh selectpicker once switched distro --- static/js/index.es6 | 2 ++ 1 file changed, 2 insertions(+) diff --git a/static/js/index.es6 b/static/js/index.es6 index 2a3994f..2e35386 100644 --- a/static/js/index.es6 +++ b/static/js/index.es6 @@ -95,6 +95,8 @@ window.switchDistro = () => { for (var i = 0; i < isoinfo[idx].urls.length; i++) { s.options[s.options.length] = new Option(isoinfo[idx].urls[i].name, i) } + $('.selectpicker').selectpicker('refresh') + } var refreshISOList = () => { From c85ab274ef60b5597c3d518d9ebf0ee578eb12e1 Mon Sep 17 00:00:00 2001 From: Xavier Yao Date: Fri, 11 Nov 2016 22:16:54 +0800 Subject: [PATCH 100/257] make download button available --- index.html | 4 ++-- static/js/index.es6 | 11 ++++++++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/index.html b/index.html index 4d53877..2a6452d 100644 --- a/index.html +++ b/index.html @@ -86,14 +86,14 @@ permalink: / diff --git a/static/js/index.es6 b/static/js/index.es6 index 2e35386..dbaf685 100644 --- a/static/js/index.es6 +++ b/static/js/index.es6 @@ -112,8 +112,17 @@ var refreshISOList = () => { }); } +$('#isodistro').change(switchDistro); +$('#btn_download').click(() => { + var distro = document.getElementById("isodistro"); + var version = document.getElementById("isoversion"); + var i = distro.selectedIndex; + var j = version.selectedIndex; + var link = isoinfo[i].urls[j].url; + window.open(link); + $('#isoModal').modal('toggle'); +}); refreshISOList(); - refreshMirrorList(); }); From a9cdba46ff655ca3119f060cac7b81a3881ce937 Mon Sep 17 00:00:00 2001 From: Xavier Yao Date: Fri, 11 Nov 2016 22:59:28 +0800 Subject: [PATCH 101/257] qt --- geninfo/genisolist.ini | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/geninfo/genisolist.ini b/geninfo/genisolist.ini index 7b0b740..1a01714 100644 --- a/geninfo/genisolist.ini +++ b/geninfo/genisolist.ini @@ -176,3 +176,11 @@ location = deepin-cd/1*/*.iso pattern = deepin-([0-9.]+)-(\w+).iso version = $1 platform = $2 + +[qt5] +distro = Qt +listvers = 1 +location_0 = qt/official_releases/qt/5.[0-9]/5.[0-9].[0-9]/qt-opensource-*.run +location_1 = qt/official_releases/qt/5.[0-9]/5.[0-9].[0-9]/qt-opensource-*.dmg +location_2 = qt/official_releases/qt/5.[0-9]/5.[0-9].[0-9]/qt-opensource-*.exe +pattern = qt-opensource-(\w+)-.(run|dmg|exe) From ac8aa9fcd5afbb064ae15d542e955eb2211b5b35 Mon Sep 17 00:00:00 2001 From: bigeagle Date: Sun, 13 Nov 2016 13:41:18 +0800 Subject: [PATCH 102/257] tensorflow link --- _posts/help/1970-01-01-tensorflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/help/1970-01-01-tensorflow.md b/_posts/help/1970-01-01-tensorflow.md index 1685a30..20d866b 100644 --- a/_posts/help/1970-01-01-tensorflow.md +++ b/_posts/help/1970-01-01-tensorflow.md @@ -6,7 +6,7 @@ mirrorid: tensorflow # TensorFlow 镜像使用帮助 -TensorFlow 安装方法请参考 https://www.tensorflow.org/get_started 。将 +TensorFlow 安装方法请参考 。将 ```bash export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0rc2-cp27-none-linux_x86_64.whl From afa4b0c694cc6ff6b535814407a1a39e0dbacb3b Mon Sep 17 00:00:00 2001 From: bigeagle Date: Sun, 13 Nov 2016 15:01:57 +0800 Subject: [PATCH 103/257] rewrite tensorflow help --- _includes/head.html | 1 + _posts/help/1970-01-01-tensorflow.md | 92 +++++++++++++++++++++++++--- static/js/help.es6 | 1 - static/js/vue.min.js | 8 +++ 4 files changed, 92 insertions(+), 10 deletions(-) create mode 100644 static/js/vue.min.js diff --git a/_includes/head.html b/_includes/head.html index 283fa08..ccce576 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -12,6 +12,7 @@ + diff --git a/_posts/help/1970-01-01-tensorflow.md b/_posts/help/1970-01-01-tensorflow.md index 20d866b..4da8e8b 100644 --- a/_posts/help/1970-01-01-tensorflow.md +++ b/_posts/help/1970-01-01-tensorflow.md @@ -6,16 +6,90 @@ mirrorid: tensorflow # TensorFlow 镜像使用帮助 -TensorFlow 安装方法请参考 。将 +请先安装 python 环境,科学计算用途建议安装 [anaconda](/help/anaconda/)。 +TensorFlow 安装方法请参考 ,把 `https://storage.googleapis.com/` 替换为 `https://mirrors.tuna.tsinghua.edu.cn/` +即可。 -```bash -export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.11.0rc2-cp27-none-linux_x86_64.whl -``` +或直接运行下列命令,一步完成整个安装过程。 -替换成 -```bash -export TF_BINARY_URL=https://mirrors.tuna.tsinghua.edu.cn/tensorflow/linux/cpu/tensorflow-0.11.0rc2-cp27-none-linux_x86_64.whl -``` +{% raw %} +
    +
    +
    + + -即可。其他平台同理。 + + + + + + + + + +
    +
    +

    +
    +pip install \
    +  -i https://pypi.tuna.tsinghua.edu.cn/simple/ \
    +  https://mirrors.tuna.tsinghua.edu.cn/tensorflow/{{form.os}}/{{form.xpu}}/tensorflow-{{form.tfver}}-{{pytag}}.whl
    +
    +
    + + +{% endraw %} diff --git a/static/js/help.es6 b/static/js/help.es6 index 766bb02..0520d23 100644 --- a/static/js/help.es6 +++ b/static/js/help.es6 @@ -33,7 +33,6 @@ $(document).ready(() => { let help_url = $(ev.target).find("option:selected").data('help-url'); window.location = `${window.location.protocol}//${window.location.host}${help_url}`; }); - }); // vim: ts=2 sts=2 sw=2 noexpandtab diff --git a/static/js/vue.min.js b/static/js/vue.min.js new file mode 100644 index 0000000..622631e --- /dev/null +++ b/static/js/vue.min.js @@ -0,0 +1,8 @@ +/*! + * Vue.js v2.0.5 + * (c) 2014-2016 Evan You + * Released under the MIT License. + */ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.Vue=t()}(this,function(){"use strict";function e(e){return null==e?"":"object"==typeof e?JSON.stringify(e,null,2):String(e)}function t(e){var t=parseFloat(e,10);return t||0===t?t:e}function n(e,t){for(var n=Object.create(null),r=e.split(","),i=0;i-1)return e.splice(n,1)}}function i(e,t){return Er.call(e,t)}function o(e){return"string"==typeof e||"number"==typeof e}function a(e){var t=Object.create(null);return function(n){var r=t[n];return r||(t[n]=e(n))}}function s(e,t){function n(n){var r=arguments.length;return r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n}function c(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function u(e,t){for(var n in t)e[n]=t[n];return e}function l(e){return null!==e&&"object"==typeof e}function f(e){return Pr.call(e)===Rr}function d(e){for(var t={},n=0;n=0&&ei[n].id>e.id;)n--;ei.splice(Math.max(n,ii)+1,0,e)}else ei.push(e);ni||(ni=!0,Gr(x))}}function A(e){si.clear(),O(e,si)}function O(e,t){var n,r,i=Array.isArray(e);if((i||l(e))&&Object.isExtensible(e)){if(e.__ob__){var o=e.__ob__.dep.id;if(t.has(o))return;t.add(o)}if(i)for(n=e.length;n--;)O(e[n],t);else for(r=Object.keys(e),n=r.length;n--;)O(e[r[n]],t)}}function T(e,t){e.__proto__=t}function S(e,t,n){for(var r=0,i=n.length;r1?c(n):n;for(var r=c(arguments,1),i=0,o=n.length;i-1?zi[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:zi[e]=/HTMLUnknownElement/.test(t.toString())}function Ge(e){if("string"==typeof e){if(e=document.querySelector(e),!e)return document.createElement("div")}return e}function Ye(e,t){var n=document.createElement(e);return"select"!==e?n:(t.data&&t.data.attrs&&"multiple"in t.data.attrs&&n.setAttribute("multiple","multiple"),n)}function Qe(e,t){return document.createElementNS(Mi[e],t)}function Xe(e){return document.createTextNode(e)}function et(e){return document.createComment(e)}function tt(e,t,n){e.insertBefore(t,n)}function nt(e,t){e.removeChild(t)}function rt(e,t){e.appendChild(t)}function it(e){return e.parentNode}function ot(e){return e.nextSibling}function at(e){return e.tagName}function st(e,t){e.textContent=t}function ct(e){return e.childNodes}function ut(e,t,n){e.setAttribute(t,n)}function lt(e,t){var n=e.data.ref;if(n){var i=e.context,o=e.child||e.elm,a=i.$refs;t?Array.isArray(a[n])?r(a[n],o):a[n]===o&&(a[n]=void 0):e.data.refInFor?Array.isArray(a[n])?a[n].push(o):a[n]=[o]:a[n]=o}}function ft(e){return null==e}function dt(e){return null!=e}function pt(e,t){return e.key===t.key&&e.tag===t.tag&&e.isComment===t.isComment&&!e.data==!t.data}function vt(e,t,n){var r,i,o={};for(r=t;r<=n;++r)i=e[r].key,dt(i)&&(o[i]=r);return o}function ht(e){function t(e){return new vi(C.tagName(e).toLowerCase(),{},[],void 0,e)}function n(e,t){function n(){0===--n.listeners&&r(e)}return n.listeners=t,n}function r(e){var t=C.parentNode(e);t&&C.removeChild(t,e)}function i(e,t,n){var r,i=e.data;if(e.isRootInsert=!n,dt(i)&&(dt(r=i.hook)&&dt(r=r.init)&&r(e),dt(r=e.child)))return u(e,t),e.elm;var o=e.children,s=e.tag;return dt(s)?(e.elm=e.ns?C.createElementNS(e.ns,s):C.createElement(s,e),l(e),a(e,o,t),dt(i)&&c(e,t)):e.isComment?e.elm=C.createComment(e.text):e.elm=C.createTextNode(e.text),e.elm}function a(e,t,n){if(Array.isArray(t))for(var r=0;rv?(u=ft(n[y+1])?null:n[y+1].elm,f(e,u,n,d,y,r)):d>y&&p(e,t,l,v)}function m(e,t,n,r){if(e!==t){if(t.isStatic&&e.isStatic&&t.key===e.key&&(t.isCloned||t.isOnce))return void(t.elm=e.elm);var i,o=t.data,a=dt(o);a&&dt(i=o.hook)&&dt(i=i.prepatch)&&i(e,t);var c=t.elm=e.elm,u=e.children,l=t.children;if(a&&s(t)){for(i=0;i<$.update.length;++i)$.update[i](e,t);dt(i=o.hook)&&dt(i=i.update)&&i(e,t)}ft(t.text)?dt(u)&&dt(l)?u!==l&&h(c,u,l,n,r):dt(l)?(dt(e.text)&&C.setTextContent(c,""),f(c,null,l,0,l.length-1,n)):dt(u)?p(c,u,0,u.length-1):dt(e.text)&&C.setTextContent(c,""):e.text!==t.text&&C.setTextContent(c,t.text),a&&dt(i=o.hook)&&dt(i=i.postpatch)&&i(e,t)}}function g(e,t,n){if(n&&e.parent)e.parent.data.pendingInsert=t;else for(var r=0;r-1?t.split(/\s+/).forEach(function(t){return e.classList.add(t)}):e.classList.add(t);else{var n=" "+e.getAttribute("class")+" ";n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function Ot(e,t){if(t&&t.trim())if(e.classList)t.indexOf(" ")>-1?t.split(/\s+/).forEach(function(t){return e.classList.remove(t)}):e.classList.remove(t);else{for(var n=" "+e.getAttribute("class")+" ",r=" "+t+" ";n.indexOf(r)>=0;)n=n.replace(r," ");e.setAttribute("class",n.trim())}}function Tt(e){vo(function(){vo(e)})}function St(e,t){(e._transitionClasses||(e._transitionClasses=[])).push(t),At(e,t)}function Et(e,t){e._transitionClasses&&r(e._transitionClasses,t),Ot(e,t)}function jt(e,t,n){var r=Lt(e,t),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===so?lo:po,c=0,u=function(){e.removeEventListener(s,l),n()},l=function(t){t.target===e&&++c>=a&&u()};setTimeout(function(){c0&&(n=so,l=a,f=o.length):t===co?u>0&&(n=co,l=u,f=c.length):(l=Math.max(a,u),n=l>0?a>u?so:co:null,f=n?n===so?o.length:c.length:0);var d=n===so&&ho.test(r[uo+"Property"]);return{type:n,timeout:l,propCount:f,hasTransform:d}}function Nt(e,t){for(;e.length1,T=t._enterCb=It(function(){A&&Et(t,$),T.cancelled?(A&&Et(t,b),k&&k(t)):x&&x(t),t._enterCb=null});e.data.show||K(e.data.hook||(e.data.hook={}),"insert",function(){var n=t.parentNode,r=n&&n._pending&&n._pending[e.key];r&&r.tag===e.tag&&r.elm._leaveCb&&r.elm._leaveCb(),C&&C(t,T)},"transition-insert"),w&&w(t),A&&(St(t,b),St(t,$),Tt(function(){Et(t,b),T.cancelled||O||jt(t,i,T)})),e.data.show&&C&&C(t,T),A||O||T()}}}function Pt(e,t){function n(){m.cancelled||(e.data.show||((r.parentNode._pending||(r.parentNode._pending={}))[e.key]=e),u&&u(r),v&&(St(r,s),St(r,c),Tt(function(){Et(r,s),m.cancelled||h||jt(r,a,m)})),l&&l(r,m),v||h||m())}var r=e.elm;r._enterCb&&(r._enterCb.cancelled=!0,r._enterCb());var i=Rt(e.data.transition);if(!i)return t();if(!r._leaveCb&&1===r.nodeType){var o=i.css,a=i.type,s=i.leaveClass,c=i.leaveActiveClass,u=i.beforeLeave,l=i.leave,f=i.afterLeave,d=i.leaveCancelled,p=i.delayLeave,v=o!==!1&&!Jr,h=l&&(l._length||l.length)>1,m=r._leaveCb=It(function(){r.parentNode&&r.parentNode._pending&&(r.parentNode._pending[e.key]=null),v&&Et(r,c),m.cancelled?(v&&Et(r,s),d&&d(r)):(t(),f&&f(r)),r._leaveCb=null});p?p(n):n()}}function Rt(e){if(e){if("object"==typeof e){var t={};return e.css!==!1&&u(t,mo(e.name||"v")),u(t,e),t}return"string"==typeof e?mo(e):void 0}}function It(e){var t=!1;return function(){t||(t=!0,e())}}function Bt(e,t,n){var r=t.value,i=e.multiple;if(!i||Array.isArray(r)){for(var o,a,s=0,c=e.options.length;s-1,a.selected!==o&&(a.selected=o);else if(h(Ht(a),r))return void(e.selectedIndex!==s&&(e.selectedIndex=s));i||(e.selectedIndex=-1)}}function Ft(e,t){for(var n=0,r=t.length;n',n.innerHTML.indexOf(t)>0}function en(e){return Eo.innerHTML=e,Eo.textContent}function tn(e,t){return t&&(e=e.replace(ba,"\n")),e.replace(ya,"<").replace(_a,">").replace($a,"&").replace(wa,'"')}function nn(e,t){function n(t){f+=t,e=e.substring(t)}function r(){var t=e.match(Ro);if(t){var r={tagName:t[1],attrs:[],start:f};n(t[0].length);for(var i,o;!(i=e.match(Io))&&(o=e.match(Do));)n(o[0].length),r.attrs.push(o);if(i)return r.unarySlash=i[1],n(i[0].length),r.end=f,r}}function i(e){var n=e.tagName,r=e.unarySlash;u&&("p"===s&&Bi(n)&&o("",s),Ii(n)&&s===n&&o("",n));for(var i=l(n)||"html"===n&&"head"===s||!!r,a=e.attrs.length,f=new Array(a),d=0;d=0&&c[o].tag.toLowerCase()!==a;o--);}else o=0;if(o>=0){for(var u=c.length-1;u>=o;u--)t.end&&t.end(c[u].tag,r,i);c.length=o,s=o&&c[o-1].tag}else"br"===n.toLowerCase()?t.start&&t.start(n,[],!0,r,i):"p"===n.toLowerCase()&&(t.start&&t.start(n,[],!1,r,i),t.end&&t.end(n,r,i))}for(var a,s,c=[],u=t.expectHTML,l=t.isUnaryTag||Ir,f=0;e;){if(a=e,s&&ma(s,t.sfc,c)){var d=s.toLowerCase(),p=ga[d]||(ga[d]=new RegExp("([\\s\\S]*?)(]*>)","i")),v=0,h=e.replace(p,function(e,n,r){return v=r.length,"script"!==d&&"style"!==d&&"noscript"!==d&&(n=n.replace(//g,"$1").replace(//g,"$1")),t.chars&&t.chars(n),""});f+=e.length-h.length,e=h,o("",d,f-v,f)}else{var m=e.indexOf("<");if(0===m){if(Ho.test(e)){var g=e.indexOf("-->");if(g>=0){n(g+3);continue}}if(Uo.test(e)){var y=e.indexOf("]>");if(y>=0){n(y+2);continue}}var _=e.match(Fo);if(_){n(_[0].length);continue}var b=e.match(Bo);if(b){var $=f;n(b[0].length),o(b[0],b[1],$,f);continue}var w=r();if(w){i(w);continue}}var C=void 0,x=void 0,k=void 0;if(m>0){for(x=e.slice(m);!(Bo.test(x)||Ro.test(x)||Ho.test(x)||Uo.test(x)||(k=x.indexOf("<",1),k<0));)m+=k,x=e.slice(m);C=e.substring(0,m),n(m)}m<0&&(C=e,e=""),t.chars&&C&&t.chars(C)}if(e===a&&t.chars){t.chars(e);break}}o()}function rn(e){function t(){(a||(a=[])).push(e.slice(d,i).trim()),d=i+1}var n,r,i,o,a,s=!1,c=!1,u=0,l=0,f=0,d=0;for(i=0;ia&&o.push(JSON.stringify(e.slice(a,i)));var s=rn(r[1].trim());o.push("_s("+s+")"),a=i+r[0].length}return a=sa}function pr(e){return 34===e||39===e}function vr(e){var t=1;for(fa=la;!dr();)if(e=fr(),pr(e))hr(e);else if(91===e&&t++,93===e&&t--,0===t){da=la;break}}function hr(e){for(var t=e;!dr()&&(e=fr(),e!==t););}function mr(e,t,n){pa=n;var r=t.value,i=t.modifiers,o=e.tag,a=e.attrsMap.type;return"select"===o?br(e,r,i):"input"===o&&"checkbox"===a?gr(e,r,i):"input"===o&&"radio"===a?yr(e,r,i):_r(e,r,i),!0}function gr(e,t,n){var r=n&&n.number,i=pn(e,"value")||"null",o=pn(e,"true-value")||"true",a=pn(e,"false-value")||"false";un(e,"checked","Array.isArray("+t+")?_i("+t+","+i+")>-1:_q("+t+","+o+")"),dn(e,"change","var $$a="+t+",$$el=$event.target,$$c=$$el.checked?("+o+"):("+a+");if(Array.isArray($$a)){var $$v="+(r?"_n("+i+")":i)+",$$i=_i($$a,$$v);if($$c){$$i<0&&("+t+"=$$a.concat($$v))}else{$$i>-1&&("+t+"=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{"+t+"=$$c}",null,!0)}function yr(e,t,n){var r=n&&n.number,i=pn(e,"value")||"null";i=r?"_n("+i+")":i,un(e,"checked","_q("+t+","+i+")"),dn(e,"change",$r(t,i),null,!0)}function _r(e,t,n){var r=e.attrsMap.type,i=n||{},o=i.lazy,a=i.number,s=i.trim,c=o||Vr&&"range"===r?"change":"input",u=!o&&"range"!==r,l="input"===e.tag||"textarea"===e.tag,f=l?"$event.target.value"+(s?".trim()":""):"$event";f=a||"number"===r?"_n("+f+")":f;var d=$r(t,f);l&&u&&(d="if($event.target.composing)return;"+d),un(e,"value",l?"_s("+t+")":"("+t+")"),dn(e,c,d,null,!0)}function br(e,t,n){var r=n&&n.number,i='Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;return '+(r?"_n(val)":"val")+"})"+(null==e.attrsMap.multiple?"[0]":""),o=$r(t,i);dn(e,"change",o,null,!0)}function $r(e,t){var n=lr(e);return null===n.idx?e+"="+t:"var $$exp = "+n.exp+", $$idx = "+n.idx+";if (!Array.isArray($$exp)){"+e+"="+t+"}else{$$exp.splice($$idx, 1, "+t+")}"}function wr(e,t){t.value&&un(e,"textContent","_s("+t.value+")")}function Cr(e,t){t.value&&un(e,"innerHTML","_s("+t.value+")")}function xr(e,t){return t=t?u(u({},Ka),t):Ka,or(e,t)}function kr(e,t,n){var r=(t&&t.warn||$i,t&&t.delimiters?String(t.delimiters)+e:e);if(qa[r])return qa[r];var i={},o=xr(e,t);i.render=Ar(o.render);var a=o.staticRenderFns.length;i.staticRenderFns=new Array(a);for(var s=0;s0,qr=zr&&zr.indexOf("edge/")>0,Kr=zr&&zr.indexOf("android")>0,Wr=zr&&/iphone|ipad|ipod|ios/.test(zr),Zr=Ur&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__,Gr=function(){function e(){r=!1;var e=n.slice(0);n.length=0;for(var t=0;t\/=]+)/,Lo=/(?:=)/,No=[/"([^"]*)"+/.source,/'([^']*)'+/.source,/([^\s"'=<>`]+)/.source],Do=new RegExp("^\\s*"+jo.source+"(?:\\s*("+Lo.source+")\\s*(?:"+No.join("|")+"))?"),Mo="[a-zA-Z_][\\w\\-\\.]*",Po="((?:"+Mo+"\\:)?"+Mo+")",Ro=new RegExp("^<"+Po),Io=/^\s*(\/?)>/,Bo=new RegExp("^<\\/"+Po+"[^>]*>"),Fo=/^]+>/i,Ho=/^ -

    新闻公告

    @@ -49,6 +46,13 @@ permalink: /
  • https://mirrors4.tuna.tsinghua.edu.cn/ 只解析 IPv4
  • +
    +

    下载链接

    +

    常用发行版 iso 和应用工具安装包直接下载

    + +

    联系我们

      @@ -76,6 +80,7 @@ permalink: / {% include footer.html %} + {% raw %}
    + {% endraw %} {% raw %} diff --git a/static/js/index.es6 b/static/js/index.es6 index b40f00d..eecffd6 100644 --- a/static/js/index.es6 +++ b/static/js/index.es6 @@ -89,49 +89,39 @@ window.refreshMirrorList = () => { setTimeout(refreshMirrorList, 10000); } -window.modal = () => { - var bx = document.getElementById("isomodal"); - bx.style.visibility = (bx.style.visibility == "visible") ? "hidden" : "visible"; -} - -window.switchDistro = () => { - var distro = document.getElementById("isodistro"); - var idx = distro.selectedIndex; - var s = document.getElementById('isoversion'); - s.options.length = 0; - for (var i = 0; i < isoinfo[idx].urls.length; i++) { - s.options[s.options.length] = new Option(isoinfo[idx].urls[i].name, i) - } - $('.selectpicker').selectpicker('refresh') - -} - -var refreshISOList = () => { - $.getJSON("/static/isoinfo.json", (isoinfo) => { - window.isoinfo = isoinfo; - window.s = document.getElementById("isodistro"); - s.options.length = 0; - for (var i = 0; i < isoinfo.length; i++) { - s.options[s.options.length] = new Option(isoinfo[i].distro, i); - } - $('.selectpicker').selectpicker('refresh') - switchDistro(); - }); -} - -$('#isodistro').change(switchDistro); -$('#btn_download').click(() => { - var distro = document.getElementById("isodistro"); - var version = document.getElementById("isoversion"); - var i = distro.selectedIndex; - var j = version.selectedIndex; - var link = isoinfo[i].urls[j].url; - window.open(link); - $('#isoModal').modal('toggle'); -}); -refreshISOList(); refreshMirrorList(); +var vm = new Vue({ + el: "#isoModal", + data: { + distroList: [], + selected: null, + curCategory: "os" + }, + created: function () { + var self = this; + $.getJSON("/static/isoinfo.json", function (isoinfo) { + self.distroList = isoinfo; + self.selected = self.curDistroList[0]; + }); + }, + computed: { + curDistroList () { + return this.distroList.filter((x)=> x.category === this.curCategory); + } + }, + methods: { + switchDistro (distro) { + this.selected = distro; + }, + switchCategory (category) { + this.curCategory = category; + this.selected = this.curDistroList[0]; + } + } + +}); + }); // vim: ts=2 sts=2 sw=2 noexpandtab From 999f12c4c557340697316c4be318d80c58617dcb Mon Sep 17 00:00:00 2001 From: Xavier Yao Date: Sun, 13 Nov 2016 19:02:04 +0800 Subject: [PATCH 115/257] edit qt distro name --- geninfo/genisolist.ini | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/geninfo/genisolist.ini b/geninfo/genisolist.ini index a144f97..c4ec98d 100644 --- a/geninfo/genisolist.ini +++ b/geninfo/genisolist.ini @@ -178,7 +178,7 @@ version = $1 platform = $2 [qt5] -distro = Qt 5 (含 Qt Creator) +distro = Qt 5 listvers = 1 location = qt/official_releases/qt/5.*/5.*/qt-opensource-* pattern = qt-opensource-(.*)-([\d.]+).(run|dmg|exe) @@ -242,5 +242,3 @@ platform = $3 type = $4 version = $2 category = app - - From f082f5e8a37de205bbcca35ed3b2bef4ff53b430 Mon Sep 17 00:00:00 2001 From: bigeagle Date: Sun, 13 Nov 2016 19:02:13 +0800 Subject: [PATCH 116/257] regex fixes --- geninfo/genisolist.ini | 6 +++--- geninfo/genisolist.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/geninfo/genisolist.ini b/geninfo/genisolist.ini index a144f97..0f35ac9 100644 --- a/geninfo/genisolist.ini +++ b/geninfo/genisolist.ini @@ -181,7 +181,7 @@ platform = $2 distro = Qt 5 (含 Qt Creator) listvers = 1 location = qt/official_releases/qt/5.*/5.*/qt-opensource-* -pattern = qt-opensource-(.*)-([\d.]+).(run|dmg|exe) +pattern = qt-opensource-(.*?)-([\d.]+).(run|dmg|exe) platform = $1 version = $2 category = app @@ -200,7 +200,7 @@ category = app distro = VirtualBox listvers = 1 location = virtualbox/virtualbox-* -pattern = virtualbox-(.*)-(latest).(exe|dmg) +pattern = virtualbox-(.*?)-(latest).(exe|dmg) platform = $1 version = $2 category = app @@ -237,7 +237,7 @@ category = app distro = Anaconda listvers = 1 location = anaconda/archive/Anaconda* -pattern = (Anaconda\d*)-(\d+.\d+.\d+)-(Windows|Linux|MacOSX)-(x86|x86_64).\w+ +pattern = (Anaconda\d*)-(\d+.\d+.\d+)-(Windows|Linux|MacOSX)-(x86_64|x86).\w+ platform = $3 type = $4 version = $2 diff --git a/geninfo/genisolist.py b/geninfo/genisolist.py index fe0d005..0487e75 100644 --- a/geninfo/genisolist.py +++ b/geninfo/genisolist.py @@ -60,7 +60,7 @@ def parseSection(items): for prop in ("version", "type", "platform", "category"): s = items.get(prop, "") for i in range(0, group_count): - s = s.replace("$%d" % i, result.group(i)) + s = s.replace("$%d" % i, result.group(i) or "") imageinfo[prop] = s logger.debug("[JSON] %r", imageinfo) From 8d6cc232fa28ac544ff0ff54ed3ed7ef237bf42d Mon Sep 17 00:00:00 2001 From: bigeagle Date: Sun, 13 Nov 2016 19:03:21 +0800 Subject: [PATCH 117/257] grant exec permission on genisolist.py --- geninfo/genisolist.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 geninfo/genisolist.py diff --git a/geninfo/genisolist.py b/geninfo/genisolist.py old mode 100644 new mode 100755 From de5c15bcde2868394f8a5168758f29145ba5527b Mon Sep 17 00:00:00 2001 From: bigeagle Date: Sun, 13 Nov 2016 19:32:58 +0800 Subject: [PATCH 118/257] style updates --- index.html | 10 +++++----- static/css/style.scss | 8 ++++++++ static/js/index.es6 | 7 ++++++- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/index.html b/index.html index 5040f7b..473df30 100644 --- a/index.html +++ b/index.html @@ -46,10 +46,10 @@ permalink: /
  • https://mirrors4.tuna.tsinghua.edu.cn/ 只解析 IPv4
  • -
    + @@ -82,7 +82,7 @@ permalink: / {% raw %}