实时预览
使用如下命令可以实现实时预览:
|
|
rake preview
会自动监视文件的变化,重新生成静态页面。因此修改markdown文件后,只需要在浏览器里刷新一下页面,就立刻可以看到效果。不过如果修改了_config.yml的话,则需要Ctrl+C终止,用rake generate
重新生成,才能看到效果。
嵌入代码块
见官方文档Sharing Code Snippets。
Octopress是一款为hacker量身定制的博客系统,当然内置了代码高亮的功能!它的代码高亮功能是通过Pygments实现的,配色方案用的是Solarized,堪称完美。
Octopress支持多种方式嵌入代码,可以直接嵌入代码,也可以引用github上的gist 。
我喜欢用三个反引号直接嵌入代码,比 codeblock
要简洁。
###启用MathJax
在source/_includes/custom/footer.html
的第一行加入如下代码:
|
|
这样就引入了MathJax的JS包,可以直接在markdown文件里直接写公式了,例如 $\dfrac {\pi}{2}$。
上面的代码也可以在source/_includes/custom/header.html
里添加,不过这样会使得页面的加载速度变慢。还可以在source/_layouts/default.html
里添加。
有一个问题,rdiscount这个解析器,对 mathjax 大部分支持,某些细节处理的不好,举个例子,它会在动把公式中的 ^n
转换成<sup>n</sup>
,例如$2^n$
会解析成$2<sup>n</sup>$
,这样就破坏了整个公式,导致公式无法解析。参考这里一段话:
as discount for example automatically replaces
x^2
withx<sup>2</sup>
which interrupts the MathJax rendering.
因此要换一个解析器,Maruku 和 Kramdown 都可以,由于Maruku主页PR=4,Kramdown的主页PR=5,我选择了Kramdown。
用Kramdown代替Rdiscount
修改Gemfile,增加一行:
|
|
很多博客都说要配套安装coderay这个gem,其实是没有必要的,只要代码块以 ``` 开始和结束,自带的pygments就能实现代码高亮。
在Git Bash输入如下命令:
|
|
就会自动安装kramdown。
然后在_config.yml 文件中,见markdown: rdiscount 修改为 markdown: kramdown。
使用kramdown,感觉它的语法要求比rdiscout严格,例如每个代码块开头,必须有一个空行,否则高亮就会失败,大家可以试试看。每个标题掐面,也必须有一个开头。
kramdown的两种公式,display和inline,都是以$$
开头和结尾的,display模式时,$$
要单独占一行。这跟标准的LaTex有点不一样。参考这里。
右击公式全屏空白:这时候右击公式,全屏空白。解决这个问题很简单,只需在 sass/base/_theme.scss
添加”#main”即可:
|
|
本节参考了Writing Math Equations on Octopress 和 在Octopress中使用Latex公式。
##kramdown的扩展语法
kramdown扩展了标准markdown的语法,有很多使用的功能。语法见官网文档。这里选一些我常用的。
脚注(footnote)
脚注定义是:[^1]:
,数字可以改变,引用语法是[^1]
。没有被引用到的参考文献,会被忽略掉。
表格
一下是一个示例:
|-----------------+------------+-----------------+----------------|
| Default aligned |Left aligned| Center aligned | Right aligned |
|-----------------|:-----------|:---------------:|---------------:|
| First body part |Second cell | Third cell | fourth cell |
| Second line |foo | **strong** | baz |
| Third line |quux | baz | bar |
|-----------------+------------+-----------------+----------------|
更详细说明见官网。
首页只显示部分正文(Excerpts)
Octopress中,可以使用 <!--more-->
,这样首页只显示一部分正文,并在每篇文章底下加一个Read on超链接。
插入图片
使用Image Tag。
语法
|
|
例子
|
|
添加about me 边栏
编辑 source_includes\custom\asides\about.html,内容如下:
|
|
在 _config.yml 的 default_asides 里添加 custom/asides/about.html。
##添加about页面
|
|
会生成 source/about/index.markdown 文件。
编辑该文件的内容。
然后在头部导航菜单中添加页面的超链接。具体做法是编辑 /source/_includes/custom/navigation.html 文件。
社会化分享
使用addthis.com的分享按钮,在网站上获取代码,粘贴到source/_includes/post/sharing.html
中,例如我的代码如下:
|
|
在_config.yml 中,将twitter, google+ 和facebook like的按钮设置为false,取消显示,因为 AddThis 已经集成了这三者。
社会化评论
启用Disqus,填入 short name即可。Disqus在国外流行,在国内的加载速度太慢,而且只有twitter, facebook, g+,没有照顾到国内的用户习惯,因此替换成国内的多说。参考这篇博客 为 Octopress 添加多说评论系统。source/_includes/post/duoshuo_thread.html
的代码略有不同,添加了data-title="{{ page.title }}"
,否则侧边栏的最近评论,标题为空白,感谢碟姐 - 在octopress中添加多说的最近评论指出了这一点,代码如下:
|
|
_config.yml 中的配置也略有不同:
|
|
设置固定链接
在 _config.yml 里,找到 permalink,设置如下:
|
|
效果就是www.example.com/blog/20130403/
。模仿的是豆瓣的URL格式。
参考官方文档jekyll Permalinks。
侧边栏显示分类目录
使用第三方插件 octopress-tagcloud。
##友情链接
在source\_includes\custom\asides
目录下添加一个blogroll.html文件,模仿about.html,添加一些友情链接,例如:
|
|
然后在 _config.yml 文件中,在 default_asides 的数组中添加 custom/asides/blogroll.html
。
##中文目录
TODO
##修改字体
Octopresss默认使用的是 google webfonts,见source/_includes/custom/head.html
里的两行代码。Google Webfonts是个好东西,但遗憾的是它没有中文字体。所以你用粗体,发现并没有变粗,就是这个原因。
首先,将head.html中的两行代码注释掉,省去了加载字体,加快网页加载速度。
|
|
参考 这篇博客 最佳 Web 中文默认字体,在sass/custom/_fonts.scss
中添加如下三行代码:
|
|
刷新网页,可以看见中文的粗体变黑了。
##一些汉化工作
在 _config.yml中,把 Read on
改为 “继续阅读”。
在 source/_includes/custom/asides
目录下,将”Recent Comments”改为“最新评论”,”Categories”改为“分类目录”,将source/_includes/asides/recent_posts.html
中”Recent Posts”改为“最新文章”。
添加统计代码
在_config.yml填入 Google Analytics Tracking ID,例如 UA-7583537-4
。
##第三方主题和插件
主题:3rd Party Octopress Themes
插件:3rd party plugins
##在一台新电脑上恢复
如果换了一台电脑,怎样迅速恢复环境呢?参考 Clone Your Octopress to Blog From Two Places。 注意,在windows上,要首先安装python,否则,虽然所有操作可以成功,不报错误,但是你发现打开后首页一篇空白,我当时百思不得其解,因为没有任何错误信息,最后去看生成的文件,所有index.html都是0字节,就猜测应该是编译出了问题。安装python就好了,linux默认是有Python的,就没有这个问题,windows真是坑爹!以后只在windows下做编辑类的工作,编译和运行都放到Linux下。
##TODO
修改字体大小
添加TAG支持
##参考资料