“写笔记”支持四种格式——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:用AI自动生成个性化技能树,重塑编程学习路径
Skills — 基于AI自动生成个性化技能树与学习路径的交互式工具,让零散知识变成结构化路线图。
一、项目概览
Skills 是一个轻量级的开源JavaScript工具,它利用大语言模型(LLM)的能力,根据用户输入的目标技能或领域,自动生成结构化的技能树与学习路径。你不再需要面对海量教程无从下手,也不用再手动梳理复杂的技术栈依赖关系——只需输入你想学习的技能名称,Skills就会为你输出一个清晰、层级分明、带有学习顺序建议的知识图谱。
项目由开发者 dzhng 创建,当前在GitHub上获得181颗星,采用JavaScript编写,核心依赖是OpenAI的GPT模型(或其他兼容的LLM API)。它本质上是一个“学习路线生成器”,但比传统手动列大纲要智能得多:它能理解技能之间的前置依赖关系,并按照从基础到进阶的顺序排列节点。
二、它解决了什么痛点?
在编程学习或技术领域探索中,我们常常遇到以下问题:
- 信息过载:网上有无数教程、文档、课程,但不知道从哪开始。
- 缺乏结构化:零散的知识点无法串联成体系,学完就忘。
- 依赖关系不清晰:不知道自己当前的基础是否足够学习某个高级主题。
- 学习路径低效:容易陷入“学了一堆用不上的细节”或“跳过关键基础直接碰壁”。
Skills 正是为了解决这些问题而生。它把“学习路线设计”这件事自动化、智能化,让你把精力花在真正的学习上,而不是规划上。
三、安装与使用
前置条件
- Node.js(v16+)
- OpenAI API Key(或其他兼容的LLM API Key)
安装步骤
bash
克隆仓库
git clone https://github.com/dzhng/skills.git
cd skills
安装依赖
npm install
配置环境变量
cp .env.example .env
编辑 .env 文件,填入你的 OPENAI_API_KEY
基本使用示例
假设你想生成一个“React前端开发”的技能树:
javascript
import { generateSkillTree } from './src/skills.js';
// 方式一:直接调用生成
const skillTree = await generateSkillTree('React前端开发');
console.log(JSON.stringify(skillTree, null, 2));
// 方式二:指定深度和细节
const detailedTree = await generateSkillTree('React前端开发', {
depth: 3, // 技能树层级深度,默认为3
detailLevel: 'high' // 'low' | 'medium' | 'high'
});
输出结构示例
输出的技能树是一个嵌套的JSON对象,类似:
{
"name": "React前端开发",
"children": [
{
"name": "JavaScript基础",
"description": "ES6+语法、模块化、异步编程",
"children": [
{ "name": "变量与作用域" },
{ "name": "Promise与async/await" },
{ "name": "模块系统" }
]
},
{
"name": "React核心概念",
"children": [
{ "name": "JSX语法" },
{ "name": "组件与Props" },
{ "name": "State与生命周期" }
]
},
{
"name": "工程化与工具",
"children": [
{ "name": "Vite/CRA" },
{ "name": "React Router" },
{ "name": "状态管理(Redux/Zustand)" }
]
}
]
}
可视化展示
项目还提供了一个简单的CLI可视化命令,可以将技能树以树状图形式打印在终端:
bash
node cli.js --skill "机器学习" --depth 4
效果类似:
机器学习
├── 数学基础
│ ├── 线性代数
│ ├── 概率统计
│ └── 微积分
├── 编程基础
│ ├── Python
│ └── NumPy/Pandas
├── 监督学习
│ ├── 线性回归
│ ├── 决策树
│ └── SVM
...
四、核心亮点
1. 智能依赖推理
Skills 不只是简单罗列知识点。它会通过LLM分析每个子技能的前置依赖,并在生成时自动排序。例如,如果你输入“深度学习”,它不会直接从“卷积神经网络”开始,而是先列出“线性代数”、“Python编程”等基础,确保学习路径合理。
2. 可定制深度与粒度
通过 depth 和 detailLevel 参数,你可以控制技能树的详细程度。对于快速概览,可以设 depth=2,detailLevel='low';对于深入系统学习,可以设 depth=5,detailLevel='high'。
3. 纯文本输入,零配置
你不需要提供任何结构化数据,只需输入一个自然语言描述的技能名称。背后的LLM会自动理解上下文并生成合理的结构。
4. 轻量且可扩展
项目代码量很小,核心逻辑只有几个文件。你可以轻松修改 prompt 模板,或者替换为其他LLM(如Claude、Gemini),只需调整API调用部分即可。
5. 支持多种输出格式
除了JSON,还可以输出Markdown格式的清单或HTML可交互的树形图(通过集成第三方可视化库)。
五、适用场景
- 个人学习规划:当你想入门一个新领域(如Kubernetes、游戏开发、数据科学),先用Skills生成一个学习路线图,避免盲目。
- 技术团队培训:团队Leader可以为新人生成“后端开发”或“DevOps”的技能树,作为入职学习指南。
- 课程设计:教育工作者可以用它快速搭建课程大纲的骨架,再手动调整细节。
- 知识管理:将零散的笔记整理成结构化的技能树,方便回顾和查漏补缺。
六、同类项目对比
| 项目 | 定位 | 生成方式 | 可定制性 | 依赖分析 | 可视化 |
|---|---|---|---|---|---|
| Skills | 轻量级AI技能树生成 | 基于LLM自动生成 | 高(深度/细节可调) | 自动推理 | 终端/JSON |
| roadmap.sh | 社区驱动的手动路线图 | 人工维护 | 低(固定路线) | 手动标注 | 网页交互式 |
| Learn Anything | 知识图谱搜索引擎 | 众包+算法 | 中(可投票) | 部分自动 | 图谱可视化 |
| 自建Notion大纲 | 手动整理 | 完全手动 | 极高 | 全靠自己 | 文档列表 |
Skills 的优势:
- 完全自动化,无需人工整理。
- 生成结果基于最新LLM知识,时效性好。
- 灵活调整粒度,适应不同学习阶段。
不足:
- 依赖外部API,需要网络和费用(但成本很低,一次生成约0.01-0.05美元)。
- 生成质量受LLM能力限制,有时会出现不准确或冗余的节点(可通过调整prompt改善)。
- 目前没有内置的学习资源链接(如教程URL),只有技能名称。
七、技术实现简析
核心代码位于 src/skills.js,主要流程:
- 接收用户输入的目标技能名称。
- 构建一个结构化prompt,要求LLM以JSON格式返回技能树。
- 调用OpenAI Chat Completion API(模型默认为gpt-4o-mini,可配置)。
- 解析返回的JSON,递归构建树形数据结构。
- 支持可选的后处理(如排序、去重、限制深度)。
prompt设计是关键,它明确要求LLM:
- 每个节点包含 name 和可选的 children。
- 按学习顺序排列同级节点(基础在前)。
- 深度不超过指定值。
- 避免过于宽泛或过于细碎的节点。
八、未来展望与改进方向
- 集成学习资源:为每个技能节点自动搜索并关联免费教程、文档链接。
- 进度追踪:支持用户标记已学节点,生成个性化的剩余路径。
- 多人协作:支持分享技能树,团队共同编辑。
- 多语言支持:目前只支持英文输入,可以扩展中文等。
- 离线模型支持:集成本地LLM(如Llama),避免API依赖。
九、总结
Skills 是一个小而精的工具,它把AI的语义理解能力与学习规划需求精准结合。虽然功能目前比较单一,但解决的是真实的痛点——让学习路径设计从“凭感觉”变成“有结构”。如果你正在学习新技能,或者需要为团队搭建学习路线,不妨试试它。