为了保证博客内容的排版整洁、风格统一以及良好的阅读体验,特制定本写作规范。

一、结构与标题

1. 标题层级

  • 不要使用一级标题 (#):Hugo 会自动将 Frontmatter 中的 title 渲染为页面一级标题,正文从 二级标题 (##) 开始。
  • 层级递进:遵循 ## -> ### -> ####,不要跳级(例如从 ## 直接跳到 ####)。

正确示例:

## 一、背景介绍
### 1.1 问题描述
#### 1.1.1 详细说明

错误示例:

# 背景介绍 (不要在正文中用一级标题)
### 1.1 问题描述 (跳过了二级标题)

2. 标题编号风格

  • 技术类统一阿拉伯数字techblog 目录使用 1.2. 风格。
    • ## 1. 背景 / ### 2. 方案对比
    • ## 一、背景 / ### 二、方案对比
  • 非技术类保持一致:可用中文序号,但同一篇文章内保持一致。

3. 标题样式

  • 标题不加粗:标题自带粗体,不要额外使用 **__
    • ## 核心概念
    • ## **核心概念**
  • 简洁明了:标题应简练概括本节内容,避免长句。

4. 禁止伪标题

  • 不要用加粗当标题:正文中 **关键概念** 不会进入目录。
    • ### 关键概念
    • **关键概念**

二、段落与间距

1. 段落空行

  • 段落间距:段落之间保留一行空行。

2. 段落首行缩进(空两格)

  • 使用全角空格:首行缩进用两个全角空格(U+3000)。
    •   这是首行缩进示例。
  • 不要用半角空格:半角空格可能被 Markdown 解析为代码块或被压缩。
  • 替代写法:必要时可以使用 HTML 实体   表示全角空格。

3. 块级元素间距

  • 标题、代码块、分割线前后留空行:避免渲染错乱。
  • 引用块与列表:引用和列表前后留空行更清晰。

三、全角与半角

  • 中文标点用全角:逗号、句号、冒号、引号、括号等统一使用全角。
    • 这是中文,使用全角标点。
    • 这是中文, 使用半角标点.
  • 英文与数字用半角:英文单词、数字、技术名词使用半角字符。
    • Go 1.22 / HTTP/2 / Redis
    • Go 1.22
  • 中英文混排空格:中文与英文、中文与数字之间保留半角空格。
    • 使用 Go 编写服务 / 版本 1.2
    • 使用Go编写服务 / 版本1.2

四、强调与行内语法

  • 粗体 (**text**):用于强调关键概念或重点结论,不要滥用。
  • 行内代码 (`text`):用于标记代码片段、文件名、路径、配置项或专有名词。
    • ✅ 请修改 config.yml 文件。
    • ❌ 请修改 config.yml 文件。

五、引用与列表

  • 引用块:使用 > 引用外部资料、名言或提示内容。
    • > 这是一个引用示例。
      >
      > 引用块也可以包含分段。
      
  • 列表使用:有序列表用于步骤说明,无序列表用于并列观点。
  • 不要用列表冒充标题:禁止 1. #### 标题 这类写法。

六、代码块规范

  • 指定语言:所有代码块必须指定语言标识符,便于语法高亮。

正确示例:

console.log("Hello");

错误示例:

console.log("Hello");

七、Frontmatter 规范

每篇文章的开头必须包含以下元信息:

---
title: "文章标题"
date: 2026-02-09T12:00:00+08:00
lastmod: 2026-02-09T12:00:00+08:00
author: ["GopherDing"]
tags:
- 标签1
- 标签2
categories:
- 分类
description: "一句话描述文章内容"
draft: false
showToc: true
---

八、图片与资源

  • 图片存放:建议文章相关的图片存放在 static/img 目录下,按分类或文章名归档。
  • 图片引用:使用 Markdown 语法,并填写 alt 文本以便 SEO。
    • ![图片描述](/img/path/to/image.png)

九、常见错误清单(快速排查)

  • 标题加粗重复### 1. **核心概念** -> ### 1. 核心概念
  • 列表套标题1. #### 步骤一 -> #### 1. 步骤一
  • 标题层级跳跃## 下面直接出现 ####
  • 伪标题**关键概念** -> ### 关键概念
  • 块级元素无空行:标题、代码块、分割线紧贴正文