code rewritten
|
|
@ -1,4 +1,6 @@
|
|||
*.swp
|
||||
*~
|
||||
/static/tunasync.json
|
||||
/static/tunet.json
|
||||
/lib/tunasync.json
|
||||
/lib/tunet.json
|
||||
/node_modules
|
||||
/dist
|
||||
|
|
|
|||
|
|
@ -0,0 +1,77 @@
|
|||
var gulp = require('gulp'),
|
||||
babel = require('gulp-babel'),
|
||||
sass = require('gulp-sass'),
|
||||
rename = require('gulp-rename'),
|
||||
fileinclude = require('gulp-file-include');
|
||||
|
||||
var path = {
|
||||
HTML_TPL: './src/**/*.tpl.html',
|
||||
HTML: './src/**/*.html',
|
||||
HELP_MD: './src/help/*.md',
|
||||
JS_FILES: './src/js/*.js',
|
||||
SCSS_FILES: './src/scss/*.scss',
|
||||
IMG: './src/img/*',
|
||||
LIB: './lib/**/*',
|
||||
ROBOTS: './src/robots.txt',
|
||||
DEST: 'dist',
|
||||
DEST_LIB: 'dist/static',
|
||||
DEST_JS: 'dist/static/js',
|
||||
DEST_CSS: 'dist/static/css',
|
||||
DEST_IMG: 'dist/static/img'
|
||||
};
|
||||
|
||||
gulp.task('copy-lib', function(){
|
||||
gulp.src(path.LIB)
|
||||
.pipe(gulp.dest(path.DEST_LIB));
|
||||
});
|
||||
|
||||
gulp.task('copy-img', function(){
|
||||
gulp.src(path.IMG)
|
||||
.pipe(gulp.dest(path.DEST_IMG));
|
||||
});
|
||||
|
||||
gulp.task('copy-html', function(){
|
||||
gulp.src(path.ROBOTS)
|
||||
.pipe(gulp.dest(path.DEST));
|
||||
gulp.src(path.HELP_MD)
|
||||
.pipe(gulp.dest(path.DEST+"/help"));
|
||||
|
||||
gulp.src(path.HTML_TPL)
|
||||
.pipe(fileinclude())
|
||||
.pipe(rename({
|
||||
'extname': ""
|
||||
}))
|
||||
.pipe(rename({
|
||||
'extname': ".html"
|
||||
}))
|
||||
.pipe(gulp.dest(path.DEST));
|
||||
});
|
||||
|
||||
gulp.task('watch', function() {
|
||||
gulp.watch(path.HTML, ['copy-html']);
|
||||
gulp.watch(path.IMG, ['copy-img']);
|
||||
gulp.watch(path.SCSS_FILES, ['scss-build']);
|
||||
gulp.watch(path.JS_FILES, ['js-build']);
|
||||
});
|
||||
|
||||
gulp.task('js-build', function(){
|
||||
gulp.src(path.JS_FILES)
|
||||
.pipe(babel())
|
||||
.pipe(gulp.dest(path.DEST_JS));
|
||||
});
|
||||
|
||||
gulp.task('scss-build', function(){
|
||||
gulp.src(path.SCSS_FILES)
|
||||
.pipe(
|
||||
sass({outputStyle: 'compact'})
|
||||
.on('error', sass.logError)
|
||||
)
|
||||
.pipe(gulp.dest(path.DEST_CSS));
|
||||
})
|
||||
|
||||
gulp.task('copy', ['copy-html', 'copy-lib', 'copy-img'])
|
||||
|
||||
gulp.task('build', ['copy', 'js-build', 'scss-build']);
|
||||
gulp.task('default', ['copy', 'js-build', 'scss-build', 'watch']);
|
||||
|
||||
// vim: ts=2 sts=2 sw=2 expandtab
|
||||
282
index.html
|
|
@ -1,282 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
<link rel="shortcut icon" href="/static/img/favicon.png">
|
||||
<title>清华大学 TUNA 镜像源</title>
|
||||
|
||||
<link href="/static/css/bootstrap.css" rel="stylesheet">
|
||||
<link href="/static/css/style.css" rel="stylesheet">
|
||||
<link href="/static/css/font-awesome.min.css" rel="stylesheet">
|
||||
<link href="/static/css/spinkit.css" rel="stylesheet">
|
||||
<script src="/static/js/jquery-2.1.1.min.js"></script>
|
||||
<script src="/static/js/bootstrap.min.js"></script>
|
||||
<script src="/static/js/markup.min.js"></script>
|
||||
<script src="/static/js/marked.min.js"></script>
|
||||
<style>
|
||||
.clickable {
|
||||
cursor: pointer
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="navbar navbar-default" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="/"><img src="/static/img/logo-small.png" /> 清华大学 TUNA 镜像源</a>
|
||||
</div>
|
||||
<div class="navbar-collapse collapse navbar-right">
|
||||
<ul class="nav navbar-nav">
|
||||
<li><a href="http://www.tuna.tsinghua.edu.cn/">HOME</a></li>
|
||||
<li><a href="http://www.tuna.tsinghua.edu.cn/events/">EVENTS</a></li>
|
||||
<li><a href="http://www.tuna.tsinghua.edu.cn/blog/">BLOG</a></li>
|
||||
<li><a href="http://www.tuna.tsinghua.edu.cn/feed.xml">RSS</a></li>
|
||||
<li class="active"><a href="http://mirrors.tuna.tsinghua.edu.cn/">MIRRORS</a></li>
|
||||
</ul>
|
||||
</div><!--/.nav-collapse -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="mirrors">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div>
|
||||
<p>欢迎来到清华大学开源镜像网站,它由清华大学开源镜像站管理团队维护管理。</p>
|
||||
<p>本站可以在校内外通过 IPv4/IPv6 使用。 <br />
|
||||
本站域名有:</p>
|
||||
<ul>
|
||||
<li><a href="http://mirrors.tuna.tsinghua.edu.cn/">http://mirrors.tuna.tsinghua.edu.cn/</a> 支持 IPv4/IPv6</li>
|
||||
<li><a href="http://mirrors.6.tuna.tsinghua.edu.cn/">http://mirrors.6.tuna.tsinghua.edu.cn/</a> 只解析 IPv6</li>
|
||||
<li><a href="http://mirrors.4.tuna.tsinghua.edu.cn/">http://mirrors.4.tuna.tsinghua.edu.cn/</a> 只解析 IPv4</li>
|
||||
<li><a href="http://mirrors.i.tuna.tsinghua.edu.cn/">http://mirrors.i.tuna.tsinghua.edu.cn/</a> 只解析清华 IP</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="thu-alert" class="alert alert-danger hidden">
|
||||
<i class="glyphicon glyphicon-exclamation-sign"></i>
|
||||
<strong>清华用户您好,我们发现您正在通过校外线路访问 mirrors(可能是因为您设置了校外的DNS服务器),
|
||||
为避免产生不必要的校外流量,
|
||||
建议您通过 <a href="http://mirrors.i.tuna.tsinghua.edu.cn/">http://mirrors.i.tuna.tsinghua.edu.cn/</a>
|
||||
访问和使用 TUNA mirrors 资源。
|
||||
</strong>
|
||||
</div>
|
||||
<div class="alert alert-info">
|
||||
<ul>
|
||||
<li><strong>本站带宽资源有限,为了您和他人可以长久使用本站服务,请勿使用迅雷下载本站内容。</strong></li>
|
||||
<li><strong>若您需要通过本站建立镜像,请提前联系管理员。</strong> </li>
|
||||
<li><strong>AOSP 镜像服务单 IP 并发数限制为 4。因版权原因,我们无法提供 Android SDK 镜像。</strong> </li>
|
||||
</ul>
|
||||
<br />
|
||||
|
||||
如果您有任何问题或建议,请发送邮件到 issues+mirrors<span style="hidden"></span>@tuna<span style="hide"></span>.tsinghua<span style="hide"></span>.edu<span style="hide"></span>.cn,
|
||||
或前往 <a href="https://issues.tuna.tsinghua.edu.cn/?queue=mirrors">https://issues.tuna.tsinghua.edu.cn/?queue=mirrors</a> 反馈。<br />
|
||||
If you have any issues, please email issues+mirrors<span style="hidden"></span>@tuna<span style="hide"></span>.tsinghua<span style="hide"></span>.edu<span style="hide"></span>.cn,
|
||||
or submit a ticket via <a href="https://issues.tuna.tsinghua.edu.cn/?queue=mirrors">https://issues.tuna.tsinghua.edu.cn/?queue=mirrors</a>.<br />
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12 table-responsive">
|
||||
<h3># 镜像源列表 </h3>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Last Update</th>
|
||||
<th>Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="mirror-list">
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div><!--/container -->
|
||||
</div><!--/service -->
|
||||
|
||||
|
||||
|
||||
<div id="footerwrap">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<p>清华大学 TUNA 协会最初叫清华大学学生网管会,其前身为清华大学电脑协会,是由清华大学网络技术和开源软件爱好者、技术宅组成的团体。</p>
|
||||
<p>本站相关源码可在 <a href="https://github.com/tuna/tunasync"><em>这里(镜像管理器)</em></a> 和 <a href="https://github.com/tuna/mirror-web"><em>这里(镜像站网页)</em></a> 获取。</p>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4">
|
||||
<h4>Contact Us</h4>
|
||||
<div>
|
||||
<ul class="social">
|
||||
<li>
|
||||
<a href="https://groups.google.com/forum/#!forum/tuna-general"><i class="fa fa-envelope"></i> Mailing List</a>
|
||||
</li>
|
||||
<li>
|
||||
IRC: <a href="https://webchat.freenode.net/?channels=%23tuna">#tuna at freenode</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://github.com/tuna/"><i class="fa fa-github"></i> GitHub </a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://secure.flickr.com/groups/tuna/"><i class="fa fa-flickr"></i> Flickr</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://weibo.com/u/5402274706"><i class="fa fa-weibo"></i> 新浪微博</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://page.renren.com/601908241"><i class="fa fa-renren"></i> 人人公共主页</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4">
|
||||
<img class="img-responsive" src="/static/img/logo-white.png" />
|
||||
</div>
|
||||
</div><!--/row -->
|
||||
</div><!--/container -->
|
||||
</div><!--/footerwrap -->
|
||||
|
||||
<div id="HelpModal" class="modal fade" tabindex="-1" role="dialog">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
|
||||
<h4 class="modal-title" id="exampleModalLabel">Help Message</h4>
|
||||
</div><!--modal-header-->
|
||||
<div class="modal-body">
|
||||
</div>
|
||||
</div><!--modal-content-->
|
||||
</div><!--modal-dialog-->
|
||||
</div><!--/HelpModal-->
|
||||
|
||||
</body>
|
||||
|
||||
<template id="spinner">
|
||||
<div class="sk-spinner sk-spinner-wave">
|
||||
<div class="sk-rect1"></div>
|
||||
<div class="sk-rect2"></div>
|
||||
<div class="sk-rect3"></div>
|
||||
<div class="sk-rect4"></div>
|
||||
<div class="sk-rect5"></div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script id="template" type="x-tmpl-markup">
|
||||
{{mirrors}}
|
||||
<tr>
|
||||
<td>
|
||||
<a href="/{{name}}">{{name}}</a>
|
||||
{{ if is_new }}<span class="label label-new">new</span>{{/if}}
|
||||
{{if help}}<i class="fa fa-question-circle clickable" data-toggle2="tooltip" data-toggle="modal" data-target="#HelpModal" data-help="{{help}}" data-placement="right" title="Help"></i>{{/if}}
|
||||
</td>
|
||||
<td>{{last_update}}</td>
|
||||
<td><span class="label label-status {{label}}">{{status}}<span></td>
|
||||
</tr>
|
||||
{{/mirrors}}
|
||||
</script>
|
||||
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
var mir_tmpl = $("#template").text(),
|
||||
label_map = {
|
||||
'unknown': 'label-default',
|
||||
'syncing': 'label-info',
|
||||
'success': 'label-success',
|
||||
'fail': 'label-warning'
|
||||
};
|
||||
var help_page = {
|
||||
'AOSP': '/wiki/aosp.md',
|
||||
'archlinuxcn': '/wiki/archlinuxcn.md',
|
||||
'homebrew': '/wiki/homebrew.md',
|
||||
'linux.git': '/wiki/linux.md',
|
||||
'nodesource': '/wiki/nodesource.md',
|
||||
'pypi': "wiki/pypi.md",
|
||||
'docker': "wiki/docker.md",
|
||||
'raspbian': 'wiki/raspbian.md',
|
||||
'repo-ck': 'wiki/repo-ck.md',
|
||||
'rpmfusion': 'wiki/rpmfusion.md',
|
||||
'ubuntu': 'wiki/ubuntu.md',
|
||||
'lxc-images': 'wiki/lxc-images.md',
|
||||
'hackage': 'wiki/hackage.md',
|
||||
'npm': 'wiki/npm.md'
|
||||
};
|
||||
var new_mirrors = {
|
||||
'OpenBSD': true,
|
||||
'hackage': true,
|
||||
'voidlinux': true,
|
||||
'npm': true
|
||||
};
|
||||
var unlisted = [
|
||||
{
|
||||
'status': 'success',
|
||||
'last_update': "-",
|
||||
'name': 'npm',
|
||||
'upstream': 'https://registry.npmjs.org/'
|
||||
}
|
||||
];
|
||||
|
||||
$('#HelpModal').on('show.bs.modal', function (event) {
|
||||
var button = $(event.relatedTarget), // Button that triggered the modal
|
||||
help_url = button.data('help'),
|
||||
modal = $(this),
|
||||
modal_body = modal.find('.modal-body'),
|
||||
spinner = $('template#spinner');
|
||||
|
||||
modal_body.html(spinner.html())
|
||||
$.get(help_url, function(data) {
|
||||
if (help_url.match(/\.md$/)) {
|
||||
data = marked(data)
|
||||
}
|
||||
modal_body.html(data)
|
||||
})
|
||||
});
|
||||
|
||||
window.refreshMirrorList = function() {
|
||||
$.getJSON("/static/tunasync.json", function(status_data) {
|
||||
var mirrors = [], mir_data = $.merge(status_data, unlisted);
|
||||
mir_data.sort(function(a, b){return a.name < b.name ? -1: 1;});
|
||||
|
||||
for(var k in mir_data) {
|
||||
var d = mir_data[k];
|
||||
d['label'] = label_map[d['status']];
|
||||
d['help'] = help_page[d['name']];
|
||||
d['is_new'] = new_mirrors[d['name']];
|
||||
// Strip the second component of last_update
|
||||
d['last_update'] = d['last_update'].replace(/(\d\d:\d\d):\d\d/, '$1');
|
||||
mirrors.push(d);
|
||||
}
|
||||
var result = Mark.up(mir_tmpl, {mirrors: mirrors});
|
||||
$('#mirror-list').html(result);
|
||||
$('#mirror-list i[data-toggle2="tooltip"]').tooltip();
|
||||
});
|
||||
setTimeout(refreshMirrorList, 10000);
|
||||
}
|
||||
refreshMirrorList();
|
||||
|
||||
$.getJSON("/static/tunet.json", function(alert) {
|
||||
if (alert) {
|
||||
$('#thu-alert').removeClass('hidden');
|
||||
};
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
</html>
|
||||
<!--
|
||||
vim: ts=2 sts=2 sw=2 noexpandtab
|
||||
-->
|
||||
|
Before Width: | Height: | Size: 197 KiB After Width: | Height: | Size: 197 KiB |
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 62 KiB |
|
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"name": "mirror-web",
|
||||
"version": "1.0.0",
|
||||
"description": "TUNA mirror site",
|
||||
"main": "index.html",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/tuna/mirror-web.git"
|
||||
},
|
||||
"author": "Justin Wong",
|
||||
"license": "AGPL-3.0",
|
||||
"bugs": {
|
||||
"url": "https://github.com/tuna/mirror-web/issues"
|
||||
},
|
||||
"homepage": "https://github.com/tuna/mirror-web#readme",
|
||||
"dependencies": {
|
||||
"gulp": "^3.9.0",
|
||||
"gulp-babel": "^5.2.1",
|
||||
"gulp-file-include": "^0.13.7",
|
||||
"gulp-rename": "^1.2.2",
|
||||
"node-sass": "^3.3.2",
|
||||
"gulp-sass": "^2.0.4"
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
# AUR 镜像使用帮助
|
||||
|
||||
修改 `/etc/yaourtrc`,去掉 `# AURURL` 的注释,修改为
|
||||
|
||||
```
|
||||
AURURL="https://aur.tuna.tsinghua.edu.cn"
|
||||
```
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
@@include('../include/_head.html')
|
||||
<body>
|
||||
@@include('../include/_nav.html')
|
||||
|
||||
<div id="help-page">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-2 hidden-xs">
|
||||
<ul class="nav nav-pills nav-stacked" id="help-nav">
|
||||
|
||||
</ul>
|
||||
</div><!-- sidenave -->
|
||||
<div class="col-md-10">
|
||||
<div id="spinner">
|
||||
<i class="fa fa-spinner fa-spin"></i>
|
||||
<div>载入中</div>
|
||||
</div>
|
||||
<div id="help-content"></div>
|
||||
</div><!-- help content -->
|
||||
</div>
|
||||
</div><!--/container -->
|
||||
</div><!--/mirrors -->
|
||||
|
||||
@@include('../include/_footer.html')
|
||||
</body>
|
||||
|
||||
<script id="help-nav-template" type="x-tmpl-markup">
|
||||
{{help_navs}}
|
||||
<li id="help-nav-item-{{name}}" data-help-item="{{name}}"><a href="#{{name}}">{{name}}</a></li>
|
||||
{{/help_navs}}
|
||||
</script>
|
||||
|
||||
<script src="/static/js/help.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
<!--
|
||||
vim: ts=2 sts=2 sw=2 noexpandtab
|
||||
-->
|
||||
|
|
@ -48,10 +48,28 @@ pi@raspberrypi ~ $ sudo nano /etc/apt/sources.list
|
|||
|
||||
删除原文件所有内容,用以下内容取代:
|
||||
|
||||
```
|
||||
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ wheezy main non-free contrib
|
||||
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ wheezy main non-free contrib
|
||||
```
|
||||
|
||||
|
||||
<form class="form-inline">
|
||||
<div class="form-group">
|
||||
<label>选择你的Debian版本: </label>
|
||||
<select class="form-control" id="release-select">
|
||||
<option data-release="wheezy">Debian 7 (wheezy)</option>
|
||||
<option data-release="jessie" selected>Debian 8 (jessie)</option>
|
||||
</select>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<script id="apt-template" type="x-tmpl-markup">
|
||||
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ {{release_name}} main non-free contrib
|
||||
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ {{release_name}} main non-free contrib
|
||||
</script>
|
||||
|
||||
<p></p>
|
||||
<pre>
|
||||
<code id="apt-content">
|
||||
</code>
|
||||
</pre>
|
||||
|
||||
注意:网址末尾的`raspbian`重复两次是必须的。因为Raspbian的仓库中除了APT软件源还包含其他代码。APT软件源不在仓库的根目录,而在`raspbian/`子目录下。
|
||||
|
||||
|
|
@ -0,0 +1,41 @@
|
|||
Ubuntu 镜像使用帮助
|
||||
===================
|
||||
|
||||
Ubuntu 的软件源配置文件是
|
||||
`/etc/apt/sources.list`。将系统自带的该文件做个备份,将该文件替换为下面内容,即可使用
|
||||
TUNA 的软件源镜像。
|
||||
|
||||
|
||||
<form class="form-inline">
|
||||
<div class="form-group">
|
||||
<label>选择你的ubuntu版本: </label>
|
||||
<select class="form-control" id="release-select">
|
||||
<option data-release="lucid">10.04 LTS</option>
|
||||
<option data-release="precise">12.04 LTS</option>
|
||||
<option data-release="trusty" selected>14.04 LTS</option>
|
||||
<option data-release="utopic">14.10</option>
|
||||
<option data-release="vivid">15.04</option>
|
||||
<option data-release="wily">15.10</option>
|
||||
</select>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<script id="apt-template" type="x-tmpl-markup">
|
||||
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ {{release_name}} main multiverse restricted universe
|
||||
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ {{release_name}}-backports main multiverse restricted universe
|
||||
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ {{release_name}}-proposed main multiverse restricted universe
|
||||
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ {{release_name}}-security main multiverse restricted universe
|
||||
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ {{release_name}}-updates main multiverse restricted universe
|
||||
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ {{release_name}} main multiverse restricted universe
|
||||
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ {{release_name}}-backports main multiverse restricted universe
|
||||
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ {{release_name}}-proposed main multiverse restricted universe
|
||||
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ {{release_name}}-security main multiverse restricted universe
|
||||
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ {{release_name}}-updates main multiverse restricted universe
|
||||
</script>
|
||||
|
||||
<p></p>
|
||||
|
||||
<pre>
|
||||
<code id="apt-content">
|
||||
</code>
|
||||
</pre>
|
||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 8.0 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 40 KiB |
|
|
@ -0,0 +1,40 @@
|
|||
<div id="footerwrap">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-4">
|
||||
<p>清华大学 TUNA 协会最初叫清华大学学生网管会,其前身为清华大学电脑协会,是由清华大学网络技术和开源软件爱好者、技术宅组成的团体。</p>
|
||||
<p>本站相关源码可在 <a href="https://github.com/tuna/tunasync"><em>这里(镜像管理器)</em></a> 和 <a href="https://github.com/tuna/mirror-web"><em>这里(镜像站网页)</em></a> 获取。</p>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4">
|
||||
<h4>Contact Us</h4>
|
||||
<div>
|
||||
<ul class="social">
|
||||
<li>
|
||||
<a href="https://groups.google.com/forum/#!forum/tuna-general"><i class="fa fa-envelope"></i> Mailing List</a>
|
||||
</li>
|
||||
<li>
|
||||
IRC: <a href="https://webchat.freenode.net/?channels=%23tuna">#tuna at freenode</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://github.com/tuna/"><i class="fa fa-github"></i> GitHub </a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="https://secure.flickr.com/groups/tuna/"><i class="fa fa-flickr"></i> Flickr</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://weibo.com/u/5402274706"><i class="fa fa-weibo"></i> 新浪微博</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="http://page.renren.com/601908241"><i class="fa fa-renren"></i> 人人公共主页</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4">
|
||||
<img class="img-responsive" src="/static/img/logo-white.png" />
|
||||
</div>
|
||||
</div><!--/row -->
|
||||
</div><!--/container -->
|
||||
</div><!--/footerwrap -->
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta name="description" content="">
|
||||
<meta name="author" content="">
|
||||
<link rel="shortcut icon" href="/static/img/favicon.png">
|
||||
<title>清华大学 TUNA 镜像源</title>
|
||||
<link rel="stylesheet" href="/static/css/bootstrap.css">
|
||||
<link rel="stylesheet" href="/static/css/font-awesome.min.css" >
|
||||
<link rel="stylesheet" href="/static/css/style.css">
|
||||
<script src="/static/js/jquery.min.js"></script>
|
||||
<script src="/static/js/bootstrap.min.js"></script>
|
||||
<script src="/static/js/markup.min.js"></script>
|
||||
<script src="/static/js/marked.min.js"></script>
|
||||
</head>
|
||||
|
|
@ -0,0 +1,22 @@
|
|||
<div class="navbar navbar-default" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="/"><img src="/static/img/logo-small.png" /> 清华大学 TUNA 镜像源</a>
|
||||
</div>
|
||||
<div class="navbar-collapse collapse navbar-right">
|
||||
<ul class="nav navbar-nav">
|
||||
<li><a href="http://www.tuna.tsinghua.edu.cn/">HOME</a></li>
|
||||
<li><a href="http://www.tuna.tsinghua.edu.cn/events/">EVENTS</a></li>
|
||||
<li><a href="http://www.tuna.tsinghua.edu.cn/blog/">BLOG</a></li>
|
||||
<li><a href="http://www.tuna.tsinghua.edu.cn/feed.xml">RSS</a></li>
|
||||
<li class="active"><a href="http://mirrors.tuna.tsinghua.edu.cn/">MIRRORS</a></li>
|
||||
</ul>
|
||||
</div><!--/.nav-collapse -->
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -0,0 +1,84 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
@@include('./include/_head.html')
|
||||
<body>
|
||||
@@include('./include/_nav.html')
|
||||
|
||||
<div id="mirrors">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div>
|
||||
<p>欢迎来到清华大学开源镜像网站,它由清华大学开源镜像站管理团队维护管理。你可以通过不同域名选定网络线路。</p>
|
||||
<ul>
|
||||
<li><a href="http://mirrors.tuna.tsinghua.edu.cn/">http://mirrors.tuna.tsinghua.edu.cn/</a> 支持 IPv4/IPv6</li>
|
||||
<li><a href="http://mirrors.6.tuna.tsinghua.edu.cn/">http://mirrors.6.tuna.tsinghua.edu.cn/</a> 只解析 IPv6</li>
|
||||
<li><a href="http://mirrors.4.tuna.tsinghua.edu.cn/">http://mirrors.4.tuna.tsinghua.edu.cn/</a> 只解析 IPv4</li>
|
||||
<li><a href="http://mirrors.i.tuna.tsinghua.edu.cn/">http://mirrors.i.tuna.tsinghua.edu.cn/</a> 只解析清华 IP</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="thu-alert" class="alert alert-danger hidden">
|
||||
<i class="glyphicon glyphicon-exclamation-sign"></i>
|
||||
<strong>清华用户您好,我们发现您正在通过校外线路访问 mirrors(可能是因为您设置了校外的DNS服务器),
|
||||
为避免产生不必要的校外流量,
|
||||
建议您通过 <a href="http://mirrors.i.tuna.tsinghua.edu.cn/">http://mirrors.i.tuna.tsinghua.edu.cn/</a>
|
||||
访问和使用 TUNA mirrors 资源。
|
||||
</strong>
|
||||
</div>
|
||||
<div class="alert alert-info">
|
||||
<ul>
|
||||
<li><strong>本站带宽资源有限,为了您和他人可以长久使用本站服务,请勿使用迅雷下载本站内容。</strong></li>
|
||||
<li><strong>若您需要通过本站建立镜像,请提前联系管理员。</strong> </li>
|
||||
<li><strong>AOSP 镜像服务单 IP 并发数限制为 4。因版权原因,我们无法提供 Android SDK 镜像。</strong> </li>
|
||||
</ul>
|
||||
<br />
|
||||
如果您有任何问题或建议,请发送邮件到
|
||||
issues+mirrors<span style="hidden"></span>@tuna<span style="hide"></span>.tsinghua<span style="hide"></span>.edu<span style="hide"></span>.cn,
|
||||
或前往 <a href="https://issues.tuna.tsinghua.edu.cn/?queue=mirrors">https://issues.tuna.tsinghua.edu.cn/?queue=mirrors</a> 反馈。<br />
|
||||
If you have any issues, please email
|
||||
issues+mirrors<span style="hidden"></span>@tuna<span style="hide"></span>.tsinghua<span style="hide"></span>.edu<span style="hide"></span>.cn,
|
||||
or submit a ticket via <a href="https://issues.tuna.tsinghua.edu.cn/?queue=mirrors">https://issues.tuna.tsinghua.edu.cn/?queue=mirrors</a>.<br />
|
||||
</div>
|
||||
</div>
|
||||
</div><!--/mirror-list-row-->
|
||||
<div class="row">
|
||||
<div class="col-md-12 table-responsive">
|
||||
<h3># 镜像源列表 </h3>
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Last Update</th>
|
||||
<th>Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="mirror-list">
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div><!--/mirror-list-row-->
|
||||
</div><!--/container -->
|
||||
</div><!--/mirrors -->
|
||||
|
||||
@@include('./include/_footer.html')
|
||||
</body>
|
||||
|
||||
<script id="template" type="x-tmpl-markup">
|
||||
{{mirrors}}
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{{if url}}{{url}}{{else}}/{{name}}{{/if}}">{{name}}</a>
|
||||
{{if is_new}}<span class="label label-new">new</span>{{/if}}
|
||||
{{if help}}<a href="/help/#{{name}}"><i class="fa fa-question-circle" title="Help"></i></a>{{/if}}
|
||||
</td>
|
||||
<td>{{last_update}}</td>
|
||||
<td><span class="label label-status {{label}}">{{status}}<span></td>
|
||||
</tr>
|
||||
{{/mirrors}}
|
||||
</script>
|
||||
<script src="/static/js/index.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
<!--
|
||||
vim: ts=2 sts=2 sw=2 noexpandtab
|
||||
-->
|
||||
|
|
@ -0,0 +1,100 @@
|
|||
$(document).ready(() => {
|
||||
var M = (url) => {
|
||||
return () => {
|
||||
$('#spinner').removeClass('hidden');
|
||||
$('#help-content').text("");
|
||||
$.get(url, function(data) {
|
||||
var rendered = "";
|
||||
if (url.match(/\.md$/)) {
|
||||
rendered = marked(data);
|
||||
}
|
||||
$("#help-content")
|
||||
.html(rendered)
|
||||
.find('table')
|
||||
.addClass("table table-bordered table-striped");
|
||||
$('#spinner').addClass('hidden');
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
var AptHelp = (url) => {
|
||||
return () => {
|
||||
$('#spinner').removeClass('hidden');
|
||||
$('#help-content').text("");
|
||||
var apt_template;
|
||||
var update_apt_file = () => {
|
||||
var release_name = $("#release-select option:selected").attr('data-release');
|
||||
var apt_content = Mark.up(
|
||||
apt_template, {release_name: release_name}
|
||||
);
|
||||
$("#apt-content").html(apt_content);
|
||||
};
|
||||
$.get(url, function(data) {
|
||||
var rendered = "";
|
||||
if (url.match(/\.md$/)) {
|
||||
rendered = marked(data);
|
||||
}
|
||||
$("#help-content")
|
||||
.html(rendered)
|
||||
.find('table')
|
||||
.addClass("table table-bordered table-striped");
|
||||
$('#spinner').addClass('hidden');
|
||||
apt_template = $.trim($("#apt-template").text());
|
||||
update_apt_file();
|
||||
$("#release-select").on('change', update_apt_file);
|
||||
});
|
||||
};
|
||||
};
|
||||
|
||||
var nav_tmpl = $('#help-nav-template').text(),
|
||||
help = {
|
||||
'AOSP': M('/help/aosp.md'),
|
||||
'archlinuxcn': M('/help/archlinuxcn.md'),
|
||||
'homebrew': M('/help/homebrew.md'),
|
||||
'linux.git': M('/help/linux.md'),
|
||||
'nodesource': M('/help/nodesource.md'),
|
||||
'pypi': M("/help/pypi.md"),
|
||||
'docker': M("/help/docker.md"),
|
||||
'raspbian': AptHelp('/help/raspbian.md'),
|
||||
'repo-ck': M('/help/repo-ck.md'),
|
||||
'rpmfusion': M('/help/rpmfusion.md'),
|
||||
'ubuntu': AptHelp('/help/ubuntu.md'),
|
||||
'lxc-images': M('/help/lxc-images.md'),
|
||||
'hackage': M('/help/hackage.md'),
|
||||
'npm': M('/help/npm.md'),
|
||||
'AUR': M('/help/AUR.md')
|
||||
},
|
||||
help_item = window.location.hash.replace('#', '');
|
||||
|
||||
var showHelp = (name) => {
|
||||
var help_func = help[name];
|
||||
if (help_func != undefined)
|
||||
help_func();
|
||||
};
|
||||
|
||||
var help_nav = Mark.up(nav_tmpl, () => {
|
||||
let nav = [];
|
||||
for (let k in help) {
|
||||
nav.push({name: k});
|
||||
}
|
||||
nav.sort((a, b) => { return a.name < b.name ? -1: 1 });
|
||||
return {help_navs: nav};
|
||||
}());
|
||||
|
||||
$('#help-nav').html(help_nav);
|
||||
showHelp(help_item);
|
||||
$(`#help-nav-item-${help_item}`).addClass('active');
|
||||
|
||||
$('#help-nav').on('click', 'li', function() {
|
||||
// `this` cannot be used with arrow function
|
||||
let help_item = $(this).attr('data-help-item');
|
||||
showHelp(help_item);
|
||||
$(this)
|
||||
.parent().children('li')
|
||||
.removeClass('active');
|
||||
$(this).addClass('active');
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
// vim: ts=2 sts=2 sw=2 noexpandtab
|
||||
|
|
@ -0,0 +1,88 @@
|
|||
$(document).ready(() => {
|
||||
|
||||
var mir_tmpl = $("#template").text(),
|
||||
label_map = {
|
||||
'unknown': 'label-default',
|
||||
'syncing': 'label-info',
|
||||
'success': 'label-success',
|
||||
'fail': 'label-warning'
|
||||
},
|
||||
has_help = {
|
||||
'AOSP': true,
|
||||
'archlinuxcn': true,
|
||||
'homebrew': true,
|
||||
'linux.git': true,
|
||||
'nodesource': true,
|
||||
'pypi': true,
|
||||
'docker': true,
|
||||
'raspbian': true,
|
||||
'repo-ck': true,
|
||||
'rpmfusion': true,
|
||||
'ubuntu': true,
|
||||
'lxc-images': true,
|
||||
'hackage': true,
|
||||
'npm': true,
|
||||
'AUR': true
|
||||
},
|
||||
new_mirrors = {
|
||||
'OpenBSD': true,
|
||||
'hackage': true,
|
||||
'kodi': true,
|
||||
'qt': true,
|
||||
'npm': true
|
||||
},
|
||||
unlisted = [
|
||||
{
|
||||
'status': 'success',
|
||||
'last_update': "-",
|
||||
'name': 'npm',
|
||||
'upstream': 'https://registry.npmjs.org/'
|
||||
},
|
||||
{
|
||||
'status': 'success',
|
||||
'last_update': '-',
|
||||
'name': "AUR",
|
||||
'url': 'https://aur.tuna.tsinghua.edu.cn/',
|
||||
'upstream': 'https://aur.archlinux.org/'
|
||||
}
|
||||
],
|
||||
options = {
|
||||
'AOSP': {
|
||||
'url': "/help/#AOSP",
|
||||
}
|
||||
};
|
||||
|
||||
window.refreshMirrorList = () => {
|
||||
$.getJSON("/static/tunasync.json", (status_data) => {
|
||||
var mirrors = [], mir_data = $.merge(status_data, unlisted);
|
||||
|
||||
mir_data.sort((a, b) => { return a.name < b.name ? -1: 1 });
|
||||
|
||||
for(var k in mir_data) {
|
||||
var d = mir_data[k];
|
||||
if (options[d['name']] != undefined ) {
|
||||
d = $.extend(d, options[d['name']]);
|
||||
}
|
||||
d['label'] = label_map[d['status']];
|
||||
d['help'] = has_help[d['name']];
|
||||
d['is_new'] = new_mirrors[d['name']];
|
||||
// Strip the second component of last_update
|
||||
d['last_update'] = d['last_update'].replace(/(\d\d:\d\d):\d\d/, '$1');
|
||||
mirrors.push(d);
|
||||
}
|
||||
var result = Mark.up(mir_tmpl, {mirrors: mirrors});
|
||||
$('#mirror-list').html(result);
|
||||
});
|
||||
setTimeout(refreshMirrorList, 10000);
|
||||
}
|
||||
refreshMirrorList();
|
||||
|
||||
$.getJSON("/static/tunet.json", (to_alert) => {
|
||||
if (to_alert) {
|
||||
$('#thu-alert').removeClass('hidden');
|
||||
};
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
// vim: ts=2 sts=2 sw=2 noexpandtab
|
||||
|
|
@ -0,0 +1,75 @@
|
|||
/* ################################################################
|
||||
BOOTSTRAP MODIFICATIONS & TWEAKS
|
||||
################################################################# */
|
||||
.navbar {
|
||||
padding-top: 15px;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.navbar-default {
|
||||
background-color: white;
|
||||
border-color: transparent;
|
||||
|
||||
.navbar-nav > li.active > a {
|
||||
color: $color_thu_purple;
|
||||
border-bottom: 2px solid $color_thu_purple;
|
||||
}
|
||||
.navbar-nav > li > a {
|
||||
color: $color_secondary;
|
||||
background: transparent !important;
|
||||
font-weight: 700;
|
||||
font-size: 12px;
|
||||
|
||||
&:hover, &:focus {
|
||||
color: $color_primary !important;
|
||||
background: transparent !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
font-weight: 900;
|
||||
padding: 0px;
|
||||
line-height: 50px;
|
||||
height: 50px;
|
||||
img {
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-header .navbar-brand {
|
||||
color: $color_secondary;
|
||||
}
|
||||
|
||||
.dropdown-menu {
|
||||
background: $color_secondary ;
|
||||
}
|
||||
|
||||
.dropdown-menu > li > a {
|
||||
color: white;
|
||||
font-weight: 700;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.mtb {
|
||||
margin-top: 40px;
|
||||
margin-bottom: 80px;
|
||||
}
|
||||
|
||||
.mb {
|
||||
margin-bottom: 60px;
|
||||
}
|
||||
|
||||
.mt {
|
||||
margin-top: 60px;
|
||||
}
|
||||
|
||||
.hline {
|
||||
border-bottom: 1px solid $color_secondary ;
|
||||
}
|
||||
|
||||
.hline-w {
|
||||
border-bottom: 1px solid #ffffff;
|
||||
margin-bottom: 25px;
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,72 @@
|
|||
/* ################################################################
|
||||
1. GENERAL STRUCTURES
|
||||
################################################################# */
|
||||
* {
|
||||
margin: 0;
|
||||
// padding: 0px;
|
||||
}
|
||||
|
||||
body {
|
||||
background: #ffffff;
|
||||
margin: 0;
|
||||
height: 100%;
|
||||
color: $color_secondary;
|
||||
font-family: $font_default;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
ul {
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
p {
|
||||
padding: 0;
|
||||
margin-bottom: 12px;
|
||||
font-weight: 400;
|
||||
font-size: 14px;
|
||||
line-height: 24px;
|
||||
color: $color_secondary ;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
img {
|
||||
height: auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
a {
|
||||
color:$color_link;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
text-decoration: none;
|
||||
-webkit-transition: background-color .4s linear, color .4s linear;
|
||||
-moz-transition: background-color .4s linear, color .4s linear;
|
||||
-o-transition: background-color .4s linear, color .4s linear;
|
||||
-ms-transition: background-color .4s linear, color .4s linear;
|
||||
transition: background-color .4s linear, color .4s linear;
|
||||
}
|
||||
|
||||
a:hover, a:focus {
|
||||
text-decoration: none;
|
||||
color:$color_link_hover;
|
||||
}
|
||||
|
||||
::-moz-selection {
|
||||
color: #fff;
|
||||
text-shadow:none;
|
||||
background:$color_secondary;
|
||||
}
|
||||
::selection {
|
||||
color: #fff;
|
||||
text-shadow:none;
|
||||
background:$color_secondary;
|
||||
}
|
||||
|
||||
.centered {
|
||||
text-align: center
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,124 @@
|
|||
/* ################################################################
|
||||
|
||||
Author: Carlos Alvarez
|
||||
URL: http://alvarez.is
|
||||
|
||||
Project Name: SOLID - Bootstrap 3 Theme
|
||||
Version: 1.0
|
||||
URL: http://alvarez.is
|
||||
|
||||
################################################################# */
|
||||
|
||||
$color_thu_purple: #82318E;
|
||||
$color_light_grey: #888;
|
||||
$color_grey: #555;
|
||||
$color_primary: $color_thu_purple;
|
||||
$color_primary_light: #d8aff6;
|
||||
$color_primary_rgb: 92,48,125;
|
||||
$color_secondary: #384452;
|
||||
$color_link: #088acb;
|
||||
$color_link_hover: #62bbe7;
|
||||
$color_footer_heading: #ffffff;
|
||||
$color_footer_content: #bfc9d3;
|
||||
$color_navbar_bg: #d3d3d3;
|
||||
$font_default: 'Lato', 'Heiti SC', 'Hiragino Sans GB', 'STHeiti', 'Source Han Sans CN', 'WenQuanYi Zen Hei', 'WenQuanYi Micro Hei', '微软雅黑', sans-serif ;
|
||||
|
||||
@import "Lato";
|
||||
@import "structure";
|
||||
@import "bootstrap-mod";
|
||||
|
||||
#thu-alert {
|
||||
padding-left: 50px;
|
||||
position: relative;
|
||||
.glyphicon {
|
||||
font-size: 30px;
|
||||
left: 10px;
|
||||
top: 20px;
|
||||
position: absolute;
|
||||
}
|
||||
}
|
||||
|
||||
#headerwrap {
|
||||
padding-top: 40px;
|
||||
padding-bottom: 0px;
|
||||
|
||||
h1 {
|
||||
color: $color_primary ;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
h3, h5 {
|
||||
color: $color_primary ;
|
||||
font-weight: 400;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.img-responsive {
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
|
||||
/* Services Wrap */
|
||||
#mirrors {
|
||||
tbody {
|
||||
tr:hover {
|
||||
background-color: #e0f3fc;
|
||||
}
|
||||
td {
|
||||
padding: 4px 8px;
|
||||
border-top: none;
|
||||
}
|
||||
font-size: 12pt;
|
||||
.label.label-new {
|
||||
padding: .1em .2em;
|
||||
vertical-align: 40%;
|
||||
text-shadow: 1px 1px #888;
|
||||
background-color: #3aa0e6;
|
||||
}
|
||||
.label.label-status {
|
||||
font-size: 10pt;
|
||||
}
|
||||
.fa-question-circle {
|
||||
color: #234961;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#help-page {
|
||||
margin-top: 40px;
|
||||
margin-bottom: 40px;
|
||||
#spinner {
|
||||
padding-top: 60px;
|
||||
text-align: center;
|
||||
font-size: 36px;
|
||||
i {
|
||||
font-size: 72px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Footer */
|
||||
#footerwrap {
|
||||
color: $color_footer_content;
|
||||
margin-top: 100px;
|
||||
padding-top: 60px;
|
||||
padding-bottom: 60px;
|
||||
background: $color_secondary;
|
||||
p {
|
||||
color: $color_footer_content;
|
||||
}
|
||||
h4 {
|
||||
color: $color_footer_heading;
|
||||
}
|
||||
i, i:hover, a, a:hover {
|
||||
color: $color_footer_content;
|
||||
}
|
||||
}
|
||||
|
||||
.spacing {
|
||||
margin-top: 40px;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
||||
.clickable {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
|
@ -1,758 +0,0 @@
|
|||
/*
|
||||
* Usage:
|
||||
*
|
||||
* <div class="sk-spinner sk-spinner-rotating-plane"></div>
|
||||
*
|
||||
*/
|
||||
.sk-spinner-rotating-plane.sk-spinner {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
background-color: #333;
|
||||
margin: 0 auto;
|
||||
-webkit-animation: sk-rotatePlane 1.2s infinite ease-in-out;
|
||||
animation: sk-rotatePlane 1.2s infinite ease-in-out; }
|
||||
|
||||
@-webkit-keyframes sk-rotatePlane {
|
||||
0% {
|
||||
-webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);
|
||||
transform: perspective(120px) rotateX(0deg) rotateY(0deg); }
|
||||
|
||||
50% {
|
||||
-webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
|
||||
transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); }
|
||||
|
||||
100% {
|
||||
-webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
|
||||
transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); } }
|
||||
|
||||
@keyframes sk-rotatePlane {
|
||||
0% {
|
||||
-webkit-transform: perspective(120px) rotateX(0deg) rotateY(0deg);
|
||||
transform: perspective(120px) rotateX(0deg) rotateY(0deg); }
|
||||
|
||||
50% {
|
||||
-webkit-transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg);
|
||||
transform: perspective(120px) rotateX(-180.1deg) rotateY(0deg); }
|
||||
|
||||
100% {
|
||||
-webkit-transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg);
|
||||
transform: perspective(120px) rotateX(-180deg) rotateY(-179.9deg); } }
|
||||
|
||||
/*
|
||||
* Usage:
|
||||
*
|
||||
* <div class="sk-spinner sk-spinner-double-bounce">
|
||||
* <div class="sk-double-bounce1"></div>
|
||||
* <div class="sk-double-bounce2"></div>
|
||||
* </div>
|
||||
*
|
||||
*/
|
||||
.sk-spinner-double-bounce.sk-spinner {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
position: relative;
|
||||
margin: 0 auto; }
|
||||
.sk-spinner-double-bounce .sk-double-bounce1, .sk-spinner-double-bounce .sk-double-bounce2 {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 50%;
|
||||
background-color: #333;
|
||||
opacity: 0.6;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
-webkit-animation: sk-doubleBounce 2s infinite ease-in-out;
|
||||
animation: sk-doubleBounce 2s infinite ease-in-out; }
|
||||
.sk-spinner-double-bounce .sk-double-bounce2 {
|
||||
-webkit-animation-delay: -1s;
|
||||
animation-delay: -1s; }
|
||||
|
||||
@-webkit-keyframes sk-doubleBounce {
|
||||
0%, 100% {
|
||||
-webkit-transform: scale(0);
|
||||
transform: scale(0); }
|
||||
|
||||
50% {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1); } }
|
||||
|
||||
@keyframes sk-doubleBounce {
|
||||
0%, 100% {
|
||||
-webkit-transform: scale(0);
|
||||
transform: scale(0); }
|
||||
|
||||
50% {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1); } }
|
||||
|
||||
/*
|
||||
* Usage:
|
||||
*
|
||||
* <div class="sk-spinner sk-spinner-wave">
|
||||
* <div class="sk-rect1"></div>
|
||||
* <div class="sk-rect2"></div>
|
||||
* <div class="sk-rect3"></div>
|
||||
* <div class="sk-rect4"></div>
|
||||
* <div class="sk-rect5"></div>
|
||||
* </div>
|
||||
*
|
||||
*/
|
||||
.sk-spinner-wave.sk-spinner {
|
||||
margin: 0 auto;
|
||||
width: 50px;
|
||||
height: 30px;
|
||||
text-align: center;
|
||||
font-size: 10px; }
|
||||
.sk-spinner-wave div {
|
||||
background-color: #333;
|
||||
height: 100%;
|
||||
width: 6px;
|
||||
display: inline-block;
|
||||
-webkit-animation: sk-waveStretchDelay 1.2s infinite ease-in-out;
|
||||
animation: sk-waveStretchDelay 1.2s infinite ease-in-out; }
|
||||
.sk-spinner-wave .sk-rect2 {
|
||||
-webkit-animation-delay: -1.1s;
|
||||
animation-delay: -1.1s; }
|
||||
.sk-spinner-wave .sk-rect3 {
|
||||
-webkit-animation-delay: -1s;
|
||||
animation-delay: -1s; }
|
||||
.sk-spinner-wave .sk-rect4 {
|
||||
-webkit-animation-delay: -0.9s;
|
||||
animation-delay: -0.9s; }
|
||||
.sk-spinner-wave .sk-rect5 {
|
||||
-webkit-animation-delay: -0.8s;
|
||||
animation-delay: -0.8s; }
|
||||
|
||||
@-webkit-keyframes sk-waveStretchDelay {
|
||||
0%, 40%, 100% {
|
||||
-webkit-transform: scaleY(0.4);
|
||||
transform: scaleY(0.4); }
|
||||
|
||||
20% {
|
||||
-webkit-transform: scaleY(1);
|
||||
transform: scaleY(1); } }
|
||||
|
||||
@keyframes sk-waveStretchDelay {
|
||||
0%, 40%, 100% {
|
||||
-webkit-transform: scaleY(0.4);
|
||||
transform: scaleY(0.4); }
|
||||
|
||||
20% {
|
||||
-webkit-transform: scaleY(1);
|
||||
transform: scaleY(1); } }
|
||||
|
||||
/*
|
||||
* Usage:
|
||||
*
|
||||
* <div class="sk-spinner sk-spinner-wandering-cubes">
|
||||
* <div class="sk-cube1"></div>
|
||||
* <div class="sk-cube2"></div>
|
||||
* </div>
|
||||
*
|
||||
*/
|
||||
.sk-spinner-wandering-cubes.sk-spinner {
|
||||
margin: 0 auto;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
position: relative; }
|
||||
.sk-spinner-wandering-cubes .sk-cube1, .sk-spinner-wandering-cubes .sk-cube2 {
|
||||
background-color: #333;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
-webkit-animation: sk-wanderingCubeMove 1.8s infinite ease-in-out;
|
||||
animation: sk-wanderingCubeMove 1.8s infinite ease-in-out; }
|
||||
.sk-spinner-wandering-cubes .sk-cube2 {
|
||||
-webkit-animation-delay: -0.9s;
|
||||
animation-delay: -0.9s; }
|
||||
|
||||
@-webkit-keyframes sk-wanderingCubeMove {
|
||||
25% {
|
||||
-webkit-transform: translateX(42px) rotate(-90deg) scale(0.5);
|
||||
transform: translateX(42px) rotate(-90deg) scale(0.5); }
|
||||
|
||||
50% {
|
||||
/* Hack to make FF rotate in the right direction */
|
||||
-webkit-transform: translateX(42px) translateY(42px) rotate(-179deg);
|
||||
transform: translateX(42px) translateY(42px) rotate(-179deg); }
|
||||
|
||||
50.1% {
|
||||
-webkit-transform: translateX(42px) translateY(42px) rotate(-180deg);
|
||||
transform: translateX(42px) translateY(42px) rotate(-180deg); }
|
||||
|
||||
75% {
|
||||
-webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);
|
||||
transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5); }
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotate(-360deg);
|
||||
transform: rotate(-360deg); } }
|
||||
|
||||
@keyframes sk-wanderingCubeMove {
|
||||
25% {
|
||||
-webkit-transform: translateX(42px) rotate(-90deg) scale(0.5);
|
||||
transform: translateX(42px) rotate(-90deg) scale(0.5); }
|
||||
|
||||
50% {
|
||||
/* Hack to make FF rotate in the right direction */
|
||||
-webkit-transform: translateX(42px) translateY(42px) rotate(-179deg);
|
||||
transform: translateX(42px) translateY(42px) rotate(-179deg); }
|
||||
|
||||
50.1% {
|
||||
-webkit-transform: translateX(42px) translateY(42px) rotate(-180deg);
|
||||
transform: translateX(42px) translateY(42px) rotate(-180deg); }
|
||||
|
||||
75% {
|
||||
-webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);
|
||||
transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5); }
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotate(-360deg);
|
||||
transform: rotate(-360deg); } }
|
||||
|
||||
/*
|
||||
* Usage:
|
||||
*
|
||||
* <div class="sk-spinner sk-spinner-pulse"></div>
|
||||
*
|
||||
*/
|
||||
.sk-spinner-pulse.sk-spinner {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
margin: 0 auto;
|
||||
background-color: #333;
|
||||
border-radius: 100%;
|
||||
-webkit-animation: sk-pulseScaleOut 1s infinite ease-in-out;
|
||||
animation: sk-pulseScaleOut 1s infinite ease-in-out; }
|
||||
|
||||
@-webkit-keyframes sk-pulseScaleOut {
|
||||
0% {
|
||||
-webkit-transform: scale(0);
|
||||
transform: scale(0); }
|
||||
|
||||
100% {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1);
|
||||
opacity: 0; } }
|
||||
|
||||
@keyframes sk-pulseScaleOut {
|
||||
0% {
|
||||
-webkit-transform: scale(0);
|
||||
transform: scale(0); }
|
||||
|
||||
100% {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1);
|
||||
opacity: 0; } }
|
||||
|
||||
/*
|
||||
* Usage:
|
||||
*
|
||||
* <div class="sk-spinner sk-spinner-chasing-dots">
|
||||
* <div class="sk-dot1"></div>
|
||||
* <div class="sk-dot2"></div>
|
||||
* </div>
|
||||
*
|
||||
*/
|
||||
.sk-spinner-chasing-dots.sk-spinner {
|
||||
margin: 0 auto;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
-webkit-animation: sk-chasingDotsRotate 2s infinite linear;
|
||||
animation: sk-chasingDotsRotate 2s infinite linear; }
|
||||
.sk-spinner-chasing-dots .sk-dot1, .sk-spinner-chasing-dots .sk-dot2 {
|
||||
width: 60%;
|
||||
height: 60%;
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
background-color: #333;
|
||||
border-radius: 100%;
|
||||
-webkit-animation: sk-chasingDotsBounce 2s infinite ease-in-out;
|
||||
animation: sk-chasingDotsBounce 2s infinite ease-in-out; }
|
||||
.sk-spinner-chasing-dots .sk-dot2 {
|
||||
top: auto;
|
||||
bottom: 0px;
|
||||
-webkit-animation-delay: -1s;
|
||||
animation-delay: -1s; }
|
||||
|
||||
@-webkit-keyframes sk-chasingDotsRotate {
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg); } }
|
||||
|
||||
@keyframes sk-chasingDotsRotate {
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg); } }
|
||||
|
||||
@-webkit-keyframes sk-chasingDotsBounce {
|
||||
0%, 100% {
|
||||
-webkit-transform: scale(0);
|
||||
transform: scale(0); }
|
||||
|
||||
50% {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1); } }
|
||||
|
||||
@keyframes sk-chasingDotsBounce {
|
||||
0%, 100% {
|
||||
-webkit-transform: scale(0);
|
||||
transform: scale(0); }
|
||||
|
||||
50% {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1); } }
|
||||
|
||||
/*
|
||||
* Usage:
|
||||
*
|
||||
* <div class="sk-spinner sk-spinner-three-bounce">
|
||||
* <div class="sk-bounce1"></div>
|
||||
* <div class="sk-bounce2"></div>
|
||||
* <div class="sk-bounce3"></div>
|
||||
* </div>
|
||||
*
|
||||
*/
|
||||
.sk-spinner-three-bounce.sk-spinner {
|
||||
margin: 0 auto;
|
||||
width: 70px;
|
||||
text-align: center; }
|
||||
.sk-spinner-three-bounce div {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
background-color: #333;
|
||||
border-radius: 100%;
|
||||
display: inline-block;
|
||||
-webkit-animation: sk-threeBounceDelay 1.4s infinite ease-in-out;
|
||||
animation: sk-threeBounceDelay 1.4s infinite ease-in-out;
|
||||
/* Prevent first frame from flickering when animation starts */
|
||||
-webkit-animation-fill-mode: both;
|
||||
animation-fill-mode: both; }
|
||||
.sk-spinner-three-bounce .sk-bounce1 {
|
||||
-webkit-animation-delay: -0.32s;
|
||||
animation-delay: -0.32s; }
|
||||
.sk-spinner-three-bounce .sk-bounce2 {
|
||||
-webkit-animation-delay: -0.16s;
|
||||
animation-delay: -0.16s; }
|
||||
|
||||
@-webkit-keyframes sk-threeBounceDelay {
|
||||
0%, 80%, 100% {
|
||||
-webkit-transform: scale(0);
|
||||
transform: scale(0); }
|
||||
|
||||
40% {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1); } }
|
||||
|
||||
@keyframes sk-threeBounceDelay {
|
||||
0%, 80%, 100% {
|
||||
-webkit-transform: scale(0);
|
||||
transform: scale(0); }
|
||||
|
||||
40% {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1); } }
|
||||
|
||||
/*
|
||||
* Usage:
|
||||
*
|
||||
* <div class="sk-spinner sk-spinner-circle">
|
||||
* <div class="sk-circle1 sk-circle"></div>
|
||||
* <div class="sk-circle2 sk-circle"></div>
|
||||
* <div class="sk-circle3 sk-circle"></div>
|
||||
* <div class="sk-circle4 sk-circle"></div>
|
||||
* <div class="sk-circle5 sk-circle"></div>
|
||||
* <div class="sk-circle6 sk-circle"></div>
|
||||
* <div class="sk-circle7 sk-circle"></div>
|
||||
* <div class="sk-circle8 sk-circle"></div>
|
||||
* <div class="sk-circle9 sk-circle"></div>
|
||||
* <div class="sk-circle10 sk-circle"></div>
|
||||
* <div class="sk-circle11 sk-circle"></div>
|
||||
* <div class="sk-circle12 sk-circle"></div>
|
||||
* </div>
|
||||
*
|
||||
*/
|
||||
.sk-spinner-circle.sk-spinner {
|
||||
margin: 0 auto;
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
position: relative; }
|
||||
.sk-spinner-circle .sk-circle {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0; }
|
||||
.sk-spinner-circle .sk-circle:before {
|
||||
content: '';
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
width: 20%;
|
||||
height: 20%;
|
||||
background-color: #333;
|
||||
border-radius: 100%;
|
||||
-webkit-animation: sk-circleBounceDelay 1.2s infinite ease-in-out;
|
||||
animation: sk-circleBounceDelay 1.2s infinite ease-in-out;
|
||||
/* Prevent first frame from flickering when animation starts */
|
||||
-webkit-animation-fill-mode: both;
|
||||
animation-fill-mode: both; }
|
||||
.sk-spinner-circle .sk-circle2 {
|
||||
-webkit-transform: rotate(30deg);
|
||||
-ms-transform: rotate(30deg);
|
||||
transform: rotate(30deg); }
|
||||
.sk-spinner-circle .sk-circle3 {
|
||||
-webkit-transform: rotate(60deg);
|
||||
-ms-transform: rotate(60deg);
|
||||
transform: rotate(60deg); }
|
||||
.sk-spinner-circle .sk-circle4 {
|
||||
-webkit-transform: rotate(90deg);
|
||||
-ms-transform: rotate(90deg);
|
||||
transform: rotate(90deg); }
|
||||
.sk-spinner-circle .sk-circle5 {
|
||||
-webkit-transform: rotate(120deg);
|
||||
-ms-transform: rotate(120deg);
|
||||
transform: rotate(120deg); }
|
||||
.sk-spinner-circle .sk-circle6 {
|
||||
-webkit-transform: rotate(150deg);
|
||||
-ms-transform: rotate(150deg);
|
||||
transform: rotate(150deg); }
|
||||
.sk-spinner-circle .sk-circle7 {
|
||||
-webkit-transform: rotate(180deg);
|
||||
-ms-transform: rotate(180deg);
|
||||
transform: rotate(180deg); }
|
||||
.sk-spinner-circle .sk-circle8 {
|
||||
-webkit-transform: rotate(210deg);
|
||||
-ms-transform: rotate(210deg);
|
||||
transform: rotate(210deg); }
|
||||
.sk-spinner-circle .sk-circle9 {
|
||||
-webkit-transform: rotate(240deg);
|
||||
-ms-transform: rotate(240deg);
|
||||
transform: rotate(240deg); }
|
||||
.sk-spinner-circle .sk-circle10 {
|
||||
-webkit-transform: rotate(270deg);
|
||||
-ms-transform: rotate(270deg);
|
||||
transform: rotate(270deg); }
|
||||
.sk-spinner-circle .sk-circle11 {
|
||||
-webkit-transform: rotate(300deg);
|
||||
-ms-transform: rotate(300deg);
|
||||
transform: rotate(300deg); }
|
||||
.sk-spinner-circle .sk-circle12 {
|
||||
-webkit-transform: rotate(330deg);
|
||||
-ms-transform: rotate(330deg);
|
||||
transform: rotate(330deg); }
|
||||
.sk-spinner-circle .sk-circle2:before {
|
||||
-webkit-animation-delay: -1.1s;
|
||||
animation-delay: -1.1s; }
|
||||
.sk-spinner-circle .sk-circle3:before {
|
||||
-webkit-animation-delay: -1s;
|
||||
animation-delay: -1s; }
|
||||
.sk-spinner-circle .sk-circle4:before {
|
||||
-webkit-animation-delay: -0.9s;
|
||||
animation-delay: -0.9s; }
|
||||
.sk-spinner-circle .sk-circle5:before {
|
||||
-webkit-animation-delay: -0.8s;
|
||||
animation-delay: -0.8s; }
|
||||
.sk-spinner-circle .sk-circle6:before {
|
||||
-webkit-animation-delay: -0.7s;
|
||||
animation-delay: -0.7s; }
|
||||
.sk-spinner-circle .sk-circle7:before {
|
||||
-webkit-animation-delay: -0.6s;
|
||||
animation-delay: -0.6s; }
|
||||
.sk-spinner-circle .sk-circle8:before {
|
||||
-webkit-animation-delay: -0.5s;
|
||||
animation-delay: -0.5s; }
|
||||
.sk-spinner-circle .sk-circle9:before {
|
||||
-webkit-animation-delay: -0.4s;
|
||||
animation-delay: -0.4s; }
|
||||
.sk-spinner-circle .sk-circle10:before {
|
||||
-webkit-animation-delay: -0.3s;
|
||||
animation-delay: -0.3s; }
|
||||
.sk-spinner-circle .sk-circle11:before {
|
||||
-webkit-animation-delay: -0.2s;
|
||||
animation-delay: -0.2s; }
|
||||
.sk-spinner-circle .sk-circle12:before {
|
||||
-webkit-animation-delay: -0.1s;
|
||||
animation-delay: -0.1s; }
|
||||
|
||||
@-webkit-keyframes sk-circleBounceDelay {
|
||||
0%, 80%, 100% {
|
||||
-webkit-transform: scale(0);
|
||||
transform: scale(0); }
|
||||
|
||||
40% {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1); } }
|
||||
|
||||
@keyframes sk-circleBounceDelay {
|
||||
0%, 80%, 100% {
|
||||
-webkit-transform: scale(0);
|
||||
transform: scale(0); }
|
||||
|
||||
40% {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1); } }
|
||||
|
||||
/*
|
||||
* Usage:
|
||||
*
|
||||
* <div class="sk-spinner sk-spinner-cube-grid">
|
||||
* <div class="sk-cube"></div>
|
||||
* <div class="sk-cube"></div>
|
||||
* <div class="sk-cube"></div>
|
||||
* <div class="sk-cube"></div>
|
||||
* <div class="sk-cube"></div>
|
||||
* <div class="sk-cube"></div>
|
||||
* <div class="sk-cube"></div>
|
||||
* <div class="sk-cube"></div>
|
||||
* <div class="sk-cube"></div>
|
||||
* </div>
|
||||
*
|
||||
*/
|
||||
.sk-spinner-cube-grid {
|
||||
/*
|
||||
* Spinner positions
|
||||
* 1 2 3
|
||||
* 4 5 6
|
||||
* 7 8 9
|
||||
*/ }
|
||||
.sk-spinner-cube-grid.sk-spinner {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
margin: 0 auto; }
|
||||
.sk-spinner-cube-grid .sk-cube {
|
||||
width: 33%;
|
||||
height: 33%;
|
||||
background-color: #333;
|
||||
float: left;
|
||||
-webkit-animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out;
|
||||
animation: sk-cubeGridScaleDelay 1.3s infinite ease-in-out; }
|
||||
.sk-spinner-cube-grid .sk-cube:nth-child(1) {
|
||||
-webkit-animation-delay: 0.2s;
|
||||
animation-delay: 0.2s; }
|
||||
.sk-spinner-cube-grid .sk-cube:nth-child(2) {
|
||||
-webkit-animation-delay: 0.3s;
|
||||
animation-delay: 0.3s; }
|
||||
.sk-spinner-cube-grid .sk-cube:nth-child(3) {
|
||||
-webkit-animation-delay: 0.4s;
|
||||
animation-delay: 0.4s; }
|
||||
.sk-spinner-cube-grid .sk-cube:nth-child(4) {
|
||||
-webkit-animation-delay: 0.1s;
|
||||
animation-delay: 0.1s; }
|
||||
.sk-spinner-cube-grid .sk-cube:nth-child(5) {
|
||||
-webkit-animation-delay: 0.2s;
|
||||
animation-delay: 0.2s; }
|
||||
.sk-spinner-cube-grid .sk-cube:nth-child(6) {
|
||||
-webkit-animation-delay: 0.3s;
|
||||
animation-delay: 0.3s; }
|
||||
.sk-spinner-cube-grid .sk-cube:nth-child(7) {
|
||||
-webkit-animation-delay: 0s;
|
||||
animation-delay: 0s; }
|
||||
.sk-spinner-cube-grid .sk-cube:nth-child(8) {
|
||||
-webkit-animation-delay: 0.1s;
|
||||
animation-delay: 0.1s; }
|
||||
.sk-spinner-cube-grid .sk-cube:nth-child(9) {
|
||||
-webkit-animation-delay: 0.2s;
|
||||
animation-delay: 0.2s; }
|
||||
|
||||
@-webkit-keyframes sk-cubeGridScaleDelay {
|
||||
0%, 70%, 100% {
|
||||
-webkit-transform: scale3D(1, 1, 1);
|
||||
transform: scale3D(1, 1, 1); }
|
||||
|
||||
35% {
|
||||
-webkit-transform: scale3D(0, 0, 1);
|
||||
transform: scale3D(0, 0, 1); } }
|
||||
|
||||
@keyframes sk-cubeGridScaleDelay {
|
||||
0%, 70%, 100% {
|
||||
-webkit-transform: scale3D(1, 1, 1);
|
||||
transform: scale3D(1, 1, 1); }
|
||||
|
||||
35% {
|
||||
-webkit-transform: scale3D(0, 0, 1);
|
||||
transform: scale3D(0, 0, 1); } }
|
||||
|
||||
/*
|
||||
* Usage:
|
||||
*
|
||||
* <div class="sk-spinner sk-spinner-wordpress">
|
||||
* <span class="sk-inner-circle"></span>
|
||||
* </div>
|
||||
*
|
||||
*/
|
||||
.sk-spinner-wordpress.sk-spinner {
|
||||
background-color: #333;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
border-radius: 30px;
|
||||
position: relative;
|
||||
margin: 0 auto;
|
||||
-webkit-animation: sk-innerCircle 1s linear infinite;
|
||||
animation: sk-innerCircle 1s linear infinite; }
|
||||
.sk-spinner-wordpress .sk-inner-circle {
|
||||
display: block;
|
||||
background-color: #fff;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
position: absolute;
|
||||
border-radius: 8px;
|
||||
top: 5px;
|
||||
left: 5px; }
|
||||
|
||||
@-webkit-keyframes sk-innerCircle {
|
||||
0% {
|
||||
-webkit-transform: rotate(0);
|
||||
transform: rotate(0); }
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg); } }
|
||||
|
||||
@keyframes sk-innerCircle {
|
||||
0% {
|
||||
-webkit-transform: rotate(0);
|
||||
transform: rotate(0); }
|
||||
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg); } }
|
||||
|
||||
/*
|
||||
* Usage:
|
||||
*
|
||||
* <div class="sk-spinner sk-spinner-fading-circle">
|
||||
* <div class="sk-circle1 sk-circle"></div>
|
||||
* <div class="sk-circle2 sk-circle"></div>
|
||||
* <div class="sk-circle3 sk-circle"></div>
|
||||
* <div class="sk-circle4 sk-circle"></div>
|
||||
* <div class="sk-circle5 sk-circle"></div>
|
||||
* <div class="sk-circle6 sk-circle"></div>
|
||||
* <div class="sk-circle7 sk-circle"></div>
|
||||
* <div class="sk-circle8 sk-circle"></div>
|
||||
* <div class="sk-circle9 sk-circle"></div>
|
||||
* <div class="sk-circle10 sk-circle"></div>
|
||||
* <div class="sk-circle11 sk-circle"></div>
|
||||
* <div class="sk-circle12 sk-circle"></div>
|
||||
* </div>
|
||||
*
|
||||
*/
|
||||
.sk-spinner-fading-circle.sk-spinner {
|
||||
margin: 0 auto;
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
position: relative; }
|
||||
.sk-spinner-fading-circle .sk-circle {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0; }
|
||||
.sk-spinner-fading-circle .sk-circle:before {
|
||||
content: '';
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
width: 18%;
|
||||
height: 18%;
|
||||
background-color: #333;
|
||||
border-radius: 100%;
|
||||
-webkit-animation: sk-circleFadeDelay 1.2s infinite ease-in-out;
|
||||
animation: sk-circleFadeDelay 1.2s infinite ease-in-out;
|
||||
/* Prevent first frame from flickering when animation starts */
|
||||
-webkit-animation-fill-mode: both;
|
||||
animation-fill-mode: both; }
|
||||
.sk-spinner-fading-circle .sk-circle2 {
|
||||
-webkit-transform: rotate(30deg);
|
||||
-ms-transform: rotate(30deg);
|
||||
transform: rotate(30deg); }
|
||||
.sk-spinner-fading-circle .sk-circle3 {
|
||||
-webkit-transform: rotate(60deg);
|
||||
-ms-transform: rotate(60deg);
|
||||
transform: rotate(60deg); }
|
||||
.sk-spinner-fading-circle .sk-circle4 {
|
||||
-webkit-transform: rotate(90deg);
|
||||
-ms-transform: rotate(90deg);
|
||||
transform: rotate(90deg); }
|
||||
.sk-spinner-fading-circle .sk-circle5 {
|
||||
-webkit-transform: rotate(120deg);
|
||||
-ms-transform: rotate(120deg);
|
||||
transform: rotate(120deg); }
|
||||
.sk-spinner-fading-circle .sk-circle6 {
|
||||
-webkit-transform: rotate(150deg);
|
||||
-ms-transform: rotate(150deg);
|
||||
transform: rotate(150deg); }
|
||||
.sk-spinner-fading-circle .sk-circle7 {
|
||||
-webkit-transform: rotate(180deg);
|
||||
-ms-transform: rotate(180deg);
|
||||
transform: rotate(180deg); }
|
||||
.sk-spinner-fading-circle .sk-circle8 {
|
||||
-webkit-transform: rotate(210deg);
|
||||
-ms-transform: rotate(210deg);
|
||||
transform: rotate(210deg); }
|
||||
.sk-spinner-fading-circle .sk-circle9 {
|
||||
-webkit-transform: rotate(240deg);
|
||||
-ms-transform: rotate(240deg);
|
||||
transform: rotate(240deg); }
|
||||
.sk-spinner-fading-circle .sk-circle10 {
|
||||
-webkit-transform: rotate(270deg);
|
||||
-ms-transform: rotate(270deg);
|
||||
transform: rotate(270deg); }
|
||||
.sk-spinner-fading-circle .sk-circle11 {
|
||||
-webkit-transform: rotate(300deg);
|
||||
-ms-transform: rotate(300deg);
|
||||
transform: rotate(300deg); }
|
||||
.sk-spinner-fading-circle .sk-circle12 {
|
||||
-webkit-transform: rotate(330deg);
|
||||
-ms-transform: rotate(330deg);
|
||||
transform: rotate(330deg); }
|
||||
.sk-spinner-fading-circle .sk-circle2:before {
|
||||
-webkit-animation-delay: -1.1s;
|
||||
animation-delay: -1.1s; }
|
||||
.sk-spinner-fading-circle .sk-circle3:before {
|
||||
-webkit-animation-delay: -1s;
|
||||
animation-delay: -1s; }
|
||||
.sk-spinner-fading-circle .sk-circle4:before {
|
||||
-webkit-animation-delay: -0.9s;
|
||||
animation-delay: -0.9s; }
|
||||
.sk-spinner-fading-circle .sk-circle5:before {
|
||||
-webkit-animation-delay: -0.8s;
|
||||
animation-delay: -0.8s; }
|
||||
.sk-spinner-fading-circle .sk-circle6:before {
|
||||
-webkit-animation-delay: -0.7s;
|
||||
animation-delay: -0.7s; }
|
||||
.sk-spinner-fading-circle .sk-circle7:before {
|
||||
-webkit-animation-delay: -0.6s;
|
||||
animation-delay: -0.6s; }
|
||||
.sk-spinner-fading-circle .sk-circle8:before {
|
||||
-webkit-animation-delay: -0.5s;
|
||||
animation-delay: -0.5s; }
|
||||
.sk-spinner-fading-circle .sk-circle9:before {
|
||||
-webkit-animation-delay: -0.4s;
|
||||
animation-delay: -0.4s; }
|
||||
.sk-spinner-fading-circle .sk-circle10:before {
|
||||
-webkit-animation-delay: -0.3s;
|
||||
animation-delay: -0.3s; }
|
||||
.sk-spinner-fading-circle .sk-circle11:before {
|
||||
-webkit-animation-delay: -0.2s;
|
||||
animation-delay: -0.2s; }
|
||||
.sk-spinner-fading-circle .sk-circle12:before {
|
||||
-webkit-animation-delay: -0.1s;
|
||||
animation-delay: -0.1s; }
|
||||
|
||||
@-webkit-keyframes sk-circleFadeDelay {
|
||||
0%, 39%, 100% {
|
||||
opacity: 0; }
|
||||
|
||||
40% {
|
||||
opacity: 1; } }
|
||||
|
||||
@keyframes sk-circleFadeDelay {
|
||||
0%, 39%, 100% {
|
||||
opacity: 0; }
|
||||
|
||||
40% {
|
||||
opacity: 1; } }
|
||||
|
|
@ -1,223 +0,0 @@
|
|||
@charset "UTF-8";
|
||||
/* ################################################################
|
||||
|
||||
Author: Carlos Alvarez
|
||||
URL: http://alvarez.is
|
||||
|
||||
Project Name: SOLID - Bootstrap 3 Theme
|
||||
Version: 1.0
|
||||
URL: http://alvarez.is
|
||||
|
||||
################################################################# */
|
||||
/* Webfont: Lato-Bold */
|
||||
@font-face {
|
||||
font-family: 'Lato';
|
||||
src: url("../fonts/Lato-Bold.eot");
|
||||
/* IE9 Compat Modes */
|
||||
src: url("../fonts/Lato-Bold.eot?#iefix") format("embedded-opentype"), url("../fonts/Lato-Bold.woff") format("woff"), url("../fonts/Lato-Bold.ttf") format("truetype");
|
||||
font-style: normal;
|
||||
font-weight: bold;
|
||||
text-rendering: optimizeLegibility; }
|
||||
/* Webfont: Lato-Italic */
|
||||
@font-face {
|
||||
font-family: 'Lato';
|
||||
src: url("../fonts/Lato-Italic.eot");
|
||||
/* IE9 Compat Modes */
|
||||
src: url("../fonts/Lato-Italic.eot?#iefix") format("embedded-opentype"), url("../fonts/Lato-Italic.woff") format("woff"), url("../fonts/Lato-Italic.ttf") format("truetype");
|
||||
font-style: italic;
|
||||
font-weight: normal;
|
||||
text-rendering: optimizeLegibility; }
|
||||
/* Webfont: Lato-Regular */
|
||||
@font-face {
|
||||
font-family: 'Lato';
|
||||
src: url("../fonts/Lato-Regular.eot");
|
||||
/* IE9 Compat Modes */
|
||||
src: url("../fonts/Lato-Regular.eot?#iefix") format("embedded-opentype"), url("../fonts/Lato-Regular.woff") format("woff"), url("../fonts/Lato-Regular.ttf") format("truetype");
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
text-rendering: optimizeLegibility; }
|
||||
/* ################################################################
|
||||
1. GENERAL STRUCTURES
|
||||
################################################################# */
|
||||
* {
|
||||
margin: 0; }
|
||||
|
||||
body {
|
||||
background: #ffffff;
|
||||
margin: 0;
|
||||
height: 100%;
|
||||
color: #384452;
|
||||
font-family: "Lato", "Heiti SC", "Hiragino Sans GB", "STHeiti", "Source Han Sans CN", "WenQuanYi Zen Hei", "WenQuanYi Micro Hei", "微软雅黑", sans-serif;
|
||||
font-weight: 400; }
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-weight: 700; }
|
||||
|
||||
ul {
|
||||
padding-left: 1em; }
|
||||
|
||||
p {
|
||||
padding: 0;
|
||||
margin-bottom: 12px;
|
||||
font-weight: 400;
|
||||
font-size: 14px;
|
||||
line-height: 24px;
|
||||
color: #384452;
|
||||
margin-top: 10px; }
|
||||
|
||||
img {
|
||||
height: auto;
|
||||
max-width: 100%; }
|
||||
|
||||
a {
|
||||
color: #088acb;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
text-decoration: none;
|
||||
-webkit-transition: background-color .4s linear, color .4s linear;
|
||||
-moz-transition: background-color .4s linear, color .4s linear;
|
||||
-o-transition: background-color .4s linear, color .4s linear;
|
||||
-ms-transition: background-color .4s linear, color .4s linear;
|
||||
transition: background-color .4s linear, color .4s linear; }
|
||||
|
||||
a:hover,
|
||||
a:focus {
|
||||
text-decoration: none;
|
||||
color: #62bbe7; }
|
||||
|
||||
::-moz-selection {
|
||||
color: #fff;
|
||||
text-shadow: none;
|
||||
background: #384452; }
|
||||
|
||||
::selection {
|
||||
color: #fff;
|
||||
text-shadow: none;
|
||||
background: #384452; }
|
||||
|
||||
.centered {
|
||||
text-align: center; }
|
||||
|
||||
/* ################################################################
|
||||
BOOTSTRAP MODIFICATIONS & TWEAKS
|
||||
################################################################# */
|
||||
.navbar {
|
||||
padding-top: 15px;
|
||||
margin-bottom: 0px; }
|
||||
|
||||
.navbar-default {
|
||||
background-color: white;
|
||||
border-color: transparent; }
|
||||
.navbar-default .navbar-nav > li.active > a {
|
||||
color: #82318E;
|
||||
border-bottom: 2px solid #82318E; }
|
||||
.navbar-default .navbar-nav > li > a {
|
||||
color: #384452;
|
||||
background: transparent !important;
|
||||
font-weight: 700;
|
||||
font-size: 12px; }
|
||||
.navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus {
|
||||
color: #82318E !important;
|
||||
background: transparent !important; }
|
||||
|
||||
.navbar-brand {
|
||||
font-weight: 900;
|
||||
padding: 0px;
|
||||
line-height: 50px;
|
||||
height: 50px; }
|
||||
.navbar-brand img {
|
||||
margin-right: 5px; }
|
||||
|
||||
.navbar-header .navbar-brand {
|
||||
color: #384452; }
|
||||
|
||||
.dropdown-menu {
|
||||
background: #384452; }
|
||||
|
||||
.dropdown-menu > li > a {
|
||||
color: white;
|
||||
font-weight: 700;
|
||||
font-size: 12px; }
|
||||
|
||||
.mtb {
|
||||
margin-top: 40px;
|
||||
margin-bottom: 80px; }
|
||||
|
||||
.mb {
|
||||
margin-bottom: 60px; }
|
||||
|
||||
.mt {
|
||||
margin-top: 60px; }
|
||||
|
||||
.hline {
|
||||
border-bottom: 1px solid #384452; }
|
||||
|
||||
.hline-w {
|
||||
border-bottom: 1px solid #ffffff;
|
||||
margin-bottom: 25px; }
|
||||
|
||||
/* ################################################################
|
||||
SITE WRAPS
|
||||
################################################################# */
|
||||
#thu-alert {
|
||||
padding-left: 50px;
|
||||
position: relative; }
|
||||
#thu-alert .glyphicon {
|
||||
font-size: 30px;
|
||||
left: 10px;
|
||||
top: 20px;
|
||||
position: absolute; }
|
||||
|
||||
#headerwrap {
|
||||
padding-top: 40px;
|
||||
padding-bottom: 0px; }
|
||||
#headerwrap h1 {
|
||||
color: #82318E;
|
||||
margin-bottom: 15px; }
|
||||
#headerwrap h3, #headerwrap h5 {
|
||||
color: #82318E;
|
||||
font-weight: 400;
|
||||
margin-top: 10px; }
|
||||
#headerwrap .img-responsive {
|
||||
margin: 0 auto; }
|
||||
|
||||
/* Services Wrap */
|
||||
#mirrors {
|
||||
margin-top: 40px;
|
||||
margin-bottom: 40px; }
|
||||
#mirrors tbody {
|
||||
font-size: 12pt; }
|
||||
#mirrors tbody tr:hover {
|
||||
background-color: #e0f3fc; }
|
||||
#mirrors tbody td {
|
||||
padding: 4px 8px;
|
||||
border-top: none; }
|
||||
#mirrors tbody .label.label-new {
|
||||
padding: .1em .2em;
|
||||
vertical-align: 40%;
|
||||
text-shadow: 1px 1px #888;
|
||||
background-color: #3aa0e6; }
|
||||
#mirrors tbody .label.label-status {
|
||||
font-size: 10pt; }
|
||||
#mirrors tbody .fa-question-circle {
|
||||
color: #234961; }
|
||||
|
||||
/* Footer */
|
||||
#footerwrap {
|
||||
color: #bfc9d3;
|
||||
margin-top: 100px;
|
||||
padding-top: 60px;
|
||||
padding-bottom: 60px;
|
||||
background: #384452; }
|
||||
#footerwrap p {
|
||||
color: #bfc9d3; }
|
||||
#footerwrap h4 {
|
||||
color: #ffffff; }
|
||||
#footerwrap i, #footerwrap i:hover, #footerwrap a, #footerwrap a:hover {
|
||||
color: #bfc9d3; }
|
||||
|
||||
.spacing {
|
||||
margin-top: 40px;
|
||||
margin-bottom: 40px; }
|
||||
|
||||
/*# sourceMappingURL=style.css.map */
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
{
|
||||
"version": 3,
|
||||
"mappings": ";;;;;;;;;;;;AAAwB,UASvB;EARG,WAAW,EAAE,MAAM;EACnB,GAAG,EAAE,6BAA6B;;EAClC,GAAG,EAAE,iKAAgE;EAGrE,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,kBAAkB;;AAGZ,UASzB;EARG,WAAW,EAAE,MAAM;EACnB,GAAG,EAAE,+BAA+B;;EACpC,GAAG,EAAE,uKAAkE;EAGvE,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,MAAM;EACnB,cAAc,EAAE,kBAAkB;;AAGX,UAS1B;EARG,WAAW,EAAE,MAAM;EACnB,GAAG,EAAE,gCAAgC;;EACrC,GAAG,EAAE,0KAAmE;EAGxE,UAAU,EAAE,MAAM;EAClB,WAAW,EAAE,MAAM;EACnB,cAAc,EAAE,kBAAkB;;;;ACAtC,CAAE;EACE,MAAM,EAAE,CAAC;;AAIb,IAAK;EACD,UAAU,EAAE,OAAO;EACnB,MAAM,EAAE,CAAC;EACT,MAAM,EAAE,IAAI;EACZ,KAAK,EAtBS,OAAO;EAuBrB,WAAW,EAjBA,uIAAM;EAkBjB,WAAW,EAAE,GAAG;;AAGpB,sBAAuB;EACnB,WAAW,EAAE,GAAG;;AAGpB,EAAG;EACC,YAAY,EAAE,GAAG;;AAGrB,CAAE;EACE,OAAO,EAAE,CAAC;EACV,aAAa,EAAE,IAAI;EACnB,WAAW,EAAE,GAAG;EAChB,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,IAAI;EACjB,KAAK,EAzCS,OAAO;EA0CrB,UAAU,EAAE,IAAI;;AAGpB,GAAI;EACA,MAAM,EAAE,IAAI;EACZ,SAAS,EAAE,IAAI;;AAGnB,CAAE;EACE,KAAK,EAlDI,OAAO;EAmDhB,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CAAC;EACT,eAAe,EAAE,IAAI;EACrB,kBAAkB,EAAE,6CAA6C;EACjE,eAAe,EAAE,6CAA6C;EAC9D,aAAa,EAAE,6CAA6C;EAC5D,cAAc,EAAE,6CAA6C;EAC7D,UAAU,EAAE,6CAA6C;;AAG7D;OACQ;EACJ,eAAe,EAAE,IAAI;EACrB,KAAK,EA/DU,OAAO;;AAkE1B,gBAAkB;EACd,KAAK,EAAE,IAAI;EACX,WAAW,EAAC,IAAI;EAChB,UAAU,EAvEI,OAAO;;AAyEzB,WAAY;EACR,KAAK,EAAE,IAAI;EACX,WAAW,EAAC,IAAI;EAChB,UAAU,EA5EI,OAAO;;AA+EzB,SAAU;EACN,UAAU,EAAE,MAAM;;;;;AAMtB,OAAQ;EACJ,WAAW,EAAE,IAAI;EACjB,aAAa,EAAE,GAAG;;AAGtB,eAAgB;EACZ,gBAAgB,EAAE,KAAK;EACvB,YAAY,EAAE,WAAW;EAEzB,2CAA4B;IACxB,KAAK,EAnGG,OAAiB;IAoGzB,aAAa,EAAE,iBAA2B;EAE9C,oCAAqB;IACjB,KAAK,EApGK,OAAO;IAqGjB,UAAU,EAAE,sBAAsB;IAClC,WAAW,EAAE,GAAG;IAChB,SAAS,EAAE,IAAI;IAEf,sFAAiB;MACb,KAAK,EAAE,kBAAyB;MAChC,UAAU,EAAE,sBAAsB;;AAK9C,aAAc;EACV,WAAW,EAAE,GAAG;EAChB,OAAO,EAAE,GAAG;EACZ,WAAW,EAAE,IAAI;EACjB,MAAM,EAAE,IAAI;EACZ,iBAAI;IACA,YAAY,EAAE,GAAG;;AAIzB,4BAA6B;EACzB,KAAK,EA3HS,OAAO;;AA8HzB,cAAe;EACX,UAAU,EA/HI,OAAO;;AAkIzB,uBAAwB;EACpB,KAAK,EAAE,KAAK;EACZ,WAAW,EAAE,GAAG;EAChB,SAAS,EAAE,IAAI;;AAGnB,IAAK;EACD,UAAU,EAAE,IAAI;EAChB,aAAa,EAAE,IAAI;;AAGvB,GAAI;EACA,aAAa,EAAE,IAAI;;AAGvB,GAAI;EACA,UAAU,EAAE,IAAI;;AAGpB,MAAO;EACH,aAAa,EAAE,iBAA2B;;AAG9C,QAAS;EACL,aAAa,EAAE,iBAAiB;EAChC,aAAa,EAAE,IAAI;;;;;AAKvB,UAAW;EACP,YAAY,EAAE,IAAI;EAClB,QAAQ,EAAE,QAAQ;EAClB,qBAAW;IACP,SAAS,EAAE,IAAI;IACf,IAAI,EAAE,IAAI;IACV,GAAG,EAAE,IAAI;IACT,QAAQ,EAAE,QAAQ;;AAG1B,WAAY;EACR,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,GAAG;EAEnB,cAAG;IACC,KAAK,EAlLG,OAAiB;IAmLzB,aAAa,EAAE,IAAI;EAEvB,8BAAO;IACH,KAAK,EAtLG,OAAiB;IAuLzB,WAAW,EAAE,GAAG;IAChB,UAAU,EAAE,IAAI;EAEpB,2BAAgB;IACZ,MAAM,EAAE,MAAM;;;AAKtB,QAAS;EACL,UAAU,EAAE,IAAI;EAChB,aAAa,EAAE,IAAI;EACnB,cAAM;IAQF,SAAS,EAAE,IAAI;IAPrB,uBAAS;MACR,gBAAgB,EAAE,OAAO;IAEpB,iBAAG;MACR,OAAO,EAAE,OAAO;MACP,UAAU,EAAE,IAAI;IAG1B,+BAAiB;MAChB,OAAO,EAAE,SAAS;MAClB,cAAc,EAAE,GAAG;MACnB,WAAW,EAAE,YAAY;MACzB,gBAAgB,EAAE,OAAO;IAEpB,kCAAoB;MAChB,SAAS,EAAE,IAAI;IAEnB,kCAAoB;MAChB,KAAK,EAAE,OAAO;;;AAO1B,WAAY;EACR,KAAK,EAvNc,OAAO;EAwN1B,UAAU,EAAE,KAAK;EACjB,WAAW,EAAE,IAAI;EACjB,cAAc,EAAE,IAAI;EACpB,UAAU,EA/NI,OAAO;EAgOrB,aAAE;IACE,KAAK,EA7NU,OAAO;EA+N1B,cAAG;IACC,KAAK,EAjOU,OAAO;EAmO1B,sEAAuB;IACnB,KAAK,EAnOU,OAAO;;AAuO9B,QAAS;EACL,UAAU,EAAE,IAAI;EAChB,aAAa,EAAE,IAAI",
|
||||
"sources": ["_Lato.scss","style.scss"],
|
||||
"names": [],
|
||||
"file": "style.css"
|
||||
}
|
||||
|
|
@ -1,256 +0,0 @@
|
|||
/* ################################################################
|
||||
|
||||
Author: Carlos Alvarez
|
||||
URL: http://alvarez.is
|
||||
|
||||
Project Name: SOLID - Bootstrap 3 Theme
|
||||
Version: 1.0
|
||||
URL: http://alvarez.is
|
||||
|
||||
################################################################# */
|
||||
|
||||
$color_thu_purple: #82318E;
|
||||
$color_light_grey: #888;
|
||||
$color_grey: #555;
|
||||
$color_primary: $color_thu_purple;
|
||||
$color_primary_light: #d8aff6;
|
||||
$color_primary_rgb: 92,48,125;
|
||||
$color_secondary: #384452;
|
||||
$color_link: #088acb;
|
||||
$color_link_hover: #62bbe7;
|
||||
$color_footer_heading: #ffffff;
|
||||
$color_footer_content: #bfc9d3;
|
||||
$color_navbar_bg: #d3d3d3;
|
||||
$font_default: 'Lato', 'Heiti SC', 'Hiragino Sans GB', 'STHeiti', 'Source Han Sans CN', 'WenQuanYi Zen Hei', 'WenQuanYi Micro Hei', '微软雅黑', sans-serif ;
|
||||
|
||||
@import "Lato";
|
||||
|
||||
/* ################################################################
|
||||
1. GENERAL STRUCTURES
|
||||
################################################################# */
|
||||
* {
|
||||
margin: 0;
|
||||
// padding: 0px;
|
||||
}
|
||||
|
||||
body {
|
||||
background: #ffffff;
|
||||
margin: 0;
|
||||
height: 100%;
|
||||
color: $color_secondary;
|
||||
font-family: $font_default;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
ul {
|
||||
padding-left: 1em;
|
||||
}
|
||||
|
||||
p {
|
||||
padding: 0;
|
||||
margin-bottom: 12px;
|
||||
font-weight: 400;
|
||||
font-size: 14px;
|
||||
line-height: 24px;
|
||||
color: $color_secondary ;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
img {
|
||||
height: auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
a {
|
||||
color:$color_link;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
text-decoration: none;
|
||||
-webkit-transition: background-color .4s linear, color .4s linear;
|
||||
-moz-transition: background-color .4s linear, color .4s linear;
|
||||
-o-transition: background-color .4s linear, color .4s linear;
|
||||
-ms-transition: background-color .4s linear, color .4s linear;
|
||||
transition: background-color .4s linear, color .4s linear;
|
||||
}
|
||||
|
||||
a:hover,
|
||||
a:focus {
|
||||
text-decoration: none;
|
||||
color:$color_link_hover;
|
||||
}
|
||||
|
||||
::-moz-selection {
|
||||
color: #fff;
|
||||
text-shadow:none;
|
||||
background:$color_secondary;
|
||||
}
|
||||
::selection {
|
||||
color: #fff;
|
||||
text-shadow:none;
|
||||
background:$color_secondary;
|
||||
}
|
||||
|
||||
.centered {
|
||||
text-align: center
|
||||
}
|
||||
|
||||
/* ################################################################
|
||||
BOOTSTRAP MODIFICATIONS & TWEAKS
|
||||
################################################################# */
|
||||
.navbar {
|
||||
padding-top: 15px;
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.navbar-default {
|
||||
background-color: white;
|
||||
border-color: transparent;
|
||||
|
||||
.navbar-nav > li.active > a {
|
||||
color: $color_thu_purple;
|
||||
border-bottom: 2px solid $color_thu_purple;
|
||||
}
|
||||
.navbar-nav > li > a {
|
||||
color: $color_secondary;
|
||||
background: transparent !important;
|
||||
font-weight: 700;
|
||||
font-size: 12px;
|
||||
|
||||
&:hover, &:focus {
|
||||
color: $color_primary !important;
|
||||
background: transparent !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-brand {
|
||||
font-weight: 900;
|
||||
padding: 0px;
|
||||
line-height: 50px;
|
||||
height: 50px;
|
||||
img {
|
||||
margin-right: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.navbar-header .navbar-brand {
|
||||
color: $color_secondary;
|
||||
}
|
||||
|
||||
.dropdown-menu {
|
||||
background: $color_secondary ;
|
||||
}
|
||||
|
||||
.dropdown-menu > li > a {
|
||||
color: white;
|
||||
font-weight: 700;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.mtb {
|
||||
margin-top: 40px;
|
||||
margin-bottom: 80px;
|
||||
}
|
||||
|
||||
.mb {
|
||||
margin-bottom: 60px;
|
||||
}
|
||||
|
||||
.mt {
|
||||
margin-top: 60px;
|
||||
}
|
||||
|
||||
.hline {
|
||||
border-bottom: 1px solid $color_secondary ;
|
||||
}
|
||||
|
||||
.hline-w {
|
||||
border-bottom: 1px solid #ffffff;
|
||||
margin-bottom: 25px;
|
||||
}
|
||||
/* ################################################################
|
||||
SITE WRAPS
|
||||
################################################################# */
|
||||
#thu-alert {
|
||||
padding-left: 50px;
|
||||
position: relative;
|
||||
.glyphicon {
|
||||
font-size: 30px;
|
||||
left: 10px;
|
||||
top: 20px;
|
||||
position: absolute;
|
||||
}
|
||||
}
|
||||
#headerwrap {
|
||||
padding-top: 40px;
|
||||
padding-bottom: 0px;
|
||||
|
||||
h1 {
|
||||
color: $color_primary ;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
h3, h5 {
|
||||
color: $color_primary ;
|
||||
font-weight: 400;
|
||||
margin-top: 10px;
|
||||
}
|
||||
.img-responsive {
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
|
||||
/* Services Wrap */
|
||||
#mirrors {
|
||||
margin-top: 40px;
|
||||
margin-bottom: 40px;
|
||||
tbody {
|
||||
tr:hover {
|
||||
background-color: #e0f3fc;
|
||||
}
|
||||
td {
|
||||
padding: 4px 8px;
|
||||
border-top: none;
|
||||
}
|
||||
font-size: 12pt;
|
||||
.label.label-new {
|
||||
padding: .1em .2em;
|
||||
vertical-align: 40%;
|
||||
text-shadow: 1px 1px #888;
|
||||
background-color: #3aa0e6;
|
||||
}
|
||||
.label.label-status {
|
||||
font-size: 10pt;
|
||||
}
|
||||
.fa-question-circle {
|
||||
color: #234961;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Footer */
|
||||
#footerwrap {
|
||||
color: $color_footer_content;
|
||||
margin-top: 100px;
|
||||
padding-top: 60px;
|
||||
padding-bottom: 60px;
|
||||
background: $color_secondary;
|
||||
p {
|
||||
color: $color_footer_content;
|
||||
}
|
||||
h4 {
|
||||
color: $color_footer_heading;
|
||||
}
|
||||
i, i:hover, a, a:hover {
|
||||
color: $color_footer_content;
|
||||
}
|
||||
}
|
||||
|
||||
.spacing {
|
||||
margin-top: 40px;
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
|
|
@ -1,46 +0,0 @@
|
|||
## Ubuntu 镜像使用帮助
|
||||
|
||||
Ubuntu 的软件源配置文件是
|
||||
`/etc/apt/sources.list`。将系统自带的该文件做个备份,将该文件替换为下面内容,即可使用
|
||||
TUNA 的软件源镜像。
|
||||
|
||||
注意:Ubuntu
|
||||
的版本代号(codename)是直接写在软件源配置文件中的,所以不同的版本所需的配置文件内容不通用。
|
||||
下面仅贴出了最常用的版本的可用配置文件,其余版本请自行做相应修改(参考[这里](#more))。
|
||||
|
||||
### 14.04 LTS
|
||||
```
|
||||
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main multiverse restricted universe
|
||||
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-backports main multiverse restricted universe
|
||||
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-proposed main multiverse restricted universe
|
||||
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-security main multiverse restricted universe
|
||||
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-updates main multiverse restricted universe
|
||||
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main multiverse restricted universe
|
||||
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-backports main multiverse restricted universe
|
||||
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-proposed main multiverse restricted universe
|
||||
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-security main multiverse restricted universe
|
||||
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-updates main multiverse restricted universe
|
||||
```
|
||||
|
||||
### more
|
||||
|
||||
更多版本的设置,请参看下表中列出的 Ubuntu
|
||||
版本号和代号的对应关系,将上面的配置中的代号全部替换为相应代号即可。
|
||||
|
||||
| 版本号 | 代号 | 完整代号 |
|
||||
| ------ | ---- | -------- |
|
||||
| 8.04 LTS | hardy | Hardy Heron |
|
||||
| 10.04 LTS | lucid | Lucid Lynx |
|
||||
| 10.10 | maverick | Maverick Meerkat |
|
||||
| 11.04 | natty | Natty Narwhal |
|
||||
| 11.10 | oneiric | Oneiric Ocelot |
|
||||
| 12.04 LTS | precise | Precise Pangolin |
|
||||
| 12.10 | quantal | Quantal Quetzal |
|
||||
| 13.04 | raring | Raring Ringtail |
|
||||
| 13.10 | saucy | Saucy Salamander |
|
||||
| 14.04 LTS | trusty | Trusty Tahr |
|
||||
| 14.10 | utopic | Utopic Unicorn |
|
||||
|
||||
### 参考
|
||||
|
||||
Ubuntu 相关内容参考自 <http://mirror.bjtu.edu.cn/cn/howto.html>
|
||||