网上已经有很多关于搭建Octopress的文章了,但我写这篇文章的目的是帮助Mac新手们搭建自己的Octopress,尤其是最新的Mavericks系统
这篇博文包括:
- Octopress搭建
- Github Page 部署
- Blog的美化工作
Octopress搭建
众所周知,MacOSX自带Ruby,10.9系统带了两个版本的Ruby:1.8和2.0,因为Octopress需要Ruby1.9.3以上的支持,所以Mavericks自带的Ruby2.0是可以胜任的,新手们可以松一口气了。
如果没有安装command line tools,可以直接安装Xcode。Xcode5之后,command line tools都是跟随Xcode自带的,不用单独安装,想卸载也就麻烦了,可以在Xcode中Preferences->Locations中查看command line tools版本。
系统没升级到最新版的童鞋,可以打开终端(terminal)通过下面的命令查看自己的Ruby版本:
ruby --version
没安装RVM的童鞋运行下面的命令:
curl -L https://get.rvm.io | bash -s stable --ruby
下面我们需要从Github上clone下Octopress
git clone git://github.com/imathis/octopress.git octopress
这条命令将octopress的源码下载到了你个人文件夹下的octopress文件夹,如果对git命令不太熟,可以在这里下载Github的Mac客户端,关于Github的使用,网上有很多教程。
下一步,安装依赖
cd octopress #进入octopress目录
gem install bundler
这里碰到的问题可能有两种:
-
权限不够,无法访问到一些文件夹
-
等了很久没有反应
如果你之前对Linux比较熟,第一个问题可以很简单的解决,这是因为一些文件夹需要root权限访问,运行sudo gem install bundler
提示输入密码的时候,输入你自己的MacOSX开机密码后回车,注意输入密码的过程中终端无任何显示,这跟Linux一样
如果半天都没有反应,这是因为rubygems.org 的文件资源被墙了,可以在这里查看解决方法,或者干脆翻墙,推荐云梯VPN科学上网,我个人比较推荐翻墙。
接下来运行:
bundle install
不出意外,肯定会出错,最后一句应该是“Make sure that gem install RedCloth -v '4.2.9'
succeeds before bundling.”再往前追寻问题的根源,会发现这么一句“clang: error: unknown argument: ‘-multiply_definedsuppress’ [-Wunused-command-line-argument-hard-err”。
这是因为Xcode 5.1的LLVM编译器将未识别的命令行选项认为是error,导致诸如Python本地拓展和Ruby Gem报错,解决方案:在执行命令行前加ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future,这样就忽略了报错。感谢Andrew Hay的文章帮我解决了问题。
所以应该这样:
ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future bundle install
问题解决
最后安装默认的主题
rake install
如果出现“You have already activated rake 10.3.1, but your Gemfile requires rake 0.9.6. Prepending bundle exec
to your command may solve this.”这样的提示,有三种解决方法:
-
运行
bundle update
-
按照提示在前面加上
bundle exec
,即运行bundle exec rake install
-
卸载不一样的版本 gem uninstall rake -v=10.3.1
这三种方法建议先用方法1,如果不行再用方法3,方法2是无奈之举
关于创建博文
rake new_post["first post"]#双引号中为博文标题,可以自己定义,生成markdown文件
rake generate #生成HTML文件
这里推荐一个markdown编辑器Mou,markdown是用来编写我们博客的语言,文件后缀名为md或markdown,学过Latex的童鞋可能会了解得更快一些,用markdown编写HTML版面是再好不过得了,markdown速成传送门。网上教程也挺多的,语法风格跟Latex有点像。
Github Page 部署
首先要有一个Github账号,假设用户名为username,那么新建一个仓库,名字叫“username.github.io”,Github会自动识别它为你的个人页面。你可以通过username.github.io这个网址来访问你部署的静态网页。创建完成后,获取你这个仓库的Git Url,SSH或者Http协议的都可以,然后执行rake setup_github_pages
,当提示你的时候输入你前面创建的仓库的Git Url。比如git@github.com:username/username.github.com.git
你会发现octopress文件夹中多了_deploy目录,并将这个目录当作master分支,而其余的文件都作为新建立的source分支。octopress原理是在source分支保存框架所需要的文件,还有博客的markdown文件,然后每次将生成的html文件放入master分支,通过username.github.io访问到的是已经生成好的master分支的文件,也就是_deploy文件夹的内容。
运行下面代码来生成部署网页到Github:
rake generate
rake deploy
现在访问你的网站,已经有了一个页面,使用的是系统默认主题。为了避免博客的源码受到破坏,需要把source分支也commit上去。不会用git命令的同学可以用Github的Mac客户端。
git add .
git commit -m 'your message'
git push origin source
如果你有自己的域名,可以通过在仓库中新建CNAME文件进行配置映射,这里不再细说。
Blog的美化工作
可以用greyshade或者slash主题美化博客,根据个人喜好了。需要注意的是,greyshade这个主题有些不足之处,比如,disqus实效,还有如何添加新浪微博链接,请看这里和这里。如果首页左侧没有显示title和subtitle等信息,可以修改/source/_includes/header.html文件,添加
<h1><a href="{{ root_url }}/">{{ site.title }}</a></h1>
<p class="subtitle">{{ site.subtitle }}</p>
修改_config.yml文件,可以配置博客的参数,网上有很多详细的教程来说明每个属性是干什么的,需要注意的一点就是冒号后面一定要加空格,否则编译不通过。建议下载一个Sublime Text来打开这些前台文件,增加效率。博客头像和Github一样采用gravatar的头像托管服务,在_config.yml文件中的email属性中填入你在gravatar的邮件或者在email_md5属性中填入md5码也可。
关于添加标签云效果
-
将category_cloud.rb复制到你的
/octopress/plugins/
文件夹下 -
拷贝category_cloud.html到你的
octopress/source/_includes/custom/asides/
目录 -
在你的
octopress/_config.yml
文件中的default_asides
项中加入第二步添加的路径:custom/asides/category_cloud.html
-
拷贝tagcloud.swf到
source/javascripts/
文件夹
如果想修改标签云的颜色可以在category_cloud.rb
文件中改变:1 2 3 4
@opts['bgcolor'] = '#3D4349' @opts['tcolor1'] = '#8B85C3' @opts['tcolor2'] = '#C03999' @opts['hicolor'] = '#ffffff'
tcolor1
为文章数量比较多的分类颜色
tcolor2
为普通分类颜色
hicolor
为鼠标高亮颜色
诸如添加Google Analyse和百度统计,添加分享和评论系统,还有版权信息,网上的教程也很多,参考oec2003和破船的文章,本文主要是介绍MacOSX上面的部署工作。
快来评论,快来抢沙发吧~