本周新收藏的歌,有四首。
工作
rsuite
时常会添加新的功能,但新功能文档什么时候加一直是个问题。 比如本周为 Calendar 组件新增了一个cellClassName
prop,我想在文档里加上它的使用示例。 如果在这个新 prop 被发布之前就在文档中添加示例的话,文档站构建是会失败的,因为线上文档站构建所依赖的rsuite
是 npm 上的版本。 所以只好在周五发布之后再去另开 PR 添加文档,但是这样很容易忘。 参考此前在 VS Code 迭代计划中得到的启发,我打算尝试在每周一例行地对上一周rsuite
发布的新功能进行文档更新。 这样有一个小缺点就是文档是隔了一个周末才更新的,不过这个可以暂且忽略,观察观察再说。- 给 DevOps 平台更新登录页图片用上了 CSS 的
min()
函数来控制margin-top
,好玩。 - 在开发新功能的接口里尝试使用 Zod schema 来校验响应结果和推断 TypeScript 类型了。
相比原来手写响应的 TypeScript 类型然后用
as
进行转换变得更安全了。
开源和 Radar
-
这周给 KeyLog 开发新功能的过程中,对 Chrome 扩展中 Content script、Popup 和 Background 三者的 scope 有了更深的认识。 比如,在 Content script 中是不可以使用
chrome.tabs
API 的,而从 Popup/Background 中向 Content script 发送消息则必须指定tabId
。 Popup 被激活时,并不是在“当前激活的 tab”的 scope 下,如果需要在 Popup 中针对当前激活的 tab 进行操作,需要先通过chrome.tabs.query
API 查询当前激活的 tab。新功能还有些小问题,不过下周应该可以发了。
-
本周加入 GitHub star 的一些有意思的仓库
kodoku
一个管理 RSS 订阅的工具,可以自己部署。ai-town
一个使用 TypeScript 编写的 AI 小镇应用,可以观察 AI 角色自发的对话。可以自己部署,支持自定义人物设定。stylelint-less
一组用于检查 Less 文件的 Stylelint 插件。typestat
一个可用于将 JavaScript 代码转换为 TypeScript,或者改进 TypeScript 代码的工具。red-otter
一个 webgl flex box 布局引擎,可以帮助你在 canvas 中创建 GUInext-international
一个提供类型提示的 React 国际化库cookieconsent
一个 vanilla consent 提示库。svgomg
一个 SVGO 的 GUI
生活
-
健身环大冒险每次都会询问当天的训练是要增加、减少还是保持强度,我每次都选保持现状。 这周某天在选完之后弹出了另一个问题:“每次都选择保持现状是否很麻烦”?让我有点意外。 看样子如果选择是的话以后应该就不会询问默认保持,这个设计还挺贴心。
-
女朋友送了我一台 CD 播放器。这是我的第一台 CD 播放器,此前因为没有播放器,多年前买下的一张喜欢的 CD 一直没有拆封过。终于第一次听到了它的声音,很开心。
-
在松坂书屋发现一个好玩又没用的柯南周边。
-
周末吃到了好吃的餐厅,开心。
总结
开心的一周。