jekyll网站上传服务器,jekyll 高效搭建个人博客之完整流程

2023-11-07

a838ba36fd08?utm_content

jekyll.png

原创精选来自我的博客文章

目录

说在前面的话

作为一个和电脑、代码打交道的我,一直都想拥有自己的博客,一切都显得那么高(zhuang)大(bi)上(yong),在下定决心之后就在网上到处查找资料,最终发现一般用的就三种:WordPress、Hexo、Jekyll,最终权衡利弊选定了jekyll来实现博客搭建。

这个过程前前后后遇到很多坑,虽然有相关文档,毕竟总不够全面,在自己这里也有时候会出现一些他们没碰到的问题,总体比较艰辛,所以也要记录下自己搭建的过程,同时一直更新遇到的新问题,在使用过程中出现问题,可直接跳到末尾的Q&A进行查看是否有类似问题。

jekyll介绍

jekyll是一个简单的免费的Blog生成工具,一个生成静态网页的工具,不需要数据库支持,只用 Markdown (或 Textile)、Liquid、HTML & CSS 就可以构建可部署的静态网站,最关键的是jekyll可以免费部署在Github上,而且可以绑定自己的域名。

至于更多详细信息可以直接查看相关文档:jekyll中文文档、jekyll英文文档

jekyll安装

1、事先准备

安装 Jekyll 相当简单,但是你得先做好一些准备工作 开始前你需要确保你在系统里已经有如下配置

Git环境(部署到远端以及代码管理)

Ruby环境(jekyll基于Ruby开发)

Linux, Unix, or Mac OS X(官方文档并不建议在Windows平台安装)

Mac用户需要安装Xcode和Command-Line Tools,下载方式Preferences → Downloads → Components

2、RubyGems 安装 Jekyll并启动

安装 jekyll

$ gem install jekyll

创建博客

$ jekyll new myBlog

进入博客目录

$ cd myBlog

启动本地服务

$ jekyll serve

在浏览器里输入: http://127.0.0.1:4000,就可以看到你的博客效果了。

初版博客

1、目录结构

基本jekyll网站启动后,本地目录结构如下,至于目录结构意义,可以参考官方文档目录结构

.

├── _config.yml

├── _includes

| ├── footer.html

| └── header.html

├── _layouts

| ├── default.html

| ├── post.html

| └── page.html

├── _posts

| └── 2016-01-01-welcome-to-jekyll.markdown

├── _sass

| ├── _base.scss

| ├── _layout.scss

| └── _syntax-highlighting.scss

├── about.md

├── css

| └── main.scss

├── feed.xml

└── index.html

看能力去自行修改对应文件,重新 jekyll serve 就可以看到效果,有些修改并不需要重新运行这个命令,具体的可尝试下就知道。

2、编写博客文章

这里所有的博客文章都是放在 _post 目录下面

文章命名格式:yyyy-mm-dd-title.md,后缀可以是.md 或者 .markdown,如:2016-01-02-firstBlog.md

文章内容格式如下,其中每篇文章头部都是固定的

---

layout: post

title: "firstBlog"

date: 2016-01-02

categories: blog

---

正文...

title:文章内部标题;这里的标题和.md文章命名有一定区别,这里的标题是查看文章的时候显示在顶部,而.md文章名是显示在网址中,也就是该文章的URL

date:日期

categories:标签;目前只能有一个标签

如果对markdown不熟悉,可参考另一篇文章 markdown基本语法学习

注意:模板是支持markdown语法,但不是支持全部语法,所以这个方面是有待改进。

3、部署到远端

这里是部署到GitHub Page,除了这个也可以部署到 Gitlab、Coding等,主要就是当做一个免费的服务器使用。

github 上创建一个仓库,命名为 username.github.io,例如我的仓库就是 honeycao.github.io,这个是一个命名规范。

本地创建好的博客用git管理,然后推送到GitHub上(远程仓库中不需要README.md文件,本地需要新建一个README.md文件用于推送到远端)

$ cd myBlog

$ git init

$ git add README.md

$ git commit -m "first commit"

$ git remote add origin git@github.com:honeycao/test.git

$ git push -u origin master

检测是否同步成功,成功之后再浏览器中输入 username.github.io 就可以访问该博客

博客模板

毕竟不是所有人都会css、js和html,所以有一个模板就显得很关键了,jekyll官方也提供了 jekyll主题,基于模板只需简单修改就可以使用了。

如果对于我博客模板有兴趣的,可以到我的 GitHub博客 进行查看,或者下载下来运行看看,终端进入目录下,运行 jekyll serve,然后在浏览器里输入: http://127.0.0.1:4000,就可以看到我的博客效果了。

注意:由于我的博客使用了自定义的域名,所以第一次下载使用,需要修改域名,具体做法: 到目录下打开CNAME文件,清空我的域名信息即可,如果你有自己的域名,也可以将其修改为你的域名。

如果想在我的博客基础上修改成你的博客,那么需要修改下面几个地方

把 _posts/ 目录下的文章都去掉。

把 images/ 目录下图片替换,把 images/posts/目录下 博客相关图片去掉

修改 _config.yml 文件里面的内容为你自己的。

拓展工具

在我自己的博客中,除了模板自有功能之外,也添加了许多拓展的工具,如:评论、分享等,这里就介绍下我自己的经验,这些拓展工具并不统一,只是作为一个参考而已,仁者见仁智者见智,另外小伙伴们如果有更好的拓展工具也可以介绍给我,不胜感激。。。

1、域名

如果没有自己的域名,那么博客网址就是 username.github.io,看起来总不是那么好,所以有兴趣就可以购买一个自己的域名玩玩,至于购买哪样的那看你自己的经济了;

购买途径网上也有很多,这里也不多作介绍,主要说下域名解析的问题,一般购买域名的地方都可以免费解析,比如我是在 百度云 买的,同时可以免费解析,如果没有地方解析,那么介绍一个可以免费解析的地方——DNSPOD,不管在哪解析,解析步骤都是一样的,我自己在解析的时候就碰到一个问题,耽搁好久才解决,所以下面就贴出正确解析的方法

a838ba36fd08?utm_content

域名解析

主要注意记录值填写自己博客仓库名就行

2、数据统计

百度统计:统计网站访问详情,不过由于才疏学浅并不能导出统计数据,所以只是用来作为一个流量页面展示

不蒜子:和百度统计相辅相成,这个只能用于获取统计数据,而并没有展示页面

3、评论

由于多说6月初就停用了,所以也不考虑它

畅言:一开始想的是这个,但是由于自己的域名并没有备案,所以这个没法用

网易云跟帖:这个是目前自己用的,效果也很好,主要是并不需要备案。

4、分享

百度分享:是目前所用的,目前自己用尚存在一个问题并没有解决:安装并成功分享之后,百度分享后台并没有获取到数据。。。

5、404公益页面

一般的404页面没什么特色,偶然看到别人网站上404页面显示的是腾讯寻找丢失儿童的公益广告,感觉这个挺不错的,就借鉴过来用了;

至于用法就是把下面代码复制到博客目录下 404.html 文件中。可自行修改主页信息和链接。

Q&A(持续更新)

错误是无法避免,我们能做的就是正视它。

使用过程中遇到任何问题,可以联系我,或者在下面留言,我会尽力去解决,并在下面记录,或者你遇到了问题你自己已经解决也可以告诉我,目的就是为了让更多的人少走弯路。

1、gem install jekyll 命令出错

$ sudo gem install jekyll

ERROR: While executing gem ... (OpenSSL::SSL::SSLError)

hostname "upyun.gems.ruby-china.org" does not match the server certificate

原因:可能是证书错误或者需要更新Ruby环境(ruby版本必须是2.2以上)

解决证书错误

$ sudo curl -O http://curl.haxx.se/ca/cacert.pem

$ sudo mv cacert.pem cert.pem

更新Ruby环境

0.安装homebrew,已经有了就可以跳过这一步

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

1.安装rvm$ curl -L get.rvm.io | bash -s stable

2.装载rvm$ source ~/.rvm/scripts/rvm

3.安装2.3.0版本ruby$ rvm install 2.3.0

4.将2.3.0设为默认$ rvm use 2.3.0 --default

2、本地推送到GitHub出错

$ git push -u origin master

error: src refspec master does not match any.

error: failed to push some refs to 'git@github.com:honeycao/username.github.io.git'

原因:创建远端仓库的时候,添加了一个README.md,本地推送到远端的时候没有README.md,那么需要先 pull 远端代码再进行推送

再或者远端也没有README.md,所以本地需要先新建一个,再进行推送

3、使用我的博客,如果你本机没有任何jekyll环境,可能会报错

/Users/xxxxxxxx/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- bundler (LoadError)

from /Users/xxxxxxxx/.rvm/rubies/ruby-2.2.2/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'

from /Users/xxxxxxxx/.rvm/gems/ruby-2.2.2/gems/jekyll-3.3.0/lib/jekyll/plugin_manager.rb:34:in `require_from_bundler'

from /Users/xxxxxxxx/.rvm/gems/ruby-2.2.2/gems/jekyll-3.3.0/exe/jekyll:9:in `'

from /Users/xxxxxxxx/.rvm/gems/ruby-2.2.2/bin/jekyll:23:in `load'

from /Users/xxxxxxxx/.rvm/gems/ruby-2.2.2/bin/jekyll:23:in `'

from /Users/xxxxxxxx/.rvm/gems/ruby-2.2.2/bin/ruby_executable_hooks:15:in `eval'

from /Users/xxxxxxxx/.rvm/gems/ruby-2.2.2/bin/ruby_executable_hooks:15:in `'

原因:可能就是没有安装 bundler,执行安装bundler 命名

$ gem install bundler

成功之后再次执行jekyll serve,有一个新的错误提示

Could not find proper version of jekyll (3.1.1) in any of the sources

Run `bundle install` to install missing gems.

根据提示进行操作即可

$ bundle install

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jekyll网站上传服务器,jekyll 高效搭建个人博客之完整流程 的相关文章

  • 入门文献复现——Murphy C K——Combining belief functions when evidence conflicts

    作者Murphy提出了综合平均法来组合多个BOE 大体的步骤如下 1 将给定的BOE进行平均 获得各个BPA的平均质量averageMass 2 利用Dempster的组合规则将 1 求得的平均质量进行组合 并且组合 n 1 次 n为BOE
  • Easyexcel 导出数据 一对多关系导出数据集合

    客户要求 要求导出的表格如图 实现这样表格 很多人会想到动态表头 easypoi可以直接实现 但是我用的是easyexcel 而easyexcel自身并没有提供自动合并的功能所以还是需要自己来合并 代码如下 首先我们来看下将嵌套数据平铺 不
  • 爬虫访问中,如何解决网站限制IP的问题?

    爬虫访问中 如何解决网站限制IP的问题 多年爬虫经验的人告诉你 国内ADSL是王道 多申请些线路 分布在多个不同的电信区局 能跨省跨市 IP覆盖面越多越好 九州动态IP是一款动态IP转换器客户端 该提供国内26个省共百万数据级动态ip切换
  • 数学建模模型_数学建模模型、算法、资料必备

    提到数学建模 首先想到的是国赛 美赛 其实不然 国内目前举办了很多类似的数学建模竞赛 比如五一数学建模竞赛 中青杯等比赛 这些竞赛都可以积极参与 积累实战经验 我曾参加过数次数学建模竞赛 作为过来人 针对往年数学建模竞赛的参赛经历 我提出两
  • Python Selenium 基础入门

    本内容主要介绍 Python Selenium 的基础使用方法 1 Python Selenium 简介和环境配置 1 1 Selenium 简介 Selenium 是一个 Web 的自动化测试工具 最初是为网站自动化测试而开发的 Sele
  • matlab如何读取一个文件夹下所有文件,Matlab获取一个文件夹下所有文件

    使用Matlab可以使用dir函数获取指定文件夹下的所有文件名 具体操作如下 首先进入指定的文件夹 例如 folder C Users example Documents 替换为你自己的文件夹路径 cd folder 进入指定文件夹中 然后
  • 10亿级数据量的系统性能优化设计,被惊艳到了!

    V xin ruyuanhadeng获得600 页原创精品文章汇总PDF 这篇文章 我们来聊一聊在十亿级的大数据量技术挑战下 世界上最优秀的大数据系统之一的Hadoop是如何将系统性能提升数十倍的 首先一起来画个图 回顾一下Hadoop H
  • 水面无人艇局部危险避障算法研究 参考文献

    水面无人艇局部危险避障算法研究 Local Risk Obstacle Avoidance Algorithm of USV 博主 的硕士毕业论文 参考文献 1 Manley J E Unmanned surface vehicles 15
  • Android关于手机和模拟器的区分

    在网上试了很多区分方法感觉都被模拟器破了 只能说一句模拟器太强大了 当我快要放弃的时候 突然想到个方法 方法分为获取手机的短信 获取手机的图片 获取手机的通讯录 一个正常的用户不可能没有这些信息 当然这些需要用户同意授权 所以当这些没用没授
  • 如何利用producer向Kafka发送信息(基于java客户端(Kafka-clients))

    继上一篇Kafka安装以及环境准备文章后 这一小节是讲解如何利用Java客户端kafka clients库进行消息的发送 工程结构 maven工程 maven依赖
  • C++递归算法之2的幂次方表示

    2的幂次方表示 任何一个正整数都可以用2的幂次方表示 例如 137 27 23 20 同时约定方次用括号来表示 即ab可表示为a b 由此可知 137可表示为 2 7 2 3 2 0 进一步 7 22 2 20 21用2表示 3 2 20
  • uni-form动态配置以及表单验证坑

    开发环境 uniapp小程序开发 问题 动态配置uni form表单时 uni easyinput写入默认值不显示 且表单验证 在输入数据后不自动刷新验证的问题 解决方案 源代码 修改后 增加了属性 modelValue formData
  • 单片机数码管显示0到9_单片机数码管显示0~9?

    任务描述 某企业承担了一个LED数码显示设计任务 要求单片机控制一个数码管显示0 1 2 3 4 5 6 7 8 9 每个状态停留1秒 请用单片机设计其控制系统并调试运行 仿真视频 知乎视频 www zhihu com 硬件电路原理图 元件
  • socket绑定指定网卡发包

    socket绑定指定网卡发包 SO BINDTODEVICE 网络编程中有时明明用eth0的地址来bind一个udp套接口 可是发出去的包却是从eht1走的 在网上找到这么一段话解释该问题 在多 IP 网卡主机上 UDP 包 协议会自动根据
  • java使用ssh连接linux服务器执行命令

    可以使用JSch框架来连接SSH服务器并执行命令 JSch是SSH2的一个纯Java实现 它允许你连接到一个sshd服务器 使用端口转发 X11转发 文件传输等等 你可以在pom xml文件中添加以下依赖来引入JSch框架
  • vue3 使用QrCode生成二维码

    官网地址 QrCode官网 第一步 安装 npm install save qrcode vue 第二步 引入并注册 import QrcodeVue from qrcode vue export default defineCompone
  • 层次分析法(AHP)详解+完整代码

    层次分析法 AHP 1 算法简述与原理分析 层次分析法是一种主观赋值评价方法也是一个多指标综合评价算法 常用于综合评价类模型 层次分析法将与决策有关的元素分解成目标 准则 方案等多个层次 并在此基础上进行定性和定量分析 是一种简单 实用的算
  • 移动端修改下拉框背景

    移动端设置 下拉框背景 找到下拉框控件 添加初始化后事件 setTimeout function var dateEditor document getElementById P ORGNAME firstChild dateEditor
  • CentOS 7中安装Nginx 并设置自启动

    在CentOS 7中安装Nginx 当使用以下命令安装Nginx时 发现无法安装成功 yum install y nginx 如果出现没有可用软件包 需要做一点处理 安装Nginx源 执行以下命令 rpm ivh http nginx or

随机推荐

  • git学习(一)设置、修改用户名密码

    设置用户名 密码 点击 Git 选项 然后点击右侧的全局 最后输入用户名和邮箱即可 如下图所示 注 这里的用户名和邮箱 将作为以后提交数据到Git服务端的作者信息 请一定要设置 默认情况下 Git 客户端每次与服务器交互 都需要输入密码 但
  • C++中void和void*指针的含义

    转载 http blog chinaunix net uid 22197900 id 359211 html 转载 http www jb51 net article 36570 htm 对以上两篇文章 我进行了重新地汇总整理 转载请注明
  • 电脑系统提示vcomp100.dll文件缺失该怎么办?提示vcomp100.dll丢失问题怎么解决?

    vcomp100 dll实际上是VC 运行库中的一个动态链接库文件 版本是VC 2010 VC2010 Microsoft Visual C 2010 Redistributable Package 安装 Visual C vc2010 库
  • SSH 免密码登录ssh-keygen&ssh-copy-id&sshpass命令详解

    SSH 免密码登录ssh keygen ssh copy id sshpass命令详解 ssh keygen命令详解 功能 生成ssh密钥验证所需要的私钥与公钥文件 参数 t 指定密钥类型 f 指定生成私钥文件名 P 提供 旧 密语 例子
  • 深度学习笔记 4 过拟合+欠拟合+解决方案

    目录 1 偏差与方差 2 产生原因 3 解决欠拟合 高偏差 的方法 3 1 模型复杂化 3 2 增加更多的特征 3 3 调整参数和超参数 3 4 增加训练数据 效果不明显 3 5 降低正则化约束 4 解决过拟合 高方差 的方法 4 1 增加
  • 实例:vmem_disk设备驱动的block_device_operations(3)

    vmem disk提供block device operations结构体中的getgeo 成员函数 如下给出了vmem disk设备驱动的block device operations结构体定义及其成员函数的实现 static int v
  • openwrt中br-lan,eth0,eth0.1,eth0.2 已经 实际网口wan,lan对应的配置

    openwrt的接口真是多 老高一下子都看晕了 不过仔细理一理 还是能够分辨的 首先盗openwrt wiki中的一张图 这张图对理解这些接口很重要 I 网络配置 有线网配置 openwrt的有线网络配置文件位于 etc config ne
  • mybatis5-分页插件.md

    一 jar包 逆向工程不支持分页 PageHelper 底层使用拦截器 二 配置拦截器
  • 小程序大屏适配指南

    小程序大屏适配指南 概述 为保证用户在PC端使用小程序也有流畅友好的体验 本指引将提供一系列大屏适配相关建议 以供参考 1 为什么要做适配 由于用户可在PC端使用小程序 且有可能在不同尺寸视图下进行切换 为了保证小程序在不同尺寸屏幕下的体验
  • ATF(TF-A) fvp_r 平台威胁模型-安全检测与评估

    安全之安全 security 博客目录导读 ATF TF A 威胁模型汇总 目录 一 简介 二 评估目标 1 只支持BL1 2 EL3是不支持的 并且是完全安全的 3 用MPU代替MMU 4 不支持AArch32 5 威胁评估 一 简介 本
  • 什么是模块化?模块化的好处?

    什么是模块化 模块化就是将js文件按照功能分离 根据需求引入不同的文件中 源于服务器端 模块化好处 1 解耦 对业务进行模块化拆分后 为了使各业务模块间解耦 因此各个都是独立的模块 它们之间是没有依赖关系 2 复用 每个模块负责的功能不同
  • Element UI更改下拉菜单el-dropdown-menu样式

    Element UI更改下拉菜单el dropdown menu样式 源代码
  • [网络安全自学篇] 八十一.WHUCTF之WEB类解题思路WP(文件上传漏洞、冰蝎蚁剑、反序列化phar)

    这是作者网络安全自学教程系列 主要是关于安全工具和实践操作的在线笔记 特分享出来与博友们学习 希望您喜欢 一起进步 前文分享了WHUCTF部分题目 包括代码审计 文件包含 过滤绕过 SQL注入 这篇文章将讲解Easy unserialize
  • 接口文档生成工具ApiPost挺好用

    作为一名程序员我深知一款好用的软件工具对工作效率的提升意味着什么 相信不少程序员还在依靠老外们做的软件处理手头工作 曾经我也是其中一员 不过现在我已经开始迷上了国产软件 国外的自然后他的优势 但国产软件工具也吸引了不少程序员开始尝试 虽然他
  • tensorflow2学习笔记

    目录 Tensorflow2 0特性 构架 TensorflowDemo AlexNet 过拟合 卷积后矩阵尺寸大小的计算 代码地址 VGG 感受野 网络结构 代码地址 GoogLeNet GoogLeNet网络结构 参数 Inceptio
  • [机器学习笔记-3]识别服饰图像的神经网络

    目录 1 安装tensorflow数据集 命令行输入 导入依赖 2 导入Fasion MINST数据集 3 处理数据 4 构建模型 5 训练模型 6 评估准确度 7 预测数据 8 图表显示数据 jupyter notebook中运行注意事项
  • 2020年最新的PHP面试题(附答案)

    684 PHP究竟是不是最好的语言 一直以来是程序员最大的 争议 但毋庸置疑的是 PHP绝对是最有前途和力量的变成语言 也是你入门最值得学习的语言 为什么这么说呢 不妨来了解一下 为什么学PHP 语言入门简单 容易掌握 程序建设性好 开发者
  • javaWeb的项目路径问题(对servlet路径和form表单请求路径的一些归纳)

    javaWeb项目的路径问题 这篇文章大神将路径问题讲的很透彻 我想说的是几点小细节 博主说的很清楚 如果这里的deployment下面的application context中不单单仅是一个 后面加的有其他字符的话 在form表单中我们填
  • 深聊测开领域之:Testcase中资源泄露

    1 引言 2 何为资源泄露 2 1 资源泄露定义 2 2 TestCase 中资源泄露 3 避免资源泄露 3 1 如何避免资源泄露 3 2 自动化执行顺序 1 引言 执行测试时离不开测试用例 测试用例辅佐执行测试 这就好比皇帝与宰相 需要的
  • jekyll网站上传服务器,jekyll 高效搭建个人博客之完整流程

    jekyll png 原创精选来自我的博客文章 目录 说在前面的话 作为一个和电脑 代码打交道的我 一直都想拥有自己的博客 一切都显得那么高 zhuang 大 bi 上 yong 在下定决心之后就在网上到处查找资料 最终发现一般用的就三种