Hugo 官方术语表全解:从数据类型到多维内容模型的权威速查指南

📅 发布时间:2026/9/19 11:07:20
Hugo 官方术语表全解:从数据类型到多维内容模型的权威速查指南
Hugo 官方术语表全解从数据类型到多维内容模型的权威速查指南【免费下载链接】hugoThe world’s fastest framework for building websites.项目地址: https://gitcode.com/gh_mirrors/hu/hugoHugo 官方文档维护了一份覆盖全站的术语表Glossary它既是读者理解文档的统一词典也是 Hugo 多维内容模型language / role / version 三维度等新概念的权威出处。本指南基于 docs/content/en/quick-reference/glossary 目录下全部术语条目整理成文逐条讲解术语定义、交叉引用关系与底层渲染机制并展示如何将术语定义嵌入自己的文档页面。读完本文你将掌握 Hugo 文档体系中的全部核心词汇能够在模板开发、内容组织、配置调优时准确使用这些术语。术语表是如何工作的索引页与渲染短代码术语表的入口是 docs/content/en/quick-reference/glossary/_index.md其正文仅有一个短代码调用{{% glossary %}}这个短代码由 docs/layouts/_shortcodes/glossary.html 实现其核心逻辑是通过site.GetPage /quick-reference/glossary获取术语表所在分区遍历.Pages.ByTitle按标题排序的全部术语页面取每个术语标题的首字母substr .Title 0 1构建字母序索引A–Z 快速跳转锚点再次遍历术语页面将每个页面的标题渲染为dtdescription term元素、正文渲染为dddescription detail元素即标准 HTML 定义列表若术语页面的 front matter 中设置了reference字段则在其定义末尾追加 See details 链接。选择{{% %}}标记而非{{ }}标记是为了让术语以dt元素进入.Fragments从而使文档的链接渲染钩子render link hook能够校验指向术语的站内链接是否有效。正如短代码注释所说明的术语本身也是页面但站点并不直接链接到这些页面而是链接到短代码渲染出的id。术语页面的维护规范每个术语都是docs/content/en/quick-reference/glossary/下的一个独立 Markdown 文件由 docs/archetypes/glossary.md 这个内容模板archetype规范其格式。其要求包括定义须用完整句子且第一句必须显式引入被定义的术语术语本身以及定义中引用的其他术语应以斜体呈现若某术语只是另一术语的别名定义可直接写 See [page kind]如 Seepage kindfront matter 中的reference字段用于在定义末尾添加 See details 链接其值必须是文档结构内相关页面的逻辑路径logical path。例如 docs/content/en/quick-reference/glossary/shortcode.md 的定义为短代码是在标记文本中调用的模板可接受任意数量的参数可用于任何内容格式以插入视频、图片、社交嵌入等元素。术语间交叉引用术语定义中形如_template_的链接是术语表特有的交叉引用语法(g)表示 glossary渲染时指向对应术语页。同义词类条目如action、bool、float、i18n、l10n、kind、bundle等直接指向其正式术语。此外还有独立的 glossary-term 短代码允许你在任意文档页面内联渲染某个术语的完整定义{{% glossary-term float %}} {{% glossary-term floating point %}}其实现通过urlize将术语名转为路径如floating point→/quick-reference/glossary/floating-point再调用site.GetPage查找并渲染对应术语页。内容组织与页面模型这一组术语描述 Hugo 如何组织内容、划分页面类型是理解站点结构的基石。页面类型Page Kindpage kind页面的五种分类之一即home首页、page普通页、section板块页、taxonomy分类页、term术语页。regular pagepage类型的普通页面参见 regular-page.md。section / section pagesection板块是顶层内容目录或任何包含_index.md的目录section page即section类型的页面通常列出当前板块下的普通页与其他子板块页。taxonomy / taxonomy object / taxonomy page / term / term pagetaxonomy分类法是用于给内容分类的一组相关术语例如colors分类法可包含red、green、blue等term术语taxonomy object是术语与其加权页面weighted pages构成的映射taxonomy page是taxonomy类型的页面列出分类中的术语term page是term类型的页面列出拥有某术语的页面。list page所有接收页面集合page collection作为上下文的页面类型包括首页、板块页、分类页与术语页。node / branchnode节点是逻辑树中的任意页面可能是branch分支page kind 为home/section/taxonomy/term且可有后代也可能是普通页。page collectionPage对象的切片slice是列表渲染时拿到的一组页面。页面包Page Bundlepage bundle同时封装内容与关联资源的目录分leaf bundle叶包与branch bundle分支包两种。leaf bundle包含index.md及零个或多个资源的目录类比物理树叶位于分支包的末端没有后代。branch bundle顶层内容目录或任何包含_index.md的目录类比物理树枝可以有后代叶包或其他分支包也可包含图片等页面资源。headless bundle未被发布的叶包或分支包其内容与资源可被包含到其他页面中常用于数据驱动的模板片段。内容类型与分类content type根据顶层目录名或 front matter 中的type推断出的内容分类。content目录根下的页面含首页类型为page。内容类型参与模板查找顺序并决定新建内容时使用哪个 archetype。content format用于创作内容的标记语言典型为 Markdown也可能是 HTML、AsciiDoc、Org、Pandoc、reStructuredText。content adapter在构建站点时动态创建页面的模板例如从 JSON、TOML、YAML、XML 等远程数据源生成页面。front matter每个内容页面开头、由特定格式分隔符界定的元数据。fieldfront matter 中预定义的键值对如date、title。cascade将分支页面或项目配置中的 front matter 值应用到后代页面的机制。若后代已定义该字段或更近的祖先分支/更靠前的 cascade 数组元素已设置该值则 Hugo 不会级联可用page matcher将级联限定到部分页面。默认值与排序default sort order页面集合未指定其他条件时的默认排序先按weight升序再按date降序。weight用于在已排序集合中定位元素的数值用非零整数赋值权重越小的元素越靠前无权重或零权重元素置于集合末尾。权重通常赋予页面、菜单项、语言、角色、版本与输出格式。taxonomic weight在 front matter 中定义、对每个分类法唯一决定Taxonomy对象内页面集合排序的权重。weighted page位于 taxonomy object 中是含两个元素的映射Page对象与其分类权重通过Page与Weight键访问。ordered taxonomy对Taxonomy对象调用Alphabetical或ByCount方法生成的切片每个元素含术语及其加权页面切片。数据类型与字面量Hugo 模板基于 Go 模板引擎其数据类型直接继承 Go 的语义。术语表对每个类型给出了精确定义。标量与基本类型scalar标量单一值包括 string、integer、floating point、boolean 四种。string字节序列例如What is 6 times 7?。integer整数无小数部分的数值类型例如42别名int。floating point浮点数带小数部分的数值类型例如3.14159别名float。boolean布尔仅有两个可能值true/false的数据类型别名bool。duration持续时间表示时间长度用秒s、分m、时h等单位表示如42s、6m7s、6h7m42s。rune以单一数值表示单个字符。Hugo 与 Go 中文本以字节序列存储但像德语ü这样的字符占多个字节rune 以单个 32 位整数保存整个字符即 Unicode 码点code point。rune literal模板中 rune 的文本表示由单引号括起如x、\n、ü。与字符串字面量不同它表示单个整数值以反斜杠开头的多字符序列可编码特定值如\u00FC表示ü。zero time零时间即公元 1 年 1 月 1 日 00:00:00 UTC按 RFC3339 格式化即0001-01-01T00:00:00-00:00。复合类型array数组编号元素序列与 Go 的 slice 不同数组长度固定元素可以是标量、slice、map、页面或其他数组。slice切片编号元素序列与 Go 的 array 不同切片大小可动态变化元素可以是标量、数组、map、页面或其他切片。map映射无序元素组每个元素由唯一键索引。collection集合数组、切片或映射的总称。element切片或数组中的成员。object对象带或不带关联方法的数据结构。glob pattern通配模式用于一次匹配一组值的模式是批量指定目标的简写。glob sliceglob pattern 的切片。切片内的 glob 可用感叹号加空格!前缀取反被取反模式命中的结果会短路short-circuit后续模式的求值适合做早期的粗粒度排除。例如定义站点矩阵sites matrix[sites.matrix] languages [ ! no, ** ] versions [ ! v1.2.3, v1.*.*, v2.*.* ] roles [ {member, guest} ]其中versions求值结果等价于(not v1.2.3) AND (v1.*.* OR v2.*.*)。字面量与正则interpreted string literal解释型字符串字面量双引号括起的字符序列如foo引号内除换行与未转义的双引号外可含任意字符反斜杠转义会被解释。raw string literal原始字符串字面量反引号括起的字符序列如bar反引号内除反引号外可含任意字符反斜杠无特殊含义可含换行其中的回车符\r会被丢弃。regular expression正则表达式定义搜索模式的字符序列。在模板或项目配置中应使用 RE2 语法。interval区间两个端点之间的数值范围可为闭区间方括号含端点如[0, 1]即0 x 1、开区间圆括号不含端点如(0, 1)即0 x 1、半开区间只含一个端点如(0, 1]左开、[0, 1)右开。模板语言与渲染这一组术语覆盖 Hugo 模板系统的语法要素与渲染机制。template模板位于项目、主题或模块的layouts目录中、含模板动作的文件别名layout。template action模板动作模板内由{{与}}定界的数据求值或控制结构别名action。context上下文在模板动作中以点号.表示是数据结构中的当前位置。例如遍历页面集合时每次迭代的上下文就是该页面的数据结构不同模板收到的上下文取决于模板类型与调用方式。variable变量以$符号为前缀的用户自定义标识符如$foo、$bar可在模板动作中初始化或赋值表示任意数据类型。identifier标识符表示变量、方法、对象或字段的字符串须符合 Go 语言规范以字母或下划线开头后跟零个或多个字母、数字或下划线。chain链用点号连接一个或多个标识符如.Site.Params.author.name或.Date.UTC.Hour。function函数在模板动作中使用的函数接受一个或多个参数并返回值与方法不同函数不隶属于某个对象。method方法在模板动作中使用、与对象关联接受零个或多个参数并返回值或执行动作。例如IsHome是Page对象的方法当前页为首页时返回true。argument参数传递给函数、方法或短代码的标量、数组、切片、映射或对象。parameter参数通常指站点或页面级别的用户自定义键值对也可能指配置项或参数argument。pipeline管道模板动作中可能被串联的值、函数调用或方法调用序列用管道符|分隔串联时每个命令的结果作为最后一个参数传给下一个命令最终命令的输出即管道值别名pipe。scope作用域变量或对象可被访问的特定代码区域例如在一个模板中初始化的变量在另一个模板中不可用。partial template部分模板可从任何其他模板包括短代码、渲染钩子与其他 partial调用的模板可渲染内容也可返回值还能递归调用自身以遍历数据结构别名partial。partial decorator部分装饰器一种特殊的部分模板充当包装组件wrapper component它利用templates.Inner函数作为占位符通过组合方式将整块外部内容包裹进固定布局而不是在固定模板中直接渲染数据。wrapper component包装组件一种接口模式通过组合而非固定参数来包裹其他内容提供可复用的外壳以处理布局、样式或逻辑允许调用模板向组件内部注入任意内容。shortcode短代码在标记文本中调用的模板可接受任意数量的参数可用于任何内容格式用于插入视频、图片、社交嵌入等元素。render hook渲染钩子覆盖标准 Markdown 渲染的模板。embedded template内嵌模板Hugo 应用内置的组件包括 partial、shortcode、render hook 等为创建网站内容提供预定义的结构或功能。view template视图模板通过Page对象的Render方法调用的模板别名content view。interleave交错在另一个字符串的开头、结尾以及每两个字符之间插入一个字符串。walk遍历递归遍历嵌套数据结构例如渲染多级菜单。token令牌格式字符串中以冒号开头的标识符渲染时被替换为具体值。常用于配置文件缓存、front matter、permalinks 以及日期本地化。info string信息字符串围栏代码块中开围栏之后紧随的文本第一个单词指定代码示例的语言Hugo 会把其余内容解析为以空格或逗号分隔的属性。Markdown attributeMarkdown 属性附加到 Markdown 元素上的键值对常用于在渲染为 HTML 时为元素添加class、id等属性从而扩展基础 Markdown 语法。lexer词法分析器在输入文本中识别关键字、标识符、运算符、数字等编程语言基本构件的软件组件。marshal / unmarshalmarshal序列化将数据结构转换为可序列化对象如把 map 变成 JSON 字符串unmarshal反序列化则相反如把 JSON 文件变成模板中可访问的 map。noop空操作no operation 的缩写指不做任何事的语句。项目、模块与组件Hugo 通过组件与模块构建可复用的站点体系这组术语解释了其组织方式。project项目用于生成一个或多个站点的组件集合。项目可以只有一个站点也可以基于语言、角色、版本维度生成站点矩阵sites matrix项目是构建中所有站点共享的公共资源与逻辑的父容器。component组件位于统一文件系统unified file system中、为构建 Hugo 项目提供特定功能的关联文件集合分为七类可在项目内定义或由模块提供。每类组件在统一文件系统中都有专属目录组件统一文件系统中的目录archetypesarchetypesassetsassetscontentcontentdatadatatemplateslayoutstranslation tablesi18nstatic filesstaticunified file system统一文件系统为七类组件分别提供分层视图。项目组件目录叠加在模块组件目录之上当多层包含相同文件时Hugo 使用最高层的版本。module模块组件的打包组合可包含 archetypes、assets、content、data、templates、translation tables 与 static files。模块可以是主题、完整项目或较小的一组组件集合。theme主题提供完整组件集合、定义站点布局、呈现与行为的模块。每个主题都是模块但并非每个模块都是主题。mount挂载将文件路径source映射到 Hugo 统一文件系统内组件路径target的配置对象详见 模块配置。workspace工作区磁盘上一组模块的集合详见 模块使用指南。dependency graph依赖图可视化表示 Hugo 项目中各模块间依赖关系的图谱。vendor供应商化将第三方依赖的源码直接纳入项目仓库而非运行时从外部包管理器下载。被要求 vendor the dependencies into the project root 即把外部库从临时缓存移入提交到版本控制系统的专用文件夹。archetype内容模板新内容的模板例如本术语表自身的模板即 docs/archetypes/glossary.md。translation table翻译表i18n目录下按 RFC 5646 命名的 JSON、TOML 或 YAML 文件保存单一语言的翻译。多维内容模型语言、角色与版本Hugo 的多维内容模型是本站术语表重点阐释的新概念一个逻辑页面可以同时存在多个变体三个维度分别是 language语言、role角色、version版本。dimension内容维度允许逻辑页面多个变体同时存在的分类轴三个维度即语言、角色、版本。例如一个逻辑页面可有 6 种语言、4 个版本、2 种角色参见 dimension.md。language语言促进内容本地化与国际化的维度允许逻辑页面以不同语言区域呈现。role角色允许逻辑页面针对不同目标受众以不同形式呈现的维度可在不复制内容的情况下生成页面变体。version版本表示内容的特定迭代、发布或生命周期阶段的维度可使用语义化版本semantic versioning同时维护同一内容的多个状态。site站点项目的一个具体实例代表语言、角色、版本的唯一组合。简单项目可只有一个站点多维内容模型允许单一代码库同时生成站点矩阵。default site默认站点具有默认语言、默认版本与默认角色的站点。default language / default version / default role分别由defaultContentLanguage、defaultContentVersion、defaultContentRole配置项定义未定义语言时默认语言回退为en定义了语言但未配置该设置时若存在名为en的已启用语言则默认为en否则取第一个启用语言按最低weight识别权重相同或未定义时按字典序兜底未定义版本时默认版本回退为v1.0.0否则取第一个版本按最低weight识别权重相同时按降序语义版本排序兜底未定义角色时默认角色回退为guest否则取第一个角色同样按最低weight识别字典序兜底。sites matrix站点矩阵在内容 front matter 或文件挂载中定义的配置对象精确控制内容应生成到哪些站点定义在模板的文件挂载中时则控制模板应用于哪些站点。矩阵即语言、角色、版本三个维度的交集结构为 glob slices 映射。参见 sites-matrix.md。sites complements站点补充在内容 front matter 或文件挂载中定义的配置对象链接将指向互补站点结构同样为 glob slices 映射。segment片段站点的子集按逻辑路径、站点矩阵、页面类型或输出格式过滤详见 片段配置。路径、URL 与输出这组术语厘清了 Hugo 中容易混淆的多种路径与 URL 概念。logical path逻辑路径从文件路径派生、去除扩展名与语言标识符的页面或页面资源标识符既不是文件路径也不是 URL。Hugo 以相对content目录的文件路径为起点去掉扩展名与语言标识符、转为小写、将空格替换为连字符得到逻辑路径。用于描述内容时逻辑路径是逻辑树中两个节点间的路径可相对亦可从树根绝对。logical tree逻辑树按逻辑路径组织的站点节点层级如同文件路径构成文件树。与文件树不同逻辑树抽象掉了文件扩展名、语言标识符与物理目录结构。site-relative path站点相对路径相对内容目录根解析的路径以正斜杠开头如/old-name。page-relative path页面相对路径相对当前页面在内容层级中位置解析的路径不以正斜杠开头如old-name、./old-name、../old-name。server-relative path服务器相对路径生成站点中从 Web 服务器根开始的最终路径总是以正斜杠开头并计入baseURL与语言、角色、版本等内容维度前缀例如/en/examples/old-name/。site root站点根目录当前站点相对publishDir的根目录可能包含一个或多个内容维度前缀项目描述站点根目录示例单语/、/guest、/guest/v1.2.3多语单主机/en、/guest/en、/guest/v1.2.3/en多语多主机/en、/en/guest、/en/guest/v1.2.3permalink永久链接已发布资源或已渲染页面的绝对 URL包含协议与主机名。relative permalink相对永久链接已发布资源或已渲染页面的主机相对 URL。pretty URL美化 URL不包含文件扩展名的 URL。ugly URL丑陋 URL包含文件扩展名的 URL。fragment片段URL 以#开头的最后一段引用页面上某个 HTML 元素的id属性。page matcher页面匹配器按逻辑路径、页面类型、环境或站点过滤页面的一组条件例如配置 cascade 与 permalink 目标时使用参见 级联配置 与 永久链接配置。output format输出格式定义 Hugo 构建站点时如何渲染文件的一组设置html、json、rss为内置输出格式可创建多个输出格式并按页面类型或为特定页面启用控制生成参见 输出格式配置。canonical output format规范输出格式当前页面中rel属性设为canonical的输出格式。若当前页面只有一个输出格式且为预定义格式Hugo 会自动将其视为规范输出格式无论rel是否设为canonical自定义输出格式不适用此规则rel必须显式设为canonical。默认情况下html是唯一设置该属性的预定义格式其余格式的rel均为alternate。若两个及以上输出格式的rel均为canonical则取第一个优先看当前页面 front matter 的outputs字段其次看项目配置中该页面类型的outputs段。primary output format主输出格式给定页面类型的第一个输出格式即 outputs 配置 中的第一项。build / publishbuild构建动词是为项目生成静态文件HTML、图片、CSS、JavaScript的过程涉及渲染模板、转换资源、解析项目配置中定义的语言、角色、版本矩阵publish 为其别名。build artifacts构建产物构建过程中产生的静态文件默认存放在public目录是最终可部署的输出。environment环境通常为development、staging或production之一不同环境因配置与模板逻辑而表现不同。例如生产环境可能压缩并指纹化 CSS开发环境则无必要。运行hugo server时环境为development执行hugo build时环境为production可用--environment命令行标志或HUGO_ENVIRONMENT环境变量覆盖参见 environment.md。资源与媒体resource资源构建过程中用于增强或生成内容、结构、行为或呈现的任何文件如图片、视频、内容片段、CSS、Sass、JavaScript、数据。Hugo 支持三种资源全局资源、页面资源与远程资源。global resource全局资源assets目录内或挂载到assets目录的任意目录中的文件。page resource页面资源页面包page bundle内的文件。remote resource远程资源远程服务器上可通过 HTTP 或 HTTPS 访问的文件。resource getter资源获取器为基于路径的查找提供资源常见形式包括资源切片如slice $resource1 $resource2与Resources.Mount的返回值。resource type资源类型资源媒体类型的主类型。Markdown、HTML、AsciiDoc、Pandoc、reStructuredText、Emacs Org Mode 等内容文件的资源类型为page其他资源类型包括image、text、video等。可通过Resource对象上的ResourceType方法获取。media type媒体类型旧称 MIME 类型文件格式与传输内容的双部分标识符如 HTML 内容的媒体类型为text/html。processable image可处理图像媒体类型为image/avif、image/bmp等之一的图像文件是 Hugo 图像处理管线的输入。asset pipeline资源管线自动化并优化图片、样式表、JavaScript 等静态资源处理的系统。cache缓存存储数据以使相同数据的后续请求更快的软件组件。其他常用术语CLI命令行界面command-line interface的缩写基于文本与计算机程序或操作系统交互的方式。flag标志传递给命令行程序的选项以一个或两个连字符开头。CI/CD持续集成与持续交付/持续部署Continuous Integration and Continuous Delivery/Deployment的缩写常见 Hugo 站点构建部署平台包括 Cloudflare、GitHub Pages、GitLab Pages、Netlify、Render、Vercel 等。CJK中文、日文、韩文的统称。IANA互联网号码分配机构Internet Assigned Numbers Authority负责管理全球 IP 地址、自治系统号、DNS 根区、媒体类型等互联网协议相关资源的非营利组织。UTC协调世界时Coordinated Universal Time的缩写全球调节时钟与时间的首要时间标准是民用时间与时区的基础。internationalization / localization国际化指支持本地化的软件设计与开发工作别名i18n本地化指使站点满足语言与区域要求的过程包括翻译、日期格式、数字格式、货币格式与排序规则别名l10n。seed种子生成伪随机数的计算机算法的起点使用相同种子总会产生完全相同的数字序列对模拟、密码学、游戏等领域的可复现性至关重要。pagination / paginate / pager / paginator分页指将列表页拆分为两个及以上子集的过程分页过程中创建的pager包含列表页的子集及指向其他分页器的导航链接paginator是 pager 的集合。结语把术语表用起来这份术语表不仅是词典更是文档体系的基础设施术语定义被集中在独立页面中通过{{% glossary %}}渲染为带锚点的 A–Z 索引通过{{% glossary-term %}}可内嵌到任意文章通过(g)链接实现全站交叉引用。当你在 Hugo 文档中遇到不理解的概念时可以随时回到 术语表索引页 查询而当你撰写自己的文档时也可以参照 glossary archetype 的规范为术语定义提供See details参考链接让定义既能随文档灵活摆放又能保持单一权威来源。【免费下载链接】hugoThe world’s fastest framework for building websites.项目地址: https://gitcode.com/gh_mirrors/hu/hugo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考