Hello, 又来饮茶哈

加张台啊!

【Blog】支持网站访问统计

一、网站访问统计 对于静态网站来说,不好统计访问这些动态数据。 这里使用的是Vercount提供的网站访问统计功能(感谢大佬)。 具体操作就是:每次打开网站时,都会运行 vercount 提供的脚本,往 vercount 的服务器发送和接收数据。 这里我使用的是 PaperMod 主题。 1、新建 extend_head.html 文件 新建 layouts/partials/extend_head.html。 如果没有子目录的话,需要自己新建。 其目的是在网站里引入 vercount 的 js 脚本。 在该 HTML 文件添加以下内容: 1 <script defer src="https://cn.vercount.one/js"></script> 2. 新建 extend_footer.html 文件 新建 layouts/partials/extend_footer.html.html。 如果没有子目录的话,需要自己新建。 其目的是在网站底部添加显示访问信息。 在该 HTML 文件添加以下内容: 1 2 3 4 5 6 7 8 {{- if not (.Param "hideFooter") }} <footer class="footer"> <div> 网站总访客数<span id="vercount_value_site_uv"></span>次 网站总访问量<span id="vercount_value_site_pv"></span>人次 </div> </footer> {{- end }} 3. 新建 single.html 文件 将 themes/PaperMod/layouts/_default/single.html 拷贝一份到 layouts/_default/single.html。 ...

November 2, 2025 · 1 min · 181 words

【Go】命名规范

一些关键的命名规范。 一、包 对于包的命名,建议是以小写形式的单个单词命名。 在 Go 里面,包的名称不要求是唯一的。 包的名称尽量和包的导入路径里面的最后一个路径一致。 每个包的导入路径是唯一的。 比如 Go 的 Web 框架 Gin,包的名称是 gin,导入路径是: 1 import "github.com/gin-gonic/gin" 对于包的导出标识符的命令,在名字中不要再包含包的名称。 假如有个名为 github.com/zeepunt/lora 的包,对于包的导出标识符: 1 2 3 4 5 6 7 import "github.com/zeepunt/lora" // 推荐 lora.Sx126xOpen() // 不推荐, 因为 LoraSx126xOpen 携带了包的名称 lora.LoraSx126xOpen() 二、标识符 标识符的命名采用驼峰命名法(CamelCase)。 标识符可以指的是变量名称、函数名称、接口名称等。 小驼峰拼写法(lowerCamelCase) 第一个单词的首字母小写,后面每个单词的首字母大写。 大驼峰拼写法(UpperCamelCas) 又称为帕斯卡拼写法(PascalCase)。 每个单词的首字母都需大写。 注意 Go 里面默认大驼峰拼写法的标识符用于包导出标识符。 比如,在 lora 包里面有两个函数,分别是 Sx126xOpen 和 sx1262Info,那么只有 Sx126xOpen 函数可以被外部访问,sx1262Info 只能被包的内部访问。 如果缩略词的首字母是大写的,那么其他的字母也要大写。 比如,HTTP 不要写成 Http。 ...

November 2, 2025 · 1 min · 175 words

【C】结构体的使用

一、结构体对齐 1. 默认对齐规则 1.1. 规则 数据类型自身的对齐值 int8_t / uint8_t 型:1 字节。 int16_t / uint16_t 型:2 字节。 int32_t / uint32_t / float 型:4 字节。 double 型:8 字节。 结构体的自身对齐值 其成员中自身对齐值最大的那个值。 数据成员、结构体的有效对齐值 自身对齐值和指定对齐值中较小者,即 有效对齐值 = min(自身对齐值,当前指定的对齐值)。 1.2. 示例 假如结构体的声明如下: 1 2 3 4 5 6 typedef struct { uint8_t a; uint16_t b; uint16_t c; uint32_t d; } struct_demo_t; 假设当前默认是 4 字节对齐,该结构体的大小是 12 Bytes,内存的使用空间如下: 1 2 3 4 5 6 7 +---+---+---+---+ | a | | b | +---+---+---+---+ | c | | +---+---+---+---+ | d | +---+---+---+---+ 代码测试(main.c): ...

October 27, 2025 · 9 min · 1746 words

【C】个人代码风格规范

1. 注释 所有的注释统一使用 /**/,除了一些特殊的注释以外。 单行注释: 1 /* 单行注释 */ 多行注释: 1 2 3 4 /** * 多行注释 1 * 多行注释2 */ 特殊的注释:用于表面一些待办事项,比如:TODO、FIXME、BUG、HACK。 1 2 // TODO 实现 xxx 功能 // FIXME 需修复 xxx 功能 特殊的注释:在第三方 SDK 中加入修改,并方便后续升级 SDK 时方便区分。 1 2 3 4 5 6 7 8 // [公司名] [人名] [时间] S : 实现 xxx 功能 ... // [公司名] [人名] [时间] E : 实现 xxx 功能 // Github Zeepunt 2025.10.01 S: 添加调试打印信息 ... // Github Zeepunt 2025.10.01 E: 添加调试打印信息 2.大括号 对于所有非函数的语句块,把起始大括号放在行尾,而把结束大括号放在行首。 ...

October 26, 2025 · 3 min · 459 words

【Blog】Hugo支持相对路径的图片

问题 当前的文章是使用 Typroa 编辑的,在 Typora 上可以显示图片,但是在 Hugo 中就无法显示图片。 Hugo 版本是 0.152.1 原因 当前的目录结构如下: 1 2 3 4 5 6 7 8 9 content └── article └── 使用Hugo和Github搭建个人博客搭建 ├── assets │ ├── 1761370605.png │ ├── 1761370606.png │ ├── 1761370607.png │ └── 1761370608.png └── 使用Hugo和Github搭建个人博客搭建.md 在 Typora 里面,我们如果要引用相对路径的图片,写法是这样的: 1 ![](assets/1761370607.png) 但如果此时使用 hugo server 在本地预览的话,你会发现这个图片的路径是: http://localhost:1313/article/使用hugo和github搭建个人博客搭建/使用hugo和github搭建个人博客搭建/assets/1761370607.png。 可以发现,Hugo 是将 xxx.md 是当作一个目录去看待的。 解决方案 我们应该将 xxx.md 改为 index.md,只有这样,Hugo 才能将这个目录识别为 Page Bundle。 ...

October 25, 2025 · 1 min · 73 words

【Blog】使用Hugo和Github搭建个人博客搭建

一、工具安装 1. Go 这里安装的 Go 版本为 1.25.3,官网地址:Go。 安装过程:略。 安装完成后,查看 Go 版本: 1 2 $ go version go version go1.25.3 windows/amd64 2. Hugo Hugo 是一个用 Go 写的静态网站生成器。 这里安装的是标准版的 Hugo。 1 2 3 4 5 6 $ go install github.com/gohugoio/hugo@latest go: downloading github.com/gohugoio/hugo v0.152.1 ... $ hugo version hugo v0.152.1 windows/amd64 BuildDate=unknown 3. Hugo 的常用命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # 创建网站 $ hugo new site <网站名> # 启动本地服务器 $ hugo server # 启动本地服务器 (包含草稿文章) $ hugo server -D # 创建文章 $ hugo new <文章名称> # 生成静态网站 $ hugo 二、创建网站 1. 创建流程 基本创建流程如下: ...

October 25, 2025 · 4 min · 807 words