Blog搭建

搭建Blog的起源

开篇先占个地方先,利用Markdown来插个图。

北海道“脐眼之城”

上面吧其实就是北海道“脐眼之城”,看上去蛮漂亮,有生之年要去一趟日本。

其实这里还有一个很大的问题,Pelican没有实现自动调整图片的大小(汗),刚开始放在这里的一张图片是1000 x 1000大小,直接out of space,看上去很丑,不知道当时作者设计Pelican的时候想过这个没有。如果要加入图片,控制大小,有一个解决方案就是直接写Html代码,不过我不会,所以暂时没这么做。

OK,进入正题,为什么我要搭建一个个人Blog ? 其实这个问题一直想,但一直都没有怎么实现。以前一直在sina以及CSDN上写些什么,但脑子里一直想用自己的域名建立一个blog。一来写下自己的一些感想,包括生活以及学术科研之类的,二的话也可以锻炼自己表达能力。当然,关于别人提供的Blog空间有诸多不便,例如公式插入就只能用图片(sina)。反正诸多因素影响我决定自己搭一个blog方便自己。今年,伟州同学推荐我用ruhoh做一个静态blog。对于我这个小白来说,什么动态、静态Blog一窍不通,但还是试了一下,蛮有意思。这里给出我师弟的BlogHahack,刚开始的时候折腾了几天ruhoh,发现并不难,当然符合我这个小白的想法了。不过一直没下定决定好好整。一拖再拖,从7月份建了一个主页之后一直没管,时光匆匆,2013过去了,下定决心要整整个人Blog,但积极促使我下定决心的前期居然是我想要学习一下Python这门语言,听说很神奇。然后找到了用Python写的静态Blog生成器Pelican,那就开始咯!折腾了半个月,总算有点雏形了-_-bb

不管怎么样,从当初一点点想法,再到慢慢付出实现,自己的一个简单Blog终于搭好了。当然这里面发现了很多问题,后续慢慢改进吧!


安装Pelican

我的环境是Windows7,其实前段时间尝试ruhoh的时候发现在Windows7下很难装,缺枝少叶的。Pelican安装过程还好。按照其官网安装就行。不过我没装虚拟机,其他的,Python啦,pip还有setuptools之类的,直接去网上找,然后按照各自给出的安装方法即可。

好了,在装上Python,pip,以及setuptools之后,进入个人下载Pelican的文件夹下执行:

python setup.py install

一般都会安装准确,不准确我没遇到过,不知道呀!然后安装完后,下载Github for Windows(我是部署到Github)上去。打开一个Git控制台一样的东东,运行:

mkdir Blog

建立Blog目录,然后:

cd Blog
pelican-quickstart

在一系列安装完成后,Pelican安装完成。安装完成后,根据个人需要更改各种配置,我直接换成了"simple-bootstrap"主题,在Pelican-themes包中。

同时在pelicanconf.py中设置

THEME = "Blog主题的文档Path"

我使用的绝对地址。使用相对地址有时候会挂掉,不知道为什么。然后就是针对pelicanconf.py里面各种配置了。


个人Blog配置

我觉得每个人对于自己的Blog都有自己的理解,包括怎么用,怎样展示给观众!那我这里的Blog会记录自己的生活杂事,可能会记载一些照片,当然最主要的目的是为了学术科研。其实,不止一个人提醒过我:

看论文的时候要注意记录笔记。

不是我没有做笔记的习惯,是因为我丢三落四,到最后记的笔记失踪了,这种情况发生过很多次,最终不了了之了。所以,建立一个blog,主要记录自己的学术科研咯!所以我主要的配置:

  • Disqus
  • LaTeX

关于Disqus的配置

Disqus是一个网络评论系统,静态blog不能像别的系统一样简单的评论,所以需要这样一个系统。Pelican也支持这个系统。安装过程:

  1. 首先去Disqus注册一个账号,然后一定要找到一个叫做“sitename”的地方,并填好(例如:“HelloBlog”)。

  2. 找到你Blog的文件,打开pelicanconf.py文件,里面加上DISQUS_SITENAME = "HelloBlog"(刚才注册的“sitename”)。

  3. 但是每次在本地预览Blog的时候,Disqus会指向这个地址,而不更改。暂时的解决办法是在pelicanconf.py的“SITEURL”中加入自己Blog的地址(远端地址,如“http://hahaha.com/”)。

这样设置后,大部分Pelican的主题没有问题,都支持,有少数的依然不能加载动态的评论系统,算了,暂时不懂,回避之。

关于 \(LaTeX\) 的配置

学术,少不了公式之类的东西,所以选择“LaTeX”插件,然后链接上Mathjax来实现。首先按照官方文档配置好pelicanconf.py插件模式:

PLUGIN_PATH = "../pelican-plugins"
PLUGINS = ["latex"]

Pelican插件可以在这里找到。但是更新很慢,导致有些插件在最近的几个Pelican版本都不能用了。然后在按照上面的配置设置,其似乎“PLUGIN_PATH”中,我设置的是绝对地址。设置完后,其实还要到Pelicansettings.py设置一下。一般该文件目录在“Python/Lib/site-packages/pelican”中能找到,如果不行,执行下面代码能看到路径:

pelican-themes -l -v

然后在settings.py文件中,设置“PLUGINS”

PLUGINS = ["pelican.plugins.latex"]

当然,在此之前,先在settings.py同一个文件下,创建一个“plugins”文件夹,并把插件“latex.py”考进来。这里还不行,刚开始的时候,按照latex插件的ReadMe加入以下代码到你用的blog模板(我的是“simple-bootstrap”)的“base.html”中的

{% if article and article.latex %}
    {{ article.latex }}
{% endif %}
{% if page and page.latex %}
    {{ page.latex }}
{% endif %}

虽然这样能够在博文中显示公式,但如果公式出现在首页,依然没有渲染,所以又找到一个方法是用Mathjax直接渲染,即将以下代码加入到“base.html”中的之间:

<!-- Using MathJax, with the delimiters $ -->
<!-- Conflict with pygments for the .mo and .mi -->
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
    "HTML-CSS": {
        styles: {
            ".MathJax .mo, .MathJax .mi": {color: "black ! important"}}
    },
    tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']],processEscapes: true}});
        MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function () {
            var VARIANT = MathJax.OutputJax["HTML-CSS"].FONTDATA.VARIANT;
            VARIANT["normal"].fonts.unshift("MathJax_SansSerif");
            VARIANT["bold"].fonts.unshift("MathJax_SansSerif-bold");
            VARIANT["italic"].fonts.unshift("MathJax_SansSerif-italic");
            VARIANT["-tex-mathit"].fonts.unshift("MathJax_SansSerif-italic");
        });
        MathJax.Hub.Register.StartupHook("SVG Jax Ready",function () {
            var VARIANT = MathJax.OutputJax.SVG.FONTDATA.VARIANT;
            VARIANT["normal"].fonts.unshift("MathJax_SansSerif");
            VARIANT["bold"].fonts.unshift("MathJax_SansSerif-bold");
            VARIANT["italic"].fonts.unshift("MathJax_SansSerif-italic");
            VARIANT["-tex-mathit"].fonts.unshift("MathJax_SansSerif-italic");
        });
</script>

<script type="text/javascript"
    src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML">
</script>

这样一来,主页的数学公式就能渲染了。测试一下公式显示:\(E=mc^2\)。 但这里依然有个很大的问题,就是无法利用latex方式加入引用,或者是加入引用后,引用的东西是乱码。暂时不知道怎么解决。


结束语

搭建Blog的过程中遇到的问题其实很多,尤其对于我这种小白来说,抱着拿来即用的方式,别人有什么,我肯定能用什么,也因为这样,Blog蛮受制于别人开发的工具。所以列出未来要做的事情来改进个人Blog:

  • Pelican的主题,我都不喜欢,所以接下来有时间要学习Html,CSS,twitter-boostrap来创建自己的主题。当然挺喜欢师弟伟州的Blog主题的。

  • Pelican是用Python写的,而且Python在学术上用的也很多,所以重点要学习一下Python。

  • Markdown实在太简单了,连字体颜色都没有,找一个能够替换的吧!对了,Pandoc-Markdown for pelican插件用不了,不知道为什么。

  • 需要找一个编辑器,能够边写边预览,要不然写一点,make html一下,localhost:8000刷新一下,感觉很不爽。

    路漫漫其修远兮,吾将上下而求索 -- by 屈原

Comments