为什么要有这个博客
方便知识的整理,分享和交流。更主要的是慢慢感觉年纪越来越大(黑线!!!),记性越来越差,需要一个可以记录东西的地方.
古话说得好
好记性不如烂笔头嘛!
名字的由来
为什么取名叫Wise Turtles?在这里我不得不吐槽一下咯。取名字,本来就是一件很难的事情,取一个有意义的名字就更难了,让一个理工宅男来取就难到吐血啦。 为了取一个有意义的名字,同时又能注册到域名和github组织名,我简直是使出了吃奶的力气, 从dota3一直试到了dota100, 域名都被注册了,想死的心都有。 伤心欲绝时,突然灵光一闪,想到了不久前热映的电影《忍者神龟》, 四兄弟团结, 幽默, 充满活力, 这不是我们所追求的团队精神吗? 所以决定以忍者神龟作为名字啦! 悲剧的是turtles竟然也被注册了,坚持着不放弃的原则,我觉得我们团队的兄弟姐妹们比起忍着神龟更加睿智,于是就用Wise Turtles啦!(实在不想再为名字纠结咯), 赶紧去注册了域名和github组织名,大功告成!
如何加入组织
请大家把github的用户名(注意是用户名:而不是登陆邮箱)发给我, 我会逐一给大家发送邀请。然后大家用自己的账号登陆github,访问
https://github.com/wiseturtles
即可接受邀请。
博客的功能介绍
博客采用开源的pelican静态博客引擎,集成了Disqus评论,百度分享,百度统计(不要问我为什么用百度,你懂的),支持Atom/RSS feeds 订阅,响应式布局(移动端访问排版依然良好),Travis-ci自动构建文章。文章格式支持Markdown, reStructuredText, html语法。通过jinjia定义主题模板,git版本控制,以及程序员喜欢的语法高亮。
附上一些常用语法的链接:
与博客有关的repo介绍
我们的blog主要用到了三个repo
- wiseturtles.github.io (博客静态html文件库,也就是博客展示的最终库,由travis-ci自动修改, 不需要手动修改)
- blog (博客源码库,大家平时写文章时需要提交的库)
- theme (主题库,可以定制博客的排版,样式和布局, 感觉现在博客难看的同学可以修改)
大家平时主要使用到的也就是blog这个库,下面就blog的目录结构简单介绍一下。
# 下载blog库
$ git clone --recursive git@github.com:wiseturtles/blog.git
$ cd blog
$ tree -aL 1
.
├── cache # 编译生成静态文件的cache库,加快编译速度
├── content # 博客内容库,所有写的文章都按照目录来分类并放在这个目录下面
├── deploy.sh # 部署编译出来的静态文件到wiseturtles.github.io库的脚本,由travis-ci调用
├── develop_server.sh
├── fabfile.py # 封装了常用命令的fab文件
├── Makefile # 封装了常用命令的makefile文件
├── output # 编译生成静态html文件的目录,wiseturtles.github.io库里的内容就是这个目录下的
├── pelicanconf.py # 博客的配置文件
├── publishconf.py # 博客发布时调用的配置文件, 主要覆盖了pelicanconf.py里的一些配置
├── README.md
├── requirements.txt # 记录安装本库需要使用的python包文件
├── theme # 主题目录,其实就是theme库,作为一个子库放在blog里面
└── .travis.yml # travis-ci的配置文件
所有的文章写好之后,都要放到coetent目录下, 所有的文章按照目录分类,可以根据自己的需要在content下创建需要的目录(目录名会出现在URL中,建议是英文的)。
如何搭建本地环境
为了使整个过程简洁,下面以本地python版本为2.7.X, 不创建python虚拟为前提。 如果不满足这两个条件,可以参考我的另一片文章 pelican + github 搭建个人Blog
$ git clone --recursive git@github.com:wiseturtles/blog.git # 下载代码
$ cd blog
$ sudo pip install -r requirements.txt # 安装必要的python库, 如果不需要本地预览的话,可以跳过这一步
$ touch content/test/hello.md # 此处略去编辑content/test/hello.md文件过程的三千字
$ make devserver # 启动本地预览的server, 访问http://127.0.0.1:8000/查看文章那个效果
# 重复上面两个步骤,直到决定发布文章
$ git add content/test/hello.md
$ git commit -m "add hello.md"
$ git push origin master
OK, 打完收工! 过一会访问我们的博客http://blog.wiseturtles.com/就可以看到自己刚刚发表的文章啦!
整个过程概述起来就跟把大象放进冰箱一样简单,只需要三步:
- 下载blog代码
- 写好文章
- 提交文章
在线环境
如果感觉搭建本地环境麻烦的话,那就直接用github的在线编辑功能吧。 访问
https://github.com/wiseturtles/blog
即可在线编辑.
文件模板
无论选择Markdown, reStructuredText, html哪种语法,文章模板都应该像下面这样:
reStructuredText(Rst)格式(文件名以.rst结尾)
My super title ############## :date: 2010-10-03 10:20 :modified: 2010-10-04 18:40 :tags: thats, awesome :category: yeah :slug: my-super-post :authors: Alexis Metaireau, Conan Doyle :summary: Short version for index and feeds This is the content of my super blog post.
md格式(文件名以 .md, .markdown, .mkd, .mdown结尾)
Title: My super title Date: 2010-12-03 10:20 Modified: 2010-12-05 19:30 Category: Python Tags: pelican, publishing Slug: my-super-post Authors: Alexis Metaireau, Conan Doyle Summary: Short version for index and feeds This is the content of my super blog post.
html格式(文件名以.html and .htm结尾)
<html> <head> <title>My super title</title> <meta name="tags" content="thats, awesome" /> <meta name="date" content="2012-07-09 22:28" /> <meta name="modified" content="2012-07-10 20:14" /> <meta name="category" content="yeah" /> <meta name="authors" content="Alexis Métaireau, Conan Doyle" /> <meta name="summary" content="Short version for index and feeds" /> </head> <body> This is the content of my super blog post. </body> </html>
从上面的模板可以看出,无论选择哪种语言,都包含了共同的信息.
需要注意的一点是slug标签的信息就是文章的URL链接,最好不要是中文的
代码高亮
对于Rst格式, 用如下格式
.. code-block:: identifier <indented code block goes here>
md格式
A block of text. :::identifier <code goes here>
图片和附件管理
一般不建议将文章中要使用到的图片或附件提交到blog库中,避免引起blog库迅速增大, blog库建议只保存纯文本的东西。可以将要使用的图片或附件上传到支持外链的第三方存储,然后在文正里直接引用图片或附件的URL。或者单独建立一个git库来保存图片和附件。
最后
这里只是介绍了大体上的一些用法,更多请参阅: http://docs.getpelican.com/en/3.5.0/content.html