-
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
jiaziling
committed
Feb 20, 2025
1 parent
33a0fb1
commit 9eee7e2
Showing
3 changed files
with
193 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
--- | ||
title: 代码秒变提示词,这款 CLI 工具太神奇!开发者必备神器 | ||
description: 代码秒变提示词,这款 CLI 工具太神奇!开发者必备神器 | ||
date: 2025-02-19 | ||
--- | ||
|
||
在软件开发的世界里,与大型语言模型(LLM)打交道已成为常态。无论是代码生成、代码审查还是代码优化,LLM 都能提供强大的支持。然而,将整个代码库转换成一个适合 LLM 处理的提示词,却并非易事。今天,就给大家介绍一款超实用的 CLI 工具——code2prompt,它能轻松将你的代码库转换成一个单一的 LLM 提示词,让你的开发效率瞬间提升! | ||
|
||
## 一、code2prompt 是什么? | ||
|
||
code2prompt 是一款命令行工具,它能够遍历你的代码库,生成一个包含源代码树结构和所有代码的格式化 Markdown 提示词。这个提示词可以直接用于 GPT 或 Claude 等模型,让你能够快速生成代码文档、发现潜在的安全漏洞、优化代码性能等。 | ||
|
||
## 二、功能亮点 | ||
|
||
1. **快速生成提示词**:无论你的代码库有多大,code2prompt 都能迅速生成提示词,节省你大量手动整理代码的时间。 | ||
2. **自定义模板**:支持使用 Handlebars 模板,你可以根据自己的需求定制提示词的生成方式。内置了多种模板,如代码文档生成、安全漏洞检测、代码优化等。 | ||
3. **尊重 `.gitignore`**:默认情况下,code2prompt 会遵循 `.gitignore` 文件中的规则,避免将不需要的文件包含在提示词中。当然,你也可以通过参数禁用这一功能。 | ||
4. **文件过滤与排除**:支持使用 glob 模式过滤和排除文件,还能根据文件名或路径排除特定文件和文件夹。 | ||
5. **显示 token 数量**:能够显示生成提示词的 token 数量,这对于控制 LLM 的输入长度非常有帮助。 | ||
6. **集成 Git 功能**:可以将 Git diff 输出(已暂存文件)包含在生成的提示词中,方便进行代码对比和审查。 | ||
7. **自动复制到剪贴板**:生成的提示词会自动复制到剪贴板,省去手动复制的麻烦。 | ||
8. **支持多种编码**:支持多种 token 编码方式,如 `cl100k`、`p50k` 等,适配不同的 LLM 模型。 | ||
|
||
## 三、安装与使用 | ||
|
||
### 安装 | ||
|
||
1. **二进制发布版**:直接从 [Releases](https://github.com/mufeedvh/code2prompt/releases) 页面下载适用于你操作系统的最新二进制文件。 | ||
2. **源码构建**:如果你喜欢从源码构建,确保你安装了 Git、Rust 和 Cargo,然后克隆仓库并运行 `cargo build --release`。 | ||
3. **cargo 安装**:通过 `cargo install code2prompt` 命令直接从 `crates.io` 注册表安装。 | ||
4. **AUR 安装**:如果你使用的是 Arch Linux,可以通过 AUR 安装。 | ||
5. **Nix 安装**:使用 Nix 的用户可以通过 `nix-env` 或 `profile` 安装。 | ||
|
||
### 使用 | ||
|
||
基本命令格式为 `code2prompt path/to/codebase`,以下是一些常用参数: | ||
|
||
- `-t path/to/template.hbs`:指定自定义模板文件。 | ||
- `--include="*.rs,*.toml"`:使用 glob 模式包含特定文件。 | ||
- `--exclude="*.txt,*.md"`:使用 glob 模式排除特定文件。 | ||
- `--tokens`:显示生成提示词的 token 数量。 | ||
- `--output=output.txt`:将生成的提示词保存到指定文件。 | ||
- `--json`:以 JSON 格式输出结果。 | ||
- `--diff`:包含 Git diff 输出(已暂存文件)。 | ||
- `--line-number`:在源代码块中添加行号。 | ||
- `--hidden`:包含隐藏文件和目录。 | ||
- `--no-ignore`:禁用 `.gitignore` 规则。 | ||
|
||
## 四、内置模板介绍 | ||
|
||
code2prompt 内置了多种实用的模板,满足不同的开发需求: | ||
|
||
- **document-the-code.hbs**:用于生成代码文档,为所有公共函数、方法、类和模块添加文档注释。 | ||
- **find-security-vulnerabilities.hbs**:用于检测代码库中的潜在安全漏洞,并提供修复建议。 | ||
- **clean-up-code.hbs**:用于清理和优化代码,提高代码质量。 | ||
- **fix-bugs.hbs**:用于诊断和修复代码中的错误。 | ||
- **write-github-pull-request.hbs**:用于生成 GitHub 拉取请求描述,通过比较两个分支的 Git diff 和 Git log 来创建。 | ||
- **write-github-readme.hbs**:用于生成项目的 README 文件,分析代码库的功能和用途,生成 Markdown 格式的内容。 | ||
- **write-git-commit.hbs**:用于生成 Git 提交信息,分析已暂存文件的代码库,生成 Markdown 格式的提交信息。 | ||
- **improve-performance.hbs**:用于优化代码性能,寻找优化机会并提供具体建议。 | ||
|
||
## 五、总结 | ||
|
||
code2prompt 无疑是一款开发者必备的神器,它极大地简化了将代码库转换为 LLM 提示词的过程,让你能够更高效地利用 LLM 进行代码相关的工作。无论是代码文档生成、安全漏洞检测还是代码优化,code2prompt 都能轻松胜任。赶紧试试这款工具,让你的开发工作更上一层楼! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,102 @@ | ||
--- | ||
title: 探索简单而强大的 Web 思维导图库 —— simple-mind-map | ||
description: 探索简单而强大的 Web 思维导图库 —— simple-mind-map | ||
date: 2025-02-20 | ||
--- | ||
|
||
|
||
# 探索简单而强大的 Web 思维导图库 —— simple-mind-map | ||
|
||
在信息爆炸的时代,如何高效地整理思绪、规划项目、管理知识?思维导图作为一种强大的工具,能帮助我们以可视化的方式梳理复杂的信息。今天,给大家介绍一个简单而强大的 Web 思维导图库 —— [simple-mind-map](https://github.com/wanglin2/mind-map)。 | ||
|
||
## 项目简介 | ||
|
||
[simple-mind-map](https://github.com/wanglin2/mind-map) 是由 wanglin2 开发的一个 Web 思维导图库,它不依赖任何框架,可以快速完成 Web 思维导图产品的开发。该项目不仅提供了一个思维导图库,还基于该库开发了一个 Web 思维导图应用,可以操作电脑本地文件,也可以自部署和二次开发。 | ||
|
||
## 项目特点 | ||
|
||
### 插件化架构 | ||
|
||
simple-mind-map 采用插件化架构,除了核心功能外,其他功能都以插件的形式提供。开发者可以根据需求按需引入插件,这样可以有效减小打包体积,提高应用的性能。 | ||
|
||
### 多种结构支持 | ||
|
||
该库支持多种结构,包括逻辑结构图(向左、向右逻辑结构图)、思维导图、组织结构图、目录组织图、时间轴(横向、竖向)、鱼骨图等。无论是项目规划、知识管理还是问题分析,都能满足你的需求。 | ||
|
||
### 高度自定义 | ||
|
||
simple-mind-map 内置多种主题,并允许高度自定义样式,支持注册新主题。节点内容支持文本(普通文本、富文本)、图片、图标、超链接、备注、标签、概要、数学公式等,满足不同场景下的多样化需求。 | ||
|
||
### 丰富的交互功能 | ||
|
||
- 节点支持拖拽(拖拽移动、自由调整),多种节点形状,支持扩展节点内容,支持使用 DDM 完全自定义节点内容。 | ||
- 支持画布拖动、缩放,支持鼠标按键拖动选择和 Ctrl+左键两种多选节点方式。 | ||
- 支持导出为 json、png、svg、pdf、markdown、xmind、txt,支持从 json、xmind、markdown 导入。 | ||
|
||
### 协同编辑与演示模式 | ||
|
||
- 支持协同编辑,团队成员可以实时协作,共同完成思维导图的绘制。 | ||
- 支持演示模式,方便将思维导图用于会议、教学等场景。 | ||
|
||
## 使用方法 | ||
|
||
### 安装 | ||
|
||
使用 npm 安装 simple-mind-map: | ||
|
||
```bash | ||
npm i simple-mind-map | ||
``` | ||
|
||
### 使用 | ||
|
||
提供一个宽高不为 0 的容器元素: | ||
|
||
```html | ||
<div id="mindMapContainer"></div> | ||
``` | ||
|
||
设置 CSS 样式: | ||
|
||
```css | ||
#mindMapContainer * { | ||
margin: 0; | ||
padding: 0; | ||
} | ||
``` | ||
|
||
创建一个实例: | ||
|
||
```javascript | ||
import MindMap from "simple-mind-map"; | ||
|
||
const mindMap = new MindMap({ | ||
el: document.getElementById("mindMapContainer"), | ||
data: { | ||
data: { | ||
text: "根节点", | ||
}, | ||
children: [], | ||
}, | ||
}); | ||
``` | ||
|
||
通过以上简单的代码,你就可以在网页上展示一个思维导图了。如果需要更多功能,可以查看 [开发文档](https://wanglin2.github.io/mind-map-docs/)。 | ||
|
||
## 项目亮点 | ||
|
||
### 云存储版本 | ||
|
||
如果你需要带后端的云存储版本,可以尝试开发者提供的另一个项目 —— 理想文档。 | ||
|
||
### 客户端支持 | ||
|
||
simple-mind-map 也支持以客户端的方式使用,现已上架 uTools 插件应用市场。你可以通过 uTools 插件应用市场搜索 `思绪` 进行安装,也可以直接访问 [主页](https://github.com/wanglin2/mind-map) 点击右侧的【启动】按钮进行安装。 | ||
|
||
### 赞助与定制 | ||
|
||
如果你觉得这个项目对你有帮助,可以通过请作者喝杯咖啡的方式来支持项目的发展。此外,如果你有个性化的商用定制需求,可以联系开发者,他们提供付费开发服务。 | ||
|
||
## 结语 | ||
|
||
[simple-mind-map](https://github.com/wanglin2/mind-map) 是一个简单而强大的 Web 思维导图库,无论是个人用户还是企业团队,都能从中受益。它丰富的功能、灵活的插件化架构以及高度的自定义能力,使其成为 Web 思维导图开发的首选工具之一。如果你正在寻找一个可靠的思维导图库,不妨试试 simple-mind-map,相信它会给你带来惊喜。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
--- | ||
title: 从洗衣机安装看软件工作量估算的门道 | ||
description: 从洗衣机安装看软件工作量估算的门道 | ||
date: 2025-02-18 | ||
--- | ||
|
||
在软件开发领域,工作量估算一直是个让人头疼的难题。开发者们常常被问及 “完成这个功能需要多长时间?” 这个问题,而回答起来却并不容易。今天,就和大家分享一个有趣的故事,它生动地诠释了软件工作量估算的复杂性。 | ||
|
||
## 搬家与洗衣机安装的 “小插曲” | ||
|
||
作者最近搬家,住进了一套新建的房子,这可是他人生中第九次搬家了。按以往经验,安装洗衣机不过是 10 分钟以内的事儿。然而,这次却足足花了 4 个小时! | ||
|
||
一开始,作者看到洗衣房的布局,发现电源插座在另一个隔间,而建筑商忘了在搁板上钻孔以便穿过电线。没办法,他只能去五金店买了一个 60 毫米的孔锯。回家后,又发现自己的家用钻头装不下孔锯,只能返回五金店,租借了一个更专业的钻头。好不容易把孔打好,却发现洗衣机的进出水管在新布局下长度不够。本想通过拉伸现有水管解决问题,结果发现水管并不具备这种功能,只能再回五金店买新水管。 | ||
|
||
安装水管时,又遇到新问题:冷水龙头被一个钢制盖子紧紧封住,手头没有足够大的扳手能拧开。于是,又是一趟五金店之旅,买回合适的扳手。终于把水管都接好,洗衣机却出现了 E39 排水障碍错误。经过一番检查,原来是排水管连接的 U 形弯头处有个 PVC 墙需要钻开,而作者此前对此一无所知。 | ||
|
||
## 软件工作量估算的 “坑” | ||
|
||
这次洗衣机安装经历,让作者联想到了软件工作量估算的种种困境。很多时候,我们基于过往经验对一个看似熟悉的项目进行估算,却忽略了新环境下可能出现的各种意外情况,也就是所谓的 “未知的未知”。 | ||
|
||
在软件开发中,这种情况屡见不鲜。比如,我们打算使用一个之前用过的任务运行框架,却发现它已经很久没有维护了,需要重新分叉并修改才能适配新项目;或者,我们熟悉的开发工具生态系统已经更新换代,我们不得不从头学习新的工具链;再或者,操作系统版本的更新导致现有依赖的关键要求不再被支持,需要重新思考甚至从零开发。 | ||
|
||
## 如何应对这些 “未知” | ||
|
||
面对这些 “未知的未知”,我们并非无计可施。虽然无法完全避免,但可以通过一些方法来降低风险。首先,尽可能全面地收集需求,与客户、用户以及相关利益方进行深入沟通,确保对项目目标和功能有清晰的理解。其次,建立风险管理机制,在项目计划中预留一定的缓冲时间,以应对可能出现的意外情况。最后,采用敏捷开发方法,通过迭代和反馈及时调整项目方向和进度,确保项目能够灵活应对变化。 | ||
|
||
总之,无论是安装洗衣机还是进行软件开发,我们都需要对可能出现的意外情况保持警惕,并通过合理的方法来应对,才能更好地完成任务。 |