zl程序教程

您现在的位置是:首页 >  工具

当前栏目

使用github与Octopress 搭建GitHub Pages博客

GitHub博客 搭建 Pages 使用
2023-09-14 08:57:15 时间
Note: username@email.com需要更换成你自己的在Github上注册的Email地址。 这样会在用户目录(C:\Documents and Settings\UserName)下产生一个.ssh文件夹,里面为对应的SSH Keys,其中id_rsa.pub是Github需要的SSH公钥文件。

在Github的Account Settings里选择SSH Keys,在其中将id_rsa.pub文件里内容拷贝至 其中的Key里。

这样以后就可以直接使用Git和GitHub了。

测试一下


如果出现 hi xxx! You’ve successfully authenticated, bug GitHub does not povide shell access。说明SSH链接成功。

接下来配置其他信息。


git config --global user.name github-username

git config --global user.email github-account-email

git config --global github.user github-username

git config --global credential.helper cache

git config --global credential.helper cache --timeout=3600


ruby --version # Should report Ruby 1.9.3 rbenv rehash # 可选,如果安装了rbenv,就需要执行这一步
注意: rubygems.org在中国的下载速度很慢,会导致bundle install这一步下载gems的速度很慢,可能需要等待几个小时。因此需要事先切换到国内的镜像源。

用记事本打开octopress目录下的Gemfile,将第一行修改为

source “http://ruby.taobao.org”

然后可以开始安装依赖的gems了。


这个命令主要是根据source目录的内容,编译生成JeKyll所需要的静态文件,存放到public目录下。source 目录对应着git上的source分支。

预览


该命令首先清空_deploy目录,然后将public目录整个拷贝过来,然后commit到github。_deploy 目录对应着master分支。

备份source到github


source 目录下保存了所有的markdown源文件,是博客的原始数据,以及一些模板文件。因此很有必要备份。用上述命令提交到github,这样就用git管理起来了,再也不用担心数据丢失了。

终止预览
启用rake preview后,直接按ctrl+c无法正常终止该进程,老提示终止批处理操作吗(Y/N)?,这时候可以另开一个Git Bash窗口,使用ps aux | grep ruby命令找出pid(第一个数值),然后执行kill pid 来停止该进程(参考octopress on heroku (二))。
UTF-8 编码
Windows预设是Big5编码,所以要想’rake generate’的时候不报编码错误,我们需要设置一下编码! 方法有两个,一个是直接在Git Bash中设置环境:


还有一个是在环境变量中加入这两个变量: 右击电脑- 属性,新添加LANG和LC_ALL两个环境变量,值为为zh_CN.UTF-8.

然后在Git Bash中做如下设置:


参考官方文档Setting up a custom domain with Pages

非常简单,在master分支的根目录,添加一个文本文件,名字为CNAME,里面的内容就是要绑定的域名,例如本博客CNAME文件的内容是:

www.yanjiuyanjiu.com

然后去DNSPod,添加一条CNAME,指向 username.github.com。例如我的为:


很多人喜欢去掉www,用xxx.com的形式来访问,不过大家去试一下,在浏览器输入qq.com, douban.com, baidu.com,发现都会自动跳转到www,也就是说这些大网站,目前也是用www.example.com的域名为主,因此建议大家也这样做。

用www, blog之类的二级域名,还有个好处是方便升级,比如新版本用www1指向,等测试完成后,改成www指向,无缝切换。

如何让example.com 自动变成www.example.com呢?需要用 301重定向,在DNSPod上非常简单,添加一条显性URL即可,例如我的是:


GitHub Pages 如何实现 SPA 这两天在 GitHub Pages 里面托管了一个小 DEMO,但是 DEMO 是 SPA 的,然而 GitHub Pages 是无法支持 SPA 配置的,这里记录一下解决方案。
我明白了,github中的actions与pages github的actions是一个持续集成的工具,类似java的jekins,actions中需要编写流水线脚本,脚本并不难,只是环境的熟悉。github pages 是一个静态网站服务,只要你按照特定规则在指定的仓库或者分支上存放html代码,就可以通过特定规则的url去访问到该静态页面网站,很方便。