云网牛站
所在位置:首页 > Linux云服务器 > 在Linux/FreeBSD/macOS下安装Zola并使用Zola静态站点生成器

在Linux/FreeBSD/macOS下安装Zola并使用Zola静态站点生成器

2021-04-25 15:56:52作者:夏蓝稿源:云网牛站

本文介绍在Linux、FreeBSD、OpenBSD、macOS系统下安装Zola的方法,并使用Zola静态站点生成器(Static Site generator)。其中Zola可以用snap命令来安装,所以支持多种主流的Linux操作系统。

 

简介

静态网站生成器(全称Static Site generator,简称SSG)是一种工具,可根据原始数据和一组模板生成完整的静态HTML网站。Zola是类似于Hugo、Pelican和Jekyll的一种工具。它是用Rust编写的,并使用了Tera模板引擎,该引擎类似于Jinja2、Django模板、Liquid和Twig。内容使用CommonMark写成,CommonMark是Markdown的一个严格定义且高度兼容的规范。

应该注意的是,与其他站点相比,静态站点非常快并且不需要数据库,因此易于托管。在本文中,我们将安装并使用Zola创建一个简单的静态页面。首先,我们应该先安装它,然后继续创建并填充静态站点。

 

安装Zola

1、Arch Linux

Zola在正式的Arch Linux存储库中可用,只需要一个简单的命令足以下载并安装,运行以下命令将其完成:

sudo pacman -S zola

2、Alpine Linux

对于那些喜欢Alpine Linux的用户,Zola可以在Alpine Linux官方存储库中使用,目前仅在edge版本上可用。因此,您可以按以下方式安装它:

apk add zola --repository http://dl-cdn.alpinelinux.org/alpine/edge/community/

3、Fedora

自Fedora 29起,Zola已在官方存储库中可用:

sudo dnf install zola

4、Void Linux

Zola在官方的Void Linux存储库中可用,因此,像其他应用程序一样简单地安装它:

sudo xbps-install zola

5、FreeBSD

所有想使用Zola的FreeBSD用户都可以运行以下命令安装它:

pkg install zola

6、OpenBSD

Zola在OpenBSD的官方软件包存储库中可用,要将其安装在OpenBSD操作系统上,运行下面的命令就足够了:

doas pkg_add zola

7、macOS

如果您使用的是苹果机,则可以用Brew来安装Zola:

brew install zola

8、Snapcraft

如果由于某种原因(例如在Ubuntu中)在任何存储库中都找不到Zola,则可以使用Snap命令安装。Zola在snapcraft上可用,并且假设您已经安装了snap(参考:在Ubuntu 18.04/Debian上安装和使用Snap的方法),则可以按以下命令安装Zola:

sudo snap install --edge zola

 

使用Zola静态网站生成器(Zola Static Site generator)

安装Zola后,现在将立即深入了解Zola的工作方式,我们将通过制作一个简单的网站来做到这一点。通过该示例,我们希望您可以更轻松地在此基础上构建完善的网站。

步骤1:初始化您的博客或网站

第一步是初始化您的博客或网站,因为与某些静态网站生成器不同,Zola不对您网站的结构做任何假设。您将被问到几个问题,以便Zola能够确定如何订购您所需的大多数东西。初始化您的站点,如下所示。您可以使用喜欢的名称替换“computingforgeeksite”:

cd ~

zola init computingforgeeksite

运行该命令后,将出现以下问题:

> What is the URL of your site? (https://example.com): //computingforgeeks.com

> Do you want to enable Sass compilation? [Y/n]:

> Do you want to enable syntax highlighting? [y/N]:

> Do you want to build a search index of the content? [y/N]:

Done! Your site was created in /home/vagrant/computingforgeeksite

回答完问题后,您现在应该具有一个具有以下结构的“computingforgeeksite”目录:

├── config.toml

├── content

├── sass

├── static

├── templates

└── themes

为了证明我们的Zola工作正常,我们可以使用以下命令启动Zola开发服务器:

$ cd ~/computingforgeeksite

$ zola serve -i 172.23.209.227

Building site...

-> Creating 0 pages (0 orphan), 0 sections, and processing 0 images

当您打开浏览器并输入ID到服务器的域名或IP地址时(http://Domain Name|IP Address:1111)。如果您的服务器位于远程位置,并且您正在运行防火墙,则应允许1111端口。您应该看到与以下共享页面相似的页面:

在Linux/FreeBSD/macOS下安装Zola并使用Zola静态站点生成器

步骤2:建立范例首页

正如本文的介绍部分所述,Zola使用Tera模板引擎,该引擎类似于Jinja2、Django模板、Liquid和Twig。我们将在这里看到该模板引擎如何工作。让我们导航到templates目录,然后创建其他页面将重用的基本模板:

$ cd ~/computingforgeeksite/templates

$ vim base.html

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="utf-8">

<title>ComputingForGeeks Blog</title>

</head>

<body>

<section class="section">

<div class="container">

{% block content %} {% endblock %} ##This section takes advantage of Tera templating engine. Other pages will be injected here.

</div>

</section>

</body>

</html>

该基本模板可以由其他页面扩展,以便该基本页面可以轻松处理重复部分。其他页面将重点介绍其设计要执行的特定功能。为了了解如何完成此操作,让我们创建一个索引页面,该页面将扩展此基本模板。

在同一模板目录中,创建index.html文件:

{% extends "base.html" %}

{% block content %}

<h1 class="title">

  ComputingForGeeks page extending the base template using Tera templating engine.

</h1>

{% endblock content %}

{% block content %}和{% endblock content %}标签之间的文本将被注入到基本模板中。此时,如果我们启动zola服务器并访问http://Domain Name|IP Address:1111,我们将看到如下页面:

在Linux/FreeBSD/macOS下安装Zola并使用Zola静态站点生成器

步骤3:添加一些内容

在Zola,有一个叫做“section”的东西。每当内容目录中的目录(或子目录)包含“_index.md”文件时,都会创建一个节。如果目录不包含_index.md文件,则不会创建任何节,但是该目录中的Markdown文件仍将创建页面(称为孤立页面)。

在继续之前,我们将在内容目录中创建一个“site”子目录,然后在其中创建“_index.md”文件。

该文件告诉Zola“site”是一个部分,这是内容在Zola中的分类方式:

mkdir ~/computingforgeeksite/content/site

在_index.md文件中,我们有机会传递一些可以在页面中使用的变量。其中,让我们以TOML格式设置以下变量:

$ cd ~/computingforgeeksite/content/site

$ vim _index.md

+++

title = "Glossary of Geeks blog posts"

sort_by = "date"

template = "site.html"

page_template = "site-page.html"

+++

##Blog Posts Here

步骤4:建立网站范本

现在,我们已经通知“_index.md”文件查找“site.html”模板作为在本节中列出Markdown文件的基本模板,并加载“site-page.html”作为各个Markdown网站的模板文件,让我们继续在“templates”目录中创建这些文件:

$ cd ~/computingforgeeksite/templates

$ nano site.html

{% extends "base.html" %}

{% block content %}

<h1 class="title">

{{ section.title }}

</h1>

<ul>

{% for page in section.pages %}

<li><a href="{{ page.permalink | safe }}">{{ page.title }}</a></li>

{% endfor %}

</ul>

{% endblock content %}

site.html扩展了base.html,但是这次我们使用此模板列出博客文章。我们在上面的_index.md文件中设置的标题可以作为{{section.title}}使用。在标题下方的列表中,我们循环浏览本节(站点目录)中的所有页面,并使用{{page.title}}和{{ page.permalink | safe }}。

此时,当我们启动zola服务器并将浏览器指向http://Domain Name|IP Address:1111/site时,我们应该看到如下标题:

在Linux/FreeBSD/macOS下安装Zola并使用Zola静态站点生成器

步骤5:创建Markdown内容

我们将在分区区域中加载的页面为markdown格式,它们应位于“site”目录中。在站点目录中,创建一个名为blog1.md的文件,其中包含以下内容:

$ cd ~/computingforgeeksite/content/site

$ nano blog1.md

+++

title = "My first web page"

date = 2021-04-18

+++

This is my first blog post for computing for geeks.

标题和日期将在site-page.html模板中以{{page.title}}和{{page.date}}的形式提供给我们。结束语+++下方的所有文本将以{{page.content}}的形式提供给我们。

此时,当启动zola服务器并将浏览器指向http://Domain Name|IP Address:1111/site时,我们应该看到标题和第一个markdown文件标题为超链接,如下所示:

在Linux/FreeBSD/macOS下安装Zola并使用Zola静态站点生成器

让我们在相同位置添加site-page.html文件:

{% extends "base.html" %}

{% block content %}

<h1 class="title">

{{ page.title }}

</h1>

<p class="subtitle"><strong>{{ page.date }}</strong></p>

{{ page.content | safe }}

{% endblock content %}

添加此模板后,我们可以启动zola服务器,当将浏览器指向http://Domain Name|IP Address:1111/site/bolg1时,我们应该看到整个markdown文件的内容,如下所示:

在Linux/FreeBSD/macOS下安装Zola并使用Zola静态站点生成器

步骤6:部署就绪文件

在完成样式和调优或博客的设置之后,是时候将其显示给您的朋友了。Zola服务器可用于通过“zola build”命令来构建您的站点。该命令在public/文件夹中创建站点,您可以轻松地将其复制到Web服务器、Vercel、Netlify、GitHub Pages等中。

这是本示例的最终文件结构,如下图所示:

在Linux/FreeBSD/macOS下安装Zola并使用Zola静态站点生成器

至此,整个操作步骤完成。

 

相关主题

在Debian 10 Linux上安装Apache Web Server的方法

精选文章
热门文章