“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。
md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。
要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。
在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。
要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。
工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。
写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。
适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。
你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。
全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。
这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。
不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。
产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。
如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。
谷歌的14天生死令:Pushbullet扩展遭下架威胁,但没人告诉我们改什么
谷歌以"权限使用违规"威胁下架Pushbullet扩展,却未明确具体要求,开发者被迫在猜测中挣扎求生。
谷歌的14天生死令:Pushbullet扩展遭下架威胁,但没人告诉我们改什么
背景:一个百万用户的扩展为何突然面临死刑?
Pushbullet团队收到了一封来自谷歌的邮件,内容令人震惊:如果不在14天内做出必要修改,他们的Chrome扩展将被从Chrome网上应用店强制下架。
但真正棘手的问题不是时间紧迫,而是——谷歌根本没有告诉他们需要修改什么。
这听起来像是某种荒诞剧,但却是真实的开发者困境。Pushbullet的Chrome扩展已经运营超过6年,拥有超过100万用户,平均评分4.5星(满分5星)。更值得注意的是,这个扩展曾多次被Chrome网上应用店团队官方推荐,包括出现在"居家办公"(Work From Home)专题集合中。
就是这样一款被谷歌自己多次认可的扩展,现在被通知14天内不修改就下架,而修改要求却是一团迷雾。
邮件全文:模糊的指控与模糊的要求
谷歌的邮件原文如下:
您的商品不符合我们计划政策中的以下部分:"用户数据隐私"
您的产品违反了政策中的"权限使用"部分,该部分要求您:
- 请求实施产品功能或服务所必需的最窄权限。
- 如果多个权限可以实现某项功能,您必须请求那些对数据或功能访问最少的权限。
- 不要试图通过请求可能有益于尚未实现的服务或功能的权限来"面向未来"。
从字面来看,Pushbullet确实违反了"权限使用"条款。基于这三条原则,Pushbullet团队创始人Ryan Oldenburg的初步判断是:谷歌希望他们减少扩展请求的权限范围。
但这封邮件没有提供任何具体细节——没有指明哪个权限有问题,没有说明需要移除哪些权限,甚至没有举例说明什么样的修改才算合规。这让开发者只能在黑暗中摸索。
权限盘点:Pushbullet究竟请求了什么?
要理解问题的严重性,首先需要盘点Pushbullet扩展的权限使用情况。
必选权限(安装时即授予):
tabs— 可以查看用户打开的标签页activeTab— 当前活动标签页的临时访问权contextMenu— 右键菜单cookies— Cookie访问权notifications— 通知推送idle— 检测用户空闲状态https://*/*— 对所有HTTPS网站的数据读取权限http://*/*— 对所有HTTP网站的数据读取权限
可选权限(用户自行开启特定功能时才请求):
background— 后台运行clipboardRead— 读取剪贴板clipboardWrite— 写入剪贴板
注意,可选权限必须在用户明确同意后在运行时请求,这与安装时自动授予的必选权限性质完全不同。因此Pushbullet团队认为,谷歌关心的应该是必选权限,因为这些权限在用户点击"添加扩展"的那一刻就被静默授予了。
第一轮修改:大幅缩减权限范围
Ryan审视了这些权限,发现了一个巨大的优化空间:
核心问题:https://*/* 和 http://*/* 的权限过于宽泛。
Pushbullet的实际功能是跨设备同步通知、链接和文件,其核心服务需要访问的是Pushbullet自家的服务器。它根本不需要读取用户访问的每一个网站的数据。
因此,Ryan决定将这些权限从通配符级别收缩为:
https://*.pushbullet.com/*http://*.pushbullet.com/*http://localhost/*(用于本地调试)
这是一个数量级的权限缩减——从理论上可以访问用户访问的任何网站数据,变为仅能访问Pushbullet自家域名下的数据。这意味着如果用户正在访问银行网站,扩展将无法读取或操作任何页面内容。
另一个重大牺牲:放弃tabs权限。
Pushbullet使用tabs权限是为了一个实用功能:当用户点击镜像通知(例如在手机上收到某个链接的通知,推送到桌面端)时,如果该网页已经在某个标签页中打开,Pushbullet会复用它而不是新建标签页。这能避免标签页堆积,但说实话,这个功能并非核心需求,为此保留一个可以读取所有标签页列表的高危权限,得不偿失。
Ryan决定:舍弃tabs权限。
修改后必选权限仅剩:
activeTabcontextMenucookiesnotificationsidlehttps://*.pushbullet.com/*http://*.pushbullet.com/*http://localhost/*
从理论上讲,这次修改大幅降低了扩展潜在的数据访问面。Ryan怀着信心将更新提交到了Chrome网上应用店。
残酷现实:提交后24小时内被拒绝
提交更新后大约24小时,Pushbullet的扩展就被拒绝了。
拒绝理由与最初的通知完全相同:还是"用户数据隐私"政策下的"权限使用"条款,还是那三条同样的要求。
没有任何额外的解释,没有指出哪项权限仍然过多,没有反馈为什么他们认为修改不足。
Ryan尝试直接回复邮件询问具体细节,但没有收到任何回复。他对此并不感到意外,但仍然值得一试。
此时,距离谷歌给出的截止日期,只剩下7天。
滑向猜谜游戏的深渊
既然第一次修改被拒绝,且无额外指引,Ryan只能列出一系列"猜测清单",试图找到通过审核的可能路径。以下是他的理论:
理论一:进一步缩小域名匹配范围
现在的权限是https://*.pushbullet.com/*,这是通配子域名的匹配。是否应该缩小为https://www.pushbullet.com这种精确域名?
理论上,这不应该有什么实质影响,因为pushbullet.com毕竟是Pushbullet自己的第一方域名。但也许谷歌的自动化审核系统对"通配符"过敏?缩减到精确域名或许能帮助通过?
理论二:移除剪贴板权限
clipboardRead 和 clipboardWrite 这两个权限目前是可选的——只有当用户启用"通用复制粘贴"(Universal copy & paste)功能时才会请求。但从谷歌最近的策略来看,他们对剪贴板数据非常敏感——别忘了谷歌最近刚刚在Android平台上封杀了所有剪贴板管理器应用。
如果谷歌现在彻底禁止Chrome扩展请求剪贴板权限,那么Pushbullet就必须删除这个功能。虽然"通用复制粘贴"是一个很受欢迎的功能,但当面对扩展被下架的风险时,显然只能忍痛割爱。
反复试验的致命风险
你可能会问:为什么不反复提交修改测试?总有一次能过吧?
但Ryan有一个令人不安的顾虑:
我担心谷歌的自动化系统会认为我在试图寻找绕过规则的方法,从而封禁我的整个Google账号。他们的政策中明确写道:"这可能导致与您的Google账号关联的相关Google服务被暂停。"
也就是说,如果反复提交不符合要求的版本,不仅可能让扩展永久下架,还可能连带账号被封——这等于宣判了Pushbullet整个生态的死刑。
深层矛盾:谷歌的平台治理悖论
这个案例折射出的是一个更大的行业问题,值得深入剖析:
1. 规则的自动执行与缺乏人情味的审查机制
谷歌Chrome扩展审核高度依赖自动化系统。机器可以检测到"权限过于宽泛"这类静态模式,但它无法理解上下文。一个拥有百万用户的成熟扩展,与一个刚上传的恶意扩展,在自动化系统面前是平等的。这导致一个在Chrome应用店获得过官方推荐、运营6年零投诉的扩展,会被一视同仁地收到格式化的拒绝邮件。
2. 模糊政策与权力不对等
谷歌在邮件中讲的三个原则——"最小权限"、"最窄访问"、"不要未来验证"——听起来合理且清晰,但当你问"我到底改什么才能合规"时,无人回应。这种单方面模糊执法让开发者无法可依,也让"14天期限"变成了一种心理战工具,在这个案例里,创作者只能通过试错去发现系统的判定规则。
3. 平台依赖的脆弱性
Pushbullet是一个跨平台工具,但Chrome扩展是其桌面端最主要的载体。
"Pushbullet扩展是我们在桌面上安装量最大的应用。它被移除,很可能就是Pushbullet的终结。"
一个企业把命运完全押在单一平台上,当平台本身变成不可预测的对手时,这种风险是致命的。无论扩展多么优质,无论用户多么忠诚,平台的一个按钮就能让一切归零。
更深的技术理解:Chrome权限系统的演进
为了更透彻地理解这个问题的本质,我们需要回到Chrome扩展系统的设计原理上。
Chrome的扩展权限体系建立在最小权限原则之上,这是安全领域的共识。但问题在于,Chrome的权限模型从诞生至今发生了几次大的演变:
- 早期(Chrome 28之前):扩展可以声明对
https://*/*的访问权限,并通过xhr或fetch请求任意网站数据,这在当时是"正常"的。 - Manifest V2时代(Chrome 28后):引入了
activeTab这一临时授权机制,使得扩展在某些用户交互下可以获取临时的站点访问权,而不必常驻所有站点的读取权限。 - Manifest V3时代(2020年起逐步推行):核心变动之一就是全面限制远程代码执行,同时在权限系统中进一步压缩后台权限,并将部分网络访问请求转向声明式规则。
Pushbullet的这个案例发生在2020年5月,正好处于Manifest V2向V3过渡的开端。谷歌收紧权限审核,很可能不仅是针对Pushbullet,而是针对所有仍然沿用V2老式宽泛权限的扩展进行一波清剿。
什么是activeTab?
activeTab是Chrome提供的一种临时权限。当用户点击扩展的图标或触发扩展的特定交互时,扩展只能在此次交互中对当前活动的标签页获得一次性访问权,标签切换后权限即失效。这与tabs权限(对所有标签页的持续访问)有本质区别。Pushbullet保住了activeTab而放弃了tabs,从权限原理上来说是正确的取舍。
后续发展:最终结局
在这个时间点(2020年5月13日),Ryan表示将再次尝试提交包含两项新修改的版本:
- 将域名匹配从通配子域名精确到
www.pushbullet.com - 移除剪贴板读写权限(意味着放弃"通用复制粘贴"功能)
他在Reddit上开设了讨论专区,邀请社区帮助猜测谷歌的真实意图。
(注:截至今天截稿,Pushbullet的Chrome扩展仍在网上应用店中正常运营,说明他们最终通过了审核。但这个过程暴露出的平台治理问题,至今未解。)
给开发者的启示
对于每一个依赖Chrome网上应用店分发扩展的开发者,以下经验值得借鉴:
- 尽可能缩减必选权限。如果某项功能可以用可选权限(用户手动授权)实现,就不要放在安装时请求。
- 不要使用大量的通配符匹配域名。即使你真的只是偶尔使用,权限系统看的是"最高可能性",不是你实际的代码逻辑。
- 权限是有生命周期的。两三年前合规的权限请求,今天可能被视为违规。谷歌的政策在收紧,你所基于的"许可证"可能随时变化。
- 自动化审核不可沟通。面对系统化的拒绝邮件,依赖人工解释往往是无效的,唯一可行的方案就是通过调整代码来触发系统的"通过"条件。
- 不要分散依赖单平台。如果大部分用户和收入都来自单一渠道,那么平台的一次策略变动就可能让你全盘皆输。
结语:谁是真正的裁判?
Pushbullet的案例在今天比在2020年更加具有警示意义。每当平台以"安全"和"隐私"为名收紧规则,首先受到冲击的往往是那些依赖平台生存的小型独立开发者。它们没有议价能力,没有申诉渠道,只能根据一封不完整的邮件,在14天的期限里做猜谜游戏。
一个曾经被官方推荐、拥有百万用户、稳定运营六年的扩展,收到的却是格式化的拒绝邮件。这让"平台经济"这个词听起来更像是一个讲给自己的童话故事。