使用 git hook 实现自动构建 Hugo 静态网站
Hugo 是一个优秀的静态网站生成器,并且结构对 Git 十分友好,所以一般会将 Hugo 搭配 Git 使用来提供较高的可操作性,很多人还会搭配 GitHub Pages 来实现免服务器建立个人博客。但是在不使用 GitHub Pages 的情况下,使用静态博客就会不可避免地要重复构建网站,每次都要手动构建再上传构建结果未免过于繁琐,这篇文章将介绍已有自建服务器的情况下,通过 Git Hook 实现在推送时自动重新构建网站内容的方式。
迁移到 wayland 事记
一些环境变量 🔗
设置了一些环境变量,如果不设置这些环境变量,那么有一部分程序会在启动时字体发毛,比如 MOZ_ENABLE_WAYLAND
能够避免 firefox 出现字体发毛。
export GDK_BACKEND=wayland # GTK
export QT_QPA_PLATFORM=wayland # QT
export CLUTTER_BACKEND=wayland # Clutter
export SDL_VIDEODRIVER=wayland # SDL
# mozilla wayland envionment
export MOZ_ENABLE_WAYLAND=1
其他的配置 🔗
electron 🔗
为了 electron 专门添加的配置文件, /.config/electron-flags.conf
# file name: ~/.config/electron-flags.conf
--enable-features=UseOzonePlatform
--ozone-platform=wayland
按照行为来说,上述配置文件应该是所有版本的 electron 都会生效,但是对于旧一些的版本,比如 12 和 13,则需要添加单独的配置文件,但是由于配置内容相同,所以只需要分别建立软链接。
Linux 文件系统中的权限
常规权限 🔗
读权限(r) 🔗
- 对文件来说, 就是文件的读取权限, 如
cat
. - 对目录来说, 就是查询目录下文件结构的权限, 如
ls
.
写权限(w) 🔗
- 对文件来说, 就是文件的写入权限, 如重定向输出到这个文件.
- 对目录来说, 就是修改此目录下的文件结构的权限, 包括创建文件/删除文件/移动文件.
执行权限(x) 🔗
- 对文件来说, 就是文件的执行权限.
- 对于目录来说, 就是进入此目录的权限, 并控制访问此目录中的其他文件或目录的权限, 若无此权限, 则目录的读写权限也会受到影响.
下面为一些各种情况下进行操作的示例. 可以发现没有 x 权限时, r 权限只能列出目录的文件名称, 不能得知其权限和修改时间等信息; w 权限无法在目录中创建文件; 无法对目录中的文件的内容进行读取或修改.
为单一命令设置环境变量的终端函数
实际应用 🔗
需求 🔗
- 一个命令行函数
- 将其参数作为命令运行
- 为运行的命令设置环境变量, 同时不影响原本的 shell 环境变量
结果 🔗
function proxyenv {
(
proxy_dest="http://localhost:8888"
proxy=${proxy_dest}
http_proxy=${proxy_dest}
https_proxy=${proxy_dest}
PROXY=${proxy_dest}
HTTP_PROXY=${proxy_dest}
HTTPS_PROXY=${proxy_dest}
export proxy http_proxy https_proxy PROXY HTTP_RPOXY HTTPS_PROXY
"$@"
)
}
Update: 注意最后一条命令现在是
"$@"
而不是以前的eval "$@"
,这样才能够避免括号产生额外的意义。
部署davical到apache2
起源于 radicale 的 well-known 自动配置不能与 thunderbird 的 tbsync 插件和平地工作, 以及使用 python 实现的 radicale 在过去的半年中失去响应了 3 次, 所以决定找一个可能更稳定一些, 更加通用一些的支持 caldav 的服务程序, 最终选定了 davical .
Webdav的挂载
webdav 挂载到本地文件系统有优有劣, 好处是权限更加开放, 使用也比较方便, 但缺点是在需要同步时受网络影响较大, 所以建议不要直接打开挂载到本地目录的 webdav 文件, 尤其是 GUI 会卡顿较长时间.