惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Hacker News
The Hacker News
月光博客
月光博客
Last Week in AI
Last Week in AI
D
DataBreaches.Net
MyScale Blog
MyScale Blog
The Register - Security
The Register - Security
D
Docker
酷 壳 – CoolShell
酷 壳 – CoolShell
Y
Y Combinator Blog
WordPress大学
WordPress大学
Microsoft Security Blog
Microsoft Security Blog
I
InfoQ
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
P
Privacy International News Feed
云风的 BLOG
云风的 BLOG
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
L
LangChain Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
C
Check Point Blog
V
V2EX
P
Palo Alto Networks Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
小众软件
小众软件
博客园 - 叶小钗
A
Arctic Wolf
The GitHub Blog
The GitHub Blog
V
Visual Studio Blog
Martin Fowler
Martin Fowler
Simon Willison's Weblog
Simon Willison's Weblog
Security Latest
Security Latest
阮一峰的网络日志
阮一峰的网络日志
博客园 - 【当耐特】
Know Your Adversary
Know Your Adversary
N
Netflix TechBlog - Medium
Recorded Future
Recorded Future
B
Blog RSS Feed
T
Tenable Blog
S
Secure Thoughts
Vercel News
Vercel News
Hugging Face - Blog
Hugging Face - Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
PCI Perspectives
PCI Perspectives
T
Tor Project blog
MongoDB | Blog
MongoDB | Blog
A
About on SuperTechFans
罗磊的独立博客
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
F
Fortinet All Blogs
Webroot Blog
Webroot Blog
T
Threat Research - Cisco Blogs

mephisto.cc

修复rime-ice无法弹出候选框的问题 开机滚动字体显示优化 个人网站安全防护 树莓派上部署Vaultwarden 使用goaccess实时分析Caddy日志 个人网站监控 Hugo全站AVIF记 Linux下尝试使用Godot开发小游戏 Arch linux dae 透明代理 Airflow接管galler-dl下载任务 如何使用gallery-dl批量下载图像 Arch核显下如何愉快玩Dota2和CS2 Arch/labwc 环境网络相关设置 Rime添加dota2词库 Arch 重装记录 Supertuxkart iOS版终于发布了 打造自己的流媒体音乐服务 剪切板管理工具clipcat推荐 MangoHud性能监控 微信小程序开发记 Rofi试用 解决Arch下VSCode无法输入中文的问题 独立窗口管理器下无法录屏问题处理 上海市二手房成交数据监控 OpenLDAP监控 Arch linux如何顺畅连接蓝牙设备 使用Git和Ansible管理配置文件 Arch Linux SSL VPN 客户端配置 简单获取celery任务实时结果 Arch linux下iNode客户端的安装和使用方法 券商费率调整记 迷你主机组装记 Labwc更换定制皮肤 树莓派跑分流代理 实用自动代理配置示例 九年老鼠标复活记 Openvpn示例 Mac下如何旋转webp图片 如何隐藏Vscode中Markdown PDF插件的头部内容 解决Linux下网络配置无法变更保存的问题 labwc环境启用wlogout Ubuntu下新官方微信尝鲜 简单检测用户是否开启广告屏蔽 Atuin ZFS下卡顿问题解决 Wine安装64位微信 Fish 和 Atuin使用记 Fastapi简单实现临时下载链接 Fastapi微信公众号开发简要 Hugo根据语种展示不同内容 如何修复Waybar微信图标错误 信封加密简要 Linux环境下维护公众号记录 快速隐藏和呼出终端 Wayland环境自动切换壁纸 SuperTuxKart 试玩 简单抓取雪球股票快讯 为什么你的kill命令不能列出信号表 Wine安装微信保姆教程 Hysteria科学上网简要 Ubuntu 23.10 钉钉无法启动解决方法 网站导航栏防止插入Adsense自动广告 Linux环境按键检测 Hugo文末添加最后修改时间 Wayland环境ksnip无法复制问题解决 我眼中的股票市场 Caddy简单图片防盗链 greetd和regreet使用教程 Wayland环境下截图加后期修改 Wayland 环境下gif录屏 Firefox的一些有趣功能 Ubuntu 切换系统语言 Firefox 标题栏高度调整 网站添加回到顶部功能 Labwc 便捷配置 Wofi使用教程 窗口管理器labwc使用记 文件共享软件Dufs推荐 Hugo静态站点接入Adsense广告 Fcitx5配置详解 Ubuntu安装chrome的方法总结 一种Xterm.js的全屏方案 Google网址收录api Python示例 手机听离线音乐 Snipe it资产导入 应用启动器yofi使用配置 Snipe it资产管理系统安装使用 Ubuntu开机启动加速 Vue3 vite TypeScript跨域等相关设置 Ubuntu手动升级Libreoffice Ubuntu设置alacritty为默认终端 简体文章批量转换为繁体 使用Inkscape调整svg图片大小 实用命令 使用mitmproxy给手机app抓包 Python中rstrip方法细解 Github同主机多仓库部署deploy key问题处理 Linux安装最新版本Python KeePassXC使用教程 Ubuntu 22.10连接蓝牙耳机报错br-connection-profile-unavailable解决方法 Caddy日志配置轮转和格式化
Hugo自定义字体
2023-06-21 · via mephisto.cc

现在这个博客由 Hugo + hugo-clarity 皮肤驱动,大毛病没有。只是这个 theme 自带的字体是 Metropolis,操作系统默认没有,用户需要下载,这会拖慢网页加载速度,按照配置中文字体会回退到 sans-serif,也不是个好方案。因此,需要自定义这个皮肤的字体。

1. 首先找到字体并修改配置

hugo font config

hugo-clarity 皮肤的字体配置控制文件如上所示,css 由 sass 生成,下面介绍修改方法:

  • _fonts.sass 配置

    1@font-face
    2    font-family: myfonts
    3    src: local('-apple-system'),local('BlinkMacSystemFont'),local('Helvetica Neue'),local('PingFang SC'),local('Microsoft YaHei'),local('Source Han Sans SC'),local('Noto Sans CJK SC'),local('WenQuanYi Micro Hei'),local('sans-serif')
    

    这个文件告诉你去哪里找字体文件,local('xxx') 表示去电脑本地找 xxx 字体,再给这些字体集合取个名字 叫 myfonts,名字根据自己喜好取,都是 font-face 的语法。我这个参考的知乎的 font-family :

    1font-family: -apple-system, BlinkMacSystemFont, Helvetica Neue, PingFang SC,
    2  Microsoft YaHei, Source Han Sans SC, Noto Sans CJK SC, WenQuanYi Micro Hei,
    3  sans-serif;
    

    优先级从前到后,先找苹果系统的默认字体,再找 windows 字体,Sans 等字体,最后找 Linux 的文泉驿微米黑。用户用什么操作系统就优先命中对应的系统自带字体,不用消耗网络带宽下载,拖累网页加载速度。

    • _variables.sass 配置
    hugo myfonts

    变量文件设置,如图所示 --font 的地方填上一步的字体集合名字。这样 sass CSS 预处理器,在编译的时候就能生成正确的 font-family。

    • fonts 目录

这目录就是放皮肤自定义字体的,对字体有高要求的时候使用(我个人不用)。参考 hugo-clarity 皮肤的配置

1@font-face
2  font-family: 'Metropolis'
3  font-style: normal
4  font-weight: 200
5  src: local('Metropolis Extra Light'), local('Metropolis-Light'), url('#{$fontsPath}Metropolis-ExtraLight.woff2') format('woff2'), url('#{$fontsPath}Metropolis-ExtraLight.woff') format('woff')
6  font-display: swap

看上面配置的意思,就是先去本地电脑找这个字体,找不到就去项目的字体目录找(目录就是第一张图的 fonts 目录),找到后在做一定的格式转换。其它皮肤的字体更换,网上也有文章说明,这里不再赘述,原理都差不多。

2. 重新编译项目

这里特别说明下,如果你用的是标准版 hugo,它不会帮你转译 Sass 到 css,官方解释如下:

Hugo is available in two editions: standard and extended. With the extended edition you can:

    1. Encode WebP images (you can decode WebP images with both editions)
    1. Transpile Sass to CSS using the embedded LibSass transpiler

We recommend that you install the extended edition.

我一开始的时候,就是没有注意到这一点,生成的 style 文件总是不变,各种痛苦调试都无效。最后把相关文件都删掉后试验,hugo 编译时才提示要去下载 extended 版本,前后耽误近 2 小时,甚至还去学习了下 Sass 语法...

所以,以后怪怪改用 extended 版本就没错了,惨痛经历。

3. 代码字体

最后,Hugo 的编程字体是可以单独配置。本文的代码英文字体和正文字体就不一样,看字母 G 能看出差别。

 1  [highlight]
 2    codeFences = true
 3    guessSyntax = true
 4    hl_Lines = ""
 5    lineNoStart = 1
 6    lineNos = true # always set to true # else line numbers won't show at all! even when you toggle them on in the UI
 7    lineNumbersInTable = false # toggling this on (i.e to true) or deleting this line will break the code blocks functionality. Will
 8    noClasses = false
 9    style = "monokai"
10    tabWidth = 2

如上所示,高亮模式选择 monokai_syntax.sass文件中 code 和 pre 的:

1font-family: "Monaco", monospace;

如此一来,选择不同代码高亮模式,可以根据需要手动设置不同代码字体(测试从 monokai 到 tango 字体不变)