专业划词扩展,其新颖的设计与实现得到大量用户的肯定与喜爱。许多用户留言评价(谷歌留言 / 火狐留言)这是其用过最好用的划词扩展。
功能设计的亮点,
技术实现的亮点,
通过 React hooks 在组件中无缝连接 RxJS Observables 以复用异步逻辑。
为什么要在组件中复用异步逻辑:
相比同类库优势:
Neutrino 9 脚手架插件,开发跨浏览器扩展,支持热更新以及框架 devtools 调试。
目前开发浏览器扩展的流程基本还是刀耕火种的方式:
manifest.json
中,不能享受打包工具的分块优化。manifest.json
内容也不完全相同。所以针对这些问题,我设计了一套自动化解决方案,大大简化了开发流程:
适用于 Webpack 4 的 WebExtension Target 。利用原生 import 动态加载分块。
Webpack 默认的 JSONP 机制无法在 WebExtension 的 content scripts 中动态加载分块。
相关原理见我的文章「自定义 Webpack Target」。
这个库已经内置到 neutrino-webextension preset 中。
Hexo 插件,利用 Github Emojis API 支持在 Markdown 和 HTML 模板中添加语义化的 emojis 。
考虑到可访问性,本插件会生成 emoji 的 unicode 并将字体设为透明,然后在背景图片中添加 Github emoji 图片。当加载失败时恢复字体颜色。
插件同时提供丰富的配置选项,满足各种不同的需求。
监听 React 组件尺寸变化。
为什么:
亮点:
一个基于 JAMstack 架构的技术博客。利用 React 框架 GatsbyJS 搭配 GraphQL 开发,使用 Netlify CMS 管理文章内容并托管在 Netlify 平台上。
具体更换原因见博文《为什么选 Gatsby》。
利用 GraphQL 统一管理信息和资源为开发带来了极大的便利。
Netlify CMS 和 Utterances 实现了文章和评论数据都保存回 Github 上,减少了第三方服务的依赖。
样式基于一个现代 CSS 框架 Bulma, Sass 模块的设计借鉴了 ITCSS 思想。
LOGO 图标使用 illustrator 设计,社交图案采用 NViconsLib 2 ,使用 Boxy SVG 手工编辑,利用 IcoMoon 合并以及 SVGOMG 压缩。
简洁、声明式、类型安全(强类型)、可扩展的 TypeScript Redux 架构。
可以让任何数据触发 Suspense 的 React hooks。
为什么:
如果使用 Relay Suspense 方式进行开发的话需要对异步逻辑进行包装然后在组件中使用 read() 来获取数据。
这意味着:
read()
成功获得数据,这仅代表数据“成功返回”而不一定这个数据是“可用的”(除非在逻辑编写上做相应的规范要求两者一致)。所以获得数据后依然还要做各种判断验证数据。use-suspensible 不在乎异步逻辑是怎么实现的,它只关心这个数据是否可用,不可用便触发 Suspense。这使到它是一种通用的 Suspense 解决方案。
使用 use-suspensible 只需要按习惯的方式获取和使用数据即可,逻辑编写不需要做任何改变。
一款可以分享网页到饭否、推特和微博的 Chrome / Firefox 扩展。并可以从网页中提取所有图片。
chrome.identity
以及 content script 黑科技实现 OAuth 的无服务器自动授权。三十天每天用纯 JavaScript 、CSS 和 HTML 写个小东西,并尝鲜一些新的浏览器 API 。灵感来自于 Wes Bos 的 JavaScript 30 。他的例子相对简单,我根据自己的能力实现了些更复杂的点子。
比较有意思的如