从用开源项目建博客,到为开源项目贡献代码

起因

最近看到了dk大佬的个人读书笔记 使用Teadocs构建,感觉站点样式很简洁很酷,一眼就爱上了。

所以自己也使用Teadocs搭建了搭建一个读书站点欢迎访问!这里记录一下建站历程。

为什么选择Teadocs?

其实选择Teadocs只是个人喜好而已,选择过程有个人主观倾向,仅供参考。这也许算是安利文吧哈哈

对比

要建立类似个人笔记、API文档这类的站点,其实有很多方案可供选择,而我个人选择的候选人必须具备以下特点:

  • Markdown编写
  • 纯静态站点,可无后台部署
  • 简约好看,看着顺眼
  • 支持自定义样式

Hexo

  • 老牌Markdown静态站点搭建方案,大家都知道
  • 丰富的社区,成千上万的皮肤与插件可供选择
  • 你现在看到的这个博客也是Hexo驱动的哦~

VuePress

  • Vue团队出品的静态站点搭建方案
  • 支持Vue的模板语法、组件等诸多功能
  • Vue官方还有好多文档站点也还在用Hexo
  • 默认样式更适合做开发文档,不太适合e做读书笔记

Teadocs

  • 个人开发者维护的开源项目
  • Markdown编译出的HTML,每个页面都可以单独部署
  • 简洁的样式,个人非常喜欢
  • 支持皮肤功能,但没有对应社区(对我来说默认样式已经够了)
  • 内置搜索功能,无需关注任何额外的技术问题

开始使用

使用官方提供的命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
npm i teadocs -g
# 安装Teadocs

teadocs init mydocs
# 新建Teadocs项目

cd mydocs
# 进入新建的项目

teadocs dev
# 启动开发服务器,开始编写

teadocs build
# 编译成HTML文件

可以快乐编写你的文档啦~

遇到问题

在我安装的v0.4.0这个版本,我发现文章命名不支持中文。

具体表现为如果.md文件名包含中文,就会出现乱码的情况。
中文.md 会变成 %E4%B8%AD%E6%96%87.md
从而导致丢链接等情况

使用全英文命名避免问题?

不用中文命名,很简单吧?dk大佬的站点就是纯英文命名

但对于我这种英语渣,又是做读书笔记站点,将图书名翻译成英文效果往往不好

而开源软件的好处也在这时体现出来了,我可以自己提交PR来解决这个问题!

从提Issue到提Pull Request(pr)

发现

经过上一节的发现,乱码可以使用JavaScript内置的decodeUrl函数来解码

1
2
decodeUrl('%E4%B8%AD%E6%96%87.md')
// 中文.md

想象了一下,感觉这个问题不是很难解决,所以…

解决问题

歪比歪比,歪比巴卜!

(两小时以后)…

经过一个小时的调试和20分钟的测试(其他的时间在看NodeJS的API 2333),成功把代码写出来并通过测试了。

看到测试成功效果的一瞬间,我的喜悦难以言喻,就好像有一个包含着棉花糖的泡泡从丹田一路涌上心头,冲到喉咙,非常想要大喊一句,但喉咙发不出声音,可还是忍不住做了个一拳打天的胜利姿势。

这是年轻人第一次贡献开源项目代码 值得纪念!希望我的代码不会带来更多的bug,当然如果有,我也会解决它!

收获和喜悦

截止至2020年03月12日11:43:24 我提交的PR还没被合并,如果被打回,我会继续提交的!

收获了一份久违的成就感(从两年前开始好像就没再能从编程领域获得成就感),一份自信。虽然代码不难,但这对我的意义真的很大。仿佛得到了认可,不论如何,我希望我能记住这份喜悦!

经过一个小时的调试和20分钟的测试,成功把代码写出来并通过测试了。
看到测试成功效果的一瞬间,我的喜悦难以言喻,就好像有一个包含着棉花糖的泡泡从丹田一路涌上心头,冲到喉咙,非常想要大喊一句,但喉咙发不出声音,可还是忍不住做了个一拳打天的胜利姿势。

感谢dk大佬曾经对Teadocs的重构,不然我也没办法这么简单的实现这个功能。