全局配置
本页梳理博客的全局配置:站点信息、URL 与永久链接、主题基础(Logo/Favicon)、Banner 背景、CDN 机制。这是整个博客的地基,其他配置篇都建立在它之上。
配置分两层:站点配置
_config.yml(Hexo 核心 + 插件)与主题配置(布局/外观/交互)。本项目 CI 构建时主题配置文件会被userConfig/_config.tmp.yml模板覆盖,改主题配置请改模板(详见「安装与主题配置」篇)。本页除标注"根配置"外均为主题配置。
1. 站点信息
用途:站点名称、副标题、描述、作者等基础信息,影响标题栏、SEO 与全站文字。
配置(根配置 _config.yml):
title: 夜法之书 # 站点标题,显示在浏览器标签页与页头
subtitle: '深度思考,深入生活!所有文章均持续滚动更新!' # 站点副标题
description: '~软件驱动世界~个人独立技术博客,关于Linux,开源,Nas,Docker,嵌入式,理财,健身等主题!'
author: 夜法之书 # 全站默认作者
language: zh-CN # 站点语言
timezone: Asia/Shanghai # 时区,影响日期渲染说明:author 是文章的兜底作者——文章 front-matter 未写 author 时用它;language 影响站点 html lang 属性与日期本地化;timezone 必须与目标读者时区一致,否则文章日期会偏移。
2. URL 与永久链接
用途:站点根 URL 与文章链接格式。本博客使用 abbrlink(CRC32 + hex)生成短链接,文章发布后永久不变。
配置(根配置 _config.yml):
url: https://blog.17lai.site # 站点根 URL(Vercel 生产域名)
permalink: posts/:abbrlink/ # 文章链接格式:/posts/8f9792ab/
# hexo-abbrlink 插件
abbrlink:
alg: crc32 # 哈希算法:crc16(默认)| crc32
rep: hex # 进制表示:dec(默认)| hex
drafts: false # 草稿是否生成 abbrlink
force: false # 强制重算(忽略缓存,慎用)
writeback: true # 计算后写回 md 文件 front-matter说明:writeback: true 会把生成的 abbrlink 写回文章的 front-matter,链接一旦发布就固定;改名文章不会破坏旧链接。url 是所有绝对链接(canonical、sitemap、RSS)的基准,生产环境必须与部署域名一致。
3. 主题基础:Logo 与 Favicon
用途:站点图标与页头 Logo,目前共用同一张图。
配置(主题配置):
favicon: /favicon.webp # 浏览器标签页图标(支持 webp/png/ico)
logo: /favicon.webp # 页头导航栏 Logo
# 中文网站默认繁简语言,1: 繁體中文, 2: 简体中文
zhDefaultEncoding: 2说明:图片放 source/ 根目录即可被静态化;zhDefaultEncoding 是"中文繁简转换"功能的默认方向,与 preference.translate 配合(见「多语言与 Wiki 系统」篇)。
4. Banner 背景
用途:所有页面的头图 Banner。可每日轮换、随机取图、滚动视差,并叠加打字机副标题。
配置(主题配置):
banner:
enable: true # 是否每日切换 Banner
# false 时固定用 /medias_webp/banner/0.webp
random: true # 开启随机 featureimages 图片
parallax: false # 视差滚动(图片随屏幕滚动产生视差)
width_height_ratio: 1.0 # 图片最小宽高比,防移动端竖屏过度裁剪;关闭设 0
typed: # Banner 副标题打字机效果
enable: true
loop: false # 是否循环
showCursor: true # 是否显示光标
cursorChar: "_" # 光标字符
startDelay: 100 # 开始延迟(毫秒)
typeSpeed: 80 # 打字速度
backSpeed: 50 # 删除速度说明:random: true 时从 featureimages 中随机取图,配合 enable: true 实现"每日一图";typed 打字机渲染的是副标题(站点 subtitle 或首页 index.slogan.text,见「导航菜单与首页」篇)。
5. CDN 配置机制
用途:全站静态资源(JS/CSS/图片)走 CDN 加速。本项目用 jsDelivr + 占位符注入:模板中写 {cdnPathVersion} 等占位符,CI 构建时统一替换成真实 CDN 地址。
配置(主题配置):
jsDelivr:
url: {cdnPathVersion} # 带版本号的 CDN 路径(构建时替换)
latesturl: #{cdnPathLatest} # latest 路径(被注释,未启用)
cdn:
url: "{cdnUrl}" # JS/CSS 的 CDN URL
mediaUrl: "{mediaUrl}" # 图片/媒体 CDN URL
resUrl: "{resUrl}" # 资源 CDN URL(默认 https://cfblog.17lai.site)占位符与构建时替换(由 userConfig/_config.tmp.yml + tools/cicd.sh 的 sed 完成):
| 占位符 | 替换为 | 示例 |
|---|---|---|
{cdnPathVersion} | jsDelivr 带版本路径 | https://cdn.jsdelivr.net/gh/appotry/hexo@1.1 |
{cdnPathLatest} | latest CDN 路径 | https://cdn.jsdelivr.net/gh/appotry/hexo@latest |
{urlVersion} | 文件版本号 | ?v={urlVersion} |
{cdnUrl} / {mediaUrl} / {resUrl} | 各 CDN 域名 | https://cfblog.17lai.site |
说明:本页写配置时不需要关心占位符——保持 {xxx} 原样即可,CI 会处理。发布时机:改 JS/CSS 后需 tools/cicd.sh -r "特性" 递增版本号(tools/.VERSION),否则浏览器/PWA 缓存旧版;仅改内容用 -c 或 -d。
6. 站点运行时间(time)
用途:页脚显示"本站已运行 N 年 N 天",从设定的建站时间起算。
配置(主题配置):
time:
enable: true
year: 2020 # 年份
month: 06 # 月份
date: 28 # 日期
hour: 00 # 小时
minute: 00 # 分钟
second: 00 # 秒说明:时间设为博客首次上线日期即可,页脚自动计算并显示运行时长。
7. Fork Me 图标(githubLink)
用途:页头右上角显示 “Fork Me on GitHub” 角标,链接到你的仓库。
配置(主题配置):
githubLink:
enable: false
url: https://github.com/blinkfox/hexo-theme-matery # 改为你的仓库地址
title: Fork Me说明:enable: true 时在 header 显示角标;url 指向你的 GitHub 仓库。
8. 主题颜色(color)
用途:全站配色——PWA 主题色、背景、导航栏、文字等,明暗两套。其他未覆盖的颜色用自定义 CSS 解决。
配置(主题配置):
color:
theme_color: "#7e9fc4" # PWA 主题色(manifest + theme-color meta)
body_bg_color: "#eee" # body 背景色
body_bg_color_dark: "#181c27" # 暗色模式背景色(下同 *_dark 均为暗色值)
navbar_bg_color: "rgba(255, 255, 255, 0.8)" # 顶部菜单背景色
navbar_bg_color_dark: "#1f3144"
navbar_text_color: "#f8f8f8" # 顶部菜单字体色
navbar_text_color_dark: "#d0d0d0"
subtitle_color: "#f8f8f8" # 副标题字体色
subtitle_color_dark: "#d0d0d0"
text_color: "#3c4858" # 全局字体色
text_color_dark: "#c4c6c9"
sec_text_color: "#718096" # 次级字体色(摘要、简介等)
sec_text_color_dark: "#a7a9ad"说明:每个颜色键都有对应的 *_dark 暗色值,改色时两套一起调;配色灵感可参考 LOL Colors。
9. 字体(font)
用途:全站正文字号、字体族、字间距与代码字号。
配置(主题配置):
font:
font_size: 16px # 正文字号
font_family: # 字体族(留空用主题默认)
letter_spacing: 0.02em # 字间距
code_font_size: 85% # 代码字号(相对正文字号)说明:font_family 留空时使用主题默认字体栈;代码块字号按正文百分比缩放。
10. 设计令牌(design)
用途:圆角/阴影/过渡/渐变/间距/字号刻度的设计令牌,由 color-schema.styl 映射为 CSS 变量,全站组件统一引用。
配置(主题配置):
design:
# 圆角(sm 按钮/小标签,md 卡片/便签,lg 弹窗,pill 胶囊,full 圆形)
radius_sm: 3px
radius_md: 8px
radius_lg: 12px
radius_pill: 999px
radius_full: 50%
# 阴影(sm 悬浮微阴影,md 卡片默认,lg 卡片 hover,xl 弹窗/浮层)
shadow_sm: "0 1px 3px 0 rgba(0,0,0,0.12)"
shadow_md: "0 2px 5px 0 rgba(0,0,0,0.16)"
shadow_lg: "0 5px 11px 0 rgba(0,0,0,0.18)"
shadow_xl: "0 10px 30px 0 rgba(0,0,0,0.2)"
shadow_sm_dark: "0 1px 3px 0 rgba(0,0,0,0.4)" # 暗色阴影(下同)
shadow_md_dark: "0 2px 5px 0 rgba(0,0,0,0.45)"
shadow_lg_dark: "0 5px 11px 0 rgba(0,0,0,0.5)"
shadow_xl_dark: "0 10px 30px 0 rgba(0,0,0,0.55)"
# 过渡(fast 悬停反馈,normal 面板/弹窗)
transition_fast: 0.2s
transition_normal: 0.3s
# 渐变(primary 导航/按钮,accent 卡片装饰)
gradient_primary: "linear-gradient(to right, #4facfe, #00f2fe)"
gradient_accent: "linear-gradient(135deg, #667eea, #764ba2)"
# 间距刻度(4px 基准递增)
space_1: 4px
space_2: 8px
space_3: 12px
space_4: 16px
space_5: 24px
# 字号刻度(rem 制,随 --font-scale 缩放)
font_size_xs: 0.75rem
font_size_sm: 0.875rem
font_size_md: 1.125rem
font_size_lg: 1.25rem
font_size_xl: 1.5rem
font_size_2xl: 2rem说明:这是主题的设计系统层——组件统一引用这些令牌,改一处全局生效。调整时保持刻度体系(圆角/阴影/间距各自成梯级),不要只改单个值破坏一致性。字号为 rem 制,随根元素 --font-scale 变量整体缩放(用户可调字号时全站等比变化),不要改成 px 固定值。
11. 网页访问统计(web_analytics)
用途:全站访问统计,支持百度统计、Google Analytics 4 与自建 umami 三套,可同时启用。
配置(主题配置):
web_analytics:
enable: true
follow_dnt: false # 遵循浏览器"请勿追踪"(开启则不统计其访问)
baidu: # 百度统计
enable: false
id: 22cc5bdea6e529c1349d44b7306b3b8c # hm.js? 后边的字符串
baiduPush: false # 百度搜索资源平台提交链接(需站点主体认证)
google: # Google Analytics 4
enable: false
measurement_id: 'G-JNYZP4ZLDJ'
umami: # 自建 umami(本博客主用)
enable: true
totalTraffic: true # 总访问量
totalNumberOfvisitors: true # 总人次
pageStats: true
src: https://ana.17lai.site/script.js # umami js 地址(后台创建站点后获取)
start_time: '2023-01-01' # PV/UV 统计开始时间(引号包裹防 YAML 解析为 Date)
token: "..." # umami viewOnly 用户 token(高级统计用)
api_server: https://ana.17lai.site # umami 服务器地址
website_id: "..." # umami 站点 ID(后台创建站点后获取)说明:umami 的 totalTraffic/totalNumberOfvisitors 对应页脚 PV/UV 显示(配合 footer.statistics);start_time 填 umami 站点创建时间,必须用引号包裹,否则 YAML 解析为 Date 对象后 JSON.stringify 会变成 {};token 需在 umami 后台新建 viewOnly 用户获取。
附:全局配置速查表
| 配置项 | 位置 | 说明 |
|---|---|---|
title / subtitle / description | 根 _config.yml | 站点基础信息 |
author / language / timezone | 根 _config.yml | 作者兜底、语言、时区 |
url / permalink | 根 _config.yml | 站点根 URL + posts/:abbrlink/ 链接格式 |
abbrlink | 根 _config.yml | crc32+hex 短链,writeback: true 写回 front-matter |
logo / favicon | 主题配置 | 页头 Logo 与站点图标 |
zhDefaultEncoding | 主题配置 | 繁简转换默认方向 |
banner | 主题配置 | 每日轮换/随机取图/视差/打字机 |
jsDelivr / cdn | 主题配置 | CDN 占位符(CI 时替换) |