我如何在课堂的开源 CMS 中使用 Hugo

这款开源软件简化了文本编辑,同时为自定义留有空间。
147 位读者喜欢这篇文章。
Out of the trash and into the classroom

Opensource.com

人们喜欢 Markdown 文本是有充分理由的——它易于编写、易于阅读、易于编辑,并且可以转换为各种其他文本标记格式。虽然 Markdown 文本非常适合内容创建和操作,但它对内容显示选项施加了限制。

如果我们可以将 Markdown 的优点与层叠样式表、HTML5 和 JavaScript 的强大功能和灵活性相结合,那将是非常特别的。 Hugo 就是尝试做到这一点的程序之一。 Hugo 由 Steve Francia 于 2013 年创建;它是跨平台的开源软件,采用 Apache 2.0 许可证,拥有活跃的开发者社区和不断增长的用户群。

基本概念是将以 Markdown 编写并与元数据关联的内容(例如网页或博客文章)转换为 HTML,并与模板和主题结合以生成完整的网站。 强大功能和灵活性来自这些主题和模板,或者更改 Hugo 的默认行为。 这种强大功能带来了一定程度的不可避免的复杂性,但是如果您没有时间和意愿制作自己的模板,则可以使用许多 预构建模板

在我的 Linux 机器上安装 Hugo 既快速又容易。 启动一个新项目就像在命令行中输入 hugo new site quickstart 一样简单,这将创建一个具有以下文件夹结构的新项目

  • archetypes:内容模板文件,其中包含预配置的前言元数据(日期、标题、草稿)。 您可以使用自定义前言字段创建新的原型。
  • assets:存储 Hugo Pipes 处理的所有文件(例如,CSS/Sass 文件)。 默认情况下不创建此目录。
  • config.toml:默认站点配置文件。
  • content:所有内容 Markdown 文件都位于此处。
  • data:用于存储 Hugo 在生成网站时可以使用的配置文件。
  • layouts:将模板存储为 .html 文件。
  • static:存储所有静态内容——图像、CSS、JavaScript 等。
  • themes:用于您选择的 Hugo 主题。

内容文件夹中的 Markdown 文件可以手动或由 Hugo 创建,并使用任何文本编辑器或您选择的 Markdown 创建工具进行编辑。 如果是手动创建,您需要添加任何需要的元数据。 我更喜欢使用 Ghostwriter 来编写 Markdown。 图像通常保存在 static 文件夹的子文件夹中。 网站开发可以快速进行,因为 Hugo 包含一个用于测试和预览的 Web 服务器。

要检查您的工作,请在命令行中输入 hugo server 以启动服务器。 默认情况下,Hugo 不会发布

  • 具有未来 publishdate 值的内容。
  • 状态为 draft: true 的内容。
  • 具有过去 expirydate 值的内容。

添加 hugo server -D 将包含草稿文章,并且可以将 Hugo 配置为将所有新文章标记为草稿。 启动 Web 服务器后,您可以在 Web 浏览器中通过 localhost:1313 查看您的工作。 一旦服务器默认启动,当它检测到您的文件之一发生更改时,它将自动重新加载浏览器窗口。

有些任务 Markdown 无法完成,需要一些 HTML 代码。 Hugo 意识到了这一点,但坚持保持 Markdown 代码尽可能干净、简单和整洁。 Hugo 通过短代码来做到这一点,例如 {{< youtube id= "w7Ft2ymGmfc" autoplay= "true">}},这将嵌入 id 为 w7Ft2ymGmfc 的 YouTube 视频。 有相当多的用于常见任务的预构建短代码,但也可以为特定任务创建自己的短代码。

我从事教育工作很多,并且想在我的 Hugo 生成的网站上包含一些互动谜题和问题。 为了使输出看起来像这样

JClic shortcode

我使用名为 JClic 的开源 Java 程序创建了这些活动,将它们导出为 HTML5,将其放入 static/activities/excel 中,并在 iframe 中显示它。

HTML 代码会破坏干净整洁的 Markdown 内容,看起来像这样

    <iframe
        src="https://open-source.net.cn/activity/excel/index.html"
        title="Activity"
        height="400"
        frameborder="0"
        marginwidth="0"
        marginheight="0"
        scrolling="no"
        style="border: 1px solid #CCC; border-width: 1px; margin-bottom: 20px; width: 100%;"
        allowfullscreen="true">
    </iframe>

代码保存在 layouts/shortcodes 中,文件名为 activity.html

这使得放置在我的 Markdown 文件中的短代码为 {{<activity>}},这简洁得多。

当您的项目准备就绪时,您可以使用 hugo 命令构建它;这将创建一个 public 文件夹并在其中生成网站。 Hugo 具有许多针对不同托管提供商的内置部署选项——基本上,您可以通过将 public 文件夹复制到您的生产 Web 服务器来部署您的站点。 Hugo 还有很多我尚未涉及的内容,包括配置选项、从其他静态站点生成器和 Wordpress 导入内容、显示来自 JSON 文件的数据、源代码的语法突出显示以及它非常快(在处理大型站点时是一个优势)。

在许多软件工具中,易用性是以牺牲灵活性为代价的,反之亦然; Hugo 在同时包含两者方面做出了很大程度的成功尝试。 对于使用 Markdown 内容和预构建主题的基本用途,Hugo 易于使用并产生快速的结果。 或者,如果您需要更改配置设置或深入创建自己的主题、短代码、模板或元数据方案,您可以选择这样做。

接下来阅读
User profile image.
我最初是一名考古学家,之后接受了 IT 方面的再培训,并且在苏格兰的志愿/非营利和继续教育部门拥有广泛的工作经验,我通常在那里工作。 这包括数据库设计、硬件支持、软件支持、网站设计和辅导。

1 条评论

感谢撰写本文。 您增加了我对 Hugo 的学习和理解。

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 获得许可。
© . All rights reserved.