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

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
U
Unit 42
Google DeepMind News
Google DeepMind News
博客园 - 司徒正美
Y
Y Combinator Blog
F
Fortinet All Blogs
云风的 BLOG
云风的 BLOG
T
Tailwind CSS Blog
G
Google Developers Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
罗磊的独立博客
D
DataBreaches.Net
T
The Blog of Author Tim Ferriss
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
MyScale Blog
MyScale Blog
N
Netflix TechBlog - Medium
Microsoft Security Blog
Microsoft Security Blog
GbyAI
GbyAI
P
Proofpoint News Feed
Jina AI
Jina AI
B
Blog RSS Feed
腾讯CDC
阮一峰的网络日志
阮一峰的网络日志
D
Docker

热爱生活与梦想

迁移LeanCloud的Waline评论数据到TiDB/Neon 25年江浙地区暑假自驾游之感慨 使用阿里云灵码继续完成构建 SSL 证书管理器 亲手给儿子做的棒棒糖摩天轮六一礼物 使用腾讯云 CodeBuddy 构建 SSL 证书管理器 修复代码块默认高度相关缺陷 HugoNexT4.7.2 新功能和升级提示 改善代码块折叠和选中功能 新增音乐短代码功能支持 给文章添加摘要和过期提示功能 回顾24年的过去总结 修复Mathjax行内显示公式的问题 给Hugo文章增加阅读更多跳转的锚点定位功能 Win10隐匿的VPN设置和L2TP连接常见错误 Go语言中“糟糕”的日期时间格式化设计 DaoCloud道客提供的免费Docker镜像代理服务 感谢万能淘宝让自己吃到喜欢的美食 WSL运行时遇到未知异常错误无法使用 隐藏的换行符导致Base64加密解密失败 MySQL自带客户端直接免密登录操作 Linux系统中删除目录软链接的注意项 Java程序调用外网API时CA问题 如何不关机重启WSL2恢复虚拟服务 在Windows上安装Podman容器平台做虚拟化 记一次无法弹出移动硬盘的记录 为友情链接添加自动检测脚本 重新激活Github的2FA认证 Linux中使用tar压缩命令排除文件 继续小米手环的健康生活之旅 一次意外的“坠机”引发了我对手机保护壳的深思
支持Github风格的警告样式
凡梦星尘 · 2025-01-14 · via 热爱生活与梦想

早期在Hugo NexT主题中使用短代码方式实现过对不同类型消息的样式支持,只不过是使用时需要用户书写完整短代码不是很方便,同时输出的效果是独立的块占用空间比较大。后来发现Hugo框架在新版中支持了自定义 blockquote的渲染方式,于是乎便有点有新的想法,让用户直接使用Markdown语法来书写不同消息内容,输出的效果实现类似于Github的警告样式,这样使用起来会更加方便。下面就来看看相关实现思路和使用方式吧。

直接参考了官方提供的示例 blockquotes ,在主题中实现自己定义的blockquote渲染重写,增加了alert类型识别判断,具体的代码参考如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<!-- layouts/partials/render-blockquotes.html -->
{{ if eq .Type "alert" }}
{{ $postAlert := site.Params.postAlerts }}
{{ $alertCfg := index $postAlert .AlertType }}
  <div class="post-alert-{{ .AlertType }}">
    <div class="post-alert-title">
      <i class="fa-solid fa-{{ $alertCfg.icon }}"></i>
      <span>
        {{ with .AlertTitle }}
          {{ . }}
        {{ else }}
          {{ or (T (printf "PostAlert.%s" .AlertType)) (title .AlertType) }}
        {{ end }}
      </span>
    </div>
    <div class="post-alert-content">
      {{ .Text }}
    </div>
  </div>
{{ else }}
  <blockquote>
    {{ .Text }}
  </blockquote>
{{ end }}

考虑到了灵活性和用户的个性化需求,这里把alert中的颜色和图标,以及说明文字都做成了可配置的参数,用户可根据自己的喜好进行调整。其中颜色和图标在全局配置参数中,可找到如下配置项进行必要的调整:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 文章内容中的提示信息设置
# icon图标:https://fontawsome.com
postAlerts:
  info:
    icon: "circle-info"
    color: "#4A90E2"
  note:
    icon: "bell"
    color: "#17A2B8"
  help:
    icon: "circle-question"
    color: "#967ADC"
  error:
    icon: "circle-xmark"
    color: "#DC3545"
  warning:
    icon: "triangle-exclamation"
    color: "#F39C12"
  success:
    icon: "circle-check"
    color: "#32CD32"
  important:
    icon: "circle-plus"
    color: "#007BFF"

另外对于不同类型消息的描述说明,是放在了i18n配置文件中,方便用户根据自己的语言环境或需求进行调整:

1
2
3
4
5
6
7
8
PostAlert:
  info     : "信息"
  note     : "注意"
  help     : "帮助"
  error    : "错误"
  warning  : "警告"
  success  : "成功"
  important: "重要"

上述这些参数配置在Hugo NexT主题中都已有默认的设置,使用时直接在文章中使用Markdown语法书写即可,部分用法示例参考如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12

> [!INFO]
> `HugoNexT` 主题支持自定义样式设计,你可实现属于自己站点的个性化设计。

> [!NOTE]
> 最新版本的 `HugoNexT` 主题支持Markdown文档的Blockquote渲染,有7种不同风格可选择使用或自定义配置。

> [!HELP]
> `HugoNexT` 主题提供了完整的示例使用说明及源代码,上手更为简单易用。

> [!WARNING]
> `HugoNexT` 主题使用了SCSS 预编译,需要下载 Hugo 官方 `hugo-extended` 版本使用。

上述这些用法示例的输出实际效果如下所示:

信息

HugoNexT 主题支持自定义样式设计,你可实现属于自己站点的个性化设计。

注意

最新版本的 HugoNexT 主题支持Markdown文档的Blockquote渲染,有7种不同风格可选择使用或自定义配置。

帮助

HugoNexT 主题提供了完整的示例使用说明及源代码,上手更为简单易用。

警告

HugoNexT 主题使用了SCSS 预编译,需要下载 Hugo 官方 hugo-extended 版本使用。

这相比较于之前的短代码方式,使用起来是更加方便,而且Github的警告样式在整体的风格上也是和文章更为契合,能让读者的阅读体验也更好些。如果你喜欢的话,就赶紧去升级下你的Hugo NexT主题吧!