如何使用 Hugo 设置 SCSS

Posted

技术标签:

【中文标题】如何使用 Hugo 设置 SCSS【英文标题】:How to setup SCSS with Hugo 【发布时间】:2019-06-01 02:36:32 【问题描述】:

我对 Hugo 还很陌生,并且在文档方面有点挣扎,因为不完整的示例感觉非常分散。

我创建了一个新网站hugo new site site-name 以及一个新主题hugo new theme theme-name

在SASS/SCSS 的文档页面中有以下示例:

 $sass := resources.Get "sass/main.scss" 
 $style := $sass | resources.ToCSS 

不知道应该去哪里,整个管道是如何工作的。此外,这似乎是专门寻找 assets 文件夹下的文件,即使主题是使用 static/css 文件夹创建的。我在网上找到的大多数示例都是在将支持添加到 hugo 之前使用 gulp 进行编译的旧设置(据我了解)

【问题讨论】:

【参考方案1】:

您可以使用hugo 的扩展(如https://github.com/gohugoio/hugo/releases/download/v0.53/hugo_extended_0.53_Windows-64bit.zip)版本,它会自动为您将SCSS 编译为CSS。然后,您可以自定义所有设置。如果您不想/不使用扩展版本,那么您将不得不与 ruby​​ SASS 或 Gulp 等观察者一起去老学校。

另请参考:https://gohugo.io/news/0.43-relnotes/,见注释。 “Hugo 现在发布了两个二进制版本:一个支持和一个不支持 SCSS/SASS。在撰写本文时,这仅在 GitHub 发布页面上的二进制文件中可用。Brew、Snap 构建等将会出现。但请注意如果您想编辑 SCSS,则只需要扩展版本。对于您的 CI 服务器,或者如果您不使用 SCSS,您很可能需要非扩展版本。"

我个人用的是加长版; Gitlab CI 也是如此,没有任何问题。我总是编写/编辑 SCSS;运行hugo,剩下的就交给它了。您还必须确保您的主题支持/很好地配合它。我使用的主题(支持 SCSS):https://github.com/luizdepra/hugo-coder/

【讨论】:

好的,我明白了,谢谢,我实际上是在 v0.53 上运行(使用自制软件安装)。我猜它现在包括支持,因为编译器似乎支持这些功能。发行说明和主题帮助我理解了我所缺少的。我猜这些文件总是必须在assets 文件夹下。 @LostBalloon 是的。默认。主题也配置了管道。但是是的,通常在assets/ 下。 一个简单的问题,我猜当你使用的主题中的targetPath 设置为'css/file.css 时,它是用于编译时,最终在/public/css/file.css 下? @LostBalloon 正确。另外,如果需要,还有 PostCSS:gohugo.io/hugo-pipes/postcss。 非常感谢您的帮助,我的原型终于可以工作了!【参考方案2】:

不知道应该去哪里,整个管道是如何工作的

该代码应该放在 html 中,特别是您通常添加 CSS 的地方。代码中的$styles 变量将包含已处理的 CSS 文件的位置以及其他详细信息(如果有)。


以下是在 Hugo 中设置 SCSS 管道的步骤,

    在资产目录中的某处创建 scss。默认资产目录为/assets。例如:/assets/sass/main.scss 转到您的基本 HTML 布局或任何其他部分部分,您将在其中正常导入 CSS 文件并将代码添加到管道文档中。 resources.Get 旁边的 URL 与配置文件中定义的资产目录相关。在我的情况下,如下所示,
 $sass := resources.Get "sass/main.scss" 
 $style := $sass | resources.ToCSS | resources.Fingerprint 
<link rel="stylesheet" href=" $styles.Permalink " integrity=" $styles.Data.Integrity ">

【讨论】:

有点过时了,但是帮了大忙。您不再需要定义assetDir,文档中有一个示例。但它有助于获取您直接在 html 中使用它的信息。认为您必须在某种构建系统中执行此操作。 gohugo.io/hugo-pipes/introduction @Citrullin 很高兴它对你有帮助。更新了默认资产目录的答案。感谢您指出。

以上是关于如何使用 Hugo 设置 SCSS的主要内容,如果未能解决你的问题,请参考以下文章

如何将波斯日历添加到 Hugo

如何在hugo的页面内容中使用模板参数

如何将scss变量设置为css变量使用javascript

Hugo:如何将图像存储在与帖子相同的目录中?

如何使用 react webpack 设置 bootstrap 4 scss

Shopware 6 如何在scss中使用配置好的主题原色?