xdays

基于GitLab的Pages服务构建静态博客

背景

之前我有一篇博客讨论过基于Pelican, Github以及Nginx+Lua实现的自动发布静态博客。最近重新思考这个方案感觉不够精简,也许当时是出于学习的目的引入了Ngnix+Lua这块。正好今年上半年GitLab宣布支持Pages服务了,而且支持的远比Github彻底,所以决定将我的博客托管在GitLab的Pages上。

流程

本地只需要往Git仓库里添加或者编辑markdown文件,当源文件被push到Gitlab服务端,触发GitLab的Pipeline,Pipeline完成由markdown源码到html文件的构建,最后由GitLab的Pages服务来托管html文件。

配置

迁移仓库

在GitLab上新建一个仓库,按照规范我这里将其命名为 xdays.gitlab.io ,然后将Github上的源码pull下来推到GitLab上:

git clone git@github.com:xdays/xdays.me.git
git remote add gitlab git@gitlab.com:xdays/xdays.gitlab.io.git
git ...

Pelican和Github构建静态博客

缘起

最近因为要换工作了,时间比较空闲,所以打算好好整理下自己的博客。想来博客写的越来越少也挺惭愧,好多东西都只停留在笔记的草稿阶段,没有写成博客,后续慢慢整理出来。回到正题,我开博客伊始一直用wordpress(下文简称WP),有点自然不必多说,成熟稳定,功能全面,主题丰富;但是我最近渐渐在思考我真的需要它么,我的日常操作不过是当我的笔记草稿足以成型为一篇博客,我把它粘贴到WP的编辑框,选择下分类,打上标签,点击发布,仅此而已;为此还安装插件让WP支持直接在编辑器里贴markdown;所以我需要的只不过是能够渲染markdown,生成静态html即可,不需要php,也不需要数据库;此外,博客自动发布也是我需要的一个功能。

计划

首先,选择静态博客生成器。目前jekyll的风头最大,但我没有选择他有两个原因:一是学习成本比较高,我只是想用你生成html你却让我学习那么多东西,不值得;二是我是Python党,我希望我用的工具能提升我的Python技能,嗯,这个也很重要。所以我选择用Pelican,它足够简单,拿到就可以使用。

然后,迁移。基本所有的静态博客项目都提供了导入的功能,尤其从WP这样如此流行的项目,但是 ...

blog与wiki的区别

我从《你的知识需要管理》中了解到,个人知识管理的环节可以包括:学习->保存->共享->使用->创新;个人认为共享,使用和创新三个环节都可能出发另一个学习的过程(我一直没有好的流程图软件来表达这种流程关系),这样形成一个良性循环。而对于我这样一个没有记忆力的人来说,保存环节就特别重要。

对于保存知识,我目前有blog,wiki和note三种方式;我建立这个博客的初衷是记录点滴生活,学习总结和技术分享交流;后来在工作之后接触wiki又搭建了个wiki系统来组织自己的知识,希望最终能构建一个自己的知识库,这其实也有些盲从,所以有半年之久也没有更新博客了;笔记软件主要是Eernote和有道云笔记,主要用在学习的环节,完全是一个中间过程。最近在思考自己的成长,首先思考的用来保存知识的工具选择,blog和wiki的本质区别在哪里,google&百度了一番,总结如下:

  1. blog强调个人思想,是个个性化的东西;wiki强调组织多人协作,主题和编写规范都要遵循严格的规则(不这样肯定乱套了)。说到这一点,我建立自己的wiki系统就是盲从wiki整齐的规范这一点,多人考虑出的规范肯定比一个人合理。
  2. blog基于时间线呈现,主题只是一个组织的工具;wiki基于主题呈现,时间只是一个追踪的工具。
  3. blog是一种一对多的关系 ...

博客更换自制主题

近来受找工作困扰没有心思学习,决定全新制作自己的博客主题。找到一篇基础的教程WordPress 主题教程,虽内容有些老了但还是很有参考价值的,起码搞清了整个博客中层是怎么运作的,底层的函数调用太过复杂,一时半会是没精力学习了。

说下总体想法:

  • 核心功能就是以最简单的方式显示日志
  • 侧边栏仅保留了分类目录和日历
  • 页面仅有index,single,search和category四个
  • 得意之处是通过制定margin为负数实现了顶部的logo
  • 通过自定义pre标签的css实现代码高亮

当然肯定还有很多bug或不足之处有待发现。