feat: 初始化导航网站项目

添加 Flask 导航站应用,包含 Docker 部署配置、SQLite 数据库、静态资源及 CI/CD 流水线。
这个提交包含在:
2026-08-21 16:36:08 +08:00
当前提交 bff5252ff5
共修改 326 个文件,包含 138697 行新增和 0 行删除
+65
查看文件
@@ -0,0 +1,65 @@
<!DOCTYPE html>
<html>
<head>
{% block head %}
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge, chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0">
<meta name="built_at" content="2023-01-21T03:52:36+08:00">
<meta name="established_at" content="2016-10-01T00:00+08:00">
<title>瓦力导航 · wali-Navi | A Navigation Website for wali</title>
<meta property="og:title" content="瓦力导航 · wali-Navi" />
<meta name="author" content="iROCKBUNNY" />
<meta property="og:locale" content="zh_CN" />
<meta name="description" content="A Navigation Website for wali" />
<meta property="og:description" content="A Navigation Website for wali" />
<link rel="canonical" href="https://nav.iwali.top/" />
<meta property="og:url" content="https://nav.iwali.top/" />
<meta property="og:site_name" content="瓦力导航 · wali-Navi" />
<meta property="og:type" content="website" />
<meta name="twitter:card" content="summary" />
<meta property="twitter:title" content="瓦力导航 · wali-Navi" />
<link rel="stylesheet" type="text/css" href="/static/fomantic-ui/semantic.min.css">
<link rel="stylesheet" type="text/css" href="/static/css/common.css">
<link rel="stylesheet" type="text/css" href="/static/css/masthead.css">
<link rel="stylesheet" type="text/css" href="/static/css/home.css">
<link rel="apple-touch-icon" type="image/png" href="/static/images/apple-touch-icon.png">
<link rel="icon" type="image/x-icon" href="/static/images/favicon.ico">
{% endblock %}
</head>
<body>
{% include 'base/menu-mobile.html' %}
<div class="pusher">
<div class="ui inverted vertical masthead center aligned segment zoomed">
{% include 'base/menu.html' %}
{% block header %}
{% endblock %}
</div>
{% block content %}
{% endblock %}
{% include 'base/footer.html' %}
</div>
<script type="text/javascript" src="/static/js/jquery/jquery.min.js"></script>
<script type="text/javascript" src="/static/js/jquery/jquery.lazyload.js"></script>
<script type="text/javascript" src="/static/fomantic-ui/semantic.min.js"></script>
<script type="text/javascript" src="/static/fomantic-ui/tablesort.js"></script>
<script src="https://unpkg.com/masonry-layout@4/dist/masonry.pkgd.min.js"></script>
<script type="text/javascript" src="/static/js/common.js"></script>
<script type="text/javascript" src="/static/js/dayjs/dayjs.min.js"></script>
<script type="text/javascript" src="/static/js/dayjs/zh-cn.js"></script>
<script type="text/javascript" src="/static/js/dayjs/relativeTime.js"></script>
<script type="text/javascript" src="/static/js/js.cookie.min.js"></script>
<script type="text/javascript" src="/static/js/suggest-query.min.js"></script>
<script type="text/javascript" src="/static/js/hitokoto.js"></script>
{% block footer_script %}
{% endblock %}
</body>
</html>
+37
查看文件
@@ -0,0 +1,37 @@
<div class="ui inverted vertical footer segment">
<div class="ui container">
<div class="ui stackable inverted divided equal height stackable grid">
<div class="six wide column">
<h4 class="ui inverted header">站群</h4>
<div class="ui inverted link list">
<a class="ui mini label" href="https://iwali.top/" target="_blank">iwali</a>
<a class="ui mini label" href="https://status.iwali.top/" target="_blank">监控</a>
<a class="ui mini label" href="https://wakapi.iwali.top/" target="_blank">wakapi</a>
<a class="ui mini label" href="https://disk.iwali.top/" target="_blank">云盘</a>
<a class="ui mini label" href="https://kb.iwali.top/" target="_blank">看板</a>
</div>
</div>
<div class="three wide column">
<h4 class="ui inverted header">About</h4>
<div class="ui inverted link list">
<a class="item" href="https://iwali.top" target="_blank">iwali</a>
<a class="item" href="/donate/">Donate</a>
</div>
</div>
<div class="seven wide column">
<h4 class="ui inverted header">瓦力导航 · wali-Navi</h4>
<div class="ui inverted link list">
<div class="item">&copy; 2023 iwali</div>
<div class="item">Designed and built by iwali.</div>
<a class="item" href="/analytics/">
Visits / Page Views:
<span id="today-visits">{{ get_today_data()['views'] }}</span> / <span id="today-actions">{{ get_today_data()['online'] }}</span> (Today)
&middot;
<span id="yesterday-visits">{{ get_yesterday_data()['views'] }}</span> / <span id="yesterday-actions">{{ get_yesterday_data()['online'] }}</span> (Yesterday)
</a>
</div>
</div>
</div>
</div>
</div>
+35
查看文件
@@ -0,0 +1,35 @@
<div class="ui large top fixed borderless hidden menu">
<div class="ui container">
<a class="header item" href="/">
<div class="ui middle aligned image">
<img class="logo-image" src="/static/images/logo-dark.svg" alt="Logo">
</div>
<div class="logo-text">Wali-Navi</div>
</a>
<a class="item" href="/"><i class="home icon"></i>首页</a>
<a class="item" href="/customize.html"><i class="tools icon"></i>定制化</a>
<a class="item" href="/analytics.html"><i class="chart bar icon"></i>访客分析</a>
<div class="right menu">
{% if get_user() == None %}
<a class="item" href="/login" data-content="Login"><i class="sign in alternate icon"></i></a>
<a class="item" href="/register" data-content="Sign-Up"><i class="user plus icon"></i></a>
{% else %}
<a id="username" class="item" href="/customize.html" target="_blank" data-user="{{ get_user() }}">
<div id="user-avatar" style="width:30px;height:30px;"></div> {{ get_user() }}
</a>
<a class="item" href="/logout"><i class="icon sign out alternate"></i></a>
{% endif %}
</div>
</div>
</div>
<div class="ui vertical inverted sidebar menu">
<a class="header item" href="/">
<div class="ui middle aligned image">
<img class="logo-image" src="/static/images/logo-white.svg" alt="Logo">
</div>
<div class="logo-text">Wali-Navi</div>
</a>
<a class="item" href="/"><i class="home icon"></i>首页</a>
<a class="item" href="/customize.html"><i class="tools icon"></i>定制化</a>
<a class="item" href="/analytics.html"><i class="chart bar icon"></i>访客分析</a>
</div>
+26
查看文件
@@ -0,0 +1,26 @@
<!-- default -->
<div class="ui container">
<div class="ui large borderless inverted menu" style="border: none;">
<div class="toc link icon item"><i class="sidebar icon"></i></div>
<a class="header item" href="/">
<div class="ui middle aligned image">
<img class="logo-image" src="/static/images/logo-white.svg" alt="Logo">
</div>
<div class="logo-text">Wali-Navi</div>
</a>
<a class="item" href="/"><i class="home icon"></i>首页</a>
<a class="item" href="/customize.html"><i class="tools icon"></i>定制化</a>
<a class="item" href="/analytics.html"><i class="chart bar icon"></i>访客分析</a>
<div class="right menu">
{% if get_user() == None %}
<a class="item" href="/login" data-content="Login"><i class="sign in alternate icon"></i></a>
<a class="item" href="/register" data-content="Sign-Up"><i class="user plus icon"></i></a>
{% else %}
<a id="username" class="item" href="/customize.html" target="_blank" data-user="{{get_user()}}">
<div id="user-avatar" style="width:30px;height:30px;"></div> {{ get_user() }}
</a>
<a class="item" href="/logout"><i class="icon sign out alternate"></i></a>
{% endif %}
</div>
</div>
</div>