本地jekyll突然不能正常工作,遇到的问题全可以在这个文章中找到答案。
2015-01-15 23:13
666 查看
搞不清怎么回事,前两天Jekyll本地环境还是好的,可是,今天打开,发现不正常了,报各种错误。
奇怪,难道jekyll,python,ruby 这几个软件自动更新了,很是不解。
然后就先根据错误找原因,没解决。最后把软件全部卸载,参考下文从新搭建,可以了。
地址:
原文
http://blog.segmentfault.com/siberiawolf/1190000000458506
虽然已经有了
BeiYuu 的搭建博客教程,一步一步跟着做,我还是遇到了很多的问题。整理如下:
使用标记语言,比如
Markdown语法
无需自己搭建服务器
根据Github的限制,对应的每个站都有空间限制
可以绑定自己的域名
Jekyll 模板系统,相当于静态页发布,适合博客,文档介绍等。
动态程序的部分相当局限,比如没有评论,不过还好我们有解决方案。
基于
Git教程 ,很多东西需要动手,不像Wordpress有强大的后台
Git有什么特点?简单来说就是:高端大气上档次。
msysgit是Windows版的Git,从 http://msysgit.github.io/ 下载,然后按默认选项安装即可。
安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
然后一路点击回车即可。如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
查看id_rsa.pub有两种方式:
1.windows7下看生成的文件
2.通过vim命令查看
然后将生成的key拷贝到Github Pages中。
如果提示如下内容表示添加SSH key 成功
Cmd Markdown 。在这个编辑器中,可以通过ctrl+alt+H方式查看Markdown语法。
Jekyll (发音/'dʒiːk əl/,"杰克尔")是一个静态站点生成器,它会根据网页源码生成静态文件。它提供了模板、变量、插件等功能,所以实际上可以用来编写整个网站。
整个思路到这里就很明显了。你先在本地编写符合Jekyll规范的网站源码,然后上传到github,由github生成并托管整个网站。
享受git的版本管理功能,不用担心文章遗失。
你只要用自己喜欢的编辑器写文章就可以了,其他事情一概不用操心,都由github处理。
它生成的是静态网页,添加动态功能必须使用外部服务,比如评论功能就只能用disqus。
它不适合大型网站,因为没有用到数据库,每运行一次都必须遍历全部的文本文件,网站越大,生成时间越长。
Github 上面才能查看修改效果,非常不方便。所以搭建了一个本地环境。
官方文档 中指出了可以在Linux, Unix, 和 Mac OS X中安装Jekyll。虽然不支持windows,但是在下方给出了在windows中的解决方案。
Running Jekyll on windows 。
在安装Ruby的时候,我的出现了一个安装问题。我安装在了D:\Program Files目录。注意这里有一个空格哟,Ruby安装不成功的。但是我想不明白,明明在C盘下面就一个C:\Program Files的嘛。为什么win7安装目录会有一个空格呢?
【解决1】修改路径名
将带空格的路径改为不带空格就行了呗。
2.安装Ruby DEVELOPMENT KIT。我选择的是For use with Ruby 2.0 (x64 – 64bits only)
【错误2】配置Ruby DEVELOPMENT KIT出错。
按照上面给出的windows解决方案中,会执行一下
【解决2】修改config.fml文件
修改文件如下:
说明:
一定要保留"-"
在下面填写你本地Ruby的安装目录
执行成功后,继续执行
【错误3】安装Jekyll 时候出错。
【解决3】
Github jekyll 中有解决方案
然后继续执行
【错误4】
注意,我这里是在work目录下启动的jekyll哦。这也是出现问题的一个原因了。。囧。
错误如下:
【解决4】这个问题解决的让我比较纠结。全都记录下来吧。
解决方法1
根据
Jekyll在Windows下面中文编码问题解决方案 这里的解决方案,我全都找了一遍,但是依然没有解决。
首先在我
最后这个文章中提到的编码格式、换行符、YAML格式,我这里都没有问题。
解决方法2
最后我只是简单的将出现GBK错误的文件删掉了。这里出现错误的原因是因为在我的G盘下面,存在的一个文件被Jekyll检测到了。而问题的根本原因是,我启动
【错误5】
这个错误是跟上面错误相关联的。
解决方法1
google找到到stackoverflow中的一篇
问答 ,试着修改一下 Pygments.rb。但是我不确定他的版本是多少。
结果发现我的版本是0.5.4,然后按照里面提供的方法,将0.5.4卸载掉,安装0.5.0,然后重新启动服务,打开浏览器访问,发现,还是会出现这个Forbidden ..
解决方法2
进入到myblog(我创建的jekyll目录),在这个目录下试着启动jekyll serve,然后用浏览器访问就不会出现forbidden了。。囧.....
然后【错误4】也就解决了。
【错误6】页面空白
页面虽然能访问了,但是一片空白啊,什么都没有
【解决6】删掉highlight代码
在Jekyll new myblog的时候,在_post目录下生成的文件中,找到如下代码,然后删除掉。
最后成功启动Jekyll 的界面如下 :
就是在md文件中存在Ruby代码
【解决7】使用Markdown rdiscount
这个博客使用的是
Google Code Prettify 代码高亮。我本地的是使用方法没有问题,但是为什么会不支持代码高亮呢?
对比发现我的_config.yml文件markdown属性不是rdiscount,默认生成的_config.yml文件是redcarpet 。然后我就将这个值修改为rdiscount,但是报错。
根据提示,我执行命令
偶然间,我修改了一下 控制面板 中的 区域语言 中的格式修改为 英语(美国) ,然后在执行
提示gem安装成功。然后代码也就高亮了。而且也不会出现那个Conversion error了。
以下资源解决了我不少困惑:
Getting My Site Running With Markdown + Jekyll!
Jekyll中使用google-code-prettify高亮代码
实际上最新版本的Jekyll已经解决了这个问题。只是不再这里处理了。而是在_config.fml文件中配置一下即可。
Liquid模板语言 ,{{ page.title }}表示文章标题,{{ content }}表示文章内容,更多模板变量请参考官方文档。
需要用到什么语法,直接看文档就行了。
奇怪,难道jekyll,python,ruby 这几个软件自动更新了,很是不解。
然后就先根据错误找原因,没解决。最后把软件全部卸载,参考下文从新搭建,可以了。
地址:
使用Github Pages建独立博客(二)
时间 2014-04-06 18:06:38 segmentfault-博客原文
http://blog.segmentfault.com/siberiawolf/1190000000458506
虽然已经有了
BeiYuu 的搭建博客教程,一步一步跟着做,我还是遇到了很多的问题。整理如下:
Github Pages的特点
优点
轻量级的博客系统,没有麻烦的配置使用标记语言,比如
Markdown语法
无需自己搭建服务器
根据Github的限制,对应的每个站都有空间限制
可以绑定自己的域名
缺点
使用Jekyll 模板系统,相当于静态页发布,适合博客,文档介绍等。
动态程序的部分相当局限,比如没有评论,不过还好我们有解决方案。
基于
Git教程 ,很多东西需要动手,不像Wordpress有强大的后台
学习Git
Git简介
Git是目前世界上最先进的分布式版本控制系统(没有之一)。Git有什么特点?简单来说就是:高端大气上档次。
安装GIt
Windows下要使用很多Linux/Unix的工具时,需要Cygwin这样的模拟环境,Git也一样。Cygwin的安装和配置都比较复杂,就不建议你折腾了。不过,有高人已经把模拟环境和Git都打包好了,名叫msysgit,只需要下载一个单独的exe安装程序,其他什么也不用装,绝对好用。msysgit是Windows版的Git,从 http://msysgit.github.io/ 下载,然后按默认选项安装即可。
安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
为github添加SSH key
生成SSH key
$ ssh-keygen -t rsa -C "youremail@example.com"
然后一路点击回车即可。如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
查看id_rsa.pub有两种方式:
1.windows7下看生成的文件
C:\Users\username\.ssh\id_rsa.pub
2.通过vim命令查看
vim ~/.ssh/id_rsa.pub
然后将生成的key拷贝到Github Pages中。
测试连接
$ ssh -T git@github.com
如果提示如下内容表示添加SSH key 成功
Hi yourusername! You've successfully authenticated, but GitHub does not provide shell access.
学习Markdown
Markdown语法 比较简单,我这里使用的是在线编辑器Cmd Markdown 。在这个编辑器中,可以通过ctrl+alt+H方式查看Markdown语法。
学习Jekyll
这里耽误最多时间的就是学习Jekyll了。尤其是搭建本地Jekyll的时候。我的环境是windows 7 64 bit,而Jekyll官网上面并没有支持这个版本,所以我遇到了不少问题。Jekyll (发音/'dʒiːk əl/,"杰克尔")是一个静态站点生成器,它会根据网页源码生成静态文件。它提供了模板、变量、插件等功能,所以实际上可以用来编写整个网站。
整个思路到这里就很明显了。你先在本地编写符合Jekyll规范的网站源码,然后上传到github,由github生成并托管整个网站。
优点:
免费,无限流量享受git的版本管理功能,不用担心文章遗失。
你只要用自己喜欢的编辑器写文章就可以了,其他事情一概不用操心,都由github处理。
缺点:
有一定技术门槛,你必须要懂一点git和网页开发。它生成的是静态网页,添加动态功能必须使用外部服务,比如评论功能就只能用disqus。
它不适合大型网站,因为没有用到数据库,每运行一次都必须遍历全部的文本文件,网站越大,生成时间越长。
为何要使用静态网站生成器?
不同于 WordPress 这类博客平台(以及其他众多流行的CMS内容管理系统)在服务器端执行PHP等语言的动态框架、访问SQL数据库并动态产生Web页面的工作方式,静态网站生成器的原理十分简单:将所有的页面、布局和帖子集合在一起,预先生成静态的站点。对于动态内容并非必要的站点——例如个人博客,静态网站生成器这样做有几个明显的优势:1.快速访问和弱服务器需求
静态HTML页面的载入速度理所当然地更快——因为它无需在服务器端执行任何代码。同时,这还大大地减轻了服务器的压力。2.高安全性
基于与上述相同的理由,静态页面有着与生俱来的安全性。不像WordPress或者其他任何动态的框架,静态站点本身并不存在安全漏洞的问题。3.版本控制
你无需通过WordPress来维护一整个复杂的数据库——静态站点的内容完全仅由文件系统中独立的目录和文件构成,这意味着你不但可以使用Shell、grep、sed、awk这些传统的Unix工具对它们执行操作和维护,更可以使用 Git 这样的分布式版本控制系统来管理它们,并且享受版本控制所带来的一切好处,如同维护任何软件项目的源代码库一样。你甚至可以重新生成以前任意时间点的整个网站!4.简单部署
一旦静态网站生成以后,任何Web服务器都能够轻易地部署静态站点,而无须在服务器端安装配置其他任何多余的东西。你所需要做的仅仅是通过git、rsync甚至ftp简单地上传文件到你的托管服务器。相比之下,WordPress博客的维护显得复杂得多,你可能需要在你的开发服务器和托管服务器上安装、配置一整套LAMP+WordPress平台,并经常性地升级版本和维护。这是个繁重的技术活。5.文本编辑器和自由格式书写
也许你不这么认为,但是作为一个hacker而言,在浏览器中一个300x300的文本区里码字写博客并非一件很酷的事情——如果你使用Jekyll这样的静态网站生成器,你就可以用你喜欢的任何文本编辑器(vi、emacs……),用你习惯的标记语言以书写文本文件的方式来直接写博客文章(就好像你平常写代码一样),避免了使用那些简陋和功能有限的Web界面。搭建本地Jekyll环境
我本地的操作系统是windows 7 64位系统。早前我没有搭建本地环境,所以每一次修改都需要提交到Github 上面才能查看修改效果,非常不方便。所以搭建了一个本地环境。
官方文档 中指出了可以在Linux, Unix, 和 Mac OS X中安装Jekyll。虽然不支持windows,但是在下方给出了在windows中的解决方案。
Running Jekyll on windows 。
1.下载RubyInstaller。我选择的是Ruby 2.0.0-p451 (x64)
【错误1】按照Ruby时路径错误在安装Ruby的时候,我的出现了一个安装问题。我安装在了D:\Program Files目录。注意这里有一个空格哟,Ruby安装不成功的。但是我想不明白,明明在C盘下面就一个C:\Program Files的嘛。为什么win7安装目录会有一个空格呢?
【解决1】修改路径名
将带空格的路径改为不带空格就行了呗。
2.安装Ruby DEVELOPMENT KIT。我选择的是For use with Ruby 2.0 (x64 – 64bits only)
【错误2】配置Ruby DEVELOPMENT KIT出错。
按照上面给出的windows解决方案中,会执行一下
ruby dk.rb init,然后可以在devkit中找到一个config.fml文件。
【解决2】修改config.fml文件
修改文件如下:
# This configuration file contains the absolute path locations of all # installed Rubies to be enhanced to work with the DevKit. This config # file is generated by the 'ruby dk.rb init' step and may be modified # before running the 'ruby dk.rb install' step. To include any installed # Rubies that were not automagically discovered, simply add a line below # the triple hyphens with the absolute path to the Ruby root directory. # # Example: # # --- # - C:/ruby19trunk # - C:/ruby192dev # --- - D:/ProgramFiles/Ruby200-x64
说明:
#表示注释。
一定要保留"-"
在下面填写你本地Ruby的安装目录
ruby dk.rb init的时候如果提示"Initialization complete!"。表示成功了。
执行成功后,继续执行
ruby dk.rb review和
ruby dk.rb install
3.安装Jekyll
当Ruby环境配置完成后(不提示任何错误),就可以安装Jekyll了。执行gem jekyll install
【错误3】安装Jekyll 时候出错。
ERROR: Could not find a valid gem 'jekyll' (>= 0) in any repository ERROR: Possible alternatives: jekyll`
【解决3】
Github jekyll 中有解决方案
$ gem sources --remove http://rubygems.org/ $ gem sources -a http://ruby.taobao.org/ $ gem sources -l *** CURRENT SOURCES *** http://ruby.taobao.org $ gem install rack
然后继续执行
gem install jekyll即可。等待片刻,会提示21 gems installed。jekyll 安装完毕。
4.创建blog
在随便一个磁盘下面创建一个文件夹myblog即可G:\work>jekyll new myblog G:\work>jekyll serve
【错误4】
invalid byte sequence in GBK
注意,我这里是在work目录下启动的jekyll哦。这也是出现问题的一个原因了。。囧。
错误如下:
Configuration file: none Source: G:/work Destination: G:/work/_site Generating... Error reading file G:/work/web/github- pages/siberiawolf.gith ub.io/_posts/blog/2012-02-22-github-pages.md: invalid byte sequence in GBK error: invalid byte sequence in GBK. Use --trace to view backtrace
【解决4】这个问题解决的让我比较纠结。全都记录下来吧。
解决方法1
根据
Jekyll在Windows下面中文编码问题解决方案 这里的解决方案,我全都找了一遍,但是依然没有解决。
首先在我
convertible.rb文件中,根本就没有文章中提到的那段添加
utf-8的代码。
最后这个文章中提到的编码格式、换行符、YAML格式,我这里都没有问题。
解决方法2
最后我只是简单的将出现GBK错误的文件删掉了。这里出现错误的原因是因为在我的G盘下面,存在的一个文件被Jekyll检测到了。而问题的根本原因是,我启动
jekyll serve的时候,是在work目录下进行的,而不是在myblog这个目录下。Jekyll将work目录下的所有文件都遍历了一遍。
【错误5】
Forbidden no access permission to /
这个错误是跟上面错误相关联的。
解决方法1
google找到到stackoverflow中的一篇
问答 ,试着修改一下 Pygments.rb。但是我不确定他的版本是多少。
结果发现我的版本是0.5.4,然后按照里面提供的方法,将0.5.4卸载掉,安装0.5.0,然后重新启动服务,打开浏览器访问,发现,还是会出现这个Forbidden ..
解决方法2
进入到myblog(我创建的jekyll目录),在这个目录下试着启动jekyll serve,然后用浏览器访问就不会出现forbidden了。。囧.....
然后【错误4】也就解决了。
【错误6】页面空白
页面虽然能访问了,但是一片空白啊,什么都没有
【解决6】删掉highlight代码
在Jekyll new myblog的时候,在_post目录下生成的文件中,找到如下代码,然后删除掉。
最后成功启动Jekyll 的界面如下 :
5.代码高亮
【错误7】Conversion error: There was an error converting..就是在md文件中存在Ruby代码
$ cd ~/.ssh。而这段代码应该是通过高亮的方式显示的。
【解决7】使用Markdown rdiscount
这个博客使用的是
Google Code Prettify 代码高亮。我本地的是使用方法没有问题,但是为什么会不支持代码高亮呢?
对比发现我的_config.yml文件markdown属性不是rdiscount,默认生成的_config.yml文件是redcarpet 。然后我就将这个值修改为rdiscount,但是报错。
ERROR: YOUR SITE COULD NOT BE BUILT:------------------------------------Missing dependency: rdiscount
根据提示,我执行命令
$ gem install rdiscount,但是我这里一直安装不上。
偶然间,我修改了一下 控制面板 中的 区域语言 中的格式修改为 英语(美国) ,然后在执行
$ gem install rdiscount,居然成功了。
提示gem安装成功。然后代码也就高亮了。而且也不会出现那个Conversion error了。
以下资源解决了我不少困惑:
Getting My Site Running With Markdown + Jekyll!
Jekyll中使用google-code-prettify高亮代码
6.解决中文编码
上面提到过,出现了GBK问题。而且我也没有找到convertible.rb文件中的那段代码。那么怎么支持中文呢?实际上最新版本的Jekyll已经解决了这个问题。只是不再这里处理了。而是在_config.fml文件中配置一下即可。
encoding: utf-8 markdown: rdiscount
学习Jekyll Liquid模板语言
Jekyll 使用Liquid模板语言 ,{{ page.title }}表示文章标题,{{ content }}表示文章内容,更多模板变量请参考官方文档。
需要用到什么语法,直接看文档就行了。
总结
记录我自己搭建这个博客的过程、遇到的问题。相关文章推荐
- 自定义安装过程当中遇到的不能找到installstate文件问题
- Infragistics NetAdvantage 的 ASP.NET部分控件在IE7.0下不能正常工作的问题及解决(转)
- 遇没遇到过这种情况:某个软件以前可以正常使用,现在突然启动白屏或重启了!
- Silverlight suddenly stopped working(Silverlight突然不能正常工作)
- vc6不能打开和添加文件,但是可以打开工作空间 问题解决
- 在servlet设置javabean(最近学习j2ee遇到这个问题,在百度上找到的很好的回答)
- 转一篇文章,因为今天正好遇到这个问题
- Log4Net本地正常,发布到服务器却不能工作
- nginx处理firefox的POST请求可能遇到的问题:小文件可以提交,大文件不能提交
- 移植 android, touch screen 不能正常工作的问题
- 做了个多语种网站 不能被GOOGLE,yahoo收录,baidu可以收录 终于找到问题
- Infragistics NetAdvantage 的 ASP.NET部分控件在IE7.0 IE8.0 下不能正常工作的问题及解决
- 非常奇怪 谁可以帮我下 这个问题怎么不能运行啊
- 解决使用struts2后servlet不能正常工作的问题
- 关于Web Services 在本地测试正常,放到服务器上不能用的问题
- JBuilder的光标不能正常工作的问题!
- 虚拟IP实验,遇到场景启用使用虚拟IP就报错,不启用可以正常运行的问题,解决方法
- 遇到一个怪问题,在网上找到了答案,嘿嘿
- 毕业后的日子一直在工作和睡觉中重复,看到这篇文章突然醒悟生活不能在这样的重复中渐渐失去色彩~(转帖)
- 本地运行FlashPlayer访问本地文件的设置 / 本地运行flash不能正常显示问题(转http://hi.baidu.com/slzs_zyt/blog/item/c8a40697aa45ac6354fb9630.html)