本文是写给完全未用过 Ruby 乃至命令行工具者的。对于一般的开发者,Jekyll 官方文档的相关内容已然足够。

本文为钱院学辅技术小组公开课专门编写。

Jekyll 是由 Ruby 语言开发而成的网站搭建工具,其可完成由 Markdown 代码仓库(及若干自定义的 CSS/Sass 样式表、HTML 模板等)生成网站的流程。GitHub Pages 服务即内置了一套附有若干插件的 Jekyll 工具,用于直接在代码仓库的基础上生成网站。

安装 Ruby 环境

为了在本地调试由 Jekyll 生成的网站效果,有必要在自己的系统上安装 Jekyll,当然首先应该安装其所需要的 Ruby 环境。对于类 Unix 系统,这并不是一个问题,例如在 Ubuntu 中只需要以下几行命令:

sudo apt-get install ruby-full build-essential zlib1g-dev  # 安装 ruby 环境
gem install jekyll bundler # 安装 Jekyll 与 Bundler

但对于 Windows 用户(往往是此方面的小白)来说,以上两步都有问题。首先是安装 Ruby,Windows 上自然没法只靠一条命令就装好 Ruby 环境[1],为此有以下两种选择:

  1. 在这里下载 RubyInstaller,安装即可。
  2. 首先安装 Windows Subsystem for Linux(WSL,Windows 上的 Linux 子系统),然后在其中通过包管理器安装 Ruby。

前者的问题在于国内下载时的网速奇慢,后者的问题在于需要使用陌生的 Linux 系统。因此,两条途径皆有实际的困难。这里先提供两条对策:

  1. 点这里通过百度网盘下载 RubyInstaller,验证码:rzxe。当然,这个链接(是我上传的)也许很快就会因为版本更新而过时,所以你可能需要去寻找其他的途径下载 RubyInstaller。
  2. 点这里通过视频了解如何安装 WSL,之后的步骤就像前面所说的一样,运行两行命令即可。

Ruby 环境安装完成之后,可以打开任意一种命令行工具(包括命令提示符 cmd、powershell、Git Bash 等等),用 ruby -v 命令检查 Ruby 是否正确安装。正确安装的情况下,该命令会返回你所安装的 Ruby 版本信息。

用 Bundler 安装 Jekyll

Ruby 环境有了之后,再安装 Jekyll 就稍微简单一些了。这里可能有两种情况:一种是使用原生的 Jekyll,并且没有使用任何插件;一种是使用了带插件的 Jekyll——比如在 GitHub Pages 上生成的网站(使用 github-pages 这个 Gem),这时代码仓库中需要有一个名为 Gemfile 的文件来指定插件的使用情况。后者占绝大多数,因此这里说后一种情况。

基本的步骤包括:

  1. Ruby 采用名为 Gem 的包管理器来安装程序。用 gem install jekyll bundler 命令,分别安装 Jekyll[2] 与一个名为 Bundler 的程序——后者用于自动安装其他所需的程序。
  2. 在命令行中切换到你的网站仓库内(通常使用 cd 命令完成);
  3. 运行 bundle install 命令——这将使得 Bundler 程序为你的网站安装所需要的各种必要工具。
  4. 最后,运行 bundle exec jekyll serve 命令,这将使得 Jekyll 在 Bundler 的保障下开始运行,开启一个「本地服务器」预览网站。
  5. 不要关闭命令行程序。 打开浏览器,在浏览器中输入 127.0.0.1:4000 或 localhost:4000,你就能看到由你编写的代码所生成的网站。

一次正常的预览流程如下图所示,图中标注出了你所需要做的各项工作。这里使用的是 Git Bash,你当然可以使用命令提示符或 Powershell 来执行相关命令。(其中 1 -- 3 属于准备工作,对每个代码仓库只需要施行一次)

在安装、运行过程中,可能出现以下问题:

  • 命令运行速度极慢,长时间没有进展:通常情况下是因为网络。Gem 的软件源在国内比较难以访问,因此你可能需要像其他各类包管理器一样选择镜像。点这里查看由 Ruby China 提供的 Gem 镜像及使用方法。
  • 运行 Jekyll 时,一个名为 sass 的程序提示有 GBK 字符,不能正常编译 Sass 文件:这是因为你在安装 RubyInstaller 时没有勾选「默认使用 UTF-8 编码」的选项。请重新安装 RubyInstaller,或为出现问题的文件临时调整编码。或者,可以删除掉文件中的中文字符(它们一般都是注释,没用)。

  1. Windows 上其实也有 scoop、Chocolatey 等好用的包管理器,但它们并没有好用的国内源,无法解决下载难的问题。 ↩︎

  2. 其实 Jekyll 的安装不是必要的,因为用 Bundler 安装依赖时一般都会安装特定版本的 Jekyll(一般是旧版本)。 ↩︎

在 Windows 系统上安装 Jekyll的更多相关文章

  1. windows系统上安装与使用Android NDK r5 (转)

    windows系统上安装与使用Android NDK r5  很早就听说了android的NDK应用,只是一直没有时间去研究,今天花了点时间在windows平台搭建了NDK环境,并成功运行了第一个简单 ...

  2. Redis进阶实践之三如何在Windows系统上安装安装Redis

    一.Redis的简介        Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串).list(链表).set(集合 ...

  3. Redis进阶实践之三如何在Windows系统上安装安装Redis(转载)

    Redis进阶实践之三如何在Windows系统上安装安装Redis 一.Redis的简介 Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括 ...

  4. windows系统上安装与使用Android NDK r5

    windows系统上安装与使用Android NDK r5  很早就听说了android的NDK应用,只是一直没有时间去研究,今天花了点时间在windows平台搭建了NDK环境,并成功运行了第一个简单 ...

  5. 在Linux和Windows系统上安装Nginx服务器的教程

    在Linux和Windows系统上安装Nginx服务器的教程  1.在CentOS系统上安装Nginx 在 CentOS6 版本的 EPEL 源中,已经加入了 nginx 的 rpm 包,不过此 RP ...

  6. 手把手教你玩转 Gitea|在 Windows 系统上安装 Gitea

    Gitea 支持在 Windows 系统上安装和使用.Gitea 本身作为一个单体应用程序,即点即用,如需长期驻留作为后台服务并开机运行就要依靠 Windows 服务工具 sc.exe. 通过本文,你 ...

  7. 在windows系统上安装VMware Workstation虚拟机,然后在虚拟机VMware Workstation上安装linux系统,在linux系统安装xshell的服务端,在windows系统上安装xshell。用windows系统上的xshell连接到linux

    第一步:安装xshell: 去百度   xshell ,然后安装一下就可以了.就是普通的软件安装,在这里不做过多的接收. 第二步:安装虚拟机VMware Workstation 百度安装,不做过介绍 ...

  8. windows系统上安装与使用Android NDK r8d(一)

    什么是NDK? NDK 提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so 和 java 应用一起打包成apk.这些工具对开发者的帮助是巨大的. NDK 集成了交叉编译器,并 ...

  9. 在windows系统上安装caffe

    下载编译 0.确认电脑上有VS2013 0.确认显卡GPU Compute Capability>=3.0 1.安装CUDA7.5 2.下载cuDNN v4,添加到CUDA7.5 3.根据htt ...

随机推荐

  1. 「SP11470」TTM - To the moon

    题目描述 给定一段长度为 \(N\) 的序列 \(a\) 以及 \(M\) 次操作,操作有以下几种: C l r d :将区间 \([l,r]\) 中的数都加上 \(d\) Q l r :查询当前时间 ...

  2. .Net后台实现微信APP支付

    上一节分享了微信小程序支付的后台,这一节来分享一下微信APP支付的后台.微信APP支付和微信小程序差别不大,微信APP支付后台不需要微信登录凭证.后台下单时交易类型(trade_type)不再是&qu ...

  3. 字典NSDictionary和NSMutableDictionary的使用

    简介:字典是一种数据结构,字典里面的每一个元素,是一个key-value(键值对),key和value都是对象类型.同NSArray一样,里面的对象不用保持一致性. NSDictionary 1.字面 ...

  4. 「JLOI2015」战争调度

    题目 [内存限制:256 MiB][时间限制:1000 ms] [标准输入输出][题目类型:传统][评测方式:文本比较] 题目描述 脸哥最近来到了一个神奇的王国,王国里的公民每个公民有两个下属或者没有 ...

  5. postman提交文件

    说明 1.Headers中添加 Content-Type      multipart/form-data 2.Body 中选择form-data 并添加 需要传的参数名和值 最后新的一行选择file ...

  6. 病毒[POI2000](AC自动机+搜索)

    题目链接:病毒[POI2000] 我们假设已经有一个无限长的串满足要求,那如果我们拿它去匹配会发生什么? 它会一直在Trie树和fail树上转圈,一定经过根节点且不会经过病毒字符串结束的节点. 所以如 ...

  7. 如何发布composer包

    1. 首先要有github仓库(其中必须要有 composer.json 配置文件) 2.关联 github 项目 提交成功 3.设置钩子以便同步更新 https://packagist.org/ab ...

  8. day09-Python运维开发基础(函数收集参数、命名关键字参数与返回值、函数名的特殊使用及 全局/局部变量详解)

    1. 函数收集参数.命名关键字参数与返回值.函数名的特殊使用 # ### 默认形参 和 关键字实参 # 默认形参和 关键字实参 在写法上是一样 # 函数的定义处 """默 ...

  9. Linux centos7 sed工具介绍

    一.sed上 grep工具功能只能实现查找,不能把查找的内容替换. sed本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行查找.删除.替换字符或字符串.调换字符串位置.直接修改文件内容等 ...

  10. Linux CentOS7 VMware正则介绍、grep工具、egrep表达式

    一.正则介绍 正则是学习shell脚本的必学的内容,正则学的好坏直接影响到shell编程能力. 正则表达式:使用单个字符串来描述或匹配一系列符合某个句法规则的字符串.通常用来检索和替换那些符合某个模式 ...