
在今天的数字时代,拥有一个网站对于建立一个在线存在、推广你的品牌和接触潜在客户是至关重要的。然而,创建一个网站可能是一项艰巨的任务。
这就是(SSG)的作用–它们使创建漂亮、快速加载的网站变得容易,而不需要复杂的后台系统或数据库。
在这篇文章中,我们将向你介绍流行的SSG之一–Jekyll,了解它是如何工作的,以及你如何用它创建一个静态网站。

用Jekyll建立的博客网站
如果你想仔细看看,你可以访问这个项目的。
Jekyll是一个免费的开源SSG,它是在Ruby编程语言上建立和运行的。你不需要了解Ruby的工作原理来使用Jekyll,你只需要在你的机器上安装Ruby。
Jekyll可以用来建立各种类型的静态网站,如个人博客、投资组合网站和文档网站,而不需要数据库或使用等内容管理系统。
以下是Jekyll在SSG中脱颖而出的原因:
你首先需要在你的机器上安装Ruby,然后才能继续安装Jekyll,正如中所述。
默认情况下,Ruby预装在macOS中,但不建议你使用这样的Ruby版本来安装Jekyll,因为它很旧。例如,在苹果最新的操作系统Ventura上,预装的Ruby版本是2.6.10,其中最新的版本是3.1.3(截止到本文写作时)。
要解决这个问题,你需要使用等版本管理器正确安装Ruby。你需要先在你的Mac上安装,在终端使用以下命令:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
一旦安装成功,退出并重启终端,然后通过运行这个命令检查Homebrew是否准备好了:
brew doctor
如果你得到 “Your system is ready to brew“,你现在可以继续用下面的命令安装 chruby 和ruby-install:
brew install chruby ruby-install
你现在可以使用你刚刚安装的 ruby-install 软件包安装ruby的最新版本,即3.1.3:
ruby-install 3.1.3
这将需要几分钟的时间。一旦成功,用下面的命令将你的shell配置为自动使用 chruby :
echo "source $(brew --prefix)/opt/chruby/share/chruby/chruby.sh" >> ~/.zshrc echo "source $(brew --prefix)/opt/chruby/share/chruby/auto.sh" >> ~/.zshrc echo "chruby ruby-3.1.3" >> ~/.zshrc
现在你可以退出并重新启动你的终端,然后通过运行这个命令检查一切是否正常:
ruby -v
它应该显示ruby 3.1.3。
现在你的机器上已经安装了Ruby的最新版本。现在你可以继续安装最新的Jekyll和bundler gem:
gem install jekyll bundler
要在Windows机器上安装Ruby和Jekyll,你需要使用。这可以通过从下载并安装Ruby+Devkit版本,并使用默认的安装选项来完成。
在安装向导的最后阶段,运 ridk install 步骤–它是用来安装宝石的。通过阅读更多内容。
从选项中,选择MSYS2和MINGW开发工具链。打开一个新的命令提示符窗口,使用下面的命令安装Jekyll和Bundler:
gem install jekyll bundler
为了验证Jekyll是否正确地安装在你的机器上,请打开你的终端并运行以下命令:
jekyll -v
如果你看到版本号,说明Jekyll已经安装并在你的系统上正常工作。你现在可以使用Jekyll了!
在我们开始用Jekyll创建和定制静态网站之前,更好先熟悉一下它的各种CLI命令和配置文件参数。
下面是一些常用的Jekyll CLI命令。你不需要记住它们,只需要知道它们的存在,当你注意到它们在本文后面的用法时,可以随时回头查看它们的作用。
jekyll build:生成_site目录下的静态网站。jekyll serve:构建网站并在你的本地机器上启动一个Web服务器,允许你在浏览器中预览网站,http://localhost:4000。jekyll new [site name]:在一个新的目录中创建一个新的Jekyll站点,并指定站点名称。jekyll doctor:输出任何可能存在的配置或依赖性问题。jekyll clean:删除_site目录,它是生成的站点文件的存放地。jekyll help:输出Jekyll的帮助文档。jekyll serve --draft:生成并提供你的Jekyll站点,包括_drafts目录中的任何文章。你也可以在这些命令中附加一些选项。请参阅Jekyll文档中的。
Jekyll配置文件是一个名为_config.yml的YAML文件,包含Jekyll网站的设置和选项。它用于配置你网站的各个方面,包括网站的标题、描述、URL和其他设置。
下面是一些最常用的配置选项:
minima。你可以通过设置它的名字和实施我们将在本文后面了解的其他设置来使用任何。你也可以在你的配置文件中创建自定义变量,并在你的网站的模板、布局和包括中使用它们。例如,你可以创建一个名为 author_name 的变量,然后在你的模板中这样使用它:{{ site.author_name }}。
要修改你的Jekyll配置文件,请在文本编辑器中打开Jekyll项目目录中的_config.yml文件并进行修改。
注意:你对配置文件所做的任何修改都会在你下次用 jekyll build 或 jekyll serve 生成网站时生效。
现在你已经在你的机器上安装了Jekyll,现在可以用一个命令在几秒钟内创建一个Jekyll静态网站。打开你的终端,运行这个命令:
jekyll new joels-blog
确保你把 “joels-blog “替换成你喜欢的网站名称。

Jekyll静态网站
接下来,导航到网站文件夹。你会注意到一个基本的Jekyll网站结构,包括像这样的目录和文件:
├── _config.yml ├── _posts ├── Gemfile ├── Gemfile.lock ├── index.md └── README.md
以下是这些目录和文件的用途:
但是还有更多的文件/文件夹可以用来定制你的Jekyll网站。这些文件夹包括:
这个文件结构为Jekyll项目提供了一个坚实的基础,但你可以根据需要修改它以适应你的项目的具体需要。
作为使用Jekyll CLI启动项目的替代方案,你可以使用这个在GitHub上的 创建一个Git仓库。选择Use this template > Create a new repository,将启动代码复制到你自己的GitHub账户中的一个新仓库。
你现在有了一个Jekyll网站,但在你可能开始定制它以满足你的需要之前,你如何预览该网站,看看它是什么样子的?打开你的终端,进入你的项目目录,然后运行以下命令:
jekyll serve
这将产生一个_site文件夹,其中包括从你的项目中产生的所有静态文件。它还将启动Jekyll服务器,你可以通过http://localhost:4000,预览你的网站。
如果你在你的浏览器中访问这个URL,你应该看到你的Jekyll网站和minima主题:

默认外观
当你用Jekyll创建一个网站并使用一个主题时,你可以根据你的需要来定制网站。例如,你可能想添加新的页面,改变页面的布局,或者调整某些项目的显示方式。所有这些都可以通过Jekyll实现。
当你打开你的项目文件夹中的每个页面或博客文章时,你会注意到页面顶部的三个破折号(-)内有一个信息块。这被称为front matter。
它是Jekyll中使用的一种元数据格式,用来存储页面或文章的信息–它可以用YAML或 *** ON编写。
--- title: "Welcome to Jekyll!" description: "Introduction to what Jekyll is about and how it works" date: 2023-03-07 16:54:37 +0100 ---
在上面的例子中,前面的内容包括一些变量,如文章的标题、描述和日期。这些变量可以在页面或文章的布局或内容中使用。
Jekyll会解析前言,并使用它来为你的网站生成输出的HTML。你可以使用前述内容来指定各种选项,如布局、固定链接、发布状态等。
如何配置默认的front matter
你也可以配置默认前题,这样你就不需要为类似的文件定义相同的前题。例如,如果每篇博客文章使用相同的作者姓名和布局。你可以在你的_config.yml文件中定义一个自定义的前置事项,以服务于你所有的博客文章。
它的结构方式有点复杂,但这里是它的模样。把这个粘贴在你的_config.yml文件的最后一个配置下面:
defaults: - scope: path: "posts" # empty string means all files values: layout: "post" author: "John Doe"
当你现在运行 jekyll serve 命令时,你会注意到,即使你不在每个文章上定义版面和作者,你仍然可以在文件中访问它们。
注意:当你不定义路径时,所有的文件都将使用定义的前题值。
当你在项目的根目录下创建一个文件时,它被认为是一个页面。你给文件起的名字多数时候是用在URL中的,所以你要给每个页面文件起一个能引起共鸣的名字。
例如,如果你想创建一个网址为https://example.com/about的页面,就创建一个名为about.html或about.md的文件。文件的扩展名决定了页面内容要使用的标记语言(HTML或Markdown)。
一旦你创建了一个文件,添加适当的前题和内容。保存文件并在浏览器中刷新你的Jekyll网站。现在应该可以通过文件名对应的URL访问新的页面。

前言和内容
你可以使用Layouts来定义你网站的页面和文章的结构和设计。这通常主要是通过HTML代码完成的。你可以在页面的元数据中加入页眉、页脚、元信息。
之一步是在你项目的根目录下创建一个_layouts文件夹。然后为每个布局创建一个文件–该文件应该有一个描述性的名字,以反映布局的目的。例如,你可以创建一个名为page.html的文件来定义你网站上所有页面的布局。
更好是用HTML或其他标记语言来定义布局的整体结构。
你可以为任何将 *** 入布局的动态内容包括占位符,如页面标题、内容和元数据。例如,你可以创建一个基本的布局,包括一个页眉、页脚和内容区,像这样:
<!DOCTYPE html>
<html>
<head>
<title>{{ page.title }}</title>
</head>
<body>
<header>
<!-- Navigation menu goes here -->
</header>
<main>{{ content }}</main>
<footer>
<!-- Footer content goes here -->
</footer>
</body>
</html>
在这个例子中, {{ page.title }} 和 {{ content }} 占位符将被替换为被渲染的页面的实际标题和内容。
在这一点上,任何在前台使用page作为布局值的页面或文章都会有这种布局。你可以在_layouts文件夹中创建多个布局,并以你喜欢的方式设计你的布局。你也可以通过定义一个具有类似名称的布局来覆盖一个主题的布局。
_includes文件夹包含可重复使用的代码片段,你可以将其包含在网站的不同部分。例如,你可以在你的includes文件夹中创建一个navbar.html文件,并使用 {% include %} 标签将其添加到page.html布局文件。
<!DOCTYPE html>
<html>
<head>
<title>{{ page.title }} </title>
</head>
<body>
<header>{% include navbar.html %} </header>
<main>{{ content }} </main>
<footer>
<!-- Footer content goes here -->
</footer>
</body>
</html>
在构建时,Jekyll会用navbar.html的内容替换该标签。
_includes文件夹可以包含任何类型的文件,如HTML、Markdown或Liquid文件。其主要目的是通过允许你在你的网站上重复使用代码来保持你的代码DRY(Don’t Repeat Yourself)。
你可能想创建一个专门的博客页面来存放你的所有博客文章,这意味着你想获取你网站上的所有文章并循环浏览它们。在Jekyll中,使用 {% for %} 标签很容易实现。
任何Jekyll网站上的所有文章都存储在 site.post 变量中。你可以循环浏览并使用 {{post.title }}} 液体变量来输出每个文章的标题。液态变量来输出每个文章的标题,这种方式:
{% for post in site.posts %}
<h2>{{ post.title }}</h2>
{% endfor %}
你还可以使用额外的Liquid变量来输出每个文章的其他信息,如文章的日期或作者:
{% for post in site.posts %}
<h2>{{ post.title }}</h2>
<p>Published on {{ post.date | date: "%B %-d, %Y" }} by {{ post.author }}</p>
{% endfor %}
请注意,在上面的例子中,date Liquid过滤器将每个文章的日期格式化为更容易让人理解的格式。
现在,你对可以对你的Jekyll网站进行的一些基本格式化有了一个概念。但你可能不需要使用所有这些来从头开始建立一个Jekyll网站,因为你可以随时搜索符合你需要的主题,并将其添加到你的Jekyll网站。
有各种易于添加的主题,但好在每个主题在GitHub上的ReadMe文件中都有关于如何安装它们的明确信息。你可以决定克隆主题,如果是,这个过程就比较简单。
在这篇文章中,你将安装一个,并对其进行定制,以便。这是一个基于基因的主题,你可以在GitHub上获取其和。
要添加一个基于基因的主题,请打开你网站的Gemfile,添加你要使用的主题的基因。我们将使用的主题是jekyll-theme-clean-blog。你可以在Gemfile中替换默认的minima主题:
gem "jekyll-theme-clean-blog"
在你的网站目录中运行 bundle install 命令,以安装主题的gem及其依赖项。
在你网站的_config.yml文件中,添加以下一行来指定你要使用的主题:
theme: jekyll-theme-clean-blog
在这一点上,你的主题已经可以使用了。
你要删除_layouts目录下的所有布局,以避免它们覆盖主题的布局。
然后你可以在中找到你的文件的布局名称。例如,如果你使用的是jekyll-theme-clean-blog主题,index.html文件的布局名称是home,其他页面是page,而所有文章是post。
最后,运行 jekyll serve ,使用新的主题建立和服务你的网站。

Jekyll博客静态网站
这就是了! 你的Jekyll站点现在应该使用你添加的基于宝石的新主题。你可以通过在你的站点的_layouts目录中修改其布局来进一步定制该主题。
你现在已经把你的主题添加到了你的网站上,下一步的行动将是定制网站,以满足你的需求,并按照它的意图来工作。例如,每个页面和文章的图片都没有显示,而是显示一个灰色的背景。
你可以通过在每个页面和文章中添加一个前台选项,指定你希望使用的图片的路径来解决这个问题。在Jekyll中,图像等资产被存储在assets文件夹中。在这个文件夹中,你可以决定创建子文件夹来组织你的图片。

图像文件夹
现在,你可以为正面内容块添加一个背景选项,并为其图片添加一个路径。例如,在 “关于” 页面上,这就是正面内容:
--- layout: page title: About description: This is the page description. permalink: /about/ background: '/assets/images/about-page.jpeg' ---
对所有页面和文章都这样做,你的页面将看起来像这样:

背景图片显示在关于页面上
你可以做的另一个定制是调整导航栏选项。例如,你可能不需要联系页面,这意味着你应该从导航栏选项中删除其链接。你可以通过研究来做到这一点,注意到负责导航链接的文件,并在你的项目中完全复制该文件,删除你不需要的选项。
导航链接在中。你可以创建这个文件,从你的源代码中粘贴代码,并删除联系选项或添加任何你想要的新选项。

自定义Jekyll主题的导航条
当你保存你的项目时,你会发现导航选项将被定制:

完全定制的导航条
最后,最后一个定制将是创建一个文章页面,它将容纳你所有的博客文章–这意味着你将在这个页面上循环浏览所有的文章。
创建一个文件,post.html并粘贴以下代码:
---
layout: page
title: Blog
description: Expand your knowledge and stay informed with our engaging blog posts.
background: '/assets/images/blog-page.jpeg'
---
{% for post in site.posts %}
<article class="2345HAO9a4c300b7f740219 post-preview">
<a href="{{ post.url | prepend: site.baseurl | replace: '//', '/' }}">
<h2 class="2345HAO300b7f74021984f6 post-title">{{ post.title }}</h2>
{% if post.subtitle %}
<h3 class="2345HAO7f74021984f6da5e post-subtitle">{{ post.subtitle }}</h3>
{% else %}
<h3 class="2345HAO021984f6da5e45ad post-subtitle">
{{ post.excerpt | strip_html | truncatewords: 15 }}
</h3>
{% endif %}
</a>
<p class="2345HAO84f6da5e45ad412c post-meta">
Posted by {% if post.author %} {{ post.author }} {% else %} {{ site.author
}} {% endif %} on {{ post.date | date: '%B %d, %Y' }} · {% include
read_time.html content=post.content %}
</p>
</article>
<hr />
{% endfor %}
请随意调整背景图片以反映你保存的图片。在上面的代码中,你正在循环浏览所有的文章,以显示这个页面上的所有文章。这就是保存后的文章页面的样子。

文章页面
你现在已经创建了一个Jekyll网站,并根据你的需要配置了该网站。最后一步是添加内容或了解如何将内容添加到Jekyll站点。
所有的内容都存储在_posts文件夹中。每个内容都存储在一个文件中,其命名规则类似于YYY-MM-DD-title.md(或HTML文件的.html)。例如,如果你想创建一个名为 “我的之一篇文章 “的文章,在_posts目录下创建一个2023-03-08-my-first-post.md。
接下来,对于每个文章/内容文件,确保你在顶部添加关于文章的正面内容。这将包括布局、标题、描述、日期和其他信息。
--- layout: post title: "How to Read Books: Tips and Strategies for Maximum Learning" subtitle: "Reading books is one of the most powerful ways to learn new information, gain new perspectives, and expand your knowledge." date: 2023-03-02 23:45:13 -0400 background: '/assets/images/blog/books.jpeg' ---
然后你可以用HTML标签或markdown语法将你的内容添加到前面的事项块下面。

在_posts文件夹中添加新的文章
保存该文件,Jekyll会自动建立并将其包含在你的网站中。
到目前为止,你已经了解了Jekyll的工作原理以及你可以用Jekyll进行的各种定制。现在可以肯定的是,由于Jekyll的简单性、灵活性和强大的功能,它是一个创建静态网站的优秀工具。
Jekyll的直观模板系统、liquid模板以及对markdown和其他标记语言的内置支持,使得它可以轻松地快速创建和管理内容丰富的网站。
谁在尝试访问某些网站时没有遇到过更新Java的请求? 虽然许多人通过交互式网站功能熟悉Java,但用户可能不太熟悉JavaScript——或者,实际上,他们可能错误地认为两者是相同的。 在本文中,我们将讨论JavaScript 是什么以及Java和JavaScript之间的区别。然后我们将概...
宝塔面板现在已经成为国内许多站长必备的服务器管理必备工具。相比直接使用SSH+FTP来管理服务器,宝塔面板可以提供可视化管理,包括文件管理、数据库管理、数据备份、SSL配置等等。 如果你希望更简单高效地管理您的网站及服务器,宝塔面板是不错的选择。下面是一些宝塔面板安装及常见问题:...
宝塔的数据库管理,是基于phpmyadmin管理和新建数据库。其最大的便利性就是类似,通过面板可以快速访问进行管理操作,无需单独访问phpmyadmin的主页。 此外,在宝塔面板进行数据库管理,你也对数据库名、用户名及密码等信息一目了然,及可以对数据库执行快速备份或者导入。 添加数据...
经过几个小时的努力工作后,您是否感到眼睛疲劳或难以阅读代码?许多程序员在开始头疼之前从没想过要切换字体。 如果您经常发现在尝试扫描一千行代码时眼睛模糊不清,或者在停止编码数小时后头疼,那么可能是时候尝试一种新字体了。即使您没有遇到这些症状,设计良好的字体通常也比默认系统字体具有更好的可读性。...
对于初学者和那些刚刚进入WordPress开发的人来说,PHP是您可以开始的最佳起点之一。这是一种超级简单直接的语言,使其成为之一,因此相当容易上手,它构成了在线开发的支柱。另外,如果你想在WordPress后端工作,你肯定需要学习它。 但是,如果您不想在昂贵的大学课程上花费数月或数年时间怎么...
无服务器计算是一种基于云的执行模型,可以将应用程序作为服务托管,而无需维护服务器。 服务提供商维护服务器上的资源分配,并根据实际使用情况向用户收费。焦点转移到一个人正在创建的核心应用程序上,基础设施完全由服务提供商处理。无服务器计算也称为功能即服务 (FaaS)。 换句话说,Serverle...