使用jekyll写博客 基本知识

2024-02-21 19:32

本文主要是介绍使用jekyll写博客 基本知识,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

撰写博客

Jeklly 的一个最好的特点是『关注 blog 本身』。这是指什么呢?简单的说就是写博客的过程被铸造进了 Jekyll 的功能中。你只需简单的管理你电脑中的一个文件夹下的文本文件就可以写文章并方便的在线上发布。与繁琐的配置和维护数据库和基于网站的内容管理系统 (CMS) 相比,这是一个非常受欢迎的改变。

文章文件夹

目录结构介绍中说明过,所有的文章都在_posts文件夹中。这些文件可以用 Markdown 编写,也可以用 Textile 格式编写。只要文件中有YAML 头信息,它们就会从源格式转化成 HTML 页面,从而成为你的静态网站的一部分。

创建文章的文件

发表一篇新文章,你所需要做的就是在_posts文件夹中创建一个新的文件。文件名的命名非常重要。Jekyll 要求一篇文章的文件名遵循下面的格式:

年-月-日-标题.MARKUP

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

2011-12-31-new-years-eve-is-awesome.md
2012-09-12-how-to-write-a-blog.textile

内容格式

所有博客文章顶部必须有一段YAML头信息(YAML front- matter)。在它下面,就可以选择你喜欢的格式来写文章。Jekyll支持2种流行的标记语言格式:Markdown 和 Textile。这些格式都有自己的方式来标记文章中不同类型的内容,所以你首先需要熟悉这些格式并选择一种最符合你需求的。

引用图片和其它资源

很多时候,你需要在文章中引用图片、下载或其它数字资源。尽管 Markdown 和 Textile 在链接这些资源时的语法并不一样,但你只需要关心在站点的哪些地方保存这些文件。

由于 Jekyll 的灵活性,有很多方式可以解决这个问题。一种常用做法是在工程的根目录下创建一个文件夹,命名为assets 或者 downloads,将图片文件,下载文件或者其它的资源放到这个文件夹下。然后在任何一篇文章中,它们都可以用站点的根目录来进行引用。这和你站点的域名/二级域名和目录的设置相关,下面有一些例子(Markdown 格式)来演示怎样利用site.url变量来解决这个问题。

在文章中引用一个图片

… 从下面的截图可以看到:
![有帮助的截图]({{ site.url }}/assets/screenshot.jpg)

链接一个读者可下载的 PDF 文件:

… 你可以直接 [下载 PDF]({{ site.url }}/assets/mydoc.pdf).
提示™:链接只使用站点的根 URL

如果你确信你的站点只在域名的根 URL 下做展示,你可以不使用 {{ site.url }}变量。在这种情况下, 直接使用/path/file.jpg即可。

文章的目录

所有文章都在一个目录中是没有问题的,但是如果你不将文章列表列出来博客文章是不会被人看到。在另一个页面上创建文章的列表(或者使用模版)是很简单的。感谢 Liquid 模版语言和它的标记,下面是如何创建文章列表的简单例子:

<ul>{% for post in site.posts %}<li><a href="{{ post.url }}">{{ post.title }}</a></li>{% endfor %}
</ul>

当然,你可以完全控制怎样(在哪里)显示你的文章,如何管理你的站点。如果你想了解更多你需要读一下 Jekyll 的模版是怎样工作的这篇文章。

文章摘要

Jekyll 会自动取每篇文章从开头到第一次出现excerpt_separator的地方作为文章的摘要,并将此内容保存到变量post.excerpt中。拿上面生成文章列表的例子,你可能想在每个标题下给出文章内容的提示,你可以在每篇文章的第一段加上如下的代码:

<ul>{% for post in site.posts %}<li><a href="{{ post.url }}">{{ post.title }}</a><p>{{ post.excerpt }}</p></li>{% endfor %}
</ul>

如果你不喜欢自动生成摘要,你可以在文章的YAML中增加excerpt来覆盖它。完全禁止掉可以将excerpt_separator设置成"".

高亮代码片段

Jekyll 自带语法高亮功能,它是由 Pygments 来实现的。在文章中插入一段高亮代码非常容易,只需使用下面的 Liquid 标记:

{% highlight ruby %}
def show@widget = Widget(params[:id])respond_to do |format|format.html # show.html.erbformat.json { render json: @widget }end
end
{% endhighlight %}

将输出下面的效果:

def show@widget = Widget(params[:id])respond_to do |format|format.html # show.html.erbformat.json { render json: @widget }end
end
提示™:显示行数

你可以在代码片段中增加关键字linenos来显示行数。 这样完整的高亮开始标记将会是:{% highlight ruby linenos %}

有了这些基础知识就可以开始你的第一篇文章了。当你准备更深入的了解还可以做什么的时候,你可能会对如何定制文章的永久链接 或在文章和站点的其它位置中使用定制变量感兴趣。

 

使用草稿

草稿是没有日期的文章。它们是你还在创作中而暂时不想发表的文章。想要开始使用草稿,你需要在网站根目录下创建一个名为 _drafts 的文件夹(如在目录结构章节里描述的),并新建你的第一份草稿:

|-- _drafts/
|   |-- a-draft-post.md

 

为了预览你拥有草稿的网站,运行 jekyll serve 或者带有 --drafts 配置选项的 jekyll build。此两种方法皆会将 Time.now 的值赋予草稿文章,作为其发布日期,所以你将看到草稿文章作为最新文章被生成。

这篇关于使用jekyll写博客 基本知识的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

使用Python实现Windows系统垃圾清理

《使用Python实现Windows系统垃圾清理》Windows自带的磁盘清理工具功能有限,无法深度清理各类垃圾文件,所以本文为大家介绍了如何使用Python+PyQt5开发一个Windows系统垃圾... 目录一、开发背景与工具概述1.1 为什么需要专业清理工具1.2 工具设计理念二、工具核心功能解析2.

Linux系统之stress-ng测压工具的使用

《Linux系统之stress-ng测压工具的使用》:本文主要介绍Linux系统之stress-ng测压工具的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、理论1.stress工具简介与安装2.语法及参数3.具体安装二、实验1.运行8 cpu, 4 fo

Java使用MethodHandle来替代反射,提高性能问题

《Java使用MethodHandle来替代反射,提高性能问题》:本文主要介绍Java使用MethodHandle来替代反射,提高性能问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录一、认识MethodHandle1、简介2、使用方式3、与反射的区别二、示例1、基本使用2、(重要)

使用C#删除Excel表格中的重复行数据的代码详解

《使用C#删除Excel表格中的重复行数据的代码详解》重复行是指在Excel表格中完全相同的多行数据,删除这些重复行至关重要,因为它们不仅会干扰数据分析,还可能导致错误的决策和结论,所以本文给大家介绍... 目录简介使用工具C# 删除Excel工作表中的重复行语法工作原理实现代码C# 删除指定Excel单元

MySQL 事务的概念及ACID属性和使用详解

《MySQL事务的概念及ACID属性和使用详解》MySQL通过多线程实现存储工作,因此在并发访问场景中,事务确保了数据操作的一致性和可靠性,下面通过本文给大家介绍MySQL事务的概念及ACID属性和... 目录一、什么是事务二、事务的属性及使用2.1 事务的 ACID 属性2.2 为什么存在事务2.3 事务

使用Python实现网页表格转换为markdown

《使用Python实现网页表格转换为markdown》在日常工作中,我们经常需要从网页上复制表格数据,并将其转换成Markdown格式,本文将使用Python编写一个网页表格转Markdown工具,需... 在日常工作中,我们经常需要从网页上复制表格数据,并将其转换成Markdown格式,以便在文档、邮件或

Python使用pynput模拟实现键盘自动输入工具

《Python使用pynput模拟实现键盘自动输入工具》在日常办公和软件开发中,我们经常需要处理大量重复的文本输入工作,所以本文就来和大家介绍一款使用Python的PyQt5库结合pynput键盘控制... 目录概述:当自动化遇上可视化功能全景图核心功能矩阵技术栈深度效果展示使用教程四步操作指南核心代码解析

使用Python获取JS加载的数据的多种实现方法

《使用Python获取JS加载的数据的多种实现方法》在当今的互联网时代,网页数据的动态加载已经成为一种常见的技术手段,许多现代网站通过JavaScript(JS)动态加载内容,这使得传统的静态网页爬取... 目录引言一、动态 网页与js加载数据的原理二、python爬取JS加载数据的方法(一)分析网络请求1

SpringCloud使用Nacos 配置中心实现配置自动刷新功能使用

《SpringCloud使用Nacos配置中心实现配置自动刷新功能使用》SpringCloud项目中使用Nacos作为配置中心可以方便开发及运维人员随时查看配置信息,及配置共享,并且Nacos支持配... 目录前言一、Nacos中集中配置方式?二、使用步骤1.使用$Value 注解2.使用@Configur

Mac备忘录怎么导出/备份和云同步? Mac备忘录使用技巧

《Mac备忘录怎么导出/备份和云同步?Mac备忘录使用技巧》备忘录作为iOS里简单而又不可或缺的一个系统应用,上手容易,可以满足我们日常生活中各种记录的需求,今天我们就来看看Mac备忘录的导出、... 「备忘录」是 MAC 上的一款常用应用,它可以帮助我们捕捉灵感、记录待办事项或保存重要信息。为了便于在不同