概述
从本质上讲,Engineer 是一个静态网站生成器。换句话说,Engineer 可以让你通过一堆文件(Markdown 书写的文章、模板及其他内容)来构建一个网站,并输出另一堆文件(主要是 HTML),然后你可以将这些文件复制到任何需要的地方。
Engineer 的灵感来自 Brent Simmons、Marco Arment 的 Second Crack、Jekyll、Octopress 和 Hyde。
功能
- 随时随地撰写帖子
- 可以使用 Markdown 撰写/编辑帖子,并使用 Dropbox 或其他文件同步解决方案进行存储/同步。
- 本地预览你的站点
- Engineer 包括一个小型的开发 Web 服务器,你可以使用它在本地预览你的站点,无需进行任何部署。
- 远程管理你的站点
- 即使是预先构建的站点也需要进行一些管理,许多现有的静态生成器要求你在终端中加载并执行一个命令来重新构建你的站点。当然,Engineer 可以让你这样做,但它还提供了 Emma,一个内置的迷你管理站点(可选),它让你可以远程执行大多数通用管理任务。
- 主题使更改你的站点外观变得更加容易
- 主题提供了网站在外观和感觉方面的灵活性,无需从头开始或重新编写大量内容。你也可以自己编写主题。
- 使用 LESS 代替 CSS,如果你愿意的话,Engineer 允许你使用 LESS 而非 CSS。LESS 可以在服务器上进行预处理(要求在非 Windows 系统上安装 lessc),也可以使用 less.js 在客户端进行处理。
- 它很快
- Engineer 可以快速输出内容(我正在努力使其更快),并且因为输出内容完全是静态的,所以它能够以极快的速度提供服务,扩展性非常好,并且完全独立于任何特定的 Web 服务器或技术。生成后,你可以将站点复制到任何地方,并使用你喜欢的任何 Web 服务器。此外,Engineer 可以优化你的 JavaScript 和 CSS/LESS 以最大程度地减小其大小。Engineer 始终旨在追求速度。
注意事项
尽管有所有这些功能,但也有一些事情你可能不喜欢
- 动态事物需要更多的工作
- 如果你习惯于每次加载页面时执行一些超级动态的操作,那么静态网站会让人感到受限。这些事情大部分都可以使用客户端 JavaScript(例如 timeago.js)或 Jinja 2 模板系统的巧妙用途来处理(请参阅 Engineer 自身中的导航突出显示功能,了解可执行操作的示例)。
- 可能不符合你的网站需求
- 如果你有很多单页(模板页面或其他此类页面),那么管理它们可能会变得有点麻烦。当网站的大部分内容具有类似的外观和感觉,并且你可以为你的大部分内容利用元数据时,Engineer 真的很出色。Engineer 本身并不局限于博客,但它确实做出了一些假设,即你大部分内容都采用文章形式。
- 仅支持 Markdown 和 Jinja 2
- 虽然从理想情况来说这并不总是如此,但目前 Engineer 要求你的帖子使用 Markdown 撰写,并且你创建的任何模板都使用 Jinja 2 撰写。这可能会在未来改变,但现在你必须使用这两种语言。
- Engineer 不是 CMS
- 如果你正在寻找一个成熟的内容管理系统,那么... 请继续寻找。Engineer 绝对不是你想要的。Engineer 遵循基本原则,即你的内容存储在文本文件中,文件本身中只有最少的元数据,因此如果你正在寻找丰富的 URL 管理、图像/文件操作功能等,那么 Engineer 会让你非常失望。它并非旨在执行此类操作。