2026-01-29 21:11:02 +08:00
2024-11-13 09:21:28 +08:00
2026-01-30 14:18:47 +08:00
2026-01-29 22:08:47 +08:00
2024-07-11 08:59:32 +08:00
2026-01-25 16:13:14 +08:00
2026-01-29 22:08:47 +08:00
2024-07-11 08:57:41 +08:00
2026-01-21 23:18:35 +08:00
2024-07-11 08:59:32 +08:00
2026-01-22 21:39:19 +08:00
2026-01-22 19:41:47 +08:00
2026-01-22 19:41:47 +08:00
2026-01-22 19:41:47 +08:00
2026-01-29 22:08:47 +08:00
2024-07-11 08:57:41 +08:00
2026-01-22 19:41:47 +08:00
2026-01-23 13:30:42 +08:00
2026-01-22 19:41:47 +08:00
2026-01-23 23:11:18 +08:00
2026-01-23 23:11:18 +08:00
2026-01-25 16:13:14 +08:00
2026-01-22 19:41:47 +08:00
2026-01-22 19:41:47 +08:00
2026-01-22 19:41:47 +08:00

博客项目说明

本项目使用 Hugo 构建,主题为 Ying。以下是主要的配置说明与脚本使用指南,方便后续查阅和维护。

1. 常用脚本与工具 (Scripts)

项目包含多个 PowerShell 和 Node.js 脚本,用于自动化维护、检查和部署。

1.1 日常维护

  • 新建文章 (./new_post.ps1)

    • 用途: 交互式创建新的博客文章。
    • 功能: 自动引导输入标题、Slug、分类、标签等信息,并按 YYYY-MM-DD-Slug 格式创建 Page Bundle 目录和文件。
    • 运行:
      ./new_post.ps1
      
  • 手动构建与检查 (./deploy.ps1)

    • 用途: 手动执行构建,包含友链健康检查。
    • 流程:
      1. 运行 scripts/check_links.js 检查友链连通性。
      2. 如果检查通过,执行 hugo --minify 生成静态文件。
    • 运行:
      ./deploy.ps1
      

1.2 自动化与 CI/CD 工具

以下脚本主要在 GitHub Actions (.github/workflows/upy.yml) 中自动运行,也可手动用于调试:

  • 友链数据同步 (scripts/update_link_lite_json.ps1)

    • 功能: 将 themes/Ying/data/links.yaml (YAML源数据) 转换为 themes/Ying/static/json/link_lite.json,供前端 JS 和检查脚本使用。
  • 友链健康检查 (scripts/check_links.js)

    • 功能: 读取 link_lite.json,并发检查所有友链的可访问性。
    • 依赖: node-fetch (内置于 Node 18+ 或作为依赖)。
  • 朋友圈数据生成 (scripts/generate_circle_data.js)

    • 功能: 根据友链抓取 RSS/Atom 订阅源,生成朋友圈更新数据 (friend_circle_data.json)。
    • 依赖: rss-parser.
  • 构建安全预处理 (scripts/add_draft_to_hidden.ps1)

    • 功能: 在构建前扫描 content/post,将标记为 status: hidden 的文章强制设置为 draft: true,防止隐私文章意外泄露到公共列表。
  • CDN 刷新 (scripts/RefreshCDN.py)

    • 功能: 部署完成后调用 DogeCloud API 刷新 CDN 缓存。
    • 配置: 需要在环境变量中设置 DOGECLOUD_ACCESS_KEY 等参数。

2. 基础配置 (hugo.toml)

位于项目根目录下,控制网站的全局行为。

  • 网站信息: 标题、BaseURL、语言等。
  • 固定链接 (Permalinks):
    [permalinks]
      post = "/:slug"
    
    文章页面使用 Front Matter 中的 slug 字段作为文件名(例如 https://usj.cc/my-post.html)。

3. 主题配置

  • 主题目录: themes/Ying/
  • 友链数据: themes/Ying/data/links.yaml
    • 添加友链请直接编辑此 YAML 文件,构建时会自动同步到 JSON。

4. 文章管理指南

URL 设置

文章默认使用 slug 字段作为 URL 的文件名。

title: "我的文章"
date: 2023-01-01
slug: "my-post"

生成的链接为: https://usj.cc/my-post.html

隐藏文章

如果你想写一篇不公开在列表显示的文章(但可以通过链接访问):

  1. 在 Front Matter 中添加 status: hidden。
  2. 自动化脚本会在构建时将其标记为 draft: true (配合特殊构建逻辑) 或进行其他处理。 注:具体表现取决于 CI 脚本的逻辑,通常用于草稿或隐藏页。
Languages
TypeScript 43.2%
CSS 24.9%
JavaScript 18.1%
HTML 8%
Shell 4%
Other 1.8%