在Hugo博客中添加一个新的页面

这里说的页面不是指 hugo 利用 markdown 文件生成的页面,而是我们自己手动创建的 html 页面。

这个过程其实并不复杂,但是你需要有一些前端开发的经验,起码的 HTML、CSS、JavaScript 基础你需要了解一些,其次不太推荐使用类似 Vue 这样的 JS 框架,因为 hugo 的页面使用了大量的 golang 模板语法,就是你在主题文件中看到的 {{}} 语法,而 Vue 中也有到这个语法,这可能会在无意中给你的开发造成障碍,而且后期再看或者修改这些代码的时候也很有可能会混乱。

Linux 添加 Windows 字体库

如果你有尝试过在 Linux 下打开 Windows 制作的 word 文档,或者在 Windows 下打开 Linux 制作的 word 文档,你可能会惊喜的发现在两个平台下同一个 word 文件的样式截然不同,这对于一些对格式要求比较严格的情况还是比较麻烦的。不过在 Linux 下还是有很简单的解决办法的。

使用 Vim 开始 Markdown 之旅

img

爬山时遇到的小猫咪

最近没事干,就想着给自己的 Vim 配置一下 markdown 环境,因为有现成的 markdown 预览插件,而且 vim 总体来说加载速度也快一些(说的就是比你 vscode 快🤪),说干就干。

从零开始配置 Go 开发环境

安装 go

关于详细的安装教程,可以参考 官方安装文档

官网提供了各个操作系统下的安装包以及源码,你也可以尝试通过包管理器进行安装,更加简单而且方便后面的升级

sudo pacman -S go #Arch Linux

sudo zypper in go #OpenSuse

brew install go #MacOS

scoop install go #Windows

通过包管理器安装的 go,只需要定期运行对应的更新命令,就可以将本地的 go 更新到当前比较新的版本(这个主要取决于包管理对于包的更新策略)

Golang 切片

最近在使用 golang 创建子集的时候,遇到了一些问题,下面是代码:

func Subsets(nums []int) [][]int {
    var sets = make([][]int, 0)
    var t = make([]int, 0)
    sets = append(sets, t)
    for i := 0; i < len(nums); i++ {
        for _, v := range sets {
            t = append(v, nums[i])
            sets = append(sets, t)      }
    }
    return sets
}

当测试切片的长度不大于 4,比如 []int{1,2,3,4} 的时候,程序输出正常,结果也是正确的。
不过当切片长度大于 4 的时候,比如 []int{1,2,3,4,5},程序输出的二维切片的长度虽然正确,但是期中有一些数据就会有问题。在 debug 的时候发现,当计算完 sets[21],开始计算 sets[22] 的时候,sets[15] 会从 []int{1,2,3,4},变成 []int{1,2,3,5}。