利用jekyll架设个人博客

时间:2022-09-25 17:30:17

jekyll简介

jekyll是一种可以将Markdown或Textile格式文本文件转换成静态网页的工具。利用jekyll编写发布博客的基本过程为:

  • 使用任何一款编辑器编写符合Markdown或Textile格式的文本文件;
  • 使用jekyll文本文件编译为静态网页文件,包括html、css文件等;
  • 将静态网页发布到你的服务器。

这种方法的优势在于你不再需要一个复杂的博客管理系统,也不再需要安装数据库,对于小型博客和低配服务器来讲再适合不过了。另外,Github支持你用jekyll编写的博客,可以直接发布到Github个人主页上。

安装软件

你需要在本地计算机上安装jekyll,安装过程非常简单,首先安装ruby和bundler,然后安装jekyll即可。

  1. 安装ruby

    不同Linux发行版安装方法不同,对于ArchLinux,请使用root用户运行:

    pacman -S ruby

    对于ubuntu和centos用户,请分别使用apt-get和yum命令。如果感兴趣,可以使用rvm安装ruby。

  2. 安装bundler

    使用普通用户在命令行中运行以下命令:

    gem install bundler
  3. 安装jekyll

    使用普通用户在终端中运行:

    gem install jekyll

新建jekyll工程

现在,jekyll工具已经安装到计算机中,接下来将新建一个jekyll工程:

jekyll new blog

上述命令将在当前目录下新建一个目录blog,里面是jekyll帮助您建立的模板文件,可以先试着运行一下看看:

cd blog
jekyll serve

jekyll将提示您可以在浏览器中输入localhost:4000来访问您的博客,默认的界面如下:

利用jekyll架设个人博客

现在回头来看一看blog目录下究竟生成了什么文件。下图是blog目录下生成的文件:

利用jekyll架设个人博客

  • about.md就是你的关于页面。
  • _config.yml用来配置博客的名称,email等信息。
  • feed.xml是RSS订阅相关的文件。
  • _includes里面有一些可利用的html页面元素,如footer和header。
  • _layouts定义博客页面要使用的模板,你可以在这里修改博客的布局和风格。
  • _posts里面就是你撰写的博客文件,文件名以日期开头,例如2014-08-08-using-jekyll.md。
  • _site目录下是你运行jekyll build命令后自动编译成的静态网页文件,把这个目录上传到你的服务器就可以提供网页服务了。

开始写博客

在_posts目录下,新建一个如下形式的文件:2008-08-09-my-first-blog.md。文件前半部分就是博客撰写的时间,这个时间将在博客中显示;后半部分可以自行命名。然后使用你最熟悉的文本编辑器打开它,开始编写内容吧。以后的大部分时间,你都会使用文本编辑器编写博客。下图是Emacs编写博客时的效果。

利用jekyll架设个人博客

为了在本地快速看到目前正在编写的博客,可以在jekyll serve命令后面加上watch选项:

jekyll serve --watch

这样每次你保存文件后,jekyll都后重新编译文件,更新_site目录。

md文件使用Markdown格式,这种格式在开源软件中已经非常流行,例如你会经常在开源代码的根目录下看到README.md。md格式既便于阅读,又可以方便地转换为html格式用于显示。例如在git或bitbucket上,md格式的文件将直接被渲染为html格式。

发布!

假设你已经编写好_posts目录下的博客,接下来就可以试着发布博客了。首先,在服务器上新建一个www用户:

useradd www

然后,使用scp命令将_site目录拷贝到服务中:

# 将下面的IP地址替换为你的服务器IP地址
scp -r _site root@xxx.xxx.xxx.xxx:/home/www/

接着来安装配置nginx服务。阿里云服务器采用centos操作系统,所以使用yum来安装一下nginx服务:

#需要sudo或使用root用户
yum install nginx

打开/etc/nginx/nginx.conf文件,添加以下内容:

user www;
worker_processes 1; events {
worker_connections 1024;
} http {
include mime.types;
default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on;
#tcp_nopush on; #keepalive_timeout 0;
keepalive_timeout 65; #gzip on; server {
listen 80;
server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / {
root /home/www/_site;
index index.html index.htm;
} #error_page 404 /404.html; # redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}

保存后退出。启动服务:

service nginx start

好了,博客成功上线!

结束

如果要长期使用博客,最好申请一个域名,可以使用从万网申请然后让阿里云帮忙备案,这个过程要相对复杂。没有备案的域名很快会被屏蔽掉的~

文章部分参考:http://tech.flower-on.com/web/2014/08/08/using-jekyll/

利用jekyll架设个人博客的更多相关文章

  1. 亚马逊云架设WordPress博客

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 这篇文章介绍如何在亚马逊云架设WordPress博客.最强的云,加上最流行的建站工 ...

  2. Jekyll搭建个人博客-拓展版

    关于Jekyll Jekyll 是一个简单的博客形态的静态站点生产机器.它有一个模版目录,其中包含原始文本格式的文档,通过 Markdown (或者 Textile) 以及 Liquid 转化成一个完 ...

  3. 利用Hexo搭建个人博客-博客发布篇

    通过 <利用Hexo搭建个人博客-环境搭建篇> 以及 <利用Hexo搭建个人博客-博客初始化篇>,我们了解到了利用Hexo搭建个人博客需要的环境以及配置,下面这篇文章将会介绍如 ...

  4. 利用Hexo搭建个人博客-博客初始化篇

    上一篇博文 <利用Hexo搭建个人博客-环境搭建篇> 中,我们讲解了利用Hexo搭建个人博客应该要配置哪些环境.相信大家已经迫不及待的想要知道接下来应该要怎么把自己的博客搭起来了,下面,让 ...

  5. 利用Hexo搭建个人博客-环境搭建篇

    我是一个爱写博客进行总结分享的人.然而,有着热爱写博客并且深知写博客好处的我,却没有好好的把这个习惯坚持下来.如今毕业已经一年多了吧,每一次与师弟师妹们聊天,我总会意味深长的建议他们,一定要定期梳理总 ...

  6. MWeb 1&period;4 新功能介绍一:引入文件夹到 MWeb 中管理,支持 Octpress、Jekyll 等静态博客拖拽插入图片和实时预览

    之前在 MWeb 中打开非文档库中的 Markdown 文档,如果文档中有引用到本机图片,是没办法在 MWeb 中显示出来和预览的.这是因为 Apple 规定在 Mac App Store(MAS) ...

  7. 使用 github &plus; jekyll 搭建个人博客

    github + jekyll 本地写markdown,然后push到github,就成了博客 其实我一早就知道这两者可以搭建个人博客,因为本人有个很好的习惯——每天都会去看看一些热门文章,了解行业最 ...

  8. 【环境搭建】使用Jekyll搭建Github博客

    前言 昨天花了差不多一天的时间,使用Jekyll搭建起了一套Github博客,感觉不错,也特将搭建过程记录下来,方便有需要的朋友自行搭建. 搭建步骤 本环境是在Linux环境下搭建完成的 安装前建议使 ...

  9. 使用GitHub Pages&plus;Jekyll搭建个人博客

    GitHub Pages 免费无限容量的站点数据托管工具(国内访问速度较慢),内置Jekyll服务,能将特定名称的代码仓库动态编译为静态网页 Jekyll 基于Ruby的静态网页生成系统,采用模板将M ...

随机推荐

  1. 使用QQ第三方登录时&comma;手机应用和网站应用对同一个QQ号&comma;获取到的openid不一样

    使用QQ第三方登录时,手机应用和网站应用对同一个QQ号,获取到的openid不一样openid生成是根据应用的appid和QQ号的一些信息加密生成,对于一个appid和QQ号来说,openid是唯一的 ...

  2. windows7共享硬盘 虚拟机Mac访问windows7硬盘

    选择本地磁盘(G)-->右键-->共享-->高级共享点击高级共享 确定   完成共享 虚拟机Mac 访问共享磁盘 2.苹果MAC系统,点击桌面.打开顶部菜单 “前往”.   3.菜单 ...

  3. 3&period; sort命令

    转自:http://www.cnblogs.com/51linux/archive/2012/05/23/2515299.html sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分 ...

  4. TIANKENG’s restaurant--hdu4883

    TIANKENG’s restaurant Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/O ...

  5. HDU 2815 Mod Tree 离散对数 扩张Baby Step Giant Step算法

    联系:http://acm.hdu.edu.cn/showproblem.php?pid=2815 意甲冠军: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQ ...

  6. Flutter

    2015年, Google 内部开始测试另一种高性能的编程方式,那就 Google 的 Sky 项目.Sky 项目使用网页开发语言Dart开发原生Android 应用,强调应用的运行速度和与 Web ...

  7. 总结Unity 初学者容易犯的编译与运行时错误

    总结Unity 初学者容易犯的编译与运行时错误 1: Untiy 出现编译错误: NewLine In Constant  解决方法:    方法一:如果报错脚本比较少量的话,可能用记事本打开报错的脚 ...

  8. EventBus 3&period;0使用详解

    01 前言 当我们进行项目开发的时候,往往是需要应用程序的各组件.组件与后台线程间进行通信,比如在子线程中进行请求数据,当数据请求完毕后通过Handler或者是广播通知UI,而两个Fragment之家 ...

  9. BZOJ 5475&colon; &lbrack;WC 2019&rsqb; 数树

    WC2019 数树 解决了一个心头大患 考试的时候本人太智障了QwQ 本文的参考链接,膜了一发rqy的题解 题目链接 Subtask 0 好像可以直接做... 推一推就能发现,是$y^k$,其中$k$ ...

  10. 【黑客免杀攻防】读书笔记2 - 免杀与特征码、其他免杀技术、PE进阶介绍

    第3章 免杀与特征码 这一章主要讲了一些操作过程.介绍了MyCCL脚本木马免杀的操作,对于定位特征码在FreeBuf也曾发表过类似工具. VirTest5.0特征码定位器 http://www.fre ...