使用 Jekyll 构建你的网站 - 初入门

文章目录

    • 一、Jekyll介绍
    • 二、Jekyll安装和启动
      • 2.1 配置Ruby环境
        • 1)Windows
        • 2)macOS
      • 2.2 安装 Jekyll
      • 2.3 构建Jekyll项目
      • 2.4 启动 Jekyll 服务
    • 三、Jekyll常用命令
    • 四、目录结构
      • 4.1 主要目录
      • 4.2 其他的约定目录
    • 五、使用GitLink构建Jekyll博客
      • 5.1 生成Jekyll项目
        • 前提条件
        • 第一步:登录GitLink平台(https://www.gitlink.org.cn/login)
        • 第二步:进入设置>个人建站>我的站点
        • 第三步:新建站点
        • 第四步:去仓部进行部署
        • 第五步:编写项目代码,完成初次部署及访问
      • 5.2 本地编写Jekyll博客内容
        • 5.2.1 clone仓库
        • 5.2.2 本地调试
        • 5.3.3 创建一篇文章
          • 5.3.3.1 文章文件名
          • 5.3.3.2 文章文件内容
          • 5.3.3.3 示例
      • 5.3 推送文章到仓库
      • 5.4 一键部署启动

一、Jekyll介绍

Jekyll 是一个开源的静态网站生成器,支持 Markdown 和 HTML 两种文件类型,其中 HTML 使用了 Liquid 模板语言。
你可以使用 Markdown 编写内容,使用 HTML/CSS 来构建和展示,Jekyll 会将其编译为静态的 HTML。
Jekyll 使用 Ruby 引擎将用 Markdown 编写的文章转换成 HTML。

官网:

  • https://jekyllrb.com/docs/
  • https://jekyllcn.com/docs/home/

二、Jekyll安装和启动

Jekyll 网站 提供了 Linux、MacOS 和 Windows 安装说明。可点击跳转到官网查看

一般情况下,我们会将Jekyll项目拉取到本地,编写,调试,然后再推送到仓库上。
那么,我们有必要了解下如何在本地调试Jekyll项目。

2.1 配置Ruby环境

1)Windows

在 Windows 下配置 Ruby 环境,安装 RubyInstaller 即可。

RubyInstaller 是一个基于 Windows 的安装程序,包括了 Ruby、运行环境等。

从 RubyInstaller Downloads下载 Ruby+Devkit,选择推荐版本,使用默认配置安装。
在这里插入图片描述

安装完成之后,CMD 中输入 ruby -v 或者 gem -v,有输出版本即代表安装成功。
在这里插入图片描述

2)macOS

在 macOS Big Sur 11.x 版本下就已经自带了 Ruby 环境。

如果是以前版本的 macOS,使用 Homebrew 便可以安装 Ruby:brew install ruby。

同样的,在 macOS 下也可以使用 RubyGems 管理 Ruby 软件包。

2.2 安装 Jekyll

有了 Ruby 环境以及 RubyGems 就可以安装 Jekyll。
在命令行输入如下命令安装Jekyll:gem install jekyll
在这里插入图片描述

安装之后,输入 jekyll -v 检查是否安装成功。
在这里插入图片描述

2.3 构建Jekyll项目

注意:下文将讲述如何使用GitLink平台一键构建及部署Jekyll项目。

创建一个全新的工程,执行如下命令:

jekyll new learn-jekyll

执行完成之后,我们就成功创建了一个名为 learn-jekyll 的 Jekyll 项目。

2.4 启动 Jekyll 服务

Jekyll 环境搭建完成之后,进入到项目目录下(有 _config.yml 文件的目录),

输入启动命令:jekyll serve 或者 jekyll s。

若没有异常,启动服务后的默认端口为 4000,浏览器地址栏输入 localhost:4000 即可访问。

启动服务时使用命令:jekyll s --drafts,可以同时访问草稿(_drafts)目录下的文章。

三、Jekyll常用命令

安装完 Jekyll 之后,系统环境中就有了 jekyll 这个可执行的命令, 这里列举几个常用命令:

  • jekyll new PATH - 创建新项目
  • jekyll new PATH --blank - 创建新的空项目
  • jekyll build 或 jekyll b - 构建项目,生成可部署的 _site 目录
  • jekyll serve 或 jekyll s - 构建并运行项目,会自动监听文件变化,不需要反复执行
  • jekyll clean - 清除所有的构建产物
  • jekyll new-theme - 创建一个新的主题脚手架
  • jekyll doctor - 诊断,输出所有已经废弃的依赖包或者有问题的配置

四、目录结构

4.1 主要目录

一般情况下,Jekyll项目构建完成后,包括如下文件和文件夹:

  • _posts: 用于存放博客文章。
  • _site: 用于存放项目构建完成之后所生成的静态文件,也就是说,静态网站的所有文件都会来源于此,其中 CSS 文件、JS 文件以及图片文件,会存放在该目录下的 assets 文件夹中。我们可以直接把该目录下的文件拿去部署。
  • about.markdown: “关于页”的内容。在执行构建时会被转化成 html 文件,放置于 _site 目录下。
  • index.markdown: “主页”的内容。在执行构建时会被转化成 html 文件,放置于 _site 目录下。
  • 404.html: “404 页”的内容。
  • _config.yml: Jekyll 的全站配置文件,一些全局配置会写在这个文件内,比如 collections,默认文件/路径,等等。总之,这里可以自定义很多东西
  • .gitignore: 创建项目时会自动生成,不需要纳入到 CVS 的文件存放于此
  • Gemfile& Gemfile.lock 存放项目所依赖的 Ruby gems

4.2 其他的约定目录

除了上面提到的几个目录,我们还可以添加其它的,Jekyll 会自动识别出它们,执行相应的处理。

_data - 网站所需要的数据文件(相当于一个小型数据库)
_drafts - 博客草稿,不会被构建成静态文件,也不会公开
_layouts - 布局文件,相当于一类页面(比如博客类页面)的“父类”
_includes - 小模块,属于 HTML 文件的一部分,可以在多个页面中复用,比如导航(navigation)、脚注(footer)等

五、使用GitLink构建Jekyll博客

5.1 生成Jekyll项目

我们也可以使用GitLink平台直接新建一个Jekyll项目。
GitLink平台内置了多个模板,大家可以选择自己喜欢的模板进行构建。
同时,GitLink平台支持一键部署Jekyll项目,解决大家购买服务器,手动部署的困扰。

前提条件
  • 拥有一个GitLink平台的账号,可通过如下链接进行注册:https://www.gitlink.org.cn/register
  • GitLink平台账号已完成实名认证。
第一步:登录GitLink平台(https://www.gitlink.org.cn/login)
第二步:进入设置>个人建站>我的站点

如果用户未完成实名认证审核,将提示“您尚未通过实名认证,无法使用此服务,如需使用,请先进行实名认证。”, 可点击“前往验证”完成实名认证。

第三步:新建站点

在这里插入图片描述
在这里插入图片描述

第四步:去仓部进行部署

在这里插入图片描述

第五步:编写项目代码,完成初次部署及访问

在这里插入图片描述

5.2 本地编写Jekyll博客内容

上面操作,我们已经基于GitLink新建了一个带有模板的Jekyll项目。

5.2.1 clone仓库

我们可以clone仓库到本地,编写博客内容。

我们clone的仓库代码如下图所示:
在这里插入图片描述

5.2.2 本地调试

注意:如果调试中遇到困难,可能先搜索网上可靠解决方法。 如果无法解决,推荐跳过该步骤,直接在GitLink平台部署。

由于项目是哟Gemfile管理依赖,我们可以使用命令一键安装依赖包:bundle install

Bundle命令详解:

# 显示所有的依赖包 
$ bundle show# 显示指定gem包的安装位置 
$ bundle show [gemname]# 检查系统中缺少那些项目依赖的gem包 
# 注:如果系统中存在所有项目依赖的包,则会输出:The Gemfile's dependencies are satisfied 
$ bundle check# 安装项目依赖的所有gem包 
# 注:此命令会尝试更新系统中已存在的gem包 
$ bundle install# 安装指定的gem包 
$ bundle install [gemname]# 更新系统中存在的项目依赖包,并同时更新项目Gemfile.lock文件 
$ bundle update# 更新系统中指定的gem包信息,并同时更新项目Gemfile.lock中指定的包信息 
$ bundle update [gemname]# 向项目中添加新的gem包引用 
$ gem [gemname], [ver]# 你还可以指定包依赖关系 
$ gem [gemname], :require => [dependence_gemname]# 你甚至还可以指定gem包的git源 
$ gem [gemname], :git => [git_source_url]# 锁定当前环境 
# 可以使用bundle lock来锁定当前环境,这样便不能通过bundle update来更新依赖包的版本,保证了统一的环境 
$ bundle lock# 解除锁定 
$ bundle unlock# 打包当装环境 
# bundle package会把当前所有信赖的包都放到 ./vendor/cache/ 目录下,发布时可用来保证包版本的一致性。 
$ bundle package

如果我们不基于Gemfile安装依赖,直接启动Jekyll服务, 可能会由于未安装依赖包遇到如下错误raise_not_found!': Could not find gem 'xxx' in locally installed gems. (Bundler::GemNotFound) ,只需要使用 gem对缺失的依赖包进行安装即可。
在这里插入图片描述
bundler版本与锁定不一致,导致的报错:
其他类似的版本问题解决法方法一致。

  1. 修改Gemfile.lock中的版本为你电脑已安装的版本
  2. 重新执行bundle install
  3. 再尝试启动服务:jekyll s
    在这里插入图片描述
5.3.3 创建一篇文章

创建文章很简单。你需要做的就是在 _post 目录下使用正确的格式和扩展名创建一个新文件,这样就完成了。

5.3.3.1 文章文件名

Jekyll 要求一篇文章的文件名遵循下面的格式: 年-月-日-标题.MARKUP

在这里,年是 4 位数字,月和日都是 2 位数字。MARKUP扩展名代表了这篇文章是用什么格式写的。下面是一些合法的文件名的例子:

2011-12-31-new-years-eve-is-awesome.md
2012-09-12-how-to-write-a-blog.textile
5.3.3.2 文章文件内容

所有博客文章顶部必须有一段 YAML 头信息(YAML front- matter)。
在它下面,就可以选择你喜欢的格式来写文章。
Jekyll 支持 Markdown,以及其他众多格式的扩展,其中就包括十分流行的 Textile。
这些格式都有自己的方式来标记文章中不同类型的内容,所以你首先需要熟悉这些格式并选择一种最符合你需求的。
下面是参考

---
layout: post
title: "Welcome to Jekyll!"     # 文章标题
date:  2021-08-29 11:28:12 +0530
categories: jekyll update
---这部分是文章的具体内容,可以自定义编写。
5.3.3.3 示例

下面是我写的文章参考:

文件名:2023-12-25-API自动化测试框架.markdown


---
layout: post
title:  "使用 Jekyll 构建你的网站 -> 初入门"
date:   2023-12-25 13:54:58 +0800
categories: jekyll update
---## 一、Jekyll介绍
Jekyll 是一个开源的静态网站生成器,支持 Markdown 和 HTML 两种文件类型,其中 HTML 使用了 Liquid 模板语言。
你可以使用 Markdown 编写内容,使用 HTML/CSS 来构建和展示,Jekyll 会将其编译为静态的 HTML。
Jekyll 使用 Ruby 引擎将用 Markdown 编写的文章转换成 HTML。官网:
- https://jekyllrb.com/docs/
- https://jekyllcn.com/docs/home/

渲染后的效果如下所示:

  • 首页
    在这里插入图片描述

  • 文章详情
    在这里插入图片描述

5.3 推送文章到仓库

上面我们已经编辑好博客的内容,我们就可以将本地编辑好的内容推送到仓库,使用GitLink平台实现一键部署。

git推送命令参考:

git add .
git commit -m "commit信息"
git push

5.4 一键部署启动

进入Jekyll项目对应的仓库,找到“服务>个人建站” ,进入页面。
点击“去部署”按钮,重新部署。
部署成功后,就可以访问博客主页啦~
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/225138.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

同义词替换器降低论文重复率的最新技术解析

大家好,今天来聊聊同义词替换器降低论文重复率的最新技术解析,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧,可以借助此类工具: 标题:同义词替换器降低论文重复率的最…

跟着LearnOpenGL学习11--材质

文章目录 一、材质二、设置材质三、光的属性四、不同的光源颜色 一、材质 在现实世界里,每个物体会对光产生不同的反应。 比如,钢制物体看起来通常会比陶土花瓶更闪闪发光,一个木头箱子也不会与一个钢制箱子反射同样程度的光。 有些物体反…

使用Clion配置Qt开发过程中的很多坑

如果你想使用Clion开发Qt软件 如果你想在Windows上使用Clion开发Qt 如果你还想使用MSVC编译器开发Qt 但是却遇到了各种各种编译报错,那么恭喜你这些坑都有人帮你踩过了 报错一 CMake Error at CMakeLists.txt:25 (find_package):Could not find a package config…

冒泡排序(C语言)

void BubbleSort(int arr[], int len) {int i, j, temp;for (i 0; i < len; i){for (j len - 1; j > i; j--){if (arr[j] > arr[j 1]){temp arr[j];arr[j] arr[j 1];arr[j 1] temp;}}} } 优化&#xff1a; 设置标志位flag&#xff0c;如果发生了交换flag设置…

西南科技大学计算机网络实验二 (IP协议分析与以太网协议分析)

一、实验目的 通过分析由跟踪执行traceroute程序发送和接收捕获得到的IP 数据报,深入研究在IP 数据报中的各种字段,理解IP协议。基于ARP命令和Ethereal进行以太网帧捕获与分析,理解和熟悉ARP协议原理以及以太网帧格式。 二、实验环境 与因特网连接的计算机网络系统;主机操…

ES-mapping

类似数据库中的表结构定义&#xff0c;主要作用如下 定义Index下的字段名( Field Name) 定义字段的类型&#xff0c;比如数值型、字符串型、布尔型等定义倒排索引相关的配置&#xff0c;比如是否索引、记录 position 等 index_options 用于控制倒排索记录的内容&#xff0c;有如…

敏捷开发 - 知识普及

敏捷开发- Scrum 前言 知乎有一篇文章描写Scrum,我觉得比较好:https://zhuanlan.zhihu.com/p/631459977 简单科普下PM和PMO 原文来源:https://zhuanlan.zhihu.com/p/546820914 PM - 项目经理(Project Manager) ​ 需要具备以下能力 ​ 1.号召力 2.影响力 3.交流能力 4.应…

MySQL 导入数据报错MySQL server has gone away

SQL语句太大了 稍微难以测试和验证&#xff0c;但是MySQL使用最大数据包站站点进行服务器和客户端之间的通信。如果语句包含大字段&#xff0c;则可能由于SQL语句的大小&#xff0c;而被中止。 我们可以通过语句查看一下允许的最大包大小&#xff1a;show global variables lik…

k8s---kubernets

目录 一、Kurbernetes 1.2、K8S的特性&#xff1a; 1.3、docker和K8S&#xff1a; 1.4、K8S的作用&#xff1a; 1.5、K8S的特性&#xff1a; 二、K8S集群架构与组件&#xff1a; 三、K8S的核心组件&#xff1a; 一、master组件&#xff1a; 1、kube-apiserver&#xff1…

蓝桥杯的学习规划

c语言基础&#xff1a; Python语言基础 学习路径&#xff1a;画框的要着重学习

音频修复增强软件iZotope RX 10 mac特点介绍

iZotope RX 10 mac是一款音频修复和增强软件。 iZotope RX 10 mac软件特点 声音修复&#xff1a;iZotope RX 10可以去除不良噪音、杂音、吱吱声等&#xff0c;使音频变得更加清晰干净。 音频增强&#xff1a;iZotope RX 10支持对音频进行音量调节、均衡器、压缩器、限制器等处…

网络安全保障领域

计算机与信息系统安全---最主要领域 云计算安全 IaaS、PasS、SaaS(裸机&#xff0c;装好软件的电脑&#xff0c;装好应用的电脑) 存在风险&#xff1a;开源工具、优先访问权、管理权限、数据处、数据隔离、数据恢复、调查支持、长期发展风险 云计算安全关键技术&#xff1a;可信…

【C++逆向 - 1】C++函数新特性

内联函数 本质&#xff1a;用函数代码替换函数调用 使用方式&#xff1a;在函数声明和函数定义前加上 inline 关键字 笔者感觉跟C语言中的宏定义差不多&#xff0c;但是内联函数更加“智能”&#xff08;应该是编译器更加智能&#xff09;。即使程序员将函数作为内联函数&am…

华为数通方向HCIP-DataCom H12-831题库(多选题:221-240)

第221题 在割接项目的项目调研阶段需要对现网硬件环境进行观察,主要包括以下哪些内容? A、设备的位置 B、ODF位置 C、接口标识 D、光纤接口对应关系 答案:ABCD 解析: 在项目割接前提的项目调研阶段,需要记录下尽可能详细的信息。 第222题 以下哪些项能被正则表达式10*成…

Python 新规范 pyproject.toml 完全解析

多谢&#xff1a;thank Python从PEP 518开始引入的使用pyproject.toml管理项目元数据的方案。 该规范目前已经在很多开源项目中得以支持&#xff1a; Django 这个 Python 生态的顶级项目在 5 个月之前开始使用 pyproject.tomlPytest 这个 Python 生态测试框架的领头羊在 4 个…

智慧幼儿园视频监管方案及实施建议:AI智能技术构建新引擎

一、背景需求 随着科技的快速发展&#xff0c;智慧化监管已成为幼儿园管理的重要趋势。智慧幼儿园监管解决方案通过引入先进的技术手段&#xff0c;提高幼儿园的管理效率&#xff0c;保障幼儿的安全与健康&#xff0c;为家长提供更便捷的服务。为了保障幼儿的安全&#xff0c;…

【通讯录案例-搭建登录界面 Objective-C语言】

一、来看我们这个通讯录案例 1.接下来啊,我们来做这个通讯录案例, 然后呢,做这么一个应用程序啊, 我们第一步呢,先把界面儿搭了, 然后呢,搭之前,简单的来分析一下, 首先呢,这是,中间儿的这一块儿, 1)有个“账户”、“密码”,这一块儿, 这是一个什么控制器,…

OpenCV与YOLO学习与研究指南

引言 OpenCV是一个开源的计算机视觉和机器学习软件库&#xff0c;而YOLO&#xff08;You Only Look Once&#xff09;是一个流行的实时对象检测系统。对于大学生和初学者而言&#xff0c;掌握这两项技术将大大提升他们在图像处理和机器视觉领域的能力。 基础知识储备 在深入…

路由器介绍和命令操作

先来回顾一下上次的内容&#xff1a; ip地址就是由32位二进制数组 二进位数就是只有数字0和1组成 网络位&#xff1a;类似于区号&#xff0c;表示区域作用 主机位&#xff1a;类似于号码&#xff0c;表示区域中编号 网络名称&#xff1a;网络位不变&#xff0c;主机位全为0 …

OpenGL :LearnOpenGL笔记

glfw https://github.com/JoeyDeVries/LearnOpenGL/blob/master/src/1.getting_started/1.1.hello_window/hello_window.cpp #include <glad/glad.h>// 注: GLAD的include文件包含所需的OpenGL头文件(如GL/GL.h) &#xff0c;因此确保在其他需要OpenGL的头文件 (如GLFW…