Hugo 特性
Hugo 丰富而强大的功能集提供了在几秒钟内(通常更少)构建静态站点的框架和工具。
框架
- 多平台
- 在 Linux、macOS、Windows 及更多系统上安装 Hugo 的单个可执行文件。
- 多语言
- 为每种语言和区域本地化您的项目,包括翻译、图像、日期、货币、数字、百分比和排序顺序。Hugo 的多语言框架支持单主机和多主机配置。
- 输出格式
- 将站点的每个页面渲染为一种或多种输出格式,可按页面类型、部分和路径进行精细控制。虽然 HTML 是默认输出格式,但您可以添加 JSON、RSS、CSV 等。例如,创建 REST API 来访问内容。
- 模板
- 使用变量、函数和方法创建模板,将内容、资源和数据转换为已发布的页面。虽然 HTML 模板是最常见的,但您可以为任何输出格式创建模板。
- 主题
- 通过使用 Hugo 社区贡献的数百个主题之一来减少开发时间和成本。主题适用于企业网站、文档项目、图像作品集、着陆页、个人和专业博客、简历等。
- 模块
- 通过创建或导入打包的原型、资源、内容、数据、模板、翻译表、静态文件或配置设置的组合来减少开发时间和成本。模块可以作为新站点的基础,或增强现有站点。
- 隐私
- 配置您的站点以帮助遵守区域隐私法规。
- 安全
- Hugo 的安全模型基于模板和配置作者是受信任的,但内容作者不是的前提。此模型使生成的 HTML 输出对代码注入安全。其他保护措施包括防止"调用"任意应用程序、限制对特定环境变量的访问、防止连接到任意远程数据源等。
内容创作
- 内容格式
- 使用 Markdown、HTML、AsciiDoc、Emacs Org Mode、Pandoc 或 reStructuredText 创建内容。Markdown 是默认内容格式,符合 CommonMark 和 GitHub Flavored Markdown 规范。
- Markdown 属性
- 将
class和id等 HTML 属性应用于 Markdown 图像和块元素,包括引用、围栏代码块、标题、水平线、列表、段落和表格。 - Markdown 扩展
- 利用嵌入式 Markdown 扩展创建表格、定义列表、脚注、任务列表、插入文本、标记文本、下标、上标等。
- Markdown 渲染钩子
- 在渲染引用、围栏代码块、标题、图像、链接和表格时覆盖 Markdown 到 HTML 的转换。例如,将每个独立图像渲染为 HTML
figure元素。 - 图表
- 使用围栏代码块和 Markdown 渲染钩子在内容中包含图表。
- 数学
- 使用 LaTeX 标记在 Markdown 中包含数学方程和表达式。
- 语法高亮
- 使用 Hugo 嵌入式语法高亮器以语法方式突出显示代码示例,默认情况下为 Markdown 中的围栏代码块启用。语法高亮器支持数百种代码语言和数十种样式。
- 短代码
- 使用 Hugo 嵌入式短代码或创建自己的短代码来插入复杂内容。例如,使用短代码包含
audio和video元素、从本地或远程数据源渲染表格、插入其他页面的片段等。
内容管理
- 多维内容模型
- 从单一来源生成跨语言、角色和版本的任意组合的页面。这允许将单个内容发布到项目中的多个 站点,无需为不同的受众或版本复制文件。
- 内容适配器
- 创建内容适配器以在构建站点时动态添加内容。例如,使用内容适配器从远程数据源(如 JSON、TOML、YAML 或 XML)创建页面。
- 分类法
- 对内容进行分类以在页面之间建立简单或复杂的逻辑关系。例如,创建作者分类法,并为每个页面分配一个或多个作者。除其他用途外,分类系统提供反向加权索引以渲染相关页面列表,按相关性排序。
- 数据
- 使用本地或远程数据源(包括 CSV、JSON、TOML、YAML 和 XML)增强内容。例如,创建短代码从远程 CSV 文件渲染 HTML 表格。
- 菜单
- 通过 Hugo 的菜单系统提供对内容的快速访问,可自动、全局或逐页配置。菜单系统是 Hugo 多语言架构的关键组成部分。
- URL 管理
- 通过全局配置或逐页配置从任何路径提供任何页面。
资源管道
- 图像处理
- 转换、调整大小、裁剪、旋转、调整颜色、应用滤镜、叠加文本和图像、提取元数据。
- JavaScript 打包
- 将 TypeScript 和 JSX 转译为 JavaScript、打包、树摇、压缩、创建源映射、执行 SRI 哈希。
- Sass 处理
- 将 Sass 转译为 CSS、打包、树摇、压缩、创建源映射、与 PostCSS 集成。
- Tailwind CSS 处理
- 将 Tailwind CSS 实用程序类编译为标准 CSS、打包、树摇、优化、压缩、执行 SRI 哈希、与 PostCSS 集成。