Pyblic 是什么?
基于 Flask(Python 生态最简单的 web 框架)和 Markdown 的 git 写作系统。设计目标是极简的实现逻辑和随心所欲的掌控。
「多余取景器」是基于这套系统实现。
为什么要做 Pyblic?
首先需要问的是,为什么要用 git 管理自己的写作?
写作是一种知识树的重组织。基于有限的文档撰写经验,我发现用 git 更新文档是一种非常舒服的方式,好处包括:
一、版本化、可追溯
对于知识体系而言,思路变化的过程其实很可能非常值得记录。对于同一个主题,可能出现结构上的大幅调整,而这时如果出现大段删节,其实会挺「心疼」的。有了 git 机制,现在就可以大刀阔斧,反正万一删掉的东西有用,后面版本需要的话还可以找回。
二、版本的合适粒度
现在大部分的文档工具,包括石墨文档、WPS 都开始支持类似「时光机」无限历史版本回滚,是不是已经远好于 git 了呢?其实不是。
「时光机」的回滚是自动生成的,索引的唯一方式是时间。而 git 每一次 commit,都会要求你手动撰写 note。这其实是梳理自己想法变化的一个很好时机。而 git 管理工具基于 commit note 的清晰时间线,能够让想法变化的整个过程一目了然。
三、集中和专注
传统写作的过程会打若干版本的草稿,放在印象笔记/熊掌记的不同条目下。成稿的时候再去索引、查找和组织成篇。使用 git 之后,写文章就和写代码一样,始终只需要面对一份代码库,不断往前迭代即可(实在不确定性太大还可以开分支),这种工作方式带来的集中和专注感是界面上的优化无法带来的。
更直接的,是可以用自己熟悉的代码编辑器,比如 Sublime Text、VS Code 等等,直接像写代码一样写文章。无需习惯调整,还更方便直接用代码控制内容之外的部分——比如样式和页面结构。
除了是 git 写作,Pyblic 还有什么特性?
Pyblic 为把技术栈压缩到极简,省去了大部分功能,包括但不限于:
- 互动/留言功能
- 丰富的样式
- 多级导航
- 复杂的分类和存档
- 图形化后台
这样的好处是什么呢?直接的变化是,你可以直接把代码库作为你的文章库:只有一个 repo,无需费心处理子母 repo 的关联关系;也不用考虑 RDS 的备份或各种文件存储方式的备份——你的 repo 里已经包括了你所有的劳动成果:无论是文章内容,还是对页面样式、网站结构的调整。
Pyblic 基于 Python 生态,也把搭建部署简化到了极致。整套代码只有非常简单的依赖:Flask、Markdown,以及用于搭建服务的 gunicorn 和 supervisor。安装流程指引也在同一个代码库中,无需四处翻找。
总之,从里到外删繁就简,从而达到「一手掌控」的效果。
Pyblic 适合什么人?
工具栈的极度简化(只有 Python 和 Markdown),直接结果是 Pyblic 几乎没有让人分心的「可玩性」。没有琳琅满目的模板、插件可供选择,反而能逼迫自己立即开始写作。同时把底层的 Python 代码逻辑暴露给你,也使得定制设计的难度完全可把握,也丝毫不用担心创造力受限。
如果你略懂代码,同时保持专注对你来说很难也很重要,Pyblic 就是很不错的选择。
推荐的工作流程
顾名思义,Pyblic 是一个公开发表工具,因此它并不试图替代熊掌记、Typora 这类笔记应用。
我的使用方法是:
- 平日在熊掌记中随时记录灵感,并起草文章。
- 到准备正式发稿的时候,打开 Sublime Text,将熊掌记的代码复制到 .md 文档中,在本地执行
./dev.sh
预览,做最后的审阅。 - 完稿后通过 git 推送到 github,再部署到服务器上。
- 如果需要修改,就直接在版本库中进行,不必再回到笔记应用了。
听着挺不错,代码开源么?
暂时不。Pyblic 是一时心血来潮,总共只花了两个晚上写出来(作为强迫症患者,大半时间在雕琢样式)的东西,目的是自用,代码质量尚不足以开源。其实一共也只有 50 行 Python 代码 ;告知技术栈后,相信普通程序员一个晚上也能轻松搞定:
- Python3 库:Flask、Markdown、gunicorn、supervisor
- CSS 库:typo.css
- 服务器:nginx
当然实在有兴趣也可以私聊,单独发你。
结语
最近十多年,独立网志一直是个人很重要的知识来源。即便如今互联网生态日趋封闭,在微信微博知乎之外稍加探索,仍然能够发现「别有洞天」——剩下的都是陈皓、阳志平、阮一峰、池建强这样的老「学究」,味道绝对独特。这个群体的内容特征,可以用陈皓先生的一句话概括:
信息的传播正确姿势,是被检索、讨论、引用、整理、补充和更新,而不是社交网络的转发、点赞、粉丝、订阅和打赏。
—— 陈皓《为什么我不在微信公众号上写文章 》
祝写作愉快!