静态网站生成器将模板和内容文件转换为静态 HTML/JS/CSS 网站。对于我们这样的项目,这比内容管理系统 (CMS) 有很多优势:
- 托管很便宜。GitHub 页面甚至免费托管静态网站。
- 源文件进入 Git 进行备份和历史记录。
- 源文件为纯文本格式:
- 更改以拉取请求的形式出现,以进行适当的审查和 CI 验证。
- 源代码在我们的 IDE 中是开放的,这鼓励将它们与代码一起重构。这会减少陈旧的内容。
为什么是 JBake?
因为我们是 Java 程序员。
有几个很好的静态网站生成器,比如 Jekyll (Ruby) 和 Hugo (Go)。我们选择JBake (Java),因为:
- 我们的网站现在使用 Maven ( mvn generate-resources)构建。无需安装任何东西。甚至不是 JBake。 每个人都使用相同版本的 JBake 构建,如pom.xml.而且速度很快:即使mvn clean在我的机器上构建 150 个输出页面也只需要 20 秒。
- .下面全是Java。编写条件表达式很简单。API ( String.substring(), ... ) 很熟悉。日期格式 ( d MMMM yyyy) 和正则表达式的行为符合预期。最重要的是,错误消息很清楚。
8 年来,我用 Awestruct (Ruby) 编写了这个网站。但我从来没有花时间好好学习 Ruby,所以每次改变都需要数小时的反复试验。我不能只是阅读错误消息并修复它。这不是鲁比的错。那是因为我从来没有花几天时间来真正学习 Ruby。使用 JBake,我可以在很短的时间内修复错误:不再需要反复试验。
什么是 JBake?
JBake 是一个静态网站生成器,有很多选项:
- 使用 Maven 或 Gradle 构建。
我们选择Maven,因为我们所有的存储库都是使用 Maven 构建的(尽管两个OptaPlanner Quickstarts也使用 Gradle 构建,因为 OptaPlanner 也支持 Gradle)。 - 用 Asciidoc、Markdown 或 HTML 编写内容。
我们选择Asciidoc 是因为它比 Markdown更丰富、更可靠。此外,我们所有的文档都是用 Asciidoc 编写的。 - 使用 Freemarker、Thymeleaf 或 Groovy 创建模板。
我们选择Freemarker 是因为它是一个强大的、经过实战考验的模板引擎。
$ git clone https://github.com/kiegroup/optaplanner-website.git |