“写笔记”支持四种格式——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)。
这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。
不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。
产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。
如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。
Skills:一个开源的 JavaScript 技能树与学习路径可视化工具
Skills 是一个轻量级、基于 JavaScript 的技能树可视化与学习路径规划工具,帮助开发者将零散的知识点组织成结构化的成长地图。
一、项目概览与痛点分析
在技术学习过程中,许多开发者面临一个共同的困境:知识点碎片化,缺乏全局视野。无论是自学前端、后端还是 DevOps,网络上充斥着海量教程和文档,但很少有人能提供一个清晰的、可交互的“技能树”——告诉你哪些是前置知识,哪些是进阶内容,以及当前处于哪个阶段。
传统的学习方式通常依赖 Notion、XMind 等工具手动绘制脑图,但这种方式存在几个问题:
- 静态化:一旦画完,很难动态更新或与他人协作。
- 无交互:无法点击节点查看详情、标记进度或跳转到相关资源。
- 缺乏社区共享:每个人的技能树都是孤岛,无法复用他人的优秀路径。
dzhng/skills 正是为解决这些问题而生的。它提供了一种声明式、可交互的技能树定义方式,让开发者可以用 JSON 或 JavaScript 对象快速定义自己的技能树,然后通过一个轻量级的前端组件渲染出带交互的树形图。
二、快速上手:安装与第一个示例
2.1 安装
该项目是一个纯前端 JavaScript 库,支持通过 npm 或直接引入 CDN 使用。
bash
npm install @dzhng/skills
或直接在 HTML 中引用:
html
2.2 基础用法
假设你想定义一段“前端工程师技能树”,只需创建一个包含节点与关系的对象:
javascript
import Skills from '@dzhng/skills';
const mySkillTree = {
nodes: [
{ id: 'html', label: 'HTML', category: '基础' },
{ id: 'css', label: 'CSS', category: '基础' },
{ id: 'js', label: 'JavaScript', category: '基础' },
{ id: 'react', label: 'React', category: '框架' },
{ id: 'vue', label: 'Vue', category: '框架' },
{ id: 'node', label: 'Node.js', category: '后端' },
],
edges: [
{ from: 'html', to: 'react' },
{ from: 'css', to: 'react' },
{ from: 'js', to: 'react' },
{ from: 'js', to: 'vue' },
{ from: 'js', to: 'node' },
]
};
const container = document.getElementById('skill-tree');
Skills.render(container, mySkillTree);
渲染后,页面会展示一个可拖拽、可缩放、可点击节点的树形结构。每个节点可以附带进度状态(未学/学习中/已掌握),点击节点可弹出自定义详情面板。
2.3 高级配置
Skills 支持丰富的自定义选项,例如:
- 节点颜色:根据 category 或 status 自动着色。
- 隐藏/显示子节点:默认收起深层节点,点击展开。
- 数据绑定:可绑定本地存储或数据库,保存用户的学习进度。
- 插件系统:支持自定义渲染器、事件监听器等。
javascript
Skills.render(container, mySkillTree, {
theme: 'dark',
nodeSize: { width: 120, height: 40 },
onNodeClick: (node) => {
console.log(Clicked: ${node.label});
// 打开相关文档链接
window.open(https://developer.mozilla.org/zh-CN/docs/Web/HTML);
},
progress: {
'html': 'completed',
'css': 'in-progress',
'js': 'completed',
'react': 'not-started'
}
});
三、核心亮点与技术分析
3.1 声明式数据驱动
Skills 的核心思想是“数据与视图分离”。你只需要提供一个纯数据对象,库自动完成布局、渲染、交互。这种设计让技能树可以被轻松存储、分享、版本控制(例如放在 Git 仓库中)。
3.2 轻量无依赖
整个库压缩后不到 20KB,不依赖 React、Vue 或 D3.js 等重型框架,仅使用原生 Canvas 或 SVG 渲染(根据场景自动选择)。这使得它可以在任何前端项目(甚至纯静态页面)中零成本集成。
3.3 交互丰富
- 拖拽与缩放:支持鼠标拖拽平移、滚轮缩放,适合大型技能树。
- 节点状态:内置进度指示器(环形进度条或颜色标记)。
- 搜索与过滤:可按关键字、类别、进度筛选节点。
- 导出为图片:一键导出 PNG/SVG,方便分享。
3.4 可扩展架构
Skills 采用插件化设计,官方提供了几个常用插件:
skills-plugin-resource:为节点绑定学习资源链接。skills-plugin-storage:自动将进度保存到 localStorage。skills-plugin-collaboration:通过 WebSocket 实现多人实时编辑(实验性)。
四、适用场景
- 个人学习规划:程序员可以用它来规划自己的技术栈,标记已掌握和待学习的内容。
- 团队技能矩阵:团队 Leader 可以用它来可视化团队成员的技能分布,找出能力短板。
- 课程设计:培训讲师或教育机构可以用它来设计课程大纲,学生可直观看到学习路径。
- 开源项目文档:将项目的技术栈、依赖关系用技能树展示,降低新贡献者的入门门槛。
- 面试准备:整理面试知识点树,按优先级刷题。
五、同类项目对比
| 项目 | 特点 | 缺点 |
|---|---|---|
| Skills | 轻量、声明式、可交互、插件化 | 社区较小,文档有待完善 |
| XMind / MindNode | 功能强大的脑图工具 | 非开源、不可嵌入网页、无交互 |
| D3.js 树图 | 高度可定制 | 学习曲线陡峭,需要手写大量代码 |
| Obsidian Graph View | 自动生成知识图谱 | 限于 Obsidian 生态,不可自定义节点数据结构 |
| GitHub Skills(GitHub官方) | 面向 GitHub Actions 学习 | 功能单一,不可自定义 |
Skills 最大的差异化优势在于:它既不是一个通用绘图工具,也不是一个需要复杂编码的图表库,而是一个专门为“技能树”这个场景优化的、开箱即用的解决方案。
六、局限性与未来展望
当前版本(v0.x)仍处于早期开发阶段,存在一些不足:
- 布局算法较为简单,对于超过 200 个节点的大型树,性能会下降。
- 移动端触摸交互支持不够完善。
- 多语言支持尚未内置。
不过,项目作者在 Issues 中已规划了 v1.0 路线图,包括:
- 基于 WebWorker 的力导向布局。
- 响应式适配。
- 官方技能树模板市场。
七、总结
dzhng/skills 是一个小而美的工具,它精准地切中了开发者“知识管理可视化”的痛点。如果你正在寻找一种轻量、可交互、可嵌入网页的技能树解决方案,它值得一试。尤其适合那些喜欢用代码管理一切、追求“数据驱动”的极客型开发者。