推荐3个超级好用的静态网站生成器:静态是一种新的动态

近年来,网站建设趋势:越来越多的静态网站而非动态网站,静态网站越来越受到一些大公司做小网站时的青睐。

关于静态网站和动态网站的 5 个事实:

  1. 动态网页由服务器在检索期间生成,例如使用像 WordPress(PHP / MySQL)这样的 CMS
  2. 静态网页仅包含 HTML / CSS / Javascript
  3. 静态站点生成器提前生成静态网站,提供布局和内容的分离
  4. 两种解决方案都有优点和缺点,并且必须在项目之间平衡使用
  5. 大型公司已经将静态站点生成器用于微型网站等中小型网站

什么是动态和静态

什么是动态网页?

动态网页是在服务器调用时动态生成内容的网页。大多数内容管理系统(CMS)都是这种情况。 最著名的例子:WordPress。每次打开页面都使用服务器端编程语言 PHP 从数据库中提取内容并将其组装到页面中。如果配置了缓存,则仅部分重新生成。

什么是静态网站?

静态网页由 HTML,CSS 和可选的 Javascript 组成。该页面不必由服务器端编程语言按需生成。

什么是静态网站生成器?

静态 Web 页面生成器在本地计算机或云中生成完整的静态 Web 页面。然后,这些可以存储在服务器或内容分发网络(CDN)中。

与内容管理系统类似,生成器提供了使用布局模板,分离内容和表示的可能性,在某些情况下甚至可以从外部 CMS 中提取内容。

静态网站的优缺点

优点

  1. 更安全,因为没有数据库和服务器
  2. 更快,因为不再需要执行服务器端编程语言
  3. 更好扩展
  4. 可以放入内容交付网络(CDN),提高全球可用性和速度
  5. 可以通过 Git 对整个网站进行版本控制和备份

缺点

  1. 更多适用于程序员或者其他技术人员
  2. 适合中小型网站(微型网站,博客,企业网站)
  3. 需要使用 Git(GitHub,Gitlab)的工作流
  4. 需要额外的 JavaScript 才能实现搜索,价格更新等
  5. 没有 CMS,主要是以 markdown 文件的形式创建内容

正如上面说到那样,其中许多缺点是可以解决的,但与已知的 CMS 相比,一次性工作要多得多。

静态网站生成器在我看来还处于起步阶段,但有潜力! CMS 成为 Headless(Headless CMS),即它们仅提供内容创建界面,并且通过 API 提供内容。然后,静态网站生成器,Javascript 应用程序或移动应用程序可以访问此 API。WordPress.com 最近将 PHP 的界面更改为 Node.js 并提供了这样的 API。 Contentful 等其他提供商已经将 Headless CMS 作为商业模式。不过这种趋势需要一段时间,才能成为主流。

3 个静态站点生成器

下面我给介绍 3 个我已经在使用的静态网站的生成器。它们只是现有解决方案的一小部分。可以在网站 StaticGen(在 GitHub Stars 之后排名)上找到全部的介绍。

1. Hugo

Hugo 静态网站生成器

Hugo 基于编程语言 Go,它以非常非常快的速度而着称。简单的说,Hugo 是迄今为止最快的静态站点生成器。当然,具有许多独立页面的网站利用静态站点生成器最为受益。

Hugo 目前的开发进度非常的好,并且开源以及下面提到的所有其他静态站点生成器,并提供开箱即用的各种功能。不太好的地方在于:在 Go 的模板语言中,不是每个人都能找到正确的方法,到目前为止,没有可能通过插件进行扩展。

虽然目前大多数开发人员都会在使用 Node.js,Python 或 Ruby 时很顺手,但基于 Go 的静态站点生成器 Hugo 却因其出色的速度而获得了足够高的分数。

适用于:具有大量单个页面和许多分类法(类别,标签等)的网站,例如中型博客

Harp.js

Harp.js 静态网站生成器

Harp 是一个基于 Node.js 的构建工具,静态站点生成器和服务器于一体。好的一点是,大多数事情都是在没有配置和代码的情况下完成的。

这使得 Harp 成为更简单的解决方案之一,一旦安装在本地机器上,就可以轻松操作。这使得创建较小的网站,如微型网站时十分的方便。Sass,Less,Markdown,Pug 等会自动转换为 HTML,CSS 和 Javascript。它比 Grunt,Gulp 更容易。

“约定大于配置”是有代价的:对于中型到大型网站,该系统不仅会因其速度而受到削弱,而且还受限于设置项有限。此外,与其他静态站点生成器不同,markdown 文件不允许“YAML Front Matter”,所以每个页面中的元数据必须拆分到一个 JSON 文件中,与 markdown 文件分开放置。

适用于:微型网站,小型企业或产品网站

Metalsmith

Metalsmith 静态网站生成器

Metalsmith 绝对是一个极客使用的静态网站生成器。本身基于 Node.js 的脚本并不能做很多事情,但是通过一堆文件操纵它们可以达到这一目的。同事还有很多插件可以满足您对静态站点生成器的期望。必要使用 Gulp 来打包代码。

使用插件或模块的方法很好,并且与 Node.js 开发人员的理念相对应。但是,当代码中的脚本破坏或不是最新时,程序通常就会出错。

适合:开发人员

总结

这里展示的三个静态站点生成器基于 Go 或 Node.js. 更多编程语言 Python,Ruby 和 PHP 也可用。 尽管 PHP 在大小公司中被广泛使用,但我认为它不适合作为静态站点生成器。为什么?因为在 PHP 中获取、操作和保存文件比在 Node.js 或 Go 中慢得多。此外,Node.js 的生态中有非常多用于构建过程的脚本和工具,如 Node.js 生态系统中的 CSS 预处理器。

最后终结一句话:“为正确的工作选择合适的工具。”

发表评论

电子邮件地址不会被公开。 必填项已用*标注