开发日志

建站过程公开透明,每一次小步迭代都记录在这里。

网页提交手机投稿现在只走小程序原生页。返回首页
共创 162026-03-31

教程魔法棒和自动提取这条线,今天终于顺了

今天补一条手机直发的开发日志。 今天主要把萌新教程导入这条线重新捋顺了。 最开始的问题其实很具体:网页改版以后,右下角那个魔法棒没法再直接带我进教程导入页了;就算进去了,贴完公众号链接还得再手点一次“提取信息”,整个过程很容易断。 所以这次先把入口改回来了。 现在右下角魔法棒重新变成教程入口,点一下会先弹出密码框,输入 code,就能直接跳进教程导入面板。 这样至少“从哪里进去”这件事不再需要我自己记路径了。 第二段是把导入过程再往前推一步。 现在只要我把公众号链接粘进去,页面停一下就会自动开始提取标题、作者、日期、摘要这些字段,不用再额外补那一下手动点击。 我把回车和按钮都留着,方便重试,但默认路径终于变成更顺手的自动提取了。 中间还踩到一个很烦的本地预览坑。 当时页面一直报:抓取或解析微信公众号文章时发生错误:getaddrinfo ENOTFOUND mp.weixin.qq.com。 后来确认不是教程逻辑坏了,而是本地 Node 进程偶发解析不到微信域名。 所以又补了一层开发环境兜底:如果 Node 这边 DNS 失败,就退回系统 curl 去抓文章页面,至少本地预览不会再因为这个错误把自动提取卡死。 今天这条改动看起来像是在补几个小口子, 但我自己最在意的其实是:教程入口终于重新变得顺手了,贴链接也终于更像“放进去就自己开始干活”的感觉了。 记录人:吴熳

点任意图片可打开原图。

共创 152026-03-26

Cloudflare 自动部署这条线,终于摸到门了

今天主要在折腾牛马库迁到 Cloudflare 这条线。 本来以为只是换个平台部署一下,结果真正做下来才发现,OpenNext、Wrangler、Worker、环境变量、GitHub 写回、域名路由,全是一环套一环。中间最绕的是 Cloudflare 里冒出来一个 ka21-tools,我还以为域名搞乱了,后来才确认那只是内部 Worker 名,对外正式域名还是 ka21.org。 现在好的部分是:Cloudflare 构建已经跑通,Worker 也发上去了,ka21.org/* 的路由也挂好了,GitHub 和管理员的 secrets 也都配进去了。卡住的最后一步是域名还在 pending,要等 Spaceship 那边的 nameserver 真正切完,Cloudflare 才会完全接管流量。也就是说,最难的骨架已经搭起来了,就差最后这一刀把线上正式切过去。

纯文字记录:Cloudflare 自动部署迁移
共创 142026-03-26

灯下白播客数据抓取终于跑通了

今天这条,我是真的想认真记一下,因为《灯下白》播客的数据抓取,终于跑通了。 一开始我想要的结果其实很朴素: 每天能看到各个平台播放量,最好手机上点一下就刷新,最好还能自动留住当天快照。 结果真正做起来,坑是一层一层往外冒。 先是抓取链路本身不稳定。 有的平台能抓,有的平台超时,有的平台公开页根本不给播放量。 后面就变成了,不是“写个脚本”这么简单, 而是要把不同平台的抓取方式一条条拆开, 再统一汇总到同一份快照里。 然后是展示链路。 本地能看到,不代表网页能看到; GitHub 里有数据,不代表线上已经拿到; 就算线上接口已经有了,浏览器缓存还会把你拖回昨天。 最烦的时候,是我明明已经抓到了 2026-03-26 的数据, 网页上却还停在旧日期,看着特别气。 最后卡我最久的,其实是页面上那个“立即刷新数据”按钮。 表面上看像是按钮没反应, 实际根因是线上刷新接口把它当成管理员接口拦住了, 直接回了 admin-auth-not-configured。 也就是说,前端点得没错,真正堵住它的是后端权限链路。 今天终于把这条线全打通了: 1. 2026-03-26 的快照已经抓到并写进站点数据; 2. 灯下白沉浸页默认就能看到最新日期; 3. 页面上的“立即刷新数据”按钮现在也能直接触发同源刷新; 4. 同样格式的线上 POST 我也验过了,返回 200,刷新成功。 现在最新一版总播放是 1204。 看到数字真的跑起来,我一下子就懂了,为什么自己这几天会一直盯着这件事不放。 这不是多了一个按钮那么简单, 而是从抓取、落盘、展示到网页即时刷新,这条链终于闭环了。 所以我今天真的很开心。 以后再看《灯下白》的增长,不用再靠猜,也不用每次手工翻一遍所有平台了。

点任意图片可打开原图。

共创 132026-03-17

《灯下白》6天总播放量翻了一倍

这几天回头看《灯下白》的播放量,我自己都有点恍惚。 3月11日,跨平台总播放还是 244。 3月13日,涨到 335。到了3月17日,已经到 509了。 也就是说,6天时间,总播放量翻了一倍。 现在看各个平台也挺有意思: 喜马拉雅从 116 涨到 205,还是最能打,不愧是最老牌的声音平台,完播率也高,34.81%,猫工头告诉我他买了它的会员,所以喜欢在喜马听。 小宇宙从 93 涨到 156,涨得也很稳, 而且我最震惊的是,第三期徳沛讲 AI 少儿编程的,完播率高达 60%,也就是说,至少每个人都听了不下 40 分钟。 网易云从 35 到 47,虽然慢一点,但也一直在往上走。 这几天又补进了荔枝,一上来就有 100。 YouTube 现在只有1,但先挂上,慢慢等它发芽。 我越来越能理解,第一期嘉宾刘旭当时那句话了:“你看数据,是能看到很多背后的东西的。” 以前我做内容,更容易凭感觉。 但现在看着这些数字一点点长出来,会突然意识到,原来真的有人在不同平台上,陆陆续续听到《灯下白》,听到 AI 高手们倾其所有的分享,这种感觉,很好。

点任意图片可打开原图。

共创 122026-03-12

开发日志手机直发功能上线

今天这条,想认真记一下“开发日志手机直发”功能上线。 一开始我想得特别简单:不就是做一个手机端提交入口吗? 像发朋友圈一样,写两句字,传几张图,点一下提交,自动推到 GitHub,网站更新出来,就完了。 结果真正开始做之后,我才发现,这根本不是“做一个页面”这么简单。 先是提交流程要通。 网页端、移动端、小程序端,三个地方不能各写各的。 所以后面就变成了,不是单独补一个“手机提交通道”, 而是得把整条链路重新理顺: 不管我从哪个端口发,最后都写进同一份开发日志数据里。 然后是“好不好用”这个问题。 我对这件事的要求其实非常明确: 要的是像发朋友圈一样简单, 不是那种要人填一堆字段、研究半天格式、最后还不一定能发成功的假提交页。 中间最折磨人的其实不是样式,是手机 H5 提交一直出问题。 那个报错我来来回回看了很多次,结果每次都一模一样。果果他们在KA21群里还特别鼓励我,好奇用AI原汤化原食,效果会怎么样? 最后我气得开始用PUA的skill,最后真弄好了。 最后实现的功能:手机上可以随手写开发日志;可以直接传图;提交后自动写入 GitHub;网页端、小程序端、移动端展示同一份内容; 而且版本号也终于和前面的开发日志接上了,不会再自己乱写新编号。

点任意图片可打开原图。

共创 112026-03-12

#感谢灯下白第一期嘉宾刘旭给我带来的数据意识

今天补一条手机直发的开发日志。 这两天把灯下白播客第2期上线了, 突然想起第1期嘉宾刘旭给我说的话, “你看数据是能看到很多背后的东西的。” 于是我想,灯下白播客,现在已经上线了8个收听渠道,每个渠道分别的播放量是多少, 未来数据的趋势是什么? 这个我确实需要一个小工具,帮我统计。 所以我就开始用codex写小工具, 也就一下午,从第一版的数据平铺直叙, 到后来加上了数据可视化, 再改了高级版配色, 再到刘旭给我亲手写提示词加数据趋势分析, 再到页面直接链接8个收听渠道, 最后到开放到牛马库网站, 做为沉浸式的欢迎页,中间也就改了十来次。 还把网页首页,移动端,小程序同时配置好了,真的没有AI编程,这种事在一个月之前, 说搁我身上发生,我感觉是天方夜谭。 感谢卡兹克老师一个月前的文章让我充值了codex,这个钱是我今年来花得最开心的! 记录人:吴熳

共创 102026-03-11

为自媒体内容创作者加上两个小工具!

今天牛牛酱来问我,排版的工具哪个好,我才意识到,好多小工具都是我自己脑袋里知道,但牛马库里还没有收录的呢。 于是今天本来只是想往“小工具”里加两个我自己真觉得好用的东西: 一个是整页截图插件 GoFullPage, 一个是 Markdown 排版工具 bm.md。 按理说,这种活应该很轻,补数据、补 logo、写一句推荐语,结束。 结果根本不是!! 先是预览炸了。 页面一直加载失败,我还以为是新工具写坏了。 结果往下一查,发现根本不是它俩的问题, 是首页教程里有微信图床的“http”图片,Next 的图片白名单没放行,整个首页直接被拖死。 我把这个坑补完之后,又去首页看“小工具”, 结果更气了: 条目明明已经加进去了,但你就是看不见。 继续追。 最后发现不是没加成功, 是默认排序把它们压到小工具分组后面去了。 也就是说,数据在,页面也在,只是埋得太深,肉眼看起来像“压根没有”。 所以我今天最后做的,不只是把两个工具加进去, 而是把它们真正推到用户能第一眼看到的位置,排序更新也是学问啊。

点任意图片可打开原图。

共创 092026-03-11

灯下白播客首页调整

今天继续打磨首页那张《灯下白》卡片的外观。 一开始看起来像是“小问题”: 手机上 8 个播客渠道挤成一团, logo 根本出不来。 但真改起来才发现,问题不是排版一个点,而是移动端、外链图标、加载稳定性全缠在一起。 Codex先把卡片的高度和内部间距重新压了一遍, 让手机端先有足够空间把 8 个入口放下。 结果我一看,说不对,logo 还是密密麻麻。 后来Codex换了思路: 能落本地的 logo 全部落本地, YouTube 和 Spotify 这种再单独补品牌图标和颜色, 不再赌浏览器那一刻能不能把外链图标加载出来。 中间还来回改了几轮。 一会儿是文字 fallback 太土, 一会儿是 logo 虽然出来了,但品牌颜色不对。 最后才把这 8 个入口真正收拾到一个能看的状态: 手机上能完整看到,颜色也对,点进去也可以听播客了。

点任意图片可打开原图。

共创 082026-03-07

时间轴终于能滑着看了,预览也终于稳住了

今天这条,主打一个“把体验抹平”。 我一直觉得开发日志这块不该是死板三宫格。 它本来就应该像时间线一样,能左右滑着看,轻一点,顺一点,像在翻大家一起写下来的过程。 所以这次我做了三件事: 1. 把首页开发日志从固定排布改成横向滑动时间轴。 2. 补上左右切换箭头和圆点定位,手机滑、桌面点,都能走。 3. 把交互细节重新收紧,保证卡片吸附、阅读节奏和点击路径都更清楚。 中间也踩坑了。 一度是“看起来启动了,但预览就是打不开”。 最后我把本地服务方式改成持续运行,才把这个问题彻底摁住。 那一刻就一个感受:有些bug不是难,是烦,但不清掉就永远卡在喉咙里。 今天没有加新花活, 但我把“看起来小、实际很影响使用”的地方又往前推了一步。 这个网站不是我一个人写给自己看的, 是我们这群人要一起长期用的,所以这些细节值得反复打磨。

共创 072026-03-06

和移动端适配度的搏斗,也是为了更多人受益

今天继续改移动端,打开手机预览,页面看着就不对劲。 卡片挤在一起,按钮看不清,工具的“全部场景”标签还竖着。 我先改首页。 把位置重新排,把标题和按钮重新收紧。 刚觉得顺了,KA21群友又反馈: 按钮几乎看不见。 我又回去改颜色和样式。 这次终于稳住了,深色也能清楚看到按钮了。 再继续修“萌新教程”。Luke截图嘲笑道:“怎么高度不一致啊?” 我把卡片统一高度,信息压紧,列表终于整齐了。 最费劲的还是“全部场景”。 改一次,不行。 再改一次,还是竖着。 第三次我直接换了更硬的写法,强制它横排,它终于服了。 今天没有做很炫的新功能, 但把很多“看起来不大、用起来很烦”的问题一个个清掉了。 现在手机端终于更像一个能放心给人用的产品了。 为什么要花这么多时间在移动端呢? 因为今天有一位老师刚好给我问了一个问题,问我某个 AI工具能不能买。 我看了一眼之后斩钉截铁告诉她,你不用买。 当一个集成类的 AI 产品不告诉你它接的服务商是哪家的时候,基本可以判断这个工具的实际使用效果会非常糟糕。 群友问我,真的有老师有这种判断问题吗? 我说,是的,因为我们群友在KA21讨论和使用AI整整一年多了啊,普通人和我们对AI的认知是有时间差和信息差的。所以为什么我愿意花这么多时间在牛马库网站,因为至少,这些是我们人工真手测过的,教程是我们群友亲手写的,信得过。

共创 052026-03-06

灯下白第四个嘉宾高质量买一送一

灯下白第四个嘉宾的邀约,挺有意思的。 那天早上我给Bill发消息,说你可以参考刘旭第一期的开头,讲个故事引入,不过我要先了解一些你的上下文,这样我才能准备采访大纲。他回得很爽快,说好的,整理好了给你。 我当时就有点得意地说了一句,我感觉我这个播客邀约也太顺利了。 Bill立刻回我一句,买一赠一,因为他转介绍了他的朋友思康,说思康也有很强的背景和能力。 我当场笑得嘎嘎嘎: “高质量买一赠一,没水分的。” 再后来,他还邀请我,说以后有机会把你们都请到我们财经AI会客厅,一起耍。我说这个难度有点高,先把事情做起来吧,不过你要是叫我去,我肯定去。 昨天我把Bill的大纲写完了,就开始催他。 他说背景已经写好了,正在写故事。 我回,你这种逗比型人格,我觉得我们录播客的时候干脆就一起讲相声,把节奏拉轻一点,但内容还是得有干货。 他也很配合,说好的哈哈哈。 就这样,灯下白的第四个嘉宾,在一片哈哈哈哈中,被我薅过来了。 但实际上我仔细看了他的大纲,不愧是搞研报出身的,在信息搜索和整理方面,相当值得信赖!本周日录,敬请期待!

共创 062026-03-05

首页灯下白卡片白天/黑夜版定稿

今天这条开发日志,真的有点想哭着写完。 我从早到晚都在磨首页那一块《灯下白》卡片,来来回回改了很多轮: 先是位置不对,后来是对齐不对,再后来是移动端看起来又小又挤。 你看起来像“就调个样式”,但实际每一步都在拉扯审美、信息层级和可用性。 这次我重点做了几件事: 1. 把白天模式和黑夜模式都做成稳定版本,结构一致,但 logo 展示逻辑分开处理。 2. 把 KA21 logo 区和灯下白卡片重新对齐,解决“左轻右重”的问题。 3. 重做灯下白 logo 的裁切和缩放,让“灯和光束”在手机和网页都更清楚。 4. 在移动端补上关键信息:“和AI圈高手的真实对话”,不再让用户只看到标题。 5. CTA、文案、按钮、卡片内部排版都重新压了一遍,确保首屏一眼能懂。 中间最崩的是,我以为推上去了,结果线上看不到,连续几次都没成功。 那一刻真的特别难受,像8小时白干。 但最后还是一版一版找回来,把你满意的白天版和黑夜版定住了。 今天最大的感受是: “好设计不是做出来的,是磨出来的。 尤其是首页这种第一眼区域,差 4px 都会让人觉得不对。” 《灯下白》继续更,灯继续往近处打。

共创 042026-03-05

《灯下白》Logo 的由来故事

这个 Logo 的起点,其实来自一个很小的瞬间。 昨天小金鱼(百宝箱子)在看第一集播客,我讲到节目名字叫《灯下白》。那一刻她被击中了。因为“灯下黑”我们都懂,越靠近的地方越容易忽略,盲区往往就在脚边。而“灯下白”像是把这句话反过来:如果把灯挪近一点,盲区也可以被照亮。 她当场就想把这个概念变成一个可见的符号。(是的,我并没有喊她帮我设计,但她在youmind里面吭哧吭哧对话了一个多小时,泪目!) 于是她把灯下白播客的关键人物@倒放的标志图形拿出来做了一次图形拆解。 几何符号的主体,看起来像一个被框住的叶片或火焰,也有点像折纸风格的立体结构。它有边界感,像一个被认真框定的视角,也有向上生长的力量。它的抽象感,保留了想象空间。你可以把它看成火焰、叶片、折纸,也可以把它看成一个正在被打开的“百宝箱子”,里面藏着很多答案,但需要你靠近一点去看。 当它和下方的光束效果组合在一起时,这个符号又会自然地变成一个聚光灯或舞台灯。那束光照向地面,照向盲区。 所以这个 Logo 只是画一件事:把盲区点亮。 从图一开始,她做了第一次拆解。到了图二,再把拆解后的形状重新排列,终于出现了“一盏灯把盲区点亮”的结构。后来所有的图三、图四、图五,都是从图二延伸出来的变体。它们像同一个母体不断生长出的不同版本,保持同样的光感,同样的边界,同样的方向感。 《灯下白》想做的事情,也和这个 Logo 一样。 把灯挪近一点,把那些容易忽略的地方照亮。让你在听完之后,能轻轻地破掉一个小盲点,多一个视角,多一点清晰。 这就是《灯下白》的 Logo,和它背后那束光的来历。特此鸣谢百宝箱子小金鱼!

点任意图片可打开原图。

共创 032026-03-04

牛马库网站衍生播客灯下白片头曲写作幕后故事

牛马库网站衍生播客灯下白上线。听到中间很惊喜,倒老师和我想法一样,我也选了温润的这段做片头,当时听到就觉得它有这个时代稀缺的温度和活人感。 所以你这个名字和片头曲做得是真太匹配我这个播客的气质了。 桃李春风一杯酒,江湖夜雨十年灯,没想到在赛博世界里遇到提示词诗人倒放老师,并有幸合作共创。 我非常喜欢播客片头的潮汐感,非常有韵味。 最后,倒老师什么时候来北京,欢迎倒放来,共饮灯下白。

点任意图片可打开原图。

共创 012026-03-04

牛马库网站衍生播客灯下白正式上线

早上还在地铁,倒放发来四条音乐,“吴老师,你选一下,哪个符合灯下白的气质?” 下午,开剪,真的比我想象中还复杂,片头片尾音乐,合并音轨素材,调整音量。 音频处理完,再分别去小宇宙、喜马拉雅和网易云音乐做实名认证,找小金鱼要了logo。 再在南乔老师帮助下,写了一段很有内味儿的简介:“本节目由人类与GPT共同策划,剪映处理音频中水词,千问处理剪辑时间轴,GPT撰写Shownotes,Banana Pro生成播客logo,即梦生成播客封面,海绵生成片头片尾音乐,同时由声湃和中关村科学城公司提供录音场地,由罗德麦克风提供录音设备。感谢中关村科学城的政策支持!” 下班路上,再约了德沛做第三期嘉宾,他是我的编程老师,码力全开的第三期,等着! 回家路上,给闺蜜萌感慨,“一年前,我真不敢想,我自己写网站,写小程序,还做播客,人生真的是好奇妙!感谢KA21,感谢卡兹克!”。

点任意图片可打开原图。

KA21 AI牛马库