HUGO

  • 新闻
  • 文档
  • 主题
  • 社区
  • GitHub
gohugoio 加星
  • 关于
    • 在本节中
    • 简介
    • 特性
    • 隐私
    • 安全
    • 许可证
  • 安装
    • 在本节中
    • macOS
    • Linux
    • Windows
    • BSD
  • 入门
    • 在本节中
    • 快速开始
    • 基本用法
    • 目录结构
    • 配置
    • 配置标记
    • 配置构建
    • 术语表
    • 外部学习资源
  • 快速参考
    • 在本节中
    • 表情符号
    • 函数
    • 方法
    • 页面集合
  • 内容管理
    • 在本节中
    • 组织
    • 页面包
    • 内容格式
    • Front matter
    • 构建选项
    • 页面资源
    • 图像处理
    • Shortcode
    • 相关内容
    • 章节
    • 内容类型
    • 原型
    • 分类法
    • 摘要
    • 链接和交叉引用
    • URL 管理
    • 菜单
    • 评论
    • 多语言
    • Markdown 属性
    • 语法高亮
    • 图表
    • 数学
    • 数据源
    • 内容适配器
  • 模板
    • 在本节中
    • 简介
    • 模板类型
    • 查找顺序
    • 基础模板
    • 主页模板
    • 单页模板
    • 章节模板
    • 分类法模板
    • 术语模板
    • 局部模板
    • 内容视图模板
    • Shortcode 模板
    • 站点地图模板
    • RSS 模板
    • 404 模板
    • robots.txt 模板
    • 菜单
    • 分页
    • 嵌入式模板
    • 自定义输出格式
  • 函数
    • 在本节中
    • cast
    • collections
    • compare
    • crypto
    • css
    • data
    • debug
    • diagrams
    • encoding
    • fmt
    • global
    • go template
    • hash
    • hugo
    • images
    • inflect
    • js
    • lang
    • math
    • openapi3
    • os
    • partials
    • path
    • reflect
    • resources
    • safe
    • strings
    • templates
    • time
    • transform
    • urls
  • 方法
    • 在本节中
    • Duration
    • Menu
    • 菜单项
    • Page
    • Pager
    • Pages
    • Resource
    • Shortcode
    • Site
    • Taxonomy
    • Time
  • 渲染钩子
    • 在本节中
    • 简介
    • 引用
    • 代码块
    • 标题
    • 图像
    • 链接
    • Passthrough
    • 表格
  • Shortcode
    • 在本节中
    • 评论
    • 详情
    • 图
    • Gist
    • 高亮
    • Instagram
    • Param
    • QR
    • Ref
    • Relref
    • Vimeo
    • X
    • YouTube
  • Hugo 模块
    • 在本节中
    • 配置 Hugo 模块
    • 使用 Hugo 模块
    • 主题组件
  • Hugo Pipes
    • 在本节中
    • 简介
    • 将 Sass 转译为 CSS
    • PostCSS
    • 后处理
    • JavaScript 构建
    • 资源压缩
    • 连接资源
    • 指纹识别和 SRI 哈希
    • 从字符串创建资源
    • 从模板创建资源
  • CLI
  • 问题排查
    • 在本节中
    • 审计
    • 日志
    • 检查
    • 弃用
    • 性能
    • 常见问题
  • 开发者工具
    • 在本节中
    • 编辑器插件
    • 前端
    • 搜索
    • 迁移
    • 其他项目
  • 托管和部署
    • 在本节中
    • Hugo Deploy
    • 使用 Rclone 部署
    • 使用 Rsync 部署
    • 在 21YunBox 上托管
    • 在 AWS Amplify 上托管
    • 在 Azure Static Web Apps 上托管
    • 在 Cloudflare Pages 上托管
    • 在 Firebase 上托管
    • 在 GitHub Pages 上托管
    • 在 GitLab Pages 上托管
    • 在 KeyCDN 上托管
    • 在 Netlify 上托管
    • 在 Render 上托管
  • 贡献
    • 在本节中
    • 开发
    • 文档
    • 主题
  • 维护
函数 资源函数

resources.ToCSS

将 Sass 转译为 CSS。

语法

resources.ToCSS [OPTIONS] RESOURCE

返回值

resource.Resource

在 v0.128.0 中已弃用。

请改用 css.Sass。

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

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

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

选项

transpiler
(string) 要使用的转译器,可以是 libsass (默认) 或 dartsass。Hugo 的扩展版和扩展/部署版包括 LibSass 转译器。要使用 Dart Sass 转译器,请参阅下面的安装说明。
targetPath
(string) 如果未设置,则转换后的资源的target path将是资产文件的原始路径,其扩展名替换为 .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 Sass1,请卸载嵌入式 Dart Sass,然后安装 Dart Sass。如果您同时安装了这两个版本,Hugo 将使用 Dart Sass。

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

在开发环境中安装

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

操作系统 包管理器 Site 安装
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 Sass2。某些提供商允许您使用上述包管理器之一,或者您可以下载并提取预构建二进制文件之一。

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.141.0
  DART_SASS_VERSION: 1.83.4
  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.141.0"
DART_SASS_VERSION = "1.83.4"
NODE_VERSION = "22"
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 进行转译,请在传递给 resources.ToCSS 的选项映射中将 transpiler 设置为 dartsass。例如:

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

其他

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


  1. 在 2023 年,Sass 团队弃用了 Embedded Dart Sass,转而支持 Dart Sass。↩︎

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

另请参阅

  • resources.Fingerprint
  • resources.Minify
  • css.PostCSS
  • resources.PostProcess

本页内容

  • 选项
  • Dart Sass

在本节中

  • resources.Babel
  • resources.ByType
  • resources.Concat
  • resources.Copy
  • resources.ExecuteAsTemplate
  • resources.Fingerprint
  • resources.FromString
  • resources.Get
  • resources.GetMatch
  • resources.GetRemote
  • resources.Match
  • resources.Minify
  • resources.PostCSS
  • resources.PostProcess
  • resources.ToCSS
上次更新时间:2025 年 1 月 16 日:将目录名称、文件名和文件路径格式化为代码 (8051ff818)
改进此页面
由Hugo 作者提供
Hugo Logo
  • 提交问题
  • 获取帮助
  • @GoHugoIO
  • @spf13
  • @bepsays

Netlify badge

 

Hugo 赞助商

您的公司?
 

Hugo 徽标的版权归 Steve Francia 2013–2025 所有。

Hugo 地鼠基于 Renée French 的原创作品。

  • 新闻
  • 文档
  • 主题
  • 社区
  • GitHub
  • 关于
  • 安装
  • 入门
  • 快速参考
  • 内容管理
  • 模板
  • 函数
  • 方法
  • 渲染钩子
  • Shortcode
  • Hugo 模块
  • Hugo Pipes
  • CLI
  • 问题排查
  • 开发者工具
  • 托管和部署
  • 贡献
  • 维护