HUGO 中文文档

  • 新闻
  • 文档
  • 主题
  • 社区
  • GitHub
gohugoio Star
  • 关于
    • 本节内容
    • 简介
    • 特性
    • 隐私
    • 安全
    • 许可证
  • 安装
    • 本节内容
    • macOS
    • Linux
    • Windows
    • BSD
  • 快速上手
    • 本节内容
    • 快速入门
    • 基本用法
    • 目录结构
    • 配置
    • 配置标记
    • 术语表
    • 配置构建
    • 外部学习资源
  • 快速参考
    • 本节内容
    • 表情符号
    • 函数
    • 方法
    • 页面集合
  • 内容管理
    • 本节内容
    • 组织
    • 页面包
    • 内容格式
    • Front matter (前置 matter)
    • 构建选项
    • 页面资源
    • 图片处理
    • 短代码
    • 相关内容
    • 章节
    • 内容类型
    • 原型
    • 分类法
    • 摘要
    • 链接和交叉引用
    • URL 管理
    • 菜单
    • 评论
    • 多语言
    • Markdown 属性
    • 语法高亮
    • 图表
    • 数学公式
    • 数据源
    • 内容适配器
  • 模板
    • 本节内容
    • 简介
    • 模板类型
    • 查找顺序
    • 基模板
    • 首页模板
    • 单个模板
    • 章节模板
    • 分类模板
    • 术语模板
    • 局部模板
    • 内容视图模板
    • 短代码模板
    • 站点地图模板
    • RSS 模板
    • 404 模板
    • robots.txt 模板
    • 菜单
    • 分页
    • 内嵌模板
    • 自定义输出格式
  • 函数
    • 本节内容
    • css
    • fmt
    • go 模板
    • hugo
    • js
    • lang
    • openapi3
    • os
    • urls
    • 全局
    • 加密
    • 反射
    • 变形
    • 变换
    • 哈希
    • 图像
    • 图表函数
    • 字符串
    • 安全函数
    • 局部模板函数
    • 数学
    • 数据
    • 时间
    • 模板
    • 比较
    • 类型转换
    • 编码
    • 调试
    • 资源
    • 路径
    • 集合
  • 方法
    • 本节内容
    • Duration
    • Menu
    • Page
    • Pager
    • Resource
    • Shortcode
    • Site
    • Taxonomy
    • Time
    • 菜单项
    • 页面
  • 渲染钩子
    • 本节内容
    • 简介
    • 块引用
    • 代码块
    • 标题
    • Images
    • 链接
    • Passthrough
    • 表格
  • Hugo 模块
    • 本节内容
    • 配置 Hugo 模块
    • 使用 Hugo 模块
    • 主题组件
  • Hugo 管道
    • 本节内容
    • 简介
    • 将 Sass 编译为 CSS
    • PostCSS
    • PostProcess
    • JavaScript 构建
    • 资源压缩
    • 连接资产
    • 指纹和 SRI 哈希
    • 从字符串创建资源
    • 从模板创建资源
  • 命令行界面
  • 故障排除
    • 本节内容
    • Audit
    • 日志记录
    • 检查
    • 弃用
    • 性能
    • FAQs
  • 开发者工具
    • 本节内容
    • 编辑器插件
    • 前端
    • Search
    • 迁移
    • 其他项目
  • 托管和部署
    • 本节内容
    • Hugo 部署
    • 使用 Rclone 部署
    • 使用 Rsync 部署
    • 在 21YunBox 上托管
    • 在 AWS Amplify 上托管
    • 在 Cloudflare Pages 上托管
    • 在 Firebase 上托管
    • 在 GitLab Pages 上托管
    • 在 Netlify 上托管
    • 在 Render 上托管
    • 托管在 Azure 静态 Web 应用上
    • 托管在 GitHub Pages 上
    • 托管在 KeyCDN 上
  • 贡献
    • 本节内容
    • 开发
    • 文档
    • 主题
  • 维护
ASSET MANAGEMENT

ToCSS

将 Sass 编译为 CSS。

Syntax

css.Sass [OPTIONS] RESOURCE

Returns

resource.Resource

Alias

toCSS

使用方法

使用 Hugo 扩展版和扩展/部署版中包含的 LibSass 编译器将 Sass 转换为 CSS,或者 安装 Dart Sass 以使用 Sass 语言的最新功能。

{{ $opts := dict "transpiler" "libsass" "targetPath" "css/style.css" }}
{{ with resources.Get "sass/main.scss" | toCSS $opts | minify | fingerprint }}
  <link rel="stylesheet" href="{{ .RelPermalink }}" integrity="{{ .Data.Integrity }}" crossorigin="anonymous">
{{ end }}

Sass 有两种语法形式:SCSS 和 缩进式 。Hugo 支持这两种语法。

选项

transpiler
(string) 要使用的编译器, libsass (默认)或 dartsass 。Hugo 的扩展版和扩展/部署版包含 LibSass 编译器。要使用 Dart Sass 编译器,请参见下面的 安装说明 。
targetPath
(string) 如果未设置,转换后的资源目标路径将是资源文件的原始路径,其扩展名替换为 .css 。
vars
(map) 一组键值对映射,这些键值对将在 hugo:vars 命名空间中可用。对于 从 Hugo 模板初始化 Sass 变量 很有用。
// LibSass
@import "hugo:vars";

// Dart Sass
@use "hugo:vars" as v;
outputStyle
(string) LibSass 可用的输出样式包括 nested (默认)、 expanded 、 compact 和 compressed 。Dart Sass 可用的输出样式包括 expanded (默认)和 compressed 。
precision
(int) 浮点运算的精度。不适用于 Dart Sass。
enableSourceMap
(bool) 如果为 true ,则生成源映射。
sourceMapIncludeSources
(bool) 如果为 true ,则将源嵌入到生成的源映射中。不适用于 LibSass。
includePaths
(slice) 路径切片,相对于项目根目录,编译器在解析 @use 和 @import 语句时将使用这些路径。
{{ $opts := dict
  "transpiler" "dartsass"
  "targetPath" "css/style.css"
  "vars" site.Params.styles
  "enableSourceMap" (not hugo.IsProduction)
  "includePaths" (slice "node_modules/bootstrap/scss")
}}
{{ with resources.Get "sass/main.scss" | toCSS $opts | minify | fingerprint }}
  <link rel="stylesheet" href="{{ .RelPermalink }}" integrity="{{ .Data.Integrity }}" crossorigin="anonymous">
{{ end }}

Dart Sass

Hugo 的扩展版本包含 LibSass 用于将 Sass 编译为 CSS。2020 年,Sass 团队弃用了 LibSass,转而使用 Dart Sass。

通过在开发和生产环境中安装 Dart Sass 来使用 Sass 语言的最新功能。

安装概述

Dart Sass 与 Hugo v0.114.0 及更高版本兼容。

如果您之前在 Hugo v0.113.0 及更早版本中使用过嵌入式 Dart Sass 1(In) ,请卸载嵌入式 Dart Sass,然后安装 Dart Sass。如果您同时安装了这两个版本,Hugo 将使用 Dart Sass。

如果您将 Hugo 安装为[Snap 包],则无需安装 Dart Sass。Hugo Snap 包包含 Dart Sass。

在开发环境中安装

当您将 Dart Sass 安装到 PATH 中的某个位置时,Hugo 将会找到它。

操作系统 包管理器 网站 安装命令
Linux Homebrew brew.sh brew install sass/sass/sass
Linux Snap snapcraft.io sudo snap install dart-sass
macOS Homebrew brew.sh brew install sass/sass/sass
Windows Chocolatey chocolatey.org choco install sass
Windows Scoop scoop.sh scoop install sass

您也可以安装 预编译二进制文件 用于 Linux、macOS 和 Windows。

运行 hugo env 以列出活动的编译器。

在生产环境中安装

对于 CI/CD 部署(例如 GitHub Pages、GitLab Pages、Netlify 等),您必须编辑工作流以在 Hugo 构建站点之前安装 Dart Sass 2(You) 。一些提供商允许您使用上述包管理器之一,或者您可以下载并解压预编译二进制文件之一。

GitHub Pages

要在 GitHub Pages 上的构建中安装 Dart Sass,请将此步骤添加到 GitHub Pages 工作流文件中:

- name: Install Dart Sass
  run: sudo snap install dart-sass

如果您是第一次使用您的存储库和 GitHub Pages,GitHub 提供了一个用于 Hugo 的 入门工作流 ,其中包含 Dart Sass。这是最简单的入门方法。

GitLab Pages

要在 GitLab Pages 上的构建中安装 Dart Sass, .gitlab-ci.yml 文件应如下所示:

variables:
  HUGO_VERSION: 0.137.1
  DART_SASS_VERSION: 1.80.6
  GIT_DEPTH: 0
  GIT_STRATEGY: clone
  GIT_SUBMODULE_STRATEGY: recursive
  TZ: America/Los_Angeles
image:
  name: golang:1.20-buster
pages:
  script:
    # Install Dart Sass
    - curl -LJO https://github.com/sass/dart-sass/releases/download/${DART_SASS_VERSION}/dart-sass-${DART_SASS_VERSION}-linux-x64.tar.gz
    - tar -xf dart-sass-${DART_SASS_VERSION}-linux-x64.tar.gz
    - cp -r dart-sass/* /usr/local/bin
    - rm -rf dart-sass*
    # Install Hugo
    - curl -LJO https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb
    - apt install -y ./hugo_extended_${HUGO_VERSION}_linux-amd64.deb
    - rm hugo_extended_${HUGO_VERSION}_linux-amd64.deb
    # Build
    - hugo --gc --minify
  artifacts:
    paths:
      - public
  rules:
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH

Netlify

要在 Netlify 上的构建中安装 Dart Sass, netlify.toml 文件应如下所示:

[build.environment]
HUGO_VERSION = "0.137.1"
DART_SASS_VERSION = "1.80.6"
TZ = "America/Los_Angeles"

[build]
publish = "public"
command = """\
  curl -LJO https://github.com/sass/dart-sass/releases/download/${DART_SASS_VERSION}/dart-sass-${DART_SASS_VERSION}-linux-x64.tar.gz && \
  tar -xf dart-sass-${DART_SASS_VERSION}-linux-x64.tar.gz && \
  rm dart-sass-${DART_SASS_VERSION}-linux-x64.tar.gz && \
  export PATH=/opt/build/repo/dart-sass:$PATH && \
  hugo --gc --minify \
  """

示例

要使用 Dart Sass 进行编译,请在传递给 css.Sass 的选项映射中将 transpiler 设置为 dartsass 。例如:

{{ $opts := dict "transpiler" "dartsass" "targetPath" "css/style.css" }}
{{ with resources.Get "sass/main.scss" | toCSS $opts | minify | fingerprint }}
  <link rel="stylesheet" href="{{ .RelPermalink }}" integrity="{{ .Data.Integrity }}" crossorigin="anonymous">
{{ end }}

其他

如果您从源代码构建 Hugo 并运行 mage test -v ,如果您将 Dart Sass 安装为 Snap 包,则测试将失败。这是由于 Snap 包的严格限制模型造成的。


  1. 2023 年,Sass 团队弃用了嵌入式 Dart Sass,转而使用 Dart Sass。 ↩︎

  2. 如果 (a) 您没有修改资源缓存位置,并且 (b) 您没有在 站点配置 中将 useResourceCacheWhen 设置为 never ,并且 (c) 您将资源目录添加到存储库并提交,则不必执行此操作。 ↩︎

See also

  • css.Sass
  • resources.ToCSS
  • images.Dither
  • images.Text
  • css.TailwindCSS

On this page

  • 使用方法
  • 选项
  • Dart Sass
Last updated: January 10, 2025: 添加 gtm 谷歌代码管理 (6220bf5)
Improve this page
By the Hugo Authors
Hugo Logo
  • File an Issue
  • Get Help
  • @GoHugoIO
  • @spf13
  • @bepsays
 

Hugo Sponsors

Your Company?
 

The Hugo logos are copyright © Steve Francia 2013–2025.

The Hugo Gopher is based on an original work by Renée French.

  • 新闻
  • 文档
  • 主题
  • 社区
  • GitHub
  • 关于
  • 安装
  • 快速上手
  • 快速参考
  • 内容管理
  • 模板
  • 函数
  • 方法
  • 渲染钩子
  • Hugo 模块
  • Hugo 管道
  • 命令行界面
  • 故障排除
  • 开发者工具
  • 托管和部署
  • 贡献
  • 维护