加载中...

加载中...

全局配置

本页梳理博客的全局配置:站点信息、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(后台创建站点后获取)

说明umamitotalTraffic/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.ymlcrc32+hex 短链,writeback: true 写回 front-matter
logo / favicon主题配置页头 Logo 与站点图标
zhDefaultEncoding主题配置繁简转换默认方向
banner主题配置每日轮换/随机取图/视差/打字机
jsDelivr / cdn主题配置CDN 占位符(CI 时替换)
评论
数据加载中 ...