先決條件

HB 是一個功能豐富的框架,但同時也具有着一定的複雜性。本文將詳細列出 HB 的環境要求,以便你可以正常地開發和使用 HB 模塊和主題。

必要配置§

hugo.toml

1[build]
2  writeStats = true
toml

hugo.yaml

1build:
2  writeStats: true
yaml

hugo.json

1{
2   "build": {
3      "writeStats": true
4   }
5}
json
build.writeStats

用於收集站點所使用到的 classesidstags,以供 PurgeCSS 清除未使用的 CSS。

構建工具§

推薦儘可能地使用以下構建工具的最新版本。

Go§

HB 是一個模塊化的框架,需要安裝 Go 語言以下載和更新 Hugo 模塊

1sudo pacman -S go
sh

Hugo§

Version

HB 使用 Hugo Pipes 來編譯 SCSS,因此需要擴展版(extended)的 Hugo

若你位於中國大陸而沒有 VPN 時,你需要先設置 Go 代理服務器

1go install -tags extended github.com/gohugoio/hugo@latest
sh

Git§

版本控制系統,可通過下載頁面獲得。

1sudo pacman -S git
sh

Node.js§

要求 Node.js 16 或後續版本。

HB 依賴以下 Node.js 包。

1sudo pacman -S nodejs
sh
名稱描述
PostCSS CLI用於轉變樣式。
RTLCSS將 LTR CSS 轉換爲 RTL,如果你沒有 RTL 網站則可選。
Autoprefixer解析 CSS 並在 Can I Use 規則中添加對應的前綴。
PurgeCSS移除未使用的 CSS。

NPM 已被包含於 Node.js 安裝中,你可以選擇局部或全局地安裝這些包。

局部安裝
1npm i -D postcss-cli @fullhuman/postcss-purgecss autoprefixer rtlcss
sh

局部安裝將依賴寫入 package.json,以便部署時通過 npm i 安裝這些包,而無需記住這些繁雜的包名。

全局安裝
1sudo npm i -g postcss-cli @fullhuman/postcss-purgecss autoprefixer rtlcss
sh

該命令只需執行一次,後續的 HB 站點無需再次執行此命令。

兩者都是有效的,HB 會優先局部查找需要的包。

注意§

publishDir 必須public§

它受到關於共享 PurgeCSS 配置的 HB 實現的限制。

該限制以於 v0.7.2 修復。

Hugo Server 生產模式的必要參數§

若需要在生產模式下使用 Hugo Server,需要指定 --disableFastRender--renderToDisk,否則 PurgeCSS 和 PostCSS 會出現意想不到的問題。

1hugo server \
2  --disableFastRender \
3  --renderToDisk \
4  -e production \
5  -b http://localhost:1314 \
6  -p 1314
sh

請勿於語言範圍配置中修改 hbhugopress 參數§

HB 依賴於模塊間配置的深度合併,然而語言範圍的參數將會覆蓋覆蓋模塊的配置,而非深度合併,這將導致各種意想不到的問題。比如以下的配置示例是不允許的。

hugo.toml

 1[language]
 2  [language.en]
 3    [language.en.params]
 4      [language.en.params.hb]
 5        foo = 'bar'
 6      [language.en.params.hugopress]
 7        foo = 'bar'
 8  [language.zh-hans]
 9    [language.zh-hans.params]
10      [language.zh-hans.params.hb]
11        foo = 'bar'
12      [language.zh-hans.params.hugopress]
13        foo = 'bar'
toml

hugo.yaml

 1language:
 2  en:
 3    params:
 4      hb:
 5        foo: bar
 6      hugopress:
 7        foo: bar
 8  zh-hans:
 9    params:
10      hb:
11        foo: bar
12      hugopress:
13        foo: bar
yaml

hugo.json

 1{
 2   "language": {
 3      "en": {
 4         "params": {
 5            "hb": {
 6               "foo": "bar"
 7            },
 8            "hugopress": {
 9               "foo": "bar"
10            }
11         }
12      },
13      "zh-hans": {
14         "params": {
15            "hb": {
16               "foo": "bar"
17            },
18            "hugopress": {
19               "foo": "bar"
20            }
21         }
22      }
23   }
24}
json

請禁用 Cloudflare Rocket Loader§

Cloudflare Rocket Loader 缺少了 DOMContentLoaded 事件,會導致很多模塊失效,即便我們爲此提供了一個補丁,但得不償失,禁用該功能是目前最佳選擇。

  • 全部
  • English
  • 简体中文
  • 繁體中文
  • 最佳匹配
  • 最舊的
  • 最新的
  • 2020
  • 2022
  • 2023
  • HB Framework Authors
  • Hugo Authors
  • Banner
  • Build Tools
  • Comments
  • Configuration
  • Deployment
  • Develop
  • Footer
  • Header
  • Inline Frame
  • Installation
  • Look and Feel
  • Menus
  • Module
  • Modules
  • Shortcode
  • Sidebar
  • 侧边栏
  • 内容
  • 安装
  • 开发
  • 构建工具
  • 概览
  • 模块
  • 横幅
  • 短代码
  • 菜单
  • 观感
  • 评论
  • 部署
  • 配置
  • 页头
  • 页尾
  • 側邊欄
  • 內容
  • 安裝
  • 概覽
  • 構建工具
  • 模塊
  • 橫幅
  • 短代碼
  • 菜單
  • 觀感
  • 評論
  • 開發
  • 頁尾
  • 頁頭
  • Docs
  • Examples
  • Modules
  • News
  • Showcases
  • Themes
  • Tutorials
  • 教程
  • 文档
  • 新闻
  • 模块
  • 示例
  • 文檔
  • 新聞
  • 模塊
  • Alert
  • Animations
  • AOS
  • Applications
  • asciinema
  • Authors
  • Autoprefixer
  • Back to top
  • Background Image
  • beian
  • Bigger Picture
  • Bilibili
  • Blog
  • Bootstrap
  • Breadcrumb
  • Breakpoint
  • Classic
  • clean
  • Clearfix
  • Cloudflare Pages
  • Code Block Panel
  • CodePen
  • Comments
  • Comments Engine
  • Config Toggle
  • Contact
  • Contact Form
  • Content Panel
  • CSS
  • Dark Mode
  • defaultContentLanguageInSubdir
  • Diagrams
  • Disqus
  • Docker
  • Docs
  • DocSearch
  • Domain
  • Featured Image
  • Figure
  • Fonts
  • Footer
  • Footer Menus
  • frame
  • Gallery
  • GCSE
  • Giscus
  • Gist
  • Git
  • GitHub Pages
  • Go
  • Google
  • Google Fonts
  • graph
  • Header
  • Header Menus
  • Heading Sign
  • Highlight
  • HLS
  • Hooks
  • HTML
  • Hugo
  • Icon
  • iframe
  • Image
  • Image Link
  • Instagram
  • Introduction
  • JavaScript
  • JS
  • JSRun
  • KaTex
  • Language Picker
  • Lead
  • Light Mode
  • Markdown
  • Menus
  • Mermaid
  • Meta
  • Module
  • MPD
  • MPEG-DASH
  • Multilingual
  • NetEase Could Music
  • Netlify
  • News
  • Node.js
  • noscript
  • NPM
  • Pagination
  • Param
  • Picture
  • Pills
  • PostCSS
  • Posts
  • Profile
  • Progress Bar
  • PurgeCSS
  • PWA
  • Ratio
  • ref
  • Related Posts
  • relref
  • Return to top
  • RTLCSS
  • Scrollbar
  • Scrollspy
  • SCSS
  • Search
  • Search Engines
  • Slide
  • Social Links
  • Socials
  • Start Page
  • Staticman
  • Style Guide
  • Syntax Highlighting
  • Table of Contents
  • Taxonomies
  • Theme
  • Themes
  • tidy
  • ToC
  • Toggle
  • Tweet
  • Twikoo
  • TypeScript
  • Utterances
  • Videos
  • Vimeo
  • YouKu
  • YouTube
  • Front Matter
  • JSON
  • TOML
  • YAML
  • 主题
  • 代码块面板
  • 优酷
  • 作者
  • 元模块
  • 公告栏
  • 内容面板
  • 内容面板模块
  • 分类
  • 分页
  • 动画
  • 博客
  • 哔哩哔哩
  • 回到顶部
  • 图库
  • 图标
  • 图片
  • 图片链接
  • 图表
  • 域名
  • 备案
  • 多语言
  • 字体
  • 幻灯片
  • 搜索
  • 文档
  • 文章
  • 断点
  • 新闻
  • 标题链接
  • 浅色模式
  • 深色模式
  • 滚动条
  • 特色图片
  • 目录
  • 相关文章
  • 社交链接
  • 简介
  • 网易云音乐
  • 联系表单
  • 背景图片
  • 菜单
  • 视频
  • 评论
  • 评论引擎
  • 语法高亮
  • 语言选项
  • 谷歌
  • 谷歌字体
  • 返回顶部
  • 进度条
  • 钩子
  • 面包屑导航
  • 页头
  • 页头菜单
  • 页尾
  • 页尾菜单
  • 风格指南
  • 主題
  • 代碼塊面板
  • 備案
  • 優酷
  • 元模塊
  • 內容面板
  • 內容面板模塊
  • 公告欄
  • 分頁
  • 分類
  • 動畫
  • 嗶哩嗶哩
  • 回到頂部
  • 圖庫
  • 圖標
  • 圖片
  • 圖片鏈接
  • 圖表
  • 多語言
  • 字體
  • 幻燈片
  • 文檔
  • 新聞
  • 斷點
  • 標題鏈接
  • 淺色模式
  • 滾動條
  • 特色圖片
  • 目錄
  • 相關文章
  • 社交鏈接
  • 簡介
  • 網易雲音樂
  • 聯繫表單
  • 背景圖片
  • 菜單
  • 視頻
  • 評論
  • 評論引擎
  • 語法高亮
  • 語言選項
  • 谷歌字體
  • 返回頂部
  • 進度條
  • 鉤子
  • 頁尾
  • 頁尾菜單
  • 頁頭
  • 頁頭菜單
  • 風格指南
  • 麪包屑導航