今天的主题,来自于知识星球上星友晓明的提问,我先原文列出他提的问题。
我最近在尝试学习编程,但经常出差,在家中电脑,办公室电脑,出差用的笔记本中断断续续完成了一些小的工具。 像语音识别,我关注的豆瓣分类切片, vue 搭建。 如何统一的管理自己做过的小项目和代码? 当项目放置一段时间后,继续的时候往往要从头开始,以前遇到的问题还要再解决一遍,而且经常是再搜索,再尝试,再解决。完全没有复用。 请教王老师有什么经验可传授。
我觉得这是一个非常好的问题。因为我自己也曾经遇到过。作为一个懒人,我非常追求效率。毕竟如果不愿意花时间做重复机械的活动,咱们就需要有自己的一些技巧。
例如说发布公众号。我知道,到今天为止,还有作者采用手动方式,在公众号后台进行编辑。我不是说这方法不行,毕竟人家微信给了你一个编辑器,显然就说明它可以这么用。可问题是,如果你像我一样,多平台(包括但不限于少数派、知乎、科学网等)发布信息,那么如果你好不容易写完了内容,还要在每个平台上重新编辑一遍,包括调整格式、插图…… 这个事儿我只要一想起来,基本上也就不用做了。
那我是怎么做的呢?
我从 2017 年开始,就做了一个 Python 项目,wsymarkdowntools
。顾名思义,就是王树义的 Markdown 工具(们)。
一开始,我主要用它来做一件事情 —— 把 Markdown 撰写的本地图文内容,全部插图上传到图床,然后图床链接替换掉本地的,形成新的 Markdown 。这个 Markdown 的作用,是只要你把它贴到某个渲染工具里,就可以图文并茂,复制粘贴到各大内容平台的编辑器里面了。
我知道,看到这里,你可能已经嗤之以鼻了 —— 这东西还用自己编程?Typora 就能干!
我当然知道,而且现在还有 Metion 等更好用的工具,连图床设定这些全都免了。甚至,你可以直接在飞书里面写,然后自动同步到少数派上。
只不过,Python 编程制作 Markdown 处理工具带给我两点好处:
第一、我用它给 Python 技能「保温」。使得我可以在不断编写和改进的过程中,温习 Python 的基础知识。这就是古人说的「拳不离手,曲不离口」;
第二,也是更为重要的——它可以帮助我更加灵活地自动化工作流。
你看我的每一篇公众号文章末尾,几乎都有个「延伸阅读」部分,对吧?根据每一篇新文章的内容特点,找寻自己发布过的文章里相近的主题,推荐给读者继续来看。原本那是我自己手动来设定的。但是坚持了大概半年后,我实在受不了了。因为随着积累的文章越来越多,这个找寻过程,也变得越来越复杂繁琐。
所以,我编写了一个 Python 脚本,自动帮助我从以往发布的文章里,匹配适合放在延伸阅读的项目。
使用的是 OpenAI 的 Embedding。当然,目前用的还是 ada-002 版本,也该更新了。不过我这人懒,你懂的。
这样一来,写作完成之后,我只需要用 Keyboard Maestro 呼叫一个快捷键,立即一个完整的「延伸阅读」板块就完成了。
如果你喜欢本文,别忘了点赞。
欢迎把文章转发给你的朋友,或者在社交媒体上分享。
如果你想看更多的内容,欢迎订阅本专栏。每个月更新不少于3篇文章。目前价格优惠。
## 延伸阅读
- [一页纸搞懂《卡片笔记写作法》](https://wangshuyi.substack.com/p/392)
- [【星球精选】Obsidian 中的 excalibrain 插件:免费的 theBrain ?](https://mp.weixin.qq.com/s/5sHR7MpcmvJHrsORCzrTKA)
- [可视化卡片笔记写作?我试了最近才开放的 Heptabase](https://mp.weixin.qq.com/s/1gfVFCUh2fM2l54FQ_WZlg)
- [如何把 Markdown 免费在线转换成 RevealJS 便携幻灯?](https://mp.weixin.qq.com/s/qN3EbDE0vAhS-Fhz9joAyw)
- [卡片式笔记工具 Roam Research 介绍](https://mp.weixin.qq.com/s/YJ4r3wCb4dVWHXCC7u8kGw)
不需要自己去翻箱倒柜查找,岂不美哉?
这还不算完。你会发现,生成的「延伸阅读」里面的链接,都是微信公众号的。可是我如果发到知乎上,所有的链接全都指向了公众号,则知乎上那些相关文章就会被读者忽略。另外文内也有参考阅读链接,总让读者在不同平台之间跳转,显然无助于增强阅读体验。怎么办呢?
我编了另外一个 Python 脚本,帮我根据目前需要发布的平台,把文章全部链接,都转换成本平台上的旧文链接。当然有的时候一些文章微信公众平台独有,则保留微信链接。
不仅如此,这个脚本还可以同时调整结尾的内容,例如在微信文章末尾,会给出二维码,请大家关注公众号;而在某些平台末尾,却绝对不能加二维码,否则发布都通不过的。
有了上面这些小工具的帮助,我多平台发布的过程少了很多辛苦低效劳动,显著降低了多平台发布的边际成本。
但是,写到这里,你就知道我为什么对星友晓明的提问有深刻共鸣了 —— 这些工具很好用,但是都是根据开发者自己需求来定制的。一旦出现问题,全都得自己来解决。
从前,查询如何开始编写一个功能,我得找搜索引擎帮忙。一运行就报错,就得到 Stackoverflow 上面查找答案。有的时候,不得不「回归本原」去查看官方说明文档,或者到某些论坛上查询类似问题的解决方略……
你以为这就完了?大错特错,最要命的地方,是你好不容易让自己的工具顺利运行起来,刚高兴没有几天,软件包升级了,于是同样的执行过程,你收到的不是结果,而是报错信息。
于是,你得重新打开 Stackoverflow ……
这几年里,我还曾经尝试重构 wsymarkdowntools
,包括把原先的结构化脚本,改成面向对象的。那过程,简直可以用「苦不堪言」来形容。
Keep reading with a 7-day free trial
Subscribe to Shuyi’s Newsletter to keep reading this post and get 7 days of free access to the full post archives.