专栏首页听Allen瞎扯淡Allen's Blogs 创建历程(1)

Allen's Blogs 创建历程(1)

很早很早以前我就开始玩博客,陆陆续续注册了很多平台,比如博客中国、cnblogs、javeeye(现在叫iteye)、csdn,也零零散散写了一些文章,不过没有坚持多久,工作忙起来后就不再更新,自我回顾一下好像还真没有什么干货,只算是给互联网里堆了一串01010101的数据罢了。那为什么最近又动了写 Blogs 的心思,原因是最近读了一本书,书名是:《软技能:代码之外的生存指南》,里面第二篇:自我营销中讲到程序员自我营销的重要性,其中一点就提到了写 Blogs。总结来说,程序员写写 Blogs 不仅是自我营销的一种方式,还是一种很好的学习方式,不是说知识能说出来才算学到了么。

Jekyll & GitHub Pages

自我总结一下,之前没有坚持下来很大一个原因就是一个字:“懒”,再加上之前的那些 Blogs 系统多多少少会有点不足。我也曾经尝试过购买 VPS 主机,自己搭建 Blogs,我甚至还为之购买了域名,可是后来发现,为何 VPS 是何等的费时费力。要安装软件,要安装数据库,还要防止被盗链导致流量不够用,哎,都是泪,不说了。到最近,无意中看到一篇译文,似乎是《像黑客一样写博客》,瞬间就被带上车了,开始使用 Jekyll 和 GitHub Pages 架设我的静态博客。

要在使用 GitHub Pages 服务,首先需要创建一个名字叫 “[你的用户名].github.io” 的项目:

接着把新建好的项目 Clone 下来,有两种方式 Clone 项目,一种是点击项目右上角的绿色“Set up in desktop”按钮使用 Github 客户端 Clone 项目;另外一种就是通过终端命令行来 Clone 项目。

$ git clone [you project addr] [your locale dir]

Clone 完成后,需要在本地搭建 Jekyll 的写作环境,正式开启静态博客之旅。

Jekyll 环境准备

首先安装必要工具

  • Ruby:Mac OS X 10.5以上都自带
  • RubyGems:Mac OS X 10.5以上都自带
  • Xcode Command-Line Tools: 安装Xcode会自动安装,检查Preferences → Downloads → Components是否有Command-Line Tools这项提供下载,如果没有说明已安装
  • git:命令行输入git –version检查是否已安装,下载地址:http://sourceforge.net/projects/git-osx-installer/

在国内 gem 源地址可能已经被墙(万恶的 GFW),所以你可能需要将 gem 源替换为淘宝的镜像源:

// 移除官方镜像源$ gem sources --remove https://rubygems.org/// 添加淘宝镜像源,或者其他镜像地址$ gem sources -a http://ruby.taobao.org/// 验证是否替换成功$ gem sources -l

如果终端中出现下面的显示则代表替换成功。

*** CURRENT SOURCES ***http://ruby.taobao.org/

接着开始安装 Jekyll

// 更新下 gemsudo gem update --system

MAC 系统版本如果是 El Capitan 使用下面这个命令。这是因为 Apple 在 OS X El Capitan 中全面启用了名为 System Integrity Protection (SIP) 的系统完整性保护技术。受此影响,大部分系统文件即使在 root 用户下也无法直接进行修改,所以需要把安装路径替换为用户有写入权限的目录。

sudo gem update -n /usr/local/bin --system

如果你嫌每次都要打安装路径比较麻烦,你也可以把它变成默认配置,在用户根目录下创建一个名为.gemrc的文件,在里面写入gem: -n/usr/local/bin,并保存。或者使用下面的命令:

echo "gem: -n/usr/local/bin" >> ~/.gemrc

接下来安装 Jekyll

$ sudo gem install jekyll// 如果提示权限错误,请使用下面的命令$ sudo gem install jekyll -n /usr/local/bin

OK,这样 Jekyll 环境就安装完成了,接下来导入 Jekyll 后,就可以开始写作了。在网络上有很多漂亮的 Jekyll 主题可供你选择,你可以访问jekyllthemes.io找到你喜欢的主题并下载下来,或者通过 Google 搜索,如果还不满意,你也可以选择自己创建一个主题。选择好你喜欢的 Jekyll 的主题后,将主题复制到前面从 Github 上 Clone 的项目文件夹中去。一个典型的 Jekyll Blogs 的目录结构应该如下面所示:

.├── _config.yml├── _drafts| ├── begin-with-the-crazy-ideas.textile| └── on-simplicity-in-technology.markdown├── _includes| ├── footer.html| └── header.html├── _layouts| ├── default.html| └── post.html├── _posts| ├── 2007-10-29-why-every-programmer-should-play-nethack.textile| └── 2009-04-26-barcamp-boston-4-roundup.textile├── _data| └── members.yml├── _site├── .jekyll-metadata└── index.html

在该目录下执行:

$ jekyll server // 简写 jekyll s

在浏览器地址栏中输入:http://localhost:4000/ 就可以看到刚才新建的 Blog 长什么样子了。在这里新增、修改、删除文章都可以实时的看到,只需要刷新页面即可。你可以试着修改那篇默认文章看看效果。

开始写作

Jekyll 博客的配置全在 Blogs 根目录的_config.yml文件中,一般来说,只要没有什么特殊的需求,只需要修改诸如:博客名、所有者名字、email等信息即可,如果有更多的需求,请参考所用主题的说明和 Jekyll 的文档:https://jekyllrb.com/docs/configuration/。我的 Blog 的基本配置如下,可以参考:

name: Allendescription: Blogging about stuffsmeta_description: "Allen's Blog"markdown: krmarkredcarpet:highlighter: pygmentslogo: falsepaginate: 20baseurl: /domain_name: 'http://allenn.cn/'google_analytics: 'UA-XXXXXXXX-X'# Details for the RSS feed generatorurl: '/rss.xml'author: 'Allen'

好了,一切准备就绪,我们可以开始写作了。按照 Jekyll 的规范,文章是放在_posts目录下的,并且需要以时间戳开头,比如:2007-10-29-why-every-programmer-should-play-nethack.md,在文章的开头,需要增加一些描述性的东西,这样 Jekyll 才能正确的处理我们写的文章。

---layout: posttitle: "在多线程构建场景下Powermockito无法在不同类中Mock同一个静态方法"date: 2015-10-14 13:50:39comments: truecategories: 软件技术tags: [Java, 单元测试]---

写好描述后,就可以开始愉快的写正文啦,当你洋洋洒洒的写完你的大作后,你可以使用下面的命令将你的文章提交到 Github 上,完成之后过几分钟应该就能看到新的文章已经在你的个人博客主页上了。

$ git add .$ git commit -m 'xxxxx'$ git push origin master

总结

总的来说,使用 GitHub Pages + Jekyll 搭建简单的静态博客是非常容易上手的,只要有一点编程基础应该都能搞得定,而且不用像自己搭建 VPS 那样要时不时去维护主机,当然了,Jekyll 也并非完美,下篇文章我将分享我用 Jekyll 时踩到的一些坑。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Mock 与 Stub

    这是软件大师Martin Fowler的一篇经典博文。Martin大师在文章中详细的解释了Mock与Stub的区别,以及怎样使用它们进行TDD实践等等一系列干货...

    Allen Cheng
  • 解决在 IntelliJ IDEA 时,搜狗输入法不跟随问题

    最近从华为离职并入职了新的公司,在新领的电脑配置好开发环境后就开始愉快的打码。可是在我要输入中文注释的时候,发现在 IDE 里面没法正常使用搜狗输入法,表现为输...

    Allen Cheng
  • 如何在单元测试中设置系统环境变量

    有时我们需要通过读取系统环境变量来获取一些有用的信息,比如系统路径、临时目录等。在系统真正运行的时候我们可以通过启动命令行,如:java -Dxxx.xxx=x...

    Allen Cheng
  • flink学习-DataSink学习

    sink的意思就是存储的意思,在flink流计算框架中,在获取流进行相应的数据转换和处理之后的下一步就是数据的存储了。一般就是存储到es,mysql,kafka...

    opprash
  • flask 分页pagination(flask 62)

    @app.route('/') @login_required def index(): page=request.args.get('page',1,t...

    用户5760343
  • 万达电影:失去的上半年,未知的下半年

    网上众多影迷欢呼,“终于能在影院看电影了!”在电影院开放线上售票之后,在淘票票上卖出复工后的全国第一张电影票,引起了不少影迷与媒体的关注。

    刘旷
  • Django自定义命令

    在commads目录下面创建我们的命令文件,命令的名称就是命令文件的名称,命令文件内部的基本结构如下:

    渔父歌
  • 腾讯云CDN接入教程

    腾讯云CDN 在全国各省份建设1100+加速节点,覆盖移动、联通、电信及十几家中小型运营商,有效解决因跨运营商、跨地域带来的网络不稳定,访问延迟高等问题。全网1...

    张天华
  • MySQL开发规范与使用技巧总结

    1.库名、表名、字段名必须使用小写字母,并采用下划线分割。 a)MySQL有配置参数lower_case_table_names,不可动态更改,Linux系统...

    Java后端技术
  • 创新锐减,尾大不掉的苹果如何才能扛起乔布斯时代的大旗?

    如果你不是科技圈的人,或许你不会觉察到苹果已经发布了新版的iPad。这或许正是苹果公司的产品正在逐渐失去人们关注的一个直接表现。每年的苹果发布会都没有乔布斯时代...

    孟永辉

扫码关注云+社区

领取腾讯云代金券