我的这个pelican博客已经有八年多了, 从最开始使用pelican2.x+bootstrap2主题到现在使用pelican3, 断断续续经过了各种折腾.

现在的blog虽然文件内容还很乱, 但是网页样式我基本满意. 问题就是pelican3加上我自定义的主题/插件, 配置起来实在太繁琐, 每次换电脑都要折腾半天...

所以之前我做了一个Dockerfile和GithubAction, 自动从markdown/rst文件生成静态网站的html文件: https://github.com/X-Wei/pelican-gh-actions-xwei

这个repo可以作为github action上运行, 比如每当commit到markdown文件夹的时候, 让github actor生成html文件然后commit —— 可以参考我的blog的github workflow配置.

今天又修改了一下, 让它也能在本地用docker跑, 免去了换电脑重新折腾配置的痛苦(这也是我这几个月没更新博客的原因, 之一). 这篇文章主要记录一下如何用Dockerfile在本地机器上预览或者生成静态网站.

build Docker image

首先需要使用Dockerfile来build一个docker image.
顺便给它加个tag叫"my-pelican-blog:latest" (-t my-pelican-blog:latest):

$ docker build -t ...

上次捣鼓pelican博客系统还是在2012年, 那时farseerfc学长就提供了无私的帮助, 当时非常兴奋写了这么一篇简单的教程.

这两天捣鼓了好久 终于把博客升级到了pelican3...

新的pelican貌似希望使用者把写作的内容和生成的网页分成两个repo管理, 我嫌麻烦还是把它们都放在了一个repo下面: https://github.com/X-Wei/x-wei.github.com 这个repo包含了生成的网页以及我写作的内容(在pelican_dir目录下面).

换了超赞的新皮肤, 这个是farseerfc学长定制的bootstrap3主题, 非常精美. 学长的版本包含了繁简英日翻译以及导出pdf/png什么的按钮, 功能非常全, 不过直接拿来用不太合适, 比如我就不需要博客的日语版... 我实际是用的silverchard对farseerfc学长主题的修改版. 再稍微修改了一下配色什么的...

如果想要做一个类似的博客, 下面是一些步骤:

1. 安装软件

首先安装pelican3以及其他一些python module (另外个人建议新建一个virtualenv在里面搞):

pip install pelican jinja2 py3babel babel beautifulsoup4 markdown ...

1.插入视频

效果就像校内网日志那样, 可以内嵌的视频.

其实很简单, 只需要把html代码放进markdown源文件就行了! 而视频的html代码在视频网站上一般都会提供:

复制下来放进源文件即可

2.删除线

markdown不支持删除线? 反正我没有在教程里找到... 但是删除线确实是个有用的功能, 在zim里记笔记的时候我就经常使用. 但是好像听说markdown是支持html内容的, 那么, 是不是直接加html的删除线代码就行了呢? 果然~!

<s>文本</s>
or
<strike>文本</strike>

嗯, 更复杂的html样式如果markdown没有的话也可以用这种方法弄~

3.给博客加入分享按钮

这个也是用网上找的html代码, 然后修改了一下主题(pelican-themes/bs5)中的一个html文件, 不过我水平太菜, 改了好久也没能让分享按钮处于标题下方...

2012-05-31补充

原先那个分享的按钮不好看也不很好用, 我借鉴了ubuntusoft网站上的分享按钮和回顶部按钮, 查看了下网页代码, 原来是用的百度分享以及友荐按钮, 修改主题文件./pelican-themes/bs6/templates/base.html,在 ...

明天ubuntu12.04LTS就要发布了! 然后今天下课回来在各种网站上闲逛, 突然发现了这个页面: 给网页添加ubuntu发布倒计时. 很厉害的样子, 介绍说只要把那一段代码加入网页的html文件就可以了. 我试了一下, 直接加在index.html上面--还真的可以唉~~

不过, pelican每次都是自动生成和更新index.html的啊, 难道每次都要手动加入这一行代码?? 难道还要自己修改pelican的代码??......

此时我想到了farseerfc学长的配置文件, 其中我把他的微博秀那几行注释掉了:

#~ SIDEBAR_CUSTOM = r"""
#~ <li class="nav-header"><h4><i class="icon-list-alt"></i>Weibo</h4></li>
#~ <iframe width="100%" height="550" class="share_self"  frameborder="0" scrolling="no" 
#~ src="<http://widget.weibo.com/weiboshow/index ...

虽然我的blog点击人数可能还是个位数的, 我还是每天都想折腾一下它...

bootstrap2模板里提供了很丰富的内容(可以看farseerfc学长的页面), 其中的google站内搜索我觉得很有用, 于是也自己去弄了一下...

使用google自定义搜索

要登录google自定义搜索, 的页面, 用google帐号登录, 然后选择新建一个自定义搜索引擎, 会看到这样的界面:

第一项的名称和描述啥的随便填就行, 关键是第二项"要搜索的网站", 可以点击"了解详情"看一下应该怎么写. 比如我的网站是x-wei.github.com, 而且我想是在这个网站的所有子页面中搜索, 于是这里就填写: x-wei.github.com/*即可~ 第三项当然是免费版, 然后下一步.

下一步是一个测试, 可以在搜索框里尝试一下能不能得到想要的结果(我就是这里有问题的, 待会说). 如果没问题, 点击下一步, 下一步是给出了一段html代码, 把这些代码加入网页就可以添加google自定义搜索栏了(不过使用pelican写博客的话就不用这样了, 见后文).

嗯, 这个过程还是非常简单的吧!~

如何把自定义搜索栏加入pelican生成的页面

首先, 可能只能使用bootstrap2这个主题... 然后, 在settings.py ...

2016更新
新博客用了pelican3, 参考这里

折腾了许久, 终于把我的博客搞得差不多了, 在此写一个总结, 以免自己以后忘了, 并且给和我一样菜的人提供一点参考....

先扯点别的

其实啊, 很早就想要建立自己的博客, 把值得分享的东西拿出来放到网上, 但是又不屑于使用网易, 百度等提供的现成服务, 技术又很菜... 于是一直拖着. zim的出现让我很欣喜--zim可以写类似于博客的东西(不过是给自己看的~), 记录有价值的内容. 但是怎么把我的一些总结放到网上?? 我先后考虑了这些东西:

googlesite-->wordpress-->jekyll+github-->pelican+github

googlesite是个很好的工具, 很容易上手(google好赞...), 我曾经用它做过一个个人页面. 但是这种傻瓜工具的缺点就是: 没法自己定制... 当我发现googlesite的bolg页面不支持标签云的时候, 就决定不用它了... 况且googlesite在国内需要修改一下host才能访问...

然后是wordpress, 这个似乎目前也是最流行的网页制作工具, 我看到了很多很多大牛小牛使用WP搭建的自己的网站, 而且都是自己的顶级域名, 看上去就灰常霸气~ 当我终于有空折腾, 兴冲冲地研究WP时, 却发现顶级域名注册都是要交钱的, 还要弄什么vpn...这 ...

建立起了我的github博客~!

作为一个很菜的低端桌面(ubuntu, gnome)用户, 这个还是相当不容易啊~~

本来考虑使用的是jekyll, 但是安装过程老是报错... 最终选择了pelican生成静态页面, 这个工具很好用, 只是目前关注度不足啊~ 关于pelican的介绍可以参考 这里 , jekyll我折腾了N久没有搞定, 而pelican很快就装好了~ 非常感谢 farseerfc 同学, 非常耐心地回答我这个菜鸟的问题... 不过还是自力更生比较好, 好好看它的 文档 吧~

另外, 我之前用 zim 写了一些笔记, 准备把值得分享的部分放到blog上来. zim0.56刚刚开始支持把笔记导出成markdown格式, 这实在是太棒啦!!