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

推荐订阅源

SecWiki News
SecWiki News
I
InfoQ
The Cloudflare Blog
人人都是产品经理
人人都是产品经理
博客园 - Franky
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
博客园_首页
罗磊的独立博客
V
V2EX
李成银的技术随笔
大猫的无限游戏
大猫的无限游戏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
True Tiger Recordings
Vercel News
Vercel News
Cyberwarzone
Cyberwarzone
Cisco Talos Blog
Cisco Talos Blog
F
Fox-IT International blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
M
Microsoft Research Blog - Microsoft Research
Know Your Adversary
Know Your Adversary
爱范儿
爱范儿
The Register - Security
The Register - Security
G
Google Developers Blog
The Hacker News
The Hacker News
Malwarebytes
Malwarebytes
S
Securelist
博客园 - 三生石上(FineUI控件)
Jina AI
Jina AI
T
Threat Research - Cisco Blogs
T
The Exploit Database - CXSecurity.com
S
SegmentFault 最新的问题
博客园 - 叶小钗
F
Fortinet All Blogs
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
博客园 - 聂微东
T
Threatpost
博客园 - 【当耐特】
D
Docker
P
Privacy & Cybersecurity Law Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
G
GRAHAM CLULEY
V
Visual Studio Blog
C
Cisco Blogs
IT之家
IT之家
S
Security Archives - TechRepublic
Latest news
Latest news
阮一峰的网络日志
阮一峰的网络日志

kok的笔记本

谁来救救我的Mac存储空间-清理工具横评:付费vs免费,从界面到命令行 2023 读书推荐 写给播客嘉宾的录制说明书 在 Electron 中使用 Vue Devtools 几何原本中勾股定理的证明 Mac 安装软件时提示 已损坏,无法打开 应该怎么办 PegBoard 你的数字白板 少数派读者与作者的 NewsLetter 闲棋冷子-2-2021年我读过哪些很棒的书 闲棋冷子-1-相信你的身体,它不会骗你 修复 macOS 中 Cisco Anyconnect 报的奇怪Bug 我的 NAS 使用记录 Omniplan 入门教程 Hugo升级0.74记录 一年级产品经理需要掌握什么知识? 无籍之谈-3-和盖盖聊聊尼尔·盖曼与中外科幻 露营笔记-装备篇 无籍之谈-2-和鹏仔聊华尔街兴盛史,给小白投资者的一些建议 介绍一下《无籍之谈》 无籍之谈-1-和不土聊佛学,谈谈《一心走路》《僧侣与哲学家》 高达模型入门 - 工具整理 5 分钟了解 Sketch 的新特性 Tint - 色调 Hugo 主题移动端开发的一些心得 修复 macbook 键盘连击问题 在 Hugo 中使用 Open Graph 提升分享效果 选小米10 还是小米10 Pro? 利用 Python 批量合并 Excel 文件 为什么家国梦不好玩? 高雄85大楼 Mac优秀软件推荐-Itsycal 找到并和正确使用无版权资源 Excel 常用函数 一 无线吸尘器挑选指南 钢铁、蒸汽与 19 世纪 聊聊《铁道之旅》 如何挑选一个电脑电源? 有用的正则表达式 给psd瘦身 2019第二季度读书总结 组装 ITX 黑苹果主机 Intel CPU 挑选指南 常用的 Markdown 工具 2019第一季度读书总结 怎么用尺规作图画75°角? 真正的换位思考-《爱的沟通》读书笔记 Hugo 中使用思维导图 反叛公司中的治理者和顾问玩法 如何搭配成为一个盐系男生? 反叛公司 Rebel Inc. 入门指南 如何评估需求,预估开发成本? 小米8、小米8SE、小米8青春版参数对比 微信外部链接内容管理规范分析 在售 iPhone 参数对比 给Hugo blog中增加一些插件 微信 MacOS 多开的一些实践 矩阵与线性变换的概念理解 尺规作图小习题 用 hugo 和 netlify 搭建blog 介绍我自己 瓜摊老板 Really? EDM邮件营销,你需要知道 喀赞其的马车 果子沟大桥 清晨的木梨硡 hexo 主题开发 青龙寺的狮子 用一个特殊方法解决同位词问题 语义化 html 标签 数模的基本思路和写作攻略 hexo blog 搭建 0.1,0.1^0.1,为什么数值是波动的? 智能手机之旅 老师和学生的博弈 这些使用抗生素的方式,你做的对吗? 炼金术与钢之炼金术师 kok的笔记本 kok的笔记本 无标题
在 Hugo 中使用 Sass
2019-03-25 · via kok的笔记本

当网站结构复杂的时候,使用 sass 就很必要了。但是 hugo+sass 的教程很少见,我这里参考一些英语资料总结一些你可能需要的 tips。

一、Sass 的支持

从 0.43版本之后,Hugo 就支持了 Sass 的编译,这意味着在编译静态网站的时候不用同时运行 Gulp 或者其他的什么前端工具。

什么,你连 Sass 是什么都不知道,快戳这个链接看看吧。

二、Sass 的文件结构

在 Hugo 中,你只能把 Sass 的源文件放到 /assets/scss//themes/your-theme/assets/scss/ 下,没有别的路径可以选择。

这里假设入口 scss 文件为 main.scss。根据《Architecture for a Sass Project》的建议,我们也在 scss 文件夹下创建这样的目录:

v b l c p m e a a o a a n s y m g i d e o p e n o / _ _ u o s . r v m p t n s / a i l / e c r x a n s i i c t s a n e s b s h / l . o e s l s c d . s e s s r c s s . s s c s s

对了,这篇文章的作者叫做 Hugo Giraudel,如果你在Google 中搜索 hugo + sass ,大概率搜索到的是这位大牛写的关于 sass 的文章……

接着,在 main.scss 中将这些模块都 @import 进去。

三、通过 Hugo 编译 scss 文件

如果你前面做的都没问题,那么在对应的模板中加入:

{{ $styles := resources.Get "scss/main.scss" | toCSS | minify | fingerprint }}

其中 resouces.Get 是 Huho 提供的函数获取 scss 文件内容,后面的 toCSS,minify,fingerprint是一些管道操作,用来编译和压缩 CSS。

Fingerprint 这个技术可以给生成的文件加上独一无二的 hash 文件名,这样网站更新后,用户从CDN拉取的也是最新的 css 而不是缓存中的老文件。

接着,在 html 的 head 中加入

<link rel=”stylesheet” href=”{{ $styles.Permalink }}” integrity="{{ $styles.Data.Integrity" media=”screen”>

基本就完成了整个引入的操作。

四、覆写主题中已有的 scss

如果你已经引入了别人的主题,对方有一个 scss 文件,你自己想要覆写,你可以在本地的 /assets/scss/ 下建立一个同名的文件,这个文件的优先级比主题中的更高。

五、根据 Hugo 的模板来写 scss

我目前使用的是 hugo-paper 主题,当然我自己已经魔改好几轮了。包括:

  • 增加图片展示
  • 增加 valine 支持
  • 增加 脑图 支持
  • 增加 category 支持
  • etc

姑且把这个主题叫做 hugo-paper-plus 吧。

这个主题的模板很简单,一共包括四个部分:

  • 全局的 header.html
  • 全局的 footer.html
  • 文章列表页 list.html
  • 文章页 single.html

所以针对这个结构,我想到对应的 scss 结构是这样的:

  • /pages/single.scss
  • /pages/list.scss
  • /layout/header.scss
  • /layout/footer.scss
  • /components/list-item.scss

六、分割 CSS,重写

这段就没什么好说的了,苦逼编码中。目前已经将一个大的 css 文件分割成了若干个小文件。

啊对了,如果你和我一样用的 netlify 来编译网站的话,记得修改一下 hugo 的版本,最新的版本是 0.54.0

参考文章:

How to cache-bust and concatenate JS and SASS files with Hugo in 2018