ruby开源项目之Octopress:像黑客一样写博客

百度权重查询 词库网 网站监控 服务器监控 SEO监控 Swift编程语言教程
今年一直推荐的一种写作方式。markdown语法快速成文,git与github实时保存,jekyll或octopress实时成书或者showoff实时成ppt。入门略有门槛,但是习惯了,写作效率会好很多。以下以octopress为例,进行说明。

配置个人github账号

登陆github,创建一个个人账号。假设叫做:rubyonchina。

然后回到ubuntu或者Mac里面,仍然是在终端里面,输入:

[[ -f ~/.ssh/id_rsa.pub ]] || ssh-keygen -t rsa
按照默认提示一路确认,生成密钥之后,将生成的信息复制到github页面中,如下所示:

[[ -f ~/.ssh/id_rsa.pub ]] && cat ~/.ssh/id_rsa.pub | xclip
然后在浏览器中打开页面:

https://github.com/account/ssh
点击,Add another public key,粘贴前面步骤复制的信息,请格外注意,不要在Title中填写内容,直接将复制的内容粘贴到Key中,然后点击:Add Key即可。

配置octopress个人博客

cd ~/dev/
git clone git://github.com/imathis/octopress.git
rubyonchina.github.comcd ~/dev/rubyonchina.github.com
修改默认的.rvmrc文件的内容为:

rvm use 1.9.2@rails31
安装相应的gem:

bundle update
然后生成模版文件:

rake install
分发到github上。分发之前,假设你已经注册用户名为rubyonchina的github.com账号,已经创建名为rubyonchina.github.com项目。

cd ~/dev/rubyonchina.github.com
git remote add rubyonchina git@github.com:rubyonchina/rubyonchina.github.com.git
新增一篇测试博客:

rake new_post["post title"]
生成静态站点:

rake generate
配置octopress与github的连接:

rake setup_github_pages
按照提示填入你的github项目网址,比如,本示例是:

git@github.com:rubyonchina/rubyonchina.github.com.git
分发到github上:

rake deploy
第一次运行时,会询问是否建立对github的授权,输入:yes。然后将站点更新的内容推送到github上。

git push -u rubyonchina master
尝试浏览:

http://rubyonchina.github.com
OK!成功!然后,此时,再创建一个新的github的source分支,用于保存写作的md源文件等。

git add .
git commit -m "some changes"
git push rubyonchina source
现在,你就拥有了一个强大的个人站点。

ruby开源项目之Octopress:像黑客一样写博客(zhuan)的更多相关文章

  1. 像黑客一样写博客–Pelican快速搭建静态博客

    "像黑客一样写博客",通过文本编辑器(Markdown编辑器)即可实现写博客,而且是静态的,很神奇吧,这里的方案是Pelican. 为啥叫 Pelican 这么奇怪的名字 &quo ...

  2. 使用开源文档工具docsify,用写博客的姿势写文档

    前提 下面的简介摘抄自docsify的官网 https://docsify.js.org 中的简介 docsify是一个神奇的文档网站生成器.他可以快速帮你生成文档网站.不同于GitBook.Hexo ...

  3. 讲解开源项目:5分钟搭建私人Java博客系统

    本文适合刚学习完 Java 语言基础的人群,跟着本文可了解和运行 Tale 项目.示例均在 Windows 操作系统下演示 本文作者:HelloGitHub-秦人 HelloGitHub 推出的< ...

  4. 利用Octopress在Github上搭建博客及后续问题总汇

    首先贴一下我的新博客地址: http://findingsea.github.io 用Octopress在GitHub上搭建博客已经不是什么新鲜事了,网上的教程也多了去了,大题的方法什么都差不多,这篇 ...

  5. Octopress + GitHub Page 搭建个人博客

    Tips:博客已搬家,新地址:http://wanxudong.top 首先说明两个关键术语: Octopress Octopress是基于 Jekyll 的博客框架.他们的关系就像 jQuery 与 ...

  6. 用Octopress在Github pages上写博客

    安装Git环境 下载msysgit(git for windows),并安装. 可以选择安装TortoiseGit,这个在windows的资源管理器里装了很多git的右键菜单,对git命令行不熟悉的同 ...

  7. 如果简单的记录,就可以为这个世界创造更多的财富,那么还有什么理由不去写博客呢? — 读<<黑客与画家>> 有感

    上一次博文发文时间是2016.1.15,7个月已经过去了.最近读了一本<>的书,对我触动挺大的!里面有关于技术趋势的探讨,也有关于人生和财富的思考! 开始更新iOS122的文章的初衷是,聚 ...

  8. Spring+SpringMVC+MyBatis+easyUI整合优化篇(十四)谈谈写博客的原因和项目优化

    阶段总结 又到了优化篇的收尾阶段了,这其实是一篇阶段总结性的文章,今天是4月29号,距离第一次发布博客已经两个月零5天,这两个多月的时间,完成了第一个项目ssm-demo的更新,过程中也写了33篇博客 ...

  9. 鸿蒙内核源码分析(静态链接篇) | 完整小项目看透静态链接过程 | 百篇博客分析OpenHarmony源码 | v54.01

    百篇博客系列篇.本篇为: v54.xx 鸿蒙内核源码分析(静态链接篇) | 完整小项目看透静态链接过程 | 51.c.h.o 下图是一个可执行文件编译,链接的过程. 本篇将通过一个完整的小工程来阐述E ...

随机推荐

  1. iOS - OC SingleClass 单例类

    前言 单例对象能够被整个程序所操作.对于一个单例类,无论初始化单例对象多少次,也只能有一个单例对象存在,并且该对象是全局的,能够被整个系统访问到. 特点: 在内存中只有一个实例 提供一个全局的访问点 ...

  2. numpy库的常用知识

    为什么有numpy这个库呢?准安装的Python中用列表(list)保存一组值,可以用来当作数组使用,不过由于列表的元素可以是任何对象,因此列表中所保存的是对象的指针.这样为了保存一个简单的[1,2, ...

  3. 【Todo】Nginx架构学习

    要进行Web服务,绕不开的就是Nginx.这已经是大型网站的标配.对Nginx进行一定程度的深入学习. http://www.ituring.com.cn/article/4436 http://bl ...

  4. Android 图片Exif信息相关的获取与修改

    1 Exif是什么 Exif是一种图像文件格式,它的数据存储于JPEG格式是完全相同的,实际上Exif格式就是JPEG格式头插入了 数码照片的信息,包括拍摄的光圈.快门.平衡白.ISO.焦距.日期时间 ...

  5. iOS开发之 在release版本禁止输出NSLog内容

    因为NSLog的输出还是比较消耗系统资源的,而且输出的数据也可能会暴露出App里的保密数据,所以发布正式版时需要把这些输出全部屏蔽掉. 我们可以在发布版本前先把所有NSLog语句注释掉,等以后要调试时 ...

  6. windows服务名称不是单个单词的如何启动?

    比如要启动  Memcached Server: 命令行中输入命令要注意大小写,大小写要保持一致,正确的写法如下: net  start  "Memcached Server". ...

  7. linux 安装 easygui

    如果遇到问题也查找不到资料时,可以认真阅读安装文件下的README说明,或许可以得到帮助. 本次环境为redhat 6.4.python2.7.9 linux 图形化显示需要安装一些依赖包,比如lib ...

  8. 任务调度quartz

    http://www.cnblogs.com/cnjava/archive/2013/02/28/2937291.html

  9. OpenCV3编程入门笔记(3)线性滤波、非线性滤波、图像深度、通道

    15     遍历图像中的像素,是先for行数后for列数的,也就是一列一列的遍历,matlab中是从1开始计数,opnecv中采用c语言的从0开始计数. 矩阵归一化:normalize()函数,参数 ...

  10. ajax中向HTML页面中指定位置添加信息

    $.ajax({  type : "POST",  beforeSend : function() {   showLoader("数据加载中...");// ...