<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>指南 on 征途国际(中国)官网-全球领先的体育数据服务中心</title><link>https://zh-globe-zhengtu.com/tags/%E6%8C%87%E5%8D%97/</link><description>Recent content in 指南 on 征途国际(中国)官网-全球领先的体育数据服务中心</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Tue, 26 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://zh-globe-zhengtu.com/tags/%E6%8C%87%E5%8D%97/index.xml" rel="self" type="application/rss+xml"/><item><title>从Jekyll迁移到Hugo：一次顺畅的体验</title><link>https://zh-globe-zhengtu.com/post/migrate-from-jekyll/</link><pubDate>Tue, 26 May 2026 00:00:00 +0000</pubDate><guid>https://zh-globe-zhengtu.com/post/migrate-from-jekyll/</guid><description>征途国际内容迁移：从Jekyll到Hugo的无缝过渡 在征途国际（中国）官网不断追求技术卓越和用户体验优化的过程中，我们曾面临内容管理系统的选择和迁移问题。在过去的某个阶段，我们使用了Jekyll来管理部分内容。然而，随着平台功能需求的增长和对性能的极致追求，我们决定将内容迁移至Hugo。本文将分享这次迁移的经验，重点介绍迁移过程中的关键步骤和Hugo带来的显著优势。
为什么选择迁移？ Jekyll是一款优秀的静态网站生成器，但随着征途国际业务的发展，我们遇到了以下挑战：
生成速度: 随着内容量的增加，Jekyll的生成速度开始变得缓慢，影响了内容更新的效率。 并发处理: Jekyll在处理高并发请求和实时数据方面存在局限性。 社区与生态: 虽然Jekyll拥有庞大的社区，但Hugo在某些方面（如并发原生支持、开发速度）展现出更强的吸引力。 迁移到Hugo的关键步骤 1. 理解Hugo的结构与概念 Hugo与Jekyll在目录结构、模板语法和Front Matter格式上存在差异。迁移前，我们深入学习了Hugo的官方文档，了解其核心概念，包括：
内容目录 (content/): Hugo的内容文件通常以Markdown格式存储。 布局目录 (layouts/): 包含HTML模板文件，用于定义页面结构。 静态目录 (static/): 存放CSS、JS、图片等静态资源。 主题 (themes/): Hugo支持主题系统，可以快速替换网站外观。 Front Matter: Hugo支持TOML、YAML和JSON格式的Front Matter。 2. 迁移内容文件 Markdown文件: Jekyll的Markdown文件可以基本直接使用。主要需要关注Front Matter格式的转换。Jekyll通常使用YAML Front Matter，而Hugo支持TOML、YAML和JSON。我们选择继续使用YAML，并调整了部分Front Matter的键名，使其更符合Hugo的习惯（例如，将Jekyll的layout键名改为Hugo的默认行为或自定义变量）。 图片和静态资源: Jekyll的_posts目录下的图片通常与文章放在一起，或者在assets目录下。Hugo的static目录是一个集中的存放点。我们将所有图片和CSS、JavaScript文件统一迁移到Hugo的static目录下，并相应更新了Markdown文件中的图片链接。 3. 模板的重写或调整 这是迁移过程中最耗时的一步。Jekyll使用Liquid模板语言，而Hugo使用Go的html/template。
布局结构: 我们需要根据Hugo的布局继承机制（baseof.html, single.html, list.html等）重新组织HTML模板。 变量和函数: 许多Liquid的标签和过滤器在Hugo中需要用Go模板的语法来代替。例如，Jekyll的{{ post.date | date: &amp;quot;%Y-%m-%d&amp;quot; }}在Hugo中可能需要写成{{ .Date.Format &amp;quot;2006-01-02&amp;quot; }}。 导航菜单: Jekyll的导航菜单通常通过_data目录下的YAML文件定义。在Hugo中，我们可以使用[[menu.main]]在配置文件中定义，或者创建自定义的数据文件。 4. 配置文件的迁移 Jekyll的_config.yml文件需要迁移到Hugo的config.toml（或config.yaml/config.json）。其中，网站的基本信息、URL设置、语言代码等都需要相应调整。
5. 测试与验证 迁移完成后，我们进行了全面的测试：
本地预览: 使用hugo server在本地启动网站，检查所有页面是否正常渲染。 链接检查: 确保所有内部和外部链接都有效。 响应式测试: 在不同设备上测试网站的显示效果。 内容准确性: 逐一核对关键内容，特别是赛事数据和比分信息，确保没有因迁移而丢失或错误。 迁移的收益 通过迁移到Hugo，征途国际（中国）官网获得了以下显著收益：</description></item><item><title>创建新主题</title><link>https://zh-globe-zhengtu.com/post/creating-a-new-theme/</link><pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate><guid>https://zh-globe-zhengtu.com/post/creating-a-new-theme/</guid><description>征途国际：赋能体育内容创作，打造用户喜爱的主题 在征途国际（中国）官网运营过程中，我们深知一个优秀的主题对于用户体验和内容呈现至关重要。本篇文章将指导您如何从零开始，为您的Hugo网站创建一个全新的、功能丰富且用户友好的主题。我们将从项目的初始化、目录结构的搭建，到核心模板文件的编写，再到功能的实现与优化，一步步带您走进主题开发的奇妙世界。
一、 主题项目的初始化与结构 1.1 创建主题目录 首先，您需要在Hugo项目的根目录下创建一个名为 themes 的文件夹（如果不存在的话）。然后，在该文件夹内创建一个以您主题名称命名的子文件夹，例如 zgt-theme。所有主题相关的文件都将存放在这个目录下。
hugo new theme zgt-theme 这条命令会在 themes/zgt-theme 目录下生成一个基本的主题结构，包括 layouts/, static/, archetypes/, i18n/ 等文件夹。
1.2 理解核心目录结构 layouts/: 这是主题的核心，包含所有用于渲染页面的HTML模板文件。 _default/: 存放默认的布局模板，当找不到特定类型的模板时，Hugo会回退到这里。 single.html: 用于渲染单个内容页（如文章、页面）。 list.html: 用于渲染列表页（如博客首页、分类页、标签页）。 partials/: 存放可重用的模板片段，例如页眉、页脚、导航栏等。 index.html: 网站首页的布局模板。 404.html: 404错误页面的布局模板。 static/: 存放静态资源，如CSS文件、JavaScript文件、图片、字体等。Hugo会将这些文件直接复制到网站的根目录下。 assets/: 存放需要Hugo进行处理的资源，例如Sass/SCSS文件、图片优化等。 archetypes/: 存放内容类型的模板，用于创建新内容时生成默认的Front Matter。 i18n/: 存放国际化（i18n）资源文件，用于多语言支持。 config.toml (或 config.yaml, config.json): 这是主题的配置文件，用于定义主题的特定设置，例如颜色方案、侧边栏布局等。 二、 核心布局模板的编写 2.1 layouts/_default/baseof.html - 基础布局 baseof.html 是所有其他布局模板的基石。它定义了网站的整体结构，包括HTML的 DOCTYPE、&amp;lt;html&amp;gt; 标签、&amp;lt;head&amp;gt; 部分以及 &amp;lt;body&amp;gt; 标签。它使用Hugo的模板继承机制，允许其他模板在其基础上扩展。
&amp;lt;!DOCTYPE html&amp;gt; &amp;lt;html lang=&amp;#34;{{ .Site.LanguageCode }}&amp;#34;&amp;gt; &amp;lt;head&amp;gt; &amp;lt;meta charset=&amp;#34;utf-8&amp;#34;&amp;gt; &amp;lt;meta name=&amp;#34;viewport&amp;#34; content=&amp;#34;width=device-width, initial-scale=1&amp;#34;&amp;gt; &amp;lt;title&amp;gt;{{ .</description></item></channel></rss>