跳转到内容

从 Hugo 迁移

Hugo 是一个基于 Go 构建的开源静态站点生成器。

Hugo 和 Astro 有一些相似之处,这将有助于你迁移你的项目

  • Hugo 和 Astro 都是现代的静态站点生成器,非常适合像博客这样的内容驱动的网站

  • Hugo 和 Astro 都允许你在 Markdown 中编写内容。然而,Hugo 包含几个特殊的前置元数据属性,并允许你用 YAML、TOML 或 JSON 编写前置元数据。尽管你现有的许多 Hugo 前置元数据属性在 Astro 中不是“特殊”的,但你仍然可以继续使用现有的 Markdown 文件和 YAML(或 TOML)前置元数据值。

  • Hugo 和 Astro 都允许你使用各种集成和外部包来增强你的网站。

当你在 Astro 中重建你的 Hugo 站点时,你会注意到一些重要的区别

  • Hugo 使用 Go 模板进行页面模板化。Astro 语法是 HTML 的一个类似 JSX 的超集。

  • Astro 在标准的 Markdown 文件中不使用短代码来处理动态内容,但Astro 的 MDX 集成允许你在 MDX 文件中使用 JSX 和导入组件。

  • 虽然 Hugo 可以使用“partials”作为可重用的布局元素,但Astro 是完全基于组件的。任何 .astro 文件都可以是一个组件、一个布局或一个完整的页面,并且可以导入和渲染任何其他 Astro 组件。Astro 组件还可以包含其他 UI 框架组件(例如 React、Svelte、Vue、Solid),以及来自你项目中其他文件的内容或元数据,例如 Markdown 或 MDX。

要将 Hugo 博客转换为 Astro,可以从我们的博客主题入门模板开始,或者在我们的主题展示中探索更多社区博客主题。

你可以向 create astro 命令传递一个 --template 参数,以使用我们的官方入门模板之一来启动一个新的 Astro 项目。或者,你可以从 GitHub 上的任何现有 Astro 仓库开始一个新项目

终端窗口
npm create astro@latest -- --template blog

将你现有的 Markdown(或通过我们的可选集成支持的 MDX)文件作为内容,来创建 Markdown 或 MDX 页面。Astro 在这些文件中允许使用 YAML 或 TOML 前置元数据,所以如果你正在使用 JSON 前置元数据,你需要转换它。

要继续在你的 Markdown 内容中使用变量、表达式或 UI 组件等动态内容,请添加 Astro 的可选 MDX 集成,并将你现有的 Markdown 文件转换为MDX 页面。MDX 支持 YAML 和 TOML 前置元数据,所以你可以保留现有的前置元数据属性。但是,你必须将任何短代码语法替换为MDX 自己的语法,它允许 JSX 表达式和/或组件导入。

要转换其他类型的网站,如作品集或文档网站,请在astro.new上查看更多官方入门模板。你会找到每个项目 GitHub 仓库的链接,以及在 IDX、StackBlitz、CodeSandbox 和 Gitpod 在线开发环境中一键打开工作项目的链接。

更多迁移指南

贡献 社区 赞助