mirror-web/_layouts/index.html
Harry Chen 79bde783d6 Fix some styles
Signed-off-by: Harry Chen <i@harrychen.xyz>
2024-04-21 13:17:18 +08:00

229 lines
9.2 KiB
HTML

<!DOCTYPE html>
<html {% if site.issue %}class="index-issue"{% endif %}>
{% include head.html notArticle=true %}
<body>
{% unless page.legacy or site.issue %}
{% include legacy_notes.html %}
{% endunless %}
{% include nav.html %}
<div id="mirrors">
<div class="spacing hidden-xs"></div>
<div class="container">
<div class="row">
{% if site.issue %}
<div class="col-{% if page.legacy %}xs{% else %}lg{% endif %}-12 table-responsive">
<div class="alert text-center" id="cover-alert">
<h1>{{ site.school }}开源软件镜像站</h1>
<h3>暂时无法提供服务</h3>
<div class="text-end">
<img src="/static/img/candle.jpg"
srcset="/static/img/candle.jpg 1x,
/static/img/candle@2x.jpg 2x"
/>
</div>
<div class="clearfix"></div>
<p>{{ site.issue }}</p>
{% if site.backtime %}
<p>预计恢复时间: {{ site.backtime }}</p>
{% endif %}
</div>
</div>
</div>
<div class="row">
{% else %}
<div class="col-lg-8 {% if page.legacy %}col-8{% else %}col-12{% endif %} table-responsive" id="mirror-list">
<div class="flex-row d-flex">
<h3 id="mirror-title" class="align-self-center">{% fa_svg fas.fa-cube %} 镜像列表 </h3>
{% unless page.legacy %}
<input type="search" v-model.trim="filter" id="search" ref="search" placeholder="按 / 搜索" autocomplete="off" class="ms-auto d-inline-flex align-self-center">
{% endunless %}
</div>
<table class="table row table-hover" v-if="mirrorList.length">
<thead>
<tr class="row">
<th class="col-8 col-lg-7 col-xl-8">Name</th>
<th class="col-4 col-lg-5 col-xl-4">Last Update</th>
</tr>
</thead>
<tbody class="table-group-divider">
{% if page.legacy %}
{% raw %}
{{mirs}}
<tr class="row status-{{status}}">
<td>
<a class="mirror-item-label" href="{{url}}" title="{{description}}">
{{name}}
</a>
{{if is_new}}
<span class="badge badge-new">new</span>
{{/if}}
{{if help_url}}
<a href="{{help_url}}"><i aria-hidden="true" class="question-circle" title="Help">{% endraw %}{% fa_svg fas.fa-circle-question %}{% raw %}</i><span class="visually-hidden">[Help]</span></a>
{{/if}}
</td>
<td>
{{last_update}}{{if show_status}}<span class="badge badge-status {{label}}">{{status}}</span>{{/if}}
</td>
</tr>
{{/mirs}}
{% endraw %}
{% else %}
{% raw %}
<tr v-for="mir in filteredMirrorList" :class="['row', 'status-'+mir.status]" :key="mir.name">
<td class="col-8 col-lg-7 col-xl-8">
<a class="mirror-item-label" data-bs-toggle="popover" data-bs-trigger="hover" data-bs-placement="right"
:data-bs-content="mir.description" :href="getURL(mir)" :aria-label="mir.name + ', ' + mir.description">
{{mir.name}}
<span class="badge badge-new" v-if='mir.is_new'>new</span>
<a v-if='mir.help_url' :href="mir.help_url"><i aria-hidden="true" class="question-circle" title="Help">{% endraw %}{% fa_svg fas.fa-circle-question %}{% raw %}</i><span class="visually-hidden">[Help]</span></a>
<a v-if='mir.github_release' href="javascript:void(0)"><i aria-hidden="true" title="GitHub Release">{% endraw %}{% fa_svg fab.fa-github %}{% raw %}</i><span class="visually-hidden">[GitHub Release]</span></a>
</td>
<td class="col-4 col-lg-5 col-xl-4">
{{mir.last_update}}<span v-if="mir.show_status" :class="['badge', 'badge-status', mir.label, 'd-none', 'd-md-inline-block']">{{mir.status}}</span>
</td>
</tr>
{% endraw %}
{% endif %}
</tbody>
</table>
{% unless page.legacy %}
<div v-else class="sk-wave">
<div class="sk-rect sk-rect1"></div>
<div class="sk-rect sk-rect2"></div>
<div class="sk-rect sk-rect3"></div>
<div class="sk-rect sk-rect4"></div>
<div class="sk-rect sk-rect5"></div>
</div>
{% endunless %}
</div>
{% endif %}
{% unless site.issue %}
<div class="col-lg-4 {% if page.legacy %}col-4{% else %}col-12{% endif %}">
<div class="spacing d-none d-lg-block"></div>
{% endunless %}
<div id="news" {%if site.issue%}class="col-lg-3"{%endif%}>
<h4>{% fa_svg fas.fa-bullhorn %} 新闻公告 </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>
{% endfor %}
</ul>
<div class="text-end"><a href="/news/"> more {% fa_svg fas.fa-angles-right %} </a></div>
</div>
<div class="thuhidden {%if site.issue%}col-lg-4{%endif%}">
<h4> {% fa_svg fas.fa-link %} 域名选择 </h4>
<ul>
<li><a href="{{ site.url }}">{{ site.url }}</a> 自动选择 </li>
{% if site.urlv6 %}
<li><a href="{{ site.urlv6 }}">{{ site.urlv6 }}</a> 只解析 IPv6</li>
{% endif %}
{% if site.urlv4 %}
<li><a href="{{ site.urlv4 }}">{{ site.urlv4 }}</a> 只解析 IPv4</li>
{% endif %}
</ul>
</div>
{% unless page.legacy or site.hide_download or site.issue %}
<div id="download-link">
<h4>{% fa_svg far.fa-file-zipper %} 下载链接 </h4>
<p>常用发行版 ISO 和应用软件安装包直接下载:</p>
<div class="justify-content-center d-flex flex-row flex-grow-1 w-100">
<button type="button" class="btn btn-info" data-bs-toggle="modal" data-bs-target="#isoModal">
获取下载链接
</button>
</div>
</div>
{% endunless %}
<div class="thuhidden {%if site.issue%}col-lg-3{%endif%}">
<h4> {% fa_svg far.fa-envelope %} 联系我们 </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 class="eib1gieB"></a></li>
<li><strong>在线交流</strong> <br /> <a href="https://web.libera.chat/#tuna"> #tuna at Libera.Chat </a></li>
</ul>
</div>
<div {%if site.issue%}class="col-lg-2"{%endif%}>
<h4> {% fa_svg fas.fa-arrow-up-right-from-square %} 相关链接 </h4>
<ul>
<li><a href="/help/">使用帮助</a></li>
{% unless site.issue %}
<li><a href="/status/#server-status">服务器状态</a></li>
<li><a href="/status/#syncing-status">同步状态</a></li>
{% endunless %}
<li class="thuhidden"><a href="https://tuna.moe/">清华大学 TUNA 协会</a></li>
<li><a href="https://github.com/tuna/tunasync">镜像管理器源码</a></li>
<li><a href="https://github.com/tuna/tunasync-scripts">自定义镜像脚本</a></li>
</ul>
</div>
{% unless site.hide_mirrorz %}
<div class="thuhidden {%if site.issue%}col-lg-2{%endif%}">
<h4> {% fa_svg fas.fa-paperclip %} 友情链接 </h4>
<ul>
<li><a href="{{ site.mirrorz_link }}">{{ site.mirrorz_desc }}</a></li>
<ul>
</div>
{% endunless %}
{% unless site.issue %}
</div>
{% endunless %}
</div>
</div><!--/container -->
</div><!--/mirrors -->
{% include footer.html %}
{% unless page.legacy or site.issue %}
<!-- iso download wizard modal -->
<!-- Modal -->
{% raw %}
<div class="modal fade" id="isoModal" tabindex="-1" role="dialog" aria-labelledby="isoModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title" id="isoModalLabel">获取安装镜像</h4>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close">
</button>
</div>
<div class="modal-body">
<div class="row" v-if="availableCategories.length > 0">
<div class="col-lg-12">
<ul class="nav nav-tabs">
<li class="nav-item" role="presentation" v-for="cat in availableCategories">
<a
:class="[curCategory === cat ? 'active' : '', 'nav-link']"
@click="switchCategory(cat)"
href="#"
>{{ knownCategories[cat] ? knownCategories[cat] : cat }}</a>
</li>
</ul>
</div>
<div class="col-lg-3">
<ul class="nav nav-pills flex-column">
<li class="nav-item" v-for="distro in curDistroList">
<a href="#" @click="switchDistro(distro)" :class="[selected.distro == distro.distro ? 'active' : '', 'nav-link']">{{ distro.distro }}</a>
</li>
</ul>
</div>
<div class="col-lg-9">
<h3>{{selected.distro}}</h3>
<ul>
<template v-for="url in selected.urls">
<li><a :href="url.url">{{url.name}}</a></li>
</template>
</ul>
</div>
</div>
</div>
</div>
</div>
</div><!-- /iso download wizard modal -->
{% endraw %}
{% endunless %}
</body>
{% raw %}
{% endraw %}
{% unless page.legacy or site.issue %}
<script src="/static/js/index.js?{{ site.data['hash'] }}"></script>
{% endunless %}
</html>
<!--
vim: ts=2 sts=2 sw=2 noexpandtab
-->