[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-steven-tey--novel":3,"tool-steven-tey--novel":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",157379,2,"2026-04-15T23:32:42",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":67,"readme_en":68,"readme_zh":69,"quickstart_zh":70,"use_case_zh":71,"hero_image_url":72,"owner_login":73,"owner_name":74,"owner_avatar_url":75,"owner_bio":76,"owner_company":77,"owner_location":78,"owner_email":79,"owner_twitter":80,"owner_website":81,"owner_url":82,"languages":83,"stars":96,"forks":97,"last_commit_at":98,"license":99,"difficulty_score":32,"env_os":100,"env_gpu":100,"env_ram":100,"env_deps":101,"category_tags":110,"github_topics":111,"view_count":32,"oss_zip_url":120,"oss_zip_packed_at":120,"status":17,"created_at":121,"updated_at":122,"faqs":123,"releases":159},8045,"steven-tey\u002Fnovel","novel","Notion-style WYSIWYG editor with AI-powered autocompletion.","Novel 是一款开源的所见即所得（WYSIWYG）文本编辑器，其界面风格与 Notion 高度相似，并创新性地集成了 AI 智能自动补全功能。它旨在解决传统编辑器在内容创作过程中缺乏智能辅助、交互体验不够流畅的痛点，让用户在撰写文档时能获得实时的上下文建议，从而显著提升写作效率。\n\n这款工具主要面向前端开发者和技术团队，特别是那些希望在 React、Next.js 项目中快速集成现代化富文本编辑功能的用户。得益于其模块化设计，社区还提供了对 Svelte 和 Vue 等框架的支持，甚至拥有 VSCode 扩展版本，满足了跨框架开发需求。\n\nNovel 的技术亮点在于其强大的底层架构：基于 Tiptap 构建灵活的编辑核心，结合 Vercel AI SDK 与 OpenAI 接口实现低延迟的 AI 生成能力，同时采用 TailwindCSS 确保界面美观且易于定制。此外，项目提供了一键部署到 Vercel 的便捷方案，并开放了完整的本地开发指南，方便开发者根据业务需求进行二次开发或深度定制。无论是需要构建内部知识库的企业，还是希望探索 AI 辅助写作场景的独立开发者，Novel 都是一","Novel 是一款开源的所见即所得（WYSIWYG）文本编辑器，其界面风格与 Notion 高度相似，并创新性地集成了 AI 智能自动补全功能。它旨在解决传统编辑器在内容创作过程中缺乏智能辅助、交互体验不够流畅的痛点，让用户在撰写文档时能获得实时的上下文建议，从而显著提升写作效率。\n\n这款工具主要面向前端开发者和技术团队，特别是那些希望在 React、Next.js 项目中快速集成现代化富文本编辑功能的用户。得益于其模块化设计，社区还提供了对 Svelte 和 Vue 等框架的支持，甚至拥有 VSCode 扩展版本，满足了跨框架开发需求。\n\nNovel 的技术亮点在于其强大的底层架构：基于 Tiptap 构建灵活的编辑核心，结合 Vercel AI SDK 与 OpenAI 接口实现低延迟的 AI 生成能力，同时采用 TailwindCSS 确保界面美观且易于定制。此外，项目提供了一键部署到 Vercel 的便捷方案，并开放了完整的本地开发指南，方便开发者根据业务需求进行二次开发或深度定制。无论是需要构建内部知识库的企业，还是希望探索 AI 辅助写作场景的独立开发者，Novel 都是一个轻量、高效且极具扩展性的理想选择。","\u003Ca href=\"https:\u002F\u002Fnovel.sh\">\n  \u003Cimg alt=\"Novel is a Notion-style WYSIWYG editor with AI-powered autocompletions.\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsteven-tey_novel_readme_6cdaf40249f6.png\">\n  \u003Ch1 align=\"center\">Novel\u003C\u002Fh1>\n\u003C\u002Fa>\n\n\u003Cp align=\"center\">\n  An open-source Notion-style WYSIWYG editor with AI-powered autocompletions. \n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fnews.ycombinator.com\u002Fitem?id=36360789\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FHacker%20News-369-%23FF6600\" alt=\"Hacker News\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fblob\u002Fmain\u002FLICENSE\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fsteven-tey\u002Fnovel?label=license&logo=github&color=f80&logoColor=fff\" alt=\"License\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fsteven-tey\u002Fnovel?style=social\" alt=\"Novel.sh's GitHub repo\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#introduction\">\u003Cstrong>Introduction\u003C\u002Fstrong>\u003C\u002Fa> ·\n  \u003Ca href=\"#deploy-your-own\">\u003Cstrong>Deploy Your Own\u003C\u002Fstrong>\u003C\u002Fa> ·\n  \u003Ca href=\"#setting-up-locally\">\u003Cstrong>Setting Up Locally\u003C\u002Fstrong>\u003C\u002Fa> ·\n  \u003Ca href=\"#tech-stack\">\u003Cstrong>Tech Stack\u003C\u002Fstrong>\u003C\u002Fa> ·\n  \u003Ca href=\"#contributing\">\u003Cstrong>Contributing\u003C\u002Fstrong>\u003C\u002Fa> ·\n  \u003Ca href=\"#license\">\u003Cstrong>License\u003C\u002Fstrong>\u003C\u002Fa>\n\u003C\u002Fp>\n\u003Cbr\u002F>\n\n## Docs (WIP)\n\nhttps:\u002F\u002Fnovel.sh\u002Fdocs\u002Fintroduction\n\n## Introduction\n\n[Novel](https:\u002F\u002Fnovel.sh\u002F) is a Notion-style WYSIWYG editor with AI-powered autocompletions.\n\nhttps:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fassets\u002F28986134\u002F2099877f-4f2b-4b1c-8782-5d803d63be5c\n\n\u003Cbr \u002F>\n\n## Deploy Your Own\n\nYou can deploy your own version of Novel to Vercel with one click:\n\n[![Deploy with Vercel](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsteven-tey_novel_readme_a4c0f8073a9c.png)](https:\u002F\u002Fstey.me\u002Fnovel-deploy)\n\n## Setting Up Locally\n\nTo set up Novel locally, you'll need to clone the repository and set up the following environment variables:\n\n- `OPENAI_API_KEY` – your OpenAI API key (you can get one [here](https:\u002F\u002Fplatform.openai.com\u002Faccount\u002Fapi-keys))\n- `BLOB_READ_WRITE_TOKEN` – your Vercel Blob read\u002Fwrite token (currently [still in beta](https:\u002F\u002Fvercel.com\u002Fdocs\u002Fstorage\u002Fvercel-blob\u002Fquickstart#quickstart), but feel free to [sign up on this form](https:\u002F\u002Fvercel.fyi\u002Fblob-beta) for access)\n\nIf you've deployed this to Vercel, you can also use [`vc env pull`](https:\u002F\u002Fvercel.com\u002Fdocs\u002Fcli\u002Fenv#exporting-development-environment-variables) to pull the environment variables from your Vercel project.\n\nTo run the app locally, you can run the following commands:\n\n```\npnpm i\npnpm dev\n```\n\n## Cross-framework support\n\nWhile Novel is built for React, we also have a few community-maintained packages for non-React frameworks:\n\n- Svelte: https:\u002F\u002Fnovel.sh\u002Fsvelte\n- Vue: https:\u002F\u002Fnovel.sh\u002Fvue\n\n## VSCode Extension\n\nThanks to @bennykok, Novel also has a VSCode Extension: https:\u002F\u002Fnovel.sh\u002Fvscode\n\nhttps:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fassets\u002F28986134\u002F58ebf7e3-cdb3-43df-878b-119e304f7373\n\n## Tech Stack\n\nNovel is built on the following stack:\n\n- [Next.js](https:\u002F\u002Fnextjs.org\u002F) – framework\n- [Tiptap](https:\u002F\u002Ftiptap.dev\u002F) – text editor\n- [OpenAI](https:\u002F\u002Fopenai.com\u002F) - AI completions\n- [Vercel AI SDK](https:\u002F\u002Fsdk.vercel.ai\u002Fdocs) – AI library\n- [Vercel](https:\u002F\u002Fvercel.com) – deployments\n- [TailwindCSS](https:\u002F\u002Ftailwindcss.com\u002F) – styles\n- [Cal Sans](https:\u002F\u002Fgithub.com\u002Fcalcom\u002Ffont) – font\n\n## Contributing\n\nHere's how you can contribute:\n\n- [Open an issue](https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fissues) if you believe you've encountered a bug.\n- Make a [pull request](https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull) to add new features\u002Fmake quality-of-life improvements\u002Ffix bugs.\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsteven-tey_novel_readme_3eb0b9db6f35.png\" \u002F>\n\u003C\u002Fa>\n\n## Repo Activity\n\n![Novel.sh repo activity – generated by Axiom](https:\u002F\u002Frepobeats.axiom.co\u002Fapi\u002Fembed\u002F2ebdaa143b0ad6e7c2ee23151da7b37f67da0b36.svg)\n\n## License\n\nLicensed under the [Apache-2.0 license](https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fblob\u002Fmain\u002FLICENSE).\n","\u003Ca href=\"https:\u002F\u002Fnovel.sh\">\n  \u003Cimg alt=\"Novel 是一款基于 Notion 风格的所见即所得编辑器，配备 AI 驱动的自动补全功能。\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsteven-tey_novel_readme_6cdaf40249f6.png\">\n  \u003Ch1 align=\"center\">Novel\u003C\u002Fh1>\n\u003C\u002Fa>\n\n\u003Cp align=\"center\">\n  一款开源的 Notion 风格所见即所得编辑器，内置 AI 驱动的自动补全功能。\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fnews.ycombinator.com\u002Fitem?id=36360789\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FHacker%20News-369-%23FF6600\" alt=\"Hacker News\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fblob\u002Fmain\u002FLICENSE\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fsteven-tey\u002Fnovel?label=license&logo=github&color=f80&logoColor=fff\" alt=\"许可证\" \u002F>\n  \u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fsteven-tey\u002Fnovel?style=social\" alt=\"Novel.sh 的 GitHub 仓库\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"#introduction\">\u003Cstrong>简介\u003C\u002Fstrong>\u003C\u002Fa> ·\n  \u003Ca href=\"#deploy-your-own\">\u003Cstrong>部署您自己的版本\u003C\u002Fstrong>\u003C\u002Fa> ·\n  \u003Ca href=\"#setting-up-locally\">\u003Cstrong>本地搭建\u003C\u002Fstrong>\u003C\u002Fa> ·\n  \u003Ca href=\"#tech-stack\">\u003Cstrong>技术栈\u003C\u002Fstrong>\u003C\u002Fa> ·\n  \u003Ca href=\"#contributing\">\u003Cstrong>贡献\u003C\u002Fstrong>\u003C\u002Fa> ·\n  \u003Ca href=\"#license\">\u003Cstrong>许可证\u003C\u002Fstrong>\u003C\u002Fa>\n\u003C\u002Fp>\n\u003Cbr\u002F>\n\n## 文档（开发中）\n\nhttps:\u002F\u002Fnovel.sh\u002Fdocs\u002Fintroduction\n\n## 简介\n\n[Novel](https:\u002F\u002Fnovel.sh\u002F) 是一款基于 Notion 风格的所见即所得编辑器，配备 AI 驱动的自动补全功能。\n\nhttps:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fassets\u002F28986134\u002F2099877f-4f2b-4b1c-8782-5d803d63be5c\n\n\u003Cbr \u002F>\n\n## 部署您自己的版本\n\n您可以一键将 Novel 的自定义版本部署到 Vercel：\n\n[![使用 Vercel 部署](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsteven-tey_novel_readme_a4c0f8073a9c.png)](https:\u002F\u002Fstey.me\u002Fnovel-deploy)\n\n## 本地搭建\n\n要在本地搭建 Novel，您需要克隆仓库并设置以下环境变量：\n\n- `OPENAI_API_KEY` – 您的 OpenAI API 密钥（可在此处获取：[https:\u002F\u002Fplatform.openai.com\u002Faccount\u002Fapi-keys](https:\u002F\u002Fplatform.openai.com\u002Faccount\u002Fapi-keys)）\n- `BLOB_READ_WRITE_TOKEN` – 您的 Vercel Blob 读写令牌（目前仍处于测试阶段，但您可以通过此表格报名以获得访问权限：[https:\u002F\u002Fvercel.fyi\u002Fblob-beta](https:\u002F\u002Fvercel.fyi\u002Fblob-beta)）\n\n如果您已将其部署到 Vercel，还可以使用 `vc env pull` 命令从您的 Vercel 项目中拉取环境变量。\n\n要在本地运行应用，您可以执行以下命令：\n\n```\npnpm i\npnpm dev\n```\n\n## 跨框架支持\n\n尽管 Novel 是为 React 构建的，但我们也有几个由社区维护的非 React 框架相关包：\n\n- Svelte：https:\u002F\u002Fnovel.sh\u002Fsvelte\n- Vue：https:\u002F\u002Fnovel.sh\u002Fvue\n\n## VSCode 扩展\n\n感谢 @bennykok，Novel 还提供了一款 VSCode 扩展：https:\u002F\u002Fnovel.sh\u002Fvscode\n\nhttps:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fassets\u002F28986134\u002F58ebf7e3-cdb3-43df-878b-119e304f7373\n\n## 技术栈\n\nNovel 基于以下技术栈构建：\n\n- [Next.js](https:\u002F\u002Fnextjs.org\u002F) – 框架\n- [Tiptap](https:\u002F\u002Ftiptap.dev\u002F) – 文本编辑器\n- [OpenAI](https:\u002F\u002Fopenai.com\u002F) – AI 补全\n- [Vercel AI SDK](https:\u002F\u002Fsdk.vercel.ai\u002Fdocs) – AI 库\n- [Vercel](https:\u002F\u002Fvercel.com) – 部署平台\n- [TailwindCSS](https:\u002F\u002Ftailwindcss.com\u002F) – 样式\n- [Cal Sans](https:\u002F\u002Fgithub.com\u002Fcalcom\u002Ffont) – 字体\n\n## 贡献\n\n以下是您可以参与贡献的方式：\n\n- 如果您认为遇到了 bug，请[提交一个问题](https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fissues)。\n- 提交[拉取请求](https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull)，以添加新功能、改进体验或修复 bug。\n\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fgraphs\u002Fcontributors\">\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsteven-tey_novel_readme_3eb0b9db6f35.png\" \u002F>\n\u003C\u002Fa>\n\n## 仓库活跃度\n\n![Novel.sh 仓库活跃度 – 由 Axiom 生成](https:\u002F\u002Frepobeats.axiom.co\u002Fapi\u002Fembed\u002F2ebdaa143b0ad6e7c2ee23151da7b37f67da0b36.svg)\n\n## 许可证\n\n根据 [Apache-2.0 许可证](https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fblob\u002Fmain\u002FLICENSE)授权。","# Novel 快速上手指南\n\nNovel 是一款开源的、类 Notion 风格的所见即所得（WYSIWYG）编辑器，内置 AI 自动补全功能。\n\n## 环境准备\n\n在开始之前，请确保你的开发环境满足以下要求：\n\n*   **Node.js**: 建议安装最新 LTS 版本。\n*   **包管理器**: 本项目推荐使用 `pnpm`。\n*   **API Key**:\n    *   `OPENAI_API_KEY`: 用于启用 AI 自动补全功能（需自行在 OpenAI 官网获取）。\n    *   `BLOB_READ_WRITE_TOKEN`: 用于 Vercel Blob 存储（目前处于 Beta 阶段，需在 Vercel 官网申请或部署时自动配置）。\n\n## 安装步骤\n\n### 1. 克隆项目\n首先将仓库克隆到本地：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel.git\ncd novel\n```\n\n### 2. 安装依赖\n使用 pnpm 安装项目依赖：\n\n```bash\npnpm i\n```\n> **提示**：如果下载速度较慢，可配置国内镜像源：\n> ```bash\n> pnpm config set registry https:\u002F\u002Fregistry.npmmirror.com\n> pnpm i\n> ```\n\n### 3. 配置环境变量\n在项目根目录下创建 `.env.local` 文件，并填入以下内容：\n\n```bash\nOPENAI_API_KEY=你的_OpenAI_API_Key\nBLOB_READ_WRITE_TOKEN=你的_Vercel_Blob_Token\n```\n\n*注：如果你已将该项目部署到 Vercel，也可以使用 `vc env pull` 命令直接拉取云端环境变量到本地。*\n\n## 基本使用\n\n完成上述配置后，即可启动本地开发服务器：\n\n```bash\npnpm dev\n```\n\n启动成功后，在浏览器访问 `http:\u002F\u002Flocalhost:3000` 即可体验编辑器。\n\n### 核心功能体验\n*   **基础编辑**：支持类似 Notion 的块级编辑操作（输入 `\u002F` 唤起菜单）。\n*   **AI 补全**：在编辑过程中按下 `Space` 键或根据上下文提示，即可触发 AI 自动续写功能（需确保 `OPENAI_API_KEY` 配置正确且网络通畅）。\n\n### 其他框架支持\n虽然 Novel 原生基于 React 构建，但社区也提供了其他框架的版本：\n*   **Svelte**: 访问 https:\u002F\u002Fnovel.sh\u002Fsvelte\n*   **Vue**: 访问 https:\u002F\u002Fnovel.sh\u002Fvue\n*   **VSCode 插件**: 可在 VSCode 中安装使用，地址：https:\u002F\u002Fnovel.sh\u002Fvscode","某初创公司的内容运营团队正在协作撰写一份包含市场分析、产品路线图和财务预测的季度战略规划文档，需要频繁切换思路并整合大量专业术语。\n\n### 没有 novel 时\n- 写作过程频繁中断，成员需手动切换窗口去搜索行业数据或构思下一段落的逻辑衔接，导致心流状态难以维持。\n- 团队成员间文风差异巨大，有人习惯口语化表达，有人偏好严谨学术风，后期统一润色和校对耗费了大量人力时间。\n- 面对复杂的格式需求（如引用块、待办列表、代码块），非技术人员往往因不熟悉 Markdown 语法而排版混乱，影响文档专业度。\n- 头脑风暴时灵感枯竭，遇到卡壳只能暂时搁置，导致会议效率低下，无法实时将口头讨论转化为结构化文本。\n\n### 使用 novel 后\n- 借助 AI 智能补全功能，成员只需输入关键词，novel 即可自动生成连贯的段落建议，让写作如行云流水般不间断。\n- novel 内置的 AI 辅助能根据上下文自动调整语气和用词，确保整份战略文档风格高度统一，大幅减少后期编辑成本。\n- 依托类 Notion 的所见即所得界面，用户通过斜杠命令即可轻松插入复杂模块，无需记忆任何代码，文档排版瞬间整洁规范。\n- 在讨论受阻时，直接利用 AI 生成多个续写方案或总结要点，团队能即时筛选并优化思路，将脑暴成果实时固化为高质量文本。\n\nnovel 通过无缝融合智能创作与优雅编辑体验，将团队的内容生产效率提升了数倍，让专注力回归到策略本身而非工具操作上。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsteven-tey_novel_6cdaf402.png","steven-tey","Steven Tey","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fsteven-tey_c9792980.jpg","building @dubinc | prev: @vercel","@dubinc","Seattle, WA","steven@dub.co","steventey","steventey.com","https:\u002F\u002Fgithub.com\u002Fsteven-tey",[84,88,92],{"name":85,"color":86,"percentage":87},"TypeScript","#3178c6",92.4,{"name":89,"color":90,"percentage":91},"CSS","#663399",6.5,{"name":93,"color":94,"percentage":95},"JavaScript","#f1e05a",1.1,16177,1364,"2026-04-16T00:05:58","Apache-2.0","未说明",{"notes":102,"python":100,"dependencies":103},"该项目是一个基于 Next.js 的 React Web 应用，而非本地运行的 Python AI 模型。运行需安装 pnpm 包管理器，并配置 OPENAI_API_KEY 和 Vercel Blob 令牌环境变量。支持通过 Vercel 一键部署，社区也提供了 Svelte 和 Vue 版本的支持。",[104,105,106,107,108,109],"Next.js","Tiptap","OpenAI API","Vercel AI SDK","TailwindCSS","pnpm",[14,35],[112,113,114,115,116,117,118,119],"chatgpt","notion","openai","prosemirror","tiptap","ai-sdk","nextjs","vercel",null,"2026-03-27T02:49:30.150509","2026-04-16T16:10:59.260834",[124,129,134,139,144,149,154],{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},36025,"如何在 Novel 的 `defaultValue` 中设置 HTML 内容？","Novel 基于 Tiptap，不能直接传入 HTML 字符串作为 `defaultValue`。你需要使用 Tiptap 提供的 `generateJSON` 工具将 HTML 转换为 JSON 格式。具体步骤如下：\n1. 安装并导入必要的扩展：\n```javascript\nimport { generateJSON } from \"@tiptap\u002Fhtml\";\nimport Document from \"@tiptap\u002Fextension-document\";\nimport Paragraph from \"@tiptap\u002Fextension-paragraph\";\nimport Text from \"@tiptap\u002Fextension-text\";\n\u002F\u002F 根据需要使用其他扩展，如 CodeBlock 等\n```\n2. 转换 HTML 为 JSON：\n```javascript\nconst html = `\u003Cp>Hello\u003C\u002Fp>`;\nconst json = generateJSON(html, [Document, Paragraph, Text]);\n```\n3. 将生成的 `json` 对象传递给 Editor 组件。\n另外，有用户建议同时存储 HTML 和 JSON 以避免数据丢失。","https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fissues\u002F223",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},36026,"如何解决 Novel 注入的 CSS 覆盖项目中现有 Tailwind CSS 优先级的问题？","该问题已在 `novel@0.1.22` 版本中修复。请升级你的 Novel 依赖到该版本或更高版本：\n```bash\nnpm install novel@0.1.22\n# 或者\nyarn add novel@0.1.22\n```\n升级后，Novel 不再会错误地覆盖你项目中的 Tailwind 样式优先级。","https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fissues\u002F128",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},36027,"AI 生成的 Markdown 内容在编辑器中显示混乱，如何解决？","旧的 AI 实现尝试直接将流式内容写入编辑器，导致与 Markdown 解析冲突。新的 AI 实现已改为先处理 Markdown 再渲染，不再直接流式写入编辑器内部，从而解决了格式混乱问题。建议采用新的 AI 实现方式（类似 Notion 的做法），参考官方文档更新你的 AI 集成代码。如果必须使用旧版流式方案，需自行修改源码强制响应为纯文本，但官方推荐新方案。","https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fissues\u002F58",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},36028,"如何禁用或自定义斜杠命令（Slash Command）菜单中的特定选项？","Novel 现已支持完全自定义斜杠命令菜单。你可以访问官方文档查看配置指南：https:\u002F\u002Fnovel.sh\u002Fdocs\u002Fguides\u002Ftailwind\u002Fslash-command\n通过 Context Provider 或配置项，你可以移除不需要的菜单项（如图片上传、特定格式等）。如果默认配置无法满足，也可以直接从 `node_modules` 中复制相关组件代码到你的 `src` 目录进行深度定制。","https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fissues\u002F147",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},36029,"在 v2 版本中导入插件时出现 TypeScript 错误（如 `import ... from \"novel\u002Fplugins\"` 失败），如何解决？","这个问题通常与 Next.js 版本和模块解析配置有关。\n解决方案 1：升级到 Next.js 14，新版本不再强制要求更改构建时的模块解析策略。\n解决方案 2：如果你仍在使用 Next.js 13，可以尝试在 `tsconfig.json` 中设置 `\"moduleResolution\": \"Bundler\"`，但这可能在某些 Next.js 13 环境中不被完全支持。\n临时变通方法是直接使用完整路径导入：`import { UploadImagesPlugin } from \"novel\u002Fdist\u002Fplugins\";`，但推荐升级框架以根本解决。","https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fissues\u002F298",{"id":150,"question_zh":151,"answer_zh":152,"source_url":153},36030,"当选择器下拉菜单靠近屏幕底部时显示不全，如何修复碰撞检测问题？","目前的颜色和节点选择器缺乏自动碰撞检测。建议的解决方案是使用类似 Radix UI 的 Popover 组件来替代原生下拉框，它会自动检测屏幕边缘并调整展开方向。同时，应限制下拉菜单的最大高度并添加 `overflow-scroll` 样式，以确保在不同屏幕高度下都能正常显示。社区欢迎贡献者提交 PR 来实现此功能。","https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fissues\u002F64",{"id":155,"question_zh":156,"answer_zh":157,"source_url":158},36031,"Novel 是否支持代码块、引用块、表格等高级格式？","Novel 基于 Tiptap，理论上支持通过添加相应扩展来实现代码块（CodeBlock）、引用块（BlockQuote）、水平线（Horizontal Rule）和表格（Tables）等功能。虽然核心库可能未默认开启所有功能，但你可以通过引入 Tiptap 的相关扩展自行添加。对于表格等复杂功能，可能需要额外的开发工作来实现类似 Notion 或 Figma 的上下文感知体验。","https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fissues\u002F17",[160,165,170,175,180,185,190,195,200,205,210,215,220,225,230,235,240,245,250,255],{"id":161,"version":162,"summary_zh":163,"released_at":164},288819,"novel@1.0.2","**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fcompare\u002Fnovel@1.0.0...novel@1.0.1\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fcompare\u002Fnovel@1.0.1...novel@1.0.2","2025-02-11T10:33:48",{"id":166,"version":167,"summary_zh":168,"released_at":169},288820,"novel@1.0.1","**完整更新日志**: https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fcompare\u002Fnovel@1.0.0...novel@1.0.1","2025-02-11T10:33:33",{"id":171,"version":172,"summary_zh":173,"released_at":174},288821,"novel@1.0.0","## 中断性变更\n\n## 导入路径变更\n\n已从默认扩展中移除 Markdown 扩展。\n所有导入现在都直接来自 `novel`，而不是单独的路径：\n\n- ```typescript\n  import { Editor } from \"novel\u002Feditor\"\n  import { SlashCommand } from \"novel\u002Fextensions\"\n  import { ImageResizer } from \"novel\u002Fplugins\"\n  ```\n+ ```typescript\n  import { Editor, SlashCommand, ImageResizer } from \"novel\"\n  ```\n\n### 受影响的导入\n\n以下导入路径已被整合：\n- `novel\u002Feditor`\n- `novel\u002Fextensions`\n- `novel\u002Fplugins`\n- `novel\u002Fui`\n- `novel\u002Fstyles`\n- `novel\u002Flib`\n\n所有导出内容\n\n## 变更内容\n* 修复：设置页面上的 Tailwind 示例链接已由 @adityaj07 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F427 中修正为指向正确文件。\n* 更新至 gpt-4o-mini，由 @BintzGavin 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F434 中完成。\n* 修复：toggleUnderline、unsetColor 和 unsetHighlight 不是函数的问题，由 @Gaoridang 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F436 中修复。\n* 修复：移除数学扩展内部的 KaTeX 样式导入，由 @phyohtetarkar 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F438 中完成。\n* 修复（文档）：Tailwind 扩展指南，由 @de-novo 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F458 中修复。\n* 修复 Tailwind 示例链接，由 @avitorio 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F463 中完成。\n* 功能新增：添加 markdownExtension，允许将 HTML 和 Markdown 字符串作为初始内容，由 @ujasbhuva 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F464 中实现。\n* 更新 text-buttons.tsx 文件，由 @AdejohOS 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F477 中完成。\n* 功能新增：对仓库代码进行大规模清理，由 @andrewdoro 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F478 中完成。\n\n## 新贡献者\n* @adityaj07 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F427 中完成了首次贡献。\n* @BintzGavin 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F434 中完成了首次贡献。\n* @Gaoridang 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F436 中完成了首次贡献。\n* @de-novo 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F458 中完成了首次贡献。\n* @avitorio 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F463 中完成了首次贡献。\n* @ujasbhuva 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F464 中完成了首次贡献。\n* @AdejohOS 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F477 中完成了首次贡献。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fcompare\u002Fnovel@0.5.0...novel@1.0.0","2025-02-11T10:33:20",{"id":176,"version":177,"summary_zh":178,"released_at":179},288832,"novel@0.2.9","**## Update to 0.2.10, this version is missing type definitions**\r\n\r\n## Breaking Changes\r\n**`defaultEditorProps` was removed from the library**\r\nIt was broken into multiple functions that have to be passed in the `editorProps`.\r\n\r\n- `handleImageDrop`, `handleImagePaste` require a custom uploadFn for uploading images (See guide [here](https:\u002F\u002Fnovel.sh\u002Fdocs\u002Fguides\u002Fimage-upload))\r\n\r\n```tsx\r\nimport { handleImageDrop, handleImagePaste } from \"novel\u002Fplugins\";\r\nimport { handleCommandNavigation } from \"novel\u002Fextensions\";\r\n\r\n\u003CEditorContent\r\n   editorProps={{\r\n        handleDOMEvents: {\r\n          keydown: (_view, event) => handleCommandNavigation(event),\r\n        },\r\n        handlePaste: (view, event) =>\r\n          handleImagePaste(view, event, uploadFn),\r\n        handleDrop: (view, event, _slice, moved) =>\r\n          handleImageDrop(view, event, moved, uploadFn),\r\n      \r\n      }}\r\n\r\n```\r\n\r\n## What's Changed\r\n\r\n* Show grabbing cursor when grabbing drag handle by @haydenbleasel in https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F334\r\n* feat: add custom upload config by @andrewdoro in https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F335\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fcompare\u002Fnovel@0.2.8...novel@0.2.9","2024-03-07T12:10:13",{"id":181,"version":182,"summary_zh":183,"released_at":184},288833,"novel@0.2.8","## What's Changed\r\n* fix: rename updated image type by @bouceka in https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F315\r\n* feat: clear nodes on node selector by @brunocroh in https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F322\r\n* Miscellaneous fixes by @haydenbleasel in https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F321\r\n* fix: remove drag-handle on drop by @brunocroh in https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F323\r\n* fix: dont trigger slash-command on codeBlock nodes by @brunocroh in https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F326\r\n\r\n## New Contributors\r\n* @bouceka made their first contribution in https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F315\r\n* @haydenbleasel made their first contribution in https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F321\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fcompare\u002Fnovel@0.2.7...novel@0.2.8","2024-03-05T22:28:25",{"id":186,"version":187,"summary_zh":188,"released_at":189},288834,"novel@0.2.7","## What's Changed\r\n* fix: update docs & rename type to EditorInstance by @andrewdoro in https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F310\r\n* feat: configure changesets for release by @andrewdoro in https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F311\r\n* fix: update packge docs by @andrewdoro in https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F314\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fcompare\u002F0.2.6...novel@0.2.7","2024-02-27T18:26:42",{"id":191,"version":192,"summary_zh":193,"released_at":194},288835,"0.2.6","## What's Changed\r\n* fix: colection to collection by @braden-w in https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F299\r\n* fix: use per-editor instance of tunnel to render slash command popover by @miikebar in https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F305\r\n\r\n## New Contributors\r\n* @braden-w made their first contribution in https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F299\r\n* @miikebar made their first contribution in https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F305\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fcompare\u002F0.2.4...0.2.6","2024-02-21T14:39:51",{"id":196,"version":197,"summary_zh":198,"released_at":199},288836,"0.2.4","## What's Changed\r\n* chore: update tiptap markdown by @andrewdoro in https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F295\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fcompare\u002F0.2.3...0.2.4","2024-02-13T19:02:53",{"id":201,"version":202,"summary_zh":203,"released_at":204},288837,"0.2.3","**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fcompare\u002F0.2.1...0.2.3","2024-02-13T13:54:47",{"id":206,"version":207,"summary_zh":208,"released_at":209},288838,"0.2.1","## What's Changed\r\n(Minor): Updated Placeholder `without or '++' for AI autocomplete...` until AI features are available\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fcompare\u002Fv0.1.0...0.2.1","2024-02-13T09:35:42",{"id":211,"version":212,"summary_zh":213,"released_at":214},288822,"novel@0.5.0","# 破坏性变更\n* `simpleExtensions` 不再导出，取而代之的是需要手动配置每个扩展。\n\u003Cimg width=\"907\" alt=\"截图 2024-07-26 at 01 15 54\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Faa3c1fca-6b0c-48eb-b75e-4b1dcd321e56\">\n\n\n## 变更内容\n* 修复：加粗文本颜色和加粗高亮颜色，由 @MODSetter 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F403 中完成。\n* 修复：使用 `\u003CEditorCommandList>` 包裹建议项，由 @ziyaDev 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F410 中完成。\n* Bug：使用 `editor.chain().focus()` 会导致从 tippy 弹出框中移除焦点。修复 #412，由 @tautastic 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F413 中完成。\n* 修复：移除默认扩展，并将其改为独立的导出模块，由 @cristianrdu 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F417 中完成。\n* 新特性：添加数学扩展，由 @phyohtetarkar 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F420 中完成。\n\n## 新贡献者\n* @ziyaDev 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F410 中完成了首次贡献。\n* @tautastic 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F413 中完成了首次贡献。\n* @phyohtetarkar 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F420 中完成了首次贡献。\n\n**完整更新日志**：https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fcompare\u002Fnovel@0.4.3...novel@0.5.0","2024-07-25T22:16:06",{"id":216,"version":217,"summary_zh":218,"released_at":219},288823,"novel@0.4.3","## 变更内容\n* 功能：指定将 Slash 命令添加到的元素，由 @missingsemicolononline8 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F400 中实现\n* 功能：添加 Twitter 扩展，由 @cristianrdu 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F407 中实现\n\n## 新贡献者\n* @missingsemicolononline8 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F400 中完成了首次贡献\n* @cristianrdu 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F407 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fcompare\u002Fnovel@0.4.2...novel@0.4.3","2024-06-20T20:10:19",{"id":221,"version":222,"summary_zh":223,"released_at":224},288824,"novel@0.4.2","## 变更内容\n* 修复：@MODSetter 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F395 中修复了代码块高亮在 HTML 输出中不显示的问题\n* 升级 tiptap-extension-global-drag-handle 至最新版本\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fcompare\u002Fnovel@0.4.1...novel@0.4.2","2024-05-19T19:32:39",{"id":226,"version":227,"summary_zh":228,"released_at":229},288825,"novel@0.4.1","## 重大变更\n* `getPrevText` 现在从 `novel\u002Futils` 中导出\n``` diff\n- import { getPrevText } from \"novel\u002Fextensions\";\n+ import { getPrevText } from \"novel\u002Futils\";\n```\n* 拖动手柄必须显式添加到扩展数组中\n``` diff\n+ import { GlobalDragHandle } from \"novel\u002Fextensions\";\n\nconst extensions = [..., GlobalDragHandle]\n```\n\n## 变更内容\n* 将 ESLint\u002FPrettier 迁移到 Biome\n* #370-修复无法在气泡菜单中移除已选链接的问题，由 @code-sharad 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F374 中完成\n* 新特性：添加代码块语法高亮支持，由 @ankuragrwl 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F375 中实现\n* 新特性：基础的 YouTube 嵌入功能 + 字符计数支持，由 @MODSetter 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F386 中实现\n* 如果发生错误，图片将被删除，由 @hernancito 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F390 中完成\n* `novel\u002Futils` 导出了一系列工具函数\n```ts\n\n\u002F\u002F 返回文档中指定位置之前的内容\nimport { getPrevText } from \"novel\u002Futils\";\n\nconst pos = editor.state.selection.from;\nconst text = getPrevText(editor, pos);\n        \n\n\u002F\u002F 返回文档内容的 Markdown 字符串\nimport { getAllContent } from \"novel\u002Futils\";\n\n```\n\n## 新贡献者\n* @code-sharad 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F374 中完成了首次贡献\n* @ankuragrwl 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F375 中完成了首次贡献\n* @MODSetter 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F386 中完成了首次贡献\n\n**完整更新日志**：https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fcompare\u002Fnovel@0.3.1...novel@0.4.1","2024-05-17T09:04:00",{"id":231,"version":232,"summary_zh":233,"released_at":234},288826,"novel@0.3.1","- 修复回归问题 #363\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fcompare\u002Fnovel@0.3.0...novel@0.3.1","2024-03-30T14:01:19",{"id":236,"version":237,"summary_zh":238,"released_at":239},288827,"novel@0.3.0","## 变更内容\n* 修复(文档)：由 @arielweinberger 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F354 中编写的 Tailwind 扩展指南\n* 新功能：支持自定义 OpenAI 基础 URL，由 @xyspg 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F358 中实现\n* 更新了拖动手柄，由 @NiclasDev63 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F361 中完成\n\n## 新贡献者\n* @arielweinberger 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F354 中完成了首次贡献\n* @xyspg 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F358 中完成了首次贡献\n* @NiclasDev63 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F361 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fcompare\u002Fnovel@0.2.13...novel@0.3.0","2024-03-29T08:47:16",{"id":241,"version":242,"summary_zh":243,"released_at":244},288828,"novel@0.2.13","## 变更内容\n* 修复：当编辑器不可编辑时，不显示气泡菜单，由 @EnriqueSantos-dev 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F347 中完成\n* 解决 #234，由 @haydenbleasel 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F350 中完成\n\n## 新贡献者\n* @EnriqueSantos-dev 在 https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F347 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fcompare\u002Fnovel@0.2.12...novel@0.2.13","2024-03-18T19:16:16",{"id":246,"version":247,"summary_zh":248,"released_at":249},288829,"novel@0.2.12","## Breaking Changes\r\n* `EditorCommandList` has to directly wrap the `EditorCommandItems` (this is because of cmdk).\r\n``` tsx\r\n \u003CEditorCommandList>\r\n      {suggestionItems.map((item) => (\r\n        \u003CEditorCommandItem>\r\n          ....\r\n        \u003C\u002FEditorCommandItem>\r\n      ))}\r\n\u003C\u002FEditorCommandList>\r\n```\r\nThis change was made to support wrapping of EditorCommandList with custom components.\r\n\r\n## What's Changed\r\n* Fix typo in development.mdx by @dongree in https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F338\r\n* feat: expose editor command list by @andrewdoro in https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F342\r\n\r\n## New Contributors\r\n* @dongree made their first contribution in https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F338\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fcompare\u002Fnovel@0.2.11...novel@0.2.12","2024-03-11T14:31:24",{"id":251,"version":252,"summary_zh":253,"released_at":254},288830,"novel@0.2.11","**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fcompare\u002Fnovel@0.2.10...novel@0.2.11\r\n\r\n## What's Changed\r\n* feat: add ai features example by @andrewdoro in https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fpull\u002F297\r\n* Novel now exports a couple of utilities for dealing with AI cases:\r\n\r\n```tsx\r\n\u002F\u002Fthis extension is used for highlighting text for the AI\r\nimport { AIHighlight } from \"novel\u002Fextensions\";\r\n\r\n\u002F\u002Fcall this function when entering in AI mode to highlight current selection\r\nimport { addAIHighlight } from \"novel\u002Fextensions\";\r\n\r\n\u002F\u002Fcall this function when AI mode is no longer used\r\nimport { removeAIHighlight } from \"novel\u002Fextensions\";\r\n\r\n\u002F\u002Fthis function returns the current selection in Markdown\r\nimport { getPrevText } from \"novel\u002Fextensions\";\r\n\r\n\r\n\r\n```\r\n\r\n### Implementation\r\nYou can see an example implementation \r\nhttps:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Ftree\u002Fmain\u002Fapps\u002Fweb\u002Fcomponents\u002Ftailwind\u002Fgenerative\r\n\r\n\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fcompare\u002Fnovel@0.2.10...novel@0.2.11","2024-03-08T12:22:26",{"id":256,"version":257,"summary_zh":258,"released_at":259},288831,"novel@0.2.10","- Fixes missing types.\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fsteven-tey\u002Fnovel\u002Fcompare\u002Fnovel@0.2.9...novel@0.2.10","2024-03-07T13:13:42"]