使用Hugo动态生成静态网站

Generate static websites dynamically using Hugo

我正在构建一个静态网站托管,想为我的用户生成默认网页,并想为此使用 Hugo。问题是,为多个用户动态生成网页的最佳方式是什么?到目前为止,这是我的想法:

  1. 用户为他们的网站内容填写表格,例如照片、标题、产品描述等
  2. 传递到后端(我使用的是 Perl 的 Mojolicious)并根据提供的信息创建降价文件并将它们保存在为此用户创建的指定文件夹中
  3. 运行 Hugo 使用这些 md 文件构建并将 public 文件夹移动到用户的根目录

我觉得这不对,因为会有多个用户争用 运行 Hugo,我认为如果我可以创建 html 文件就容易多了直接从后端而不是创建 md 文件,然后 运行 Hugo 来创建 html 文件。有没有更好更聪明的方法?

如果我没记错的话,你似乎想制作一个类似的 WordPress 门户或类似的东西,从 Markdown plus 主题到 HTMl/CSS/JavaScript 内容。 end-users 在 Markdown 中编辑内容,选择主题,剩下的就搞定了。

恕我直言,可能有两种方法:

(1) 在 back-end 使用 Hugo 并处理目标文件夹和生成的工件以及将生成的 link 映射到 front-end 对应于您的特定 end-user的托管。您可以创建一个 Hugo 包装器,其中输入将被馈送到 Hugo,生成的页面将位于 public 文件夹中。这样,您必须依赖外部工具(阅读 Hugo)并希望像许多其他系统一样获得 long-term 支持版本(例如 Ubuntu、Java、Windows ).

(2) 创建类似 Hugo 或其他生成器(c.f。StaticGen 用于不同语言的更多生成器)。您可能需要基于 Markdown 的静态站点生成器的核心,例如,Markdown 解析器、link 翻译器和生成器等。通过额外的努力,您可能会更好地控制每个较小的 component/library使用,可以配置生成的工件、它们的目的地等。

旁注:Markdown 是 not-so-bad 内容的选择。甚至 WordPress 也提供了对 Markdown 的支持。尽管如此,Markdown 本身并没有标准化,而是事实上。有so many flavours. You might want to look up to or stick with a good one, for example, CommonMark.