Add support for legacy operating systems

Signed-off-by: Harry Chen <i@harrychen.xyz>
This commit is contained in:
Harry Chen 2020-03-31 17:38:04 +08:00
parent 90ccdbdb7e
commit 7988e9b2bb
14 changed files with 563 additions and 29 deletions

View File

@ -12,6 +12,7 @@
<link rel="stylesheet" href="/static/css/font-awesome.min.css" >
<link rel="stylesheet" href="/static/css/spinkit.css">
<link rel="stylesheet" href="/static/css/style.css">
<link rel="stylesheet" href="/static/css/win95.css">
<script src="/static/js/jquery.min.js"></script>
<script src="/static/js/bootstrap.min.js"></script>
<script src="/static/js/bootstrap-select.min.js"></script>

View File

@ -1,4 +1,4 @@
<div class="navbar navbar-default" role="navigation">
<div class="navbar navbar-default navbar-95" role="navigation">
<div class="container">
<div class="navbar-header">
{% unless page.legacy %}
@ -13,12 +13,12 @@
<span class="thuhidden">
{% if site.logo %}
<picture>
<source
<!-- <source
srcset="/static/img/logo-small-dark.png 1x,
/static/img/logo-small-dark@2x.png 2x,
/static/img/logo-small-dark@3x.png 3x,
/static/img/logo-small-dark@4x.png 4x"
media="(prefers-color-scheme: dark)"/>
media="(prefers-color-scheme: dark)"/> -->
<img src="/static/img/logo-small.png"
srcset="/static/img/logo-small.png 1x,
/static/img/logo-small@2x.png 2x,
@ -32,12 +32,12 @@
</div>
<div class="{% unless page.legacy %}navbar-collapse collapse {% endunless %}navbar-right">
<ul class="nav navbar-nav" role="menubar">
<li role="none"><a role="menuitem" href="{{ site.homelink }}">HOME</a></li>
<li role="none"><a role="menuitem" href="https://tuna.moe/events/">EVENTS</a></li>
<li role="none"><a role="menuitem" href="https://tuna.moe/blog/">BLOG</a></li>
<li role="none"><a role="menuitem" href="https://tuna.moe/feed.xml">RSS</a></li>
<li role="none"><a role="menuitem" href="https://podcast.tuna.moe/">PODCAST</a></li>
<li role="none" class="active"><a role="menuitem" aria-checked="true" href="{{ site.url }}">MIRRORS</a></li>
<li class="btn" role="none"><a role="menuitem" href="{{ site.homelink }}">HOME</a></li>
<li class="btn" role="none"><a role="menuitem" href="https://tuna.moe/events/">EVENTS</a></li>
<li class="btn" role="none"><a role="menuitem" href="https://tuna.moe/blog/">BLOG</a></li>
<li class="btn" role="none"><a role="menuitem" href="https://tuna.moe/feed.xml">RSS</a></li>
<li class="btn" role="none"><a role="menuitem" href="https://podcast.tuna.moe/">PODCAST</a></li>
<li class="btn" role="none" class="active"><a role="menuitem" aria-checked="true" href="{{ site.url }}">MIRRORS</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>

View File

@ -11,7 +11,7 @@
<div class="col-sm-2 hidden-xs">
<ul class="nav nav-pills nav-stacked" id="help-nav">
{% for h in help_pages %}
<li{% if h.mirrorid == page.mirrorid%} class="active"{%endif%}><a href="{{h.url}}">{{h.mirrorid}}</a></li>
<li{% if h.mirrorid == page.mirrorid%} class="active"{%endif%}><a class="btn" href="{{h.url}}">{{h.mirrorid}}</a></li>
{% endfor %}
</ul>
</div><!-- sidenave -->

View File

@ -10,14 +10,14 @@
<div class="spacing hidden-xs"></div>
<div class="container">
<div class="row">
<div class="col-{% if page.legacy %}xs{% else %}md{% endif %}-8 table-responsive" id="mirror-list">
<div class="row">
<div class="col-{% if page.legacy %}xs{% else %}md{% endif %}-8 table-responsive card" id="mirror-list">
<div class="row card-header">
<h3 id="mirror-title"><span class="fa fa-cube"></span> 镜像列表 </h3>
{% unless page.legacy %}
<input type="search" v-model="filter" id="search" placeholder="搜索" autocomplete="off">
{% endunless %}
</div>
<table class="table" v-if="mirrorList.length">
<table class="table card-body" v-if="mirrorList.length">
<thead>
<tr class="row">
<th class="col-{% if page.legacy %}xs{% else %}sm{% endif %}-8">Name</th>
@ -79,8 +79,8 @@
<div class="spacing hidden-xs"></div>
<div id="wizard">
</div>
<div id="news">
<h4><span class="fa fa-bullhorn"></span> 新闻公告 </h4>
<div id="news" class="card">
<h4 class="card-header"><span class="fa fa-bullhorn"></span> 新闻公告 </h4>
<ul>
{% for news in site.categories.news limit: 3%}
<li><a href="/news/#{{news.slug}}"><strong>{{news.date | date: "%Y-%m-%d"}}</strong> {{news.title}}</a></li>
@ -88,8 +88,8 @@
</ul>
<div class="text-right"><a href="/news/"> more <span class="fa fa-angle-double-right"></span> </a></div>
</div>
<div class="thuhidden">
<h4> <span class="fa fa-link"></span> 域名选择 </h4>
<div class="thuhidden card">
<h4 class="card-header"> <span class="fa fa-link"></span> 域名选择 </h4>
<ul>
<li><a href="{{ site.url }}">{{ site.url }}</a> 自动选择 </li>
{% if site.urlv6 %}
@ -101,24 +101,24 @@
</ul>
</div>
{% unless page.legacy %}
<div id="download-link">
<h4><span class="fa fa-file-archive-o"></span> 下载链接 </h4>
<div id="download-link" class="card">
<h4 class="card-header"><span class="fa fa-file-archive-o"></span> 下载链接 </h4>
<p>常用发行版 iso 和应用工具安装包直接下载</p>
<button type="button" class="btn btn-info" data-toggle="modal" data-target="#isoModal">
获取下载链接
</button>
</div>
{% endunless %}
<div class="thuhidden">
<h4> <span class="fa fa-envelope-o"></span> 联系我们 </h4>
<div class="thuhidden card">
<h4 class="card-header"> <span class="fa fa-envelope-o"></span> 联系我们 </h4>
<ul>
<li><strong>意见反馈</strong> <br /> <a href="https://github.com/tuna/issues">https://github.com/tuna/issues</a></li>
<li><strong>发送邮件</strong> <br /> <a id="eib1gieB"></a></li>
<li><strong>在线交流</strong> <br /> <a href="https://fishroom.tuna.moe/log/tuna/today"> #tuna at freenode </a></li>
</ul>
</div>
<div>
<h4> <span class="fa fa-external-link"></span> 相关链接 </h4>
<div class="card">
<h4 class="card-header"> <span class="fa fa-external-link"></span> 相关链接 </h4>
<ul>
<li><a href="/help/">使用帮助</a></li>
<li><a href="/status/#server-status">服务器状态</a></li>

View File

@ -12,14 +12,14 @@ title: 镜像站新闻
<div class="spacing"></div>
<div class="container">
<div class="row">
<div class="col-md-2"></div>
<div class="col-md-2 card"></div>
<div class="col-md-8">
<div>
<h2><span class="fa fa-newspaper-o"></span> 镜像站新闻</h2>
<div id="news-content">
{% for news in site.categories.news %}
<article>
<div class="head" id="{{news.slug}}">
<div class="head card-header" id="{{news.slug}}">
<h3><a href="{{news.url}}"># {{news.title}}</a></h3>
</div>
<div class="meta">

View File

@ -34,7 +34,7 @@ $color_row_hover: #e0f3fc;
$color_row_hover_dark: #325475;
@mixin dark {
@media (prefers-color-scheme: dark) {
@media (prefers-color-scheme: light) {
@content
}
}

531
static/css/win95.css Normal file
View File

@ -0,0 +1,531 @@
/*
WIN95.CSS
https://github.com/AlexBSoft/win95.css
Author: Alex B (alex-b.me)
Version: 1.1.0
*/
html {
position: relative;
min-height: 100%;
}
/*
Body styles
*/
body {
font-family: "MS Sans Serif",Tahoma,Verdana,Segoe,sans-serif;
/* background: teal; */
color: white;
padding-bottom: 28px;
background-image: url(/static/img/win95/clouds2.jpg);
color:#212529;
}
div.help-content > p {
color: white;
}
.bg-95 {
background-image: url(/static/img/win95/clouds2.jpg);
color:#212529;
}
header {
position: relative;
background-color: black;
height: 100vh;
min-height: 25rem;
width: 100%;
overflow: hidden;
}
header video {
position: absolute;
top: 50%;
left: 50%;
min-width: 100%;
min-height: 100%;
width: auto;
height: auto;
z-index: 0;
-ms-transform: translateX(-50%) translateY(-50%);
-moz-transform: translateX(-50%) translateY(-50%);
-webkit-transform: translateX(-50%) translateY(-50%);
transform: translateX(-50%) translateY(-50%);
}
header .container {
position: relative;
z-index: 2;
}
/*
Scrollbar (only chrome & safari)
*/
::-webkit-scrollbar {
width: 12px;
}
::-webkit-scrollbar-button:end:increment,::-webkit-scrollbar-button:start:decrement {
display: block
}
::-webkit-scrollbar-button:vertical:end:decrement,::-webkit-scrollbar-button:vertical:start:increment {
display: none
}
::-webkit-scrollbar-button:vertical:increment {
width: 18px;
background: silver url(/static/img/win95/combo.png) no-repeat 50%;
height: 18px;
margin: 1px 1px 1px 10px;
-webkit-transform: rotateX(-90deg);
transform: rotateX(-90deg);
-webkit-transform: rotateY(-90deg);
transform: rotateY(-90deg);
border: 1px outset #fff;
border-shadow: 1px 1px #000
}
::-webkit-scrollbar-button:vertical:decrement {
width: 11px;
background: silver url(/static/img/win95/comboup.png) no-repeat 50%;
height: 16px;
margin: 1px 1px 1px 10px;
transform: rotateX(180deg);
-webkit-transform: rotateY(180deg);
border: 1px outset #fff;
border-shadow: 1px 1px #000
}
::-webkit-scrollbar-track{
background-image: url(/static/img/win95/background.bmp)
}
::-webkit-scrollbar-thumb:vertical {
border: 1px outset #fff;
border-shadow: 1px 1px #000;
height: 40px;
background-color: silver
}
::-webkit-scrollbar-corner:vertical {
background-color: #000
}
:-webkit-scrollbar-button:start:decrement,::-webkit-scrollbar-button:end:increment {
display: block
}
::-webkit-scrollbar-button:horizontal:end:decrement,::-webkit-scrollbar-button:horizontal:start:increment {
display: none
}
::-webkit-scrollbar-button:horizontal:increment {
background: silver url(/static/img/win95/comboright.png) no-repeat 50%;
-webkit-transform: rotateX(-90deg);
transform: rotateX(-90deg);
-webkit-transform: rotateY(-90deg);
transform: rotateY(-90deg)
}
::-webkit-scrollbar-button:horizontal:decrement,::-webkit-scrollbar-button:horizontal:increment {
width: 18px;
height: 18px;
margin: 1px 1px 1px 10px;
border: 1px outset #fff;
border-shadow: 1px 1px #000
}
::-webkit-scrollbar-button:horizontal:decrement {
background: silver url(/static/img/win95/comboleft.png) no-repeat 50%;
transform: rotateX(180deg);
-webkit-transform: rotateY(180deg)
}
::-webkit-scrollbar-track-piece {
margin: 1px;
}
::-webkit-scrollbar-thumb:horizontal {
border: 1px outset #fff;
border-shadow: 1px 1px #000;
height: 40px;
background-color: silver
}
/*
Button styles
*/
.btn{
border-width: 2px;
border-style: outset;
border-color: buttonface;
border-right-color: #424242;
border-bottom-color: #424242;
background: silver;
color: black;
padding: 0 0 4px;
border-radius: 1px;
}
.btn:hover {
border: 2px inset #fff;
background: silver;
color: #424242;
box-shadow: -1px -1px #000;
}
.btn:focus {
border: 2px inset #fff !important;
background: silver;
color: #424242;
box-shadow: -1px -1px #000 !important;
outline: 0 !important;
background: url(/static/img/win95/background.bmp);
}
.btn:active {
border: 2px inset #fff !important;
color: #424242;
box-shadow: -1px -1px #000 !important;
outline: 0 !important;
background: url(/static/img/win95/background.bmp);
}
.btn-primary{
padding-left: 8px;
padding-right: 8px;
}
button:focus{
outline: 1px dotted;
}
.btn.disabled,.btn:disabled{
cursor: default;
background-color: silver;
border-style: outset;
border-color: buttonface;
border-right-color: #424242;
border-bottom-color: #424242;
color: grey;
text-shadow: 1px 1px #fff;
}
/*
CARDS
*/
.card{
border: solid;
border-width: 2px;
border-bottom-color: #424242;
border-right-color: #424242;
border-left-color: #fff;
border-top-color: #fff;
background: silver;
background-color: silver;
color:#212529;
}
.card.square{
border-radius: 0px;
}
.card.square .card-header{
border-radius: 0px;
}
.card.w95 .card-header{
background: #08216b;
/* OR #000082 is better?*/
}
.card-header{
background: -webkit-linear-gradient(left,#08216b,#a5cef7);
color: #fff;
display: block;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
padding-top: 2px;
padding-bottom: 1px;
text-align: left;
}
.card-header.icon{
padding-left: 4px;
}
.header-inactive{
background: gray !important;
}
/*
NAVBAR
*/
.navbar-95{
background: silver;
margin: 0;
border: 1px outset #fff;
min-height: 40px;
padding: 0 6px;
color:#212529;
}
.navbar-brand{
color:#212529;
padding: 0 6px;
}
.nav-link{
text-decoration: none;
display: inline-block;
padding: 0 9px;
color:#212529;
}
.dropdown-menu{
display: none;
min-width: 119px;
padding: 0 0 2px;
margin-left: 12px;
font-size: 12px;
list-style-type: none;
background: silver;
border: 1.8px outset #fff;
border-radius: 0;
-webkit-box-shadow: 1.5px 1.5px #000;
box-shadow: 1.5px 1.5px #000;
}
.dropdown-item{
padding: 1px 0 1px 2px;
}
.dropdown-item:hover{
color:#08216b;
}
.navbar-light .navbar-toggler.collapsed .navbar-toggler-icon {
width: 32px;
background: url(/static/img/win95/icons/directory_closed_cool-5.png);
}
.navbar-light .navbar-toggler .navbar-toggler-icon {
width: 32px;
background: url(/static/img/win95/icons/directory_open_cool-5.png);
}
.navbar-toggler{
width: auto;
}
/*
FOOTER
*/
.taskbar{
cursor: default;
background-color: silver;
margin: 0;
padding: 0 8px;
height: 28px;
position: static;
bottom: 0;
border-top: 2px outset #fff;
z-index: 228;
width: 100%;
margin-right: 0px;
position: absolute;
bottom: 0;
}
.taskbar .start-button {
cursor: default;
display: inline-block;
border: 1px outset #fff;
padding: 0 0 0 2px;
box-shadow: 1px 1px #000;
margin-bottom: 2px;
font-size: 14px;
}
.taskbar .time {
color:#212529;
margin-top: 2px;
text-align: right;
font-size: 14px;
margin-right: 0px;
}
#page-content {
flex: 1 0 auto;
}
/*
ICONS
*/
.icon-16{
margin-bottom:2px;
max-height: 16px;
}
.icon-16-4{
margin-bottom:4px;
max-height: 16px;
}
/*
FORMS
*/
.form-95 {
width: 100%;
border: 2px inset #d5d5d5;
color: #424242;
background: #fff;
box-shadow: -1px -1px 0 0 #828282;
margin-top: 4px;
padding-left:2px;
}
.bootstrap-select,
textarea:focus,
textarea.form-control:focus,
input.form-control:focus,
input[type=text]:focus,
input[type=password]:focus,
input[type=email]:focus,
input[type=number]:focus,
[type=text].form-control:focus,
[type=password].form-control:focus,
[type=email].form-control:focus,
[type=tel].form-control:focus,
[contenteditable].form-control:focus {
outline: 0 !important;
}
input[type="radio"],input[type="checkbox"] {
position: absolute;
left: -9999px;
}
.form-check-label::before, .form-check-label::after {
content: '';
position: absolute;
top: 0;
left: 0;
}
.form-check-label{
margin-left: 6px;
}
input[type="radio"] + .form-check-label::before,
input[type="radio"] + .form-check-label::after {
border-radius: 50%;
}
.form-check-label::before {
height: 20px;
width:20px;
top: 3px;
padding-right: 2px;
border: 2px inset #d5d5d5;
background: white;
box-shadow: -1px -1px 0 0 #828282;
}
input[type="radio"] + .form-check-label::after {
display: none;
width: 8px;
height: 8px;
margin: 6px;
top: 3px;
background: black;
}
input[type="checkbox"] + .form-check-label::after {
display: none;
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23000' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e");
width: 12px;
height: 12px;
margin: 4px;
top: 3px;
}
input:checked + .form-check-label::after {
display: block;
}
/*
TABS
*/
.tab-content {
background: silver;
border: solid;
border-width: 2px;
border-bottom-color: #424242;
border-right-color: #424242;
border-left-color: #fff;
border-top-color: silver;
padding: 1rem 1.4rem;
}
.nav-tabs {
border-bottom: 2px solid white;
}
.nav-tabs .nav-item {
position: relative;
margin-bottom: 0;
background: #c0c0c0;
color: black;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
border-right: 1px solid #5A5A5A;
box-sizing: border-box;
}
.nav-tabs .nav-item .nav-link {
color: black;
padding: .2rem 1.8rem;
box-sizing: border-box;
transform: none;
}
.nav-tabs .nav-item .nav-link.active {
position: relative;
background: #c0c0c0;
}
.nav-tabs .nav-item:not(:first-child) .nav-link.active {
border-left: 1px solid #5A5A5A;
}
.nav-tabs .nav-item:first-child{
border-left: 2px solid white;
}
.nav-tabs .nav-item .nav-link.active:after {
content: '';
display: block;
width: 100%;
height: 2px;
position: absolute;
left: 0;
bottom: -2px;
background: #c0c0c0;
}
.nav-tabs .nav-link {
border: 0;
padding: 1rem 1rem;
}
/*
MODAL
TODO: make it draggable;
*/
.modal-content{
box-shadow: 1px 1px 0 0 #424242;
border: 1px solid #fff;
border-right-color: #848484;
border-bottom-color: #848484;
background: silver;
padding: 2px;
}
.modal-header{
height: 32px;
background: -webkit-linear-gradient(left,#08216b,#a5cef7)!important;
color:white;
padding-top: 0px;
padding-bottom: 0px;
padding-left: 6px;
padding-right: 6px;
}
.modal-header .btn{
margin-top: 5px;
padding-bottom: 10px;
height: 22px;
width: 22px;
}
.modal-header .btn span{
position: absolute;
top: 6px;
right: 14px;
}
.modal-title{
padding-top: 2px;
padding-bottom: 1px;
}
.modal-footer{
padding: 6px;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 824 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

BIN
static/img/win95/combo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 B

View File

@ -8,8 +8,8 @@ permalink: /status/
{% include nav.html %}
<div id="status-page">
<div class="spacing hidden-xs"></div>
<div class="container">
<h3 id="server-status"> # 服务器监控 </h3>
<div class="container card">
<h3 id="server-status" class="card-header"> # 服务器监控 </h3>
<h4> # 网络流量 </h4>
<div class="row">
{% include status-pic.html name="service_traffic_IPv4" %}
@ -32,7 +32,9 @@ permalink: /status/
{% include status-pic.html name="cpu" %}
{% include status-pic.html name="memory" %}
</div>
<h3 id="syncing-status"># 同步状态</h3>
</div>
<div class="container card" style="margin-top: 1000px;">
<h3 id="syncing-status" class="card-header"># 同步状态</h3>
<table class="table table-condensed flat-md">
<thead class="hidden-xs hidden-sm">
<tr>