feat: 初始化导航网站项目

添加 Flask 导航站应用,包含 Docker 部署配置、SQLite 数据库、静态资源及 CI/CD 流水线。
这个提交包含在:
2026-08-21 16:36:08 +08:00
当前提交 bff5252ff5
共修改 326 个文件,包含 138697 行新增和 0 行删除
+235
查看文件
@@ -0,0 +1,235 @@
/* common.css */
.ui.hidden.menu {
display: none;
}
.logo-image {
width: 30px;
}
.logo-text {
margin-left: 10px;
font-size: 1.6em;
font-weight: normal;
display: inline-block;
vertical-align: middle;
}
.ui.masthead.segment {
padding: 1em 0em;
z-index: 1;
}
.ui.masthead h1.ui.header {
font-size: 3em;
font-weight: normal;
}
.ui.masthead h2.ui.header {
font-size: 1.7em;
font-weight: normal;
}
.ui.vertical.stripe {
padding: 8em 0em;
}
.ui.vertical.stripe .horizontal.divider {
margin: 3em 0em;
}
.ui.links.stripe.segment,
.ui.stats.stripe.segment,
.ui.qrcode.stripe.segment {
padding: 0em;
}
.ui.stats.stripe.segment .grid .column {
padding-top: 3em;
padding-bottom: 3em;
}
.ui.qrcode.stripe.segment .grid .column {
padding-top: 5em;
padding-bottom: 5em;
}
.ui.stackable.celled.grid .row .links.column .ui.top.attached.label {
border-radius: 0;
}
.ui.footer.segment {
padding: 5em 0em;
}
.ui.borderless.inverted.menu {
border-radius: 0;
}
.ui.borderless.inverted.menu .toc.item {
display: none;
border-radius: 0;
}
@media only screen and (max-width: 767px) {
.ui.fixed.menu {
display: none !important;
}
.ui.borderless.inverted.menu .item,
.ui.borderless.inverted.menu .menu {
display: none;
}
.ui.borderless.inverted.menu .toc.item {
display: block;
}
.ui.masthead h1.ui.header {
margin-top: 1em;
font-size: 1.8em;
}
.ui.masthead h2.ui.header {
margin-bottom: 1em;
font-size: 1.5em;
}
.ui.stripe.segment {
padding: 2em 0em;
}
.ui.stats.stripe.segment {
padding: 0em;
}
}
/* text colors */
.text-red {
color: #DB2828;
}
.text-orange {
color: #F2711C;
}
.text-yellow {
color: #FBBD08;
}
.text-olive {
color: #B5CC18;
}
.text-green {
color: #21BA45;
}
.text-teal {
color: #00B5AD;
}
.text-blue {
color: #2185D0;
}
.text-violet {
color: #6435C9;
}
.text-purple {
color: #A333C8;
}
.text-pink {
color: #E03997;
}
.text-brown {
color: #A5673F;
}
.text-grey {
color: #767676;
}
.text-black {
color: #1B1C1D;
}
.text-white {
color: #FFF;
}
/* text colors inverted */
.text-red-inverted {
color: #FF695E;
}
.text-orange-inverted {
color: #FF851B;
}
.text-yellow-inverted {
color: #FFE21F;
}
.text-olive-inverted {
color: #D9E778;
}
.text-green-inverted {
color: #2ECC40;
}
.text-teal-inverted {
color: #6DFFFF;
}
.text-blue-inverted {
color: #54C8FF;
}
.text-violet-inverted {
color: #A291FB;
}
.text-purple-inverted {
color: #DC73FF;
}
.text-pink-inverted {
color: #FF8EDF;
}
.text-brown-inverted {
color: #D67C1C;
}
.text-grey-inverted {
color: #DCDDDE;
}
.text-black-inverted {
color: #545454;
}
/* background colors */
.background-red {
background-color: #DB2828;
}
.background-orange {
background-color: #F2711C;
}
.background-yellow {
background-color: #FBBD08;
}
.background-olive {
background-color: #B5CC18;
}
.background-green {
background-color: #21BA45;
}
.background-teal {
background-color: #00B5AD;
}
.background-blue {
background-color: #2185D0;
}
.background-violet {
background-color: #6435C9;
}
.background-purple {
background-color: #A333C8;
}
.background-pink {
background-color: #E03997;
}
.background-brown {
background-color: #A5673F;
}
.background-grey {
background-color: #767676;
}
.background-black {
background-color: #1B1C1D;
}
.background-white {
background-color: #FFF;
}
code {
padding: 0 5px;
white-space: nowrap;
border: 1px solid #EAEAEA;
background-color: #F8F8F8;
border-radius: 3px;
}