init: Hugo + Stack 主题 + 首批 3 篇文章 + Gitea Actions 自动部署

- Stack 主题 + 自定义 padding 与标题样式 (assets/scss/custom.scss)
- 内容: HTTPS 旅程 / AI 工程师地图 / Xray Reality
- 页面: 首页 / 文章 / 归档 / 关于 / 搜索
- CI: Gitea Actions push → hugo --minify → rsync 到 NAS
  应用 Gitea Actions 模板 §4.4-4.5 经验: paths-ignore (注意不排除 **.md)
  + concurrency cancel-in-progress + summary
This commit is contained in:
2026-05-03 15:56:04 +08:00
commit 9bbab6a135
18 changed files with 2576 additions and 0 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

+10
View File
@@ -0,0 +1,10 @@
<svg xmlns="http://www.w3.org/2000/svg" width="240" height="240" viewBox="0 0 240 240">
<defs>
<linearGradient id="g" x1="0%" y1="0%" x2="100%" y2="100%">
<stop offset="0%" stop-color="#3b82f6"/>
<stop offset="100%" stop-color="#8b5cf6"/>
</linearGradient>
</defs>
<rect width="240" height="240" rx="120" fill="url(#g)"/>
<text x="120" y="158" font-size="120" text-anchor="middle" fill="#ffffff" font-family="-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif" font-weight="700"></text>
</svg>

After

Width:  |  Height:  |  Size: 550 B

+10
View File
@@ -0,0 +1,10 @@
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"*": [
"..\\themes\\stack\\assets\\*"
]
}
}
}
+48
View File
@@ -0,0 +1,48 @@
// 卡片 padding 比 Stack 默认 20/25/30 略宽一点,保证所有内容(含引用/code/图片)
// 都呆在 padding 内不顶到边
:root {
--card-padding: 24px;
}
@media (min-width: 768px) {
:root {
--card-padding: 28px;
}
}
@media (min-width: 1280px) {
:root {
--card-padding: 32px;
}
}
// 取消 Stack 默认的"标题 hanging 出 .article-content 左 padding"效果
// 让 H1-H6 的左竖线不再顶到卡片边框,留出呼吸空间
.article-content {
h1, h2, h3, h4, h5, h6 {
margin-inline-start: 0;
padding-inline-start: 0.6em;
// 锚点 # 浮在标题文字左外侧,避免和竖线重叠
a.header-anchor {
left: auto;
right: 100%;
width: 1.4em;
}
}
// 取消 Stack 默认让 blockquote / figure / code / table 等"独立块"用负 margin
// hanging 出卡片左右边缘的设计,让所有内容统一呆在 article-content 的 padding 内
blockquote,
figure,
.highlight,
pre,
.gallery,
.video-wrapper,
.table-wrapper,
.s_video_simple {
margin-left: 0;
margin-right: 0;
width: 100%;
}
}