使用 Noll 搭建静态站点

Noll 发布在Document 1

Noll 是一个用 Go 编写的静态 HTML 和 CSS 网站生成器。它是专为 GitHub 平台而开发的。Noll 获取用户的 Discussions 和指定的模板,并将它们呈现为一个完整的 HTML 网站。

快速开始

创建站点 Repository

你首先需要一个用于部署网站的 Repository(仓库),这里推荐直接 Fork NollAction 仓库并重命名。

image

你也可以创建一个空仓库,并添加 NollActionnoll.yml workflow。这个 workflow 是一个用于自动编译,打包和发布网站到线上的 Action。

这个仓库可以命名为:noll.github.ionoll 替换为你的 github 用户名),也可以是其他名字,比如 blog 等。如果你的仓库名是前者,那么你的网站最终地址是 https://noll.github.io,如果是后者,那么你的网站地址是 https://noll.github.io/blog

开启 GitHub Discussions

如果会,可以跳过此步骤。

Noll 采用 GitHub Discussions 作为发布和保存文章的数据源,所以需要开启 Repository Discussions。

在 Repository 的设置页,下滑找到 Features 列表,找到 Discussions 功能,勾选开启,如下:

image

开启 GitHub Pages 并设置 SourceGithub Actions

如果会,可以跳过此步骤。

在 Repository 的设置页的左边栏里,点击Pages 菜单,进入 GitHub Pages 页面。然后设置 Build and deploymentSourceGithub Actionsworkflow 里面用到了发布到 GitHub Pages 的框架和自定义构建过程)。

image

启用 Workflow

通过 Fork NollAction 创建的仓库的必要步骤,通过手动创建仓库的用户可跳过此步骤。

如果会,可以跳过此步骤

GitHub 对于 Forked 仓库的 Workflow 默认不启用,提示如下:

由于此存储库在分叉时包含工作流文件,因此我们已禁止它们在此分叉上运行。在此存储库上启用操作之前,请确保您了解已配置的工作流及其预期用途。

所以需要你启用我们的 Workflow

image

创建文章

接下来就可以创建文章了。

创建文章就是创建一个讨论(Discussion)的过程,比如我们要创建一个 Hello world 的文章。

首先进入你的 Repository Discussions 页面,点击右边的 New Discussion 按钮,选择一个 Category(分类),进入编辑页,输入 Hello world 标题并随便写点什么,然后点击下方的 Start discussion 按钮,即可发布文章了。

发布新文章会触发 GitHub Action,然后执行我们的 workflow——noll.yml,然后noll.yml 会编译打包我们的网站,并最终会布网站到你的站点。

浏览器里访问:https://nollgo.github.io/Noll/ (假如你的用户名是 NollGo,仓库名是 Noll

可在 GitHub Action 的最近一次构建里看到具体地址,如下:

image

更新 Noll

为了获得更好的体验,我们建议你保持较新版本的 Noll,这不会花费你太多时间即可更新到最新的版本。

通过 Sync Fork 方式更新 Noll

如果你的站点仓库是通过 Fork NollAction 的方式创建的,那么请使用此方法。

  1. 在 GitHub 上,导航到您与 NollAction 仓库同步的 Fork 仓库页面(即站点仓库页面);
  2. 选择 “Sync Fork” 下拉菜单;

image

  1. 如果出现了 "Update branch" 按钮,则表示有更新,请点击 “Update branch” 即可完成更新。
    如果没有,则表示当前版本为最新版本,无需更新。

image

最后别忘了 Re-run all jobs 你的 Action。

通过更新 workflow 的方式更新 Noll

如果你的站点仓库是手动创建的,那么请使用此方法。

手动创建的站点仓库,需要手动更新 workflow。

  1. 进入 NollAction 仓库页面,打开 .github/workflows/noll.yml 文件,复制 noll.yml 文件内容;
  2. 进入你的站点仓库,打开并编辑你的 .github/workflows/noll.yml 文件,粘贴刚刚复制的内容,完成更新。

最后别忘了 Re-run all jobs 你的 Action。

TOP
前往 GitHub Discussion 评论