“写笔记”支持四种格式——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:一款面向开发者的轻量级技能树与学习路径管理工具
Skills——一个基于JavaScript的轻量级技能树与学习路径管理工具,帮助开发者可视化追踪编程技能成长轨迹。
一、项目背景:为什么需要Skills?
在技术爆炸的时代,开发者常常面临一个共同的痛点:技能点多而杂,学习路径不清晰。GitHub上虽然有大量的学习资源,但缺乏一个系统化的工具来帮助开发者规划、追踪和管理自己的技能成长。现有的解决方案要么过于臃肿(如完整的LMS系统),要么过于简单(如纯文本的TODO列表),无法在“轻量”与“结构化”之间取得平衡。
dzhng/skills正是为解决这一痛点而生。它不是一个庞大的学习管理系统,而是一个专注于“技能树”概念的迷你工具。它允许开发者以数据结构化的方式定义自己的技能节点,并通过可视化的方式展示学习进度,从而让技能成长变得可追踪、可管理。
二、快速上手:安装与使用
2.1 环境要求
- Node.js >= 12.x
- npm 或 yarn
2.2 安装步骤
bash
克隆仓库
git clone https://github.com/dzhng/skills.git
进入目录
cd skills
安装依赖
npm install
启动开发服务器
npm start
2.3 基本使用示例
项目核心是一个可配置的技能树定义文件。以下是一个典型的配置示例(假设项目使用JSON或YAML定义技能结构):
javascript
// skills.config.js
module.exports = {
title: '前端开发技能树',
nodes: [
{
id: 'html',
label: 'HTML',
children: [
{ id: 'semantic-html', label: '语义化标签', status: 'completed' },
{ id: 'forms', label: '表单与验证', status: 'in-progress' },
{ id: 'seo-basics', label: 'SEO基础', status: 'pending' }
]
},
{
id: 'css',
label: 'CSS',
children: [
{ id: 'flexbox', label: 'Flexbox布局', status: 'completed' },
{ id: 'grid', label: 'Grid布局', status: 'in-progress' },
{ id: 'animations', label: 'CSS动画', status: 'pending' }
]
},
{
id: 'javascript',
label: 'JavaScript',
children: [
{ id: 'es6', label: 'ES6+语法', status: 'completed' },
{ id: 'async', label: '异步编程', status: 'completed' },
{ id: 'dom', label: 'DOM操作', status: 'in-progress' }
]
}
]
};
启动后,项目会生成一个交互式技能树视图,你可以在浏览器中看到类似以下的结构:
前端开发技能树
├── HTML (2/3)
│ ├── ✅ 语义化标签
│ ├── 🔄 表单与验证
│ └── ⏳ SEO基础
├── CSS (2/3)
│ ├── ✅ Flexbox布局
│ ├── 🔄 Grid布局
│ └── ⏳ CSS动画
└── JavaScript (3/3)
├── ✅ ES6+语法
├── ✅ 异步编程
└── 🔄 DOM操作
注:由于该项目较为轻量且文档可能不完整,实际使用中可能需要根据源码调整配置方式。建议直接查看
src/目录下的核心逻辑。
三、核心亮点:为什么Skills值得关注?
3.1 极简主义设计
Skills的代码量非常精简,核心逻辑不到几百行。它没有引入复杂的框架(如React、Vue),而是直接使用原生JavaScript + HTML/CSS实现。这意味着:
- 学习成本极低,你可以快速理解并修改源码
- 无额外依赖,运行速度极快
- 可轻松嵌入到个人博客、知识库或其他项目中
3.2 数据驱动,可编程定制
技能树完全通过配置文件定义,这意味着你可以:
- 用脚本自动生成技能树(例如从课程大纲或技术路线图解析)
- 集成到CI/CD流程中,自动更新技能状态
- 导出为JSON格式,与其他工具(如Markdown生成器、可视化库)联动
3.3 视觉清晰,状态一目了然
项目使用简单的符号或颜色标记技能状态(已完成/进行中/待开始),避免了过度设计。这种克制反而让信息传达更高效,适合快速扫视和进度追踪。
3.4 开源且可扩展
由于项目基于MIT协议,你可以自由修改、分发。如果你有特殊需求(如添加图表、导出PDF、集成Notion等),可以基于现有代码快速开发插件。
四、适用场景
4.1 个人开发者
- 规划自己的学习路线(如“2024年全栈工程师技能树”)
- 追踪每日/每周学习进度
- 用于技术面试准备,列出需要掌握的知识点
4.2 技术团队与导师
- 为新员工制定技能成长路径
- 在团队内部共享技术栈知识地图
- 用于Code Review时评估技能覆盖情况
4.3 教育场景
- 教师创建课程知识点树
- 学生自我评估学习进度
- 在线教程的配套工具(如“学完本章后,你应该掌握……”)
4.4 开源项目维护者
- 为贡献者提供技能要求清单
- 在README中嵌入技能树,展示项目所需技术栈
五、同类项目对比
| 特性 | Skills | LearnAwesome | Roadmap.sh | 传统TODO应用 |
|---|---|---|---|---|
| 核心定位 | 轻量技能树管理 | 学习资源聚合 | 技术路线图展示 | 通用任务管理 |
| 可视化 | 树形结构 | 列表/网格 | 流程图 | 列表/看板 |
| 可编程性 | 高(JSON配置) | 低 | 低(手动编辑) | 中(API) |
| 依赖复杂度 | 极低 | 中等(需要数据库) | 低 | 高(全栈应用) |
| 离线可用 | 是 | 否 | 是(静态页面) | 部分支持 |
| 定制灵活度 | 极高(可改源码) | 中等 | 低 | 中等 |
| 社区活跃度 | 低(个人项目) | 高 | 极高 | 极高 |
Skills的优势在于:
- 比LearnAwesome更轻量,不依赖后端
- 比Roadmap.sh更灵活,可自定义状态和层级
- 比TODO应用更专注,专门针对技能学习场景
Skills的不足在于:
- 功能单一,不支持多人协作、数据持久化(需自行扩展)
- 视觉效果较朴素,缺乏动画和交互反馈
- 文档较少,需要阅读源码才能完全掌握配置方式
六、技术架构与设计哲学
项目采用经典的MVC模式(虽然未明确命名):
- Model:技能树数据结构(JSON/JS对象)
- View:基于DOM的树形渲染(使用递归渲染)
- Controller:状态更新与事件处理
核心代码逻辑集中在 src/skills.js 中,主要包含:
- 树形数据解析与验证
- 递归渲染函数(生成嵌套的HTML元素)
- 状态变更处理(点击节点切换状态)
- 进度统计(计算已完成/总节点数)
设计哲学非常明确:做一件事,做到极致。它没有试图成为第二个Trello或Notion,而是专注在“技能树”这个细分场景,用最少的代码提供最大的价值。
七、未来展望与改进建议
虽然Skills目前还比较初级,但它的潜力不容忽视。以下是一些可能的改进方向:
- 数据持久化:增加 localStorage 支持,保存用户进度
- 导出功能:支持导出为 Markdown、HTML 或 SVG 图片
- 多主题:提供暗色模式与自定义CSS
- 交互增强:拖拽排序、折叠/展开动画
- URL分享:通过URL参数共享技能树状态
- 集成API:提供REST接口,方便与其他工具联动
对于有兴趣参与贡献的开发者,这些方向都是很好的切入点。
八、总结:它值得用吗?
如果你正在寻找一个功能完善、开箱即用的学习管理工具,Skills可能不适合你——它太简单了,甚至没有数据库和用户系统。
但如果你是一个喜欢DIY的开发者,想要一个可以完全掌控、高度可定制的技能树工具——Skills绝对值得一试。它的代码清晰、结构简单,你可以花一个下午就能理解全部逻辑,然后根据自己的需求进行改造。
对于技术博客作者、教育内容创作者、以及希望将技能可视化融入个人知识体系的开发者来说,Skills是一个极佳的起点。