diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..9c96530 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,8 @@ +.git +.gitignore +README.md +Dockerfile +docker-compose.yml +.dockerignore +site/ +*.log diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..afe37e5 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,25 @@ +# 使用官方Python镜像 +FROM python:3.9-slim + +# 设置工作目录 +WORKDIR /app + +# 安装系统依赖 +RUN apt-get update && apt-get install -y \ + git \ + && rm -rf /var/lib/apt/lists/* + +# 安装Python依赖 +RUN pip install --no-cache-dir \ + mkdocs==1.5.3 \ + mkdocs-material==9.4.8 \ + pymdown-extensions==10.3.1 + +# 复制项目文件 +COPY . . + +# 暴露端口 +EXPOSE 8000 + +# 启动命令 +CMD ["mkdocs", "serve", "--dev-addr=0.0.0.0:8000"] diff --git a/README.md b/README.md index 67b3537..fd5fe06 100644 --- a/README.md +++ b/README.md @@ -72,13 +72,13 @@ https://your-domain.github.io/n8n-guide 如果您希望在本地运行或贡献内容,请按以下步骤操作: -#### 环境要求 +#### 方式一:Python直接运行 +**环境要求**: - Python 3.7+ - pip 包管理器 -#### 安装步骤 - +**安装步骤**: 1. **克隆项目** ```bash git clone https://github.com/your-username/n8n-guide.git @@ -100,6 +100,36 @@ https://your-domain.github.io/n8n-guide 4. **访问文档** 打开浏览器访问 `http://127.0.0.1:8000` +#### 方式二:Docker部署(推荐) + +**环境要求**: +- Docker +- Docker Compose + +**一键部署**: +```bash +# 启动服务 +./start.sh + +# 或者使用Docker Compose +docker-compose up -d +``` + +**访问文档**: +打开浏览器访问 `http://localhost:8000` + +#### 公网服务器部署 + +**部署到公网服务器**: +```bash +# 上传项目文件到服务器 +# 运行部署脚本 +./deploy.sh +``` + +**访问地址**: +`http://your-server-ip:8000` + #### 构建静态站点 ```bash diff --git a/deploy.sh b/deploy.sh new file mode 100644 index 0000000..f269ba1 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +# n8n指南部署脚本 +# 适用于公网服务器部署 + +echo "🚀 开始部署n8n指南..." + +# 检查Docker是否安装 +if ! command -v docker &> /dev/null; then + echo "❌ Docker未安装,请先安装Docker" + exit 1 +fi + +# 检查Docker Compose是否安装 +if ! command -v docker-compose &> /dev/null; then + echo "❌ Docker Compose未安装,请先安装Docker Compose" + exit 1 +fi + +# 停止现有容器 +echo "🛑 停止现有容器..." +docker-compose down + +# 构建并启动服务 +echo "🔨 构建并启动服务..." +docker-compose up -d --build + +# 检查服务状态 +echo "📊 检查服务状态..." +sleep 5 +docker-compose ps + +# 检查端口占用 +echo "🔍 检查端口8000状态..." +if netstat -tlnp | grep :8000 > /dev/null; then + echo "✅ 服务已启动,访问地址:http://your-server-ip:8000" +else + echo "❌ 服务启动失败,请检查日志:docker-compose logs" +fi + +echo "🎉 部署完成!" diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..ed1cbaa --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,19 @@ +version: '3.8' + +services: + n8n-guide: + build: . + container_name: n8n-guide + ports: + - "8000:8000" + volumes: + - .:/app + restart: unless-stopped + environment: + - PYTHONUNBUFFERED=1 + networks: + - n8n-guide-network + +networks: + n8n-guide-network: + driver: bridge diff --git a/docs/ai-center/functions.md b/docs/ai-center/functions.md index 1d5a059..a6c0df2 100644 --- a/docs/ai-center/functions.md +++ b/docs/ai-center/functions.md @@ -1,4 +1,4 @@ -# AI卓越中心:职能与支持 +# n8n迷你Hackathon小组:职能与支持 ## 📚 学习资源 @@ -6,258 +6,24 @@ - **中文文档**:[n8n中文文档](https://docs.n8ncn.io) - **快速开始**:[n8n.io](https://n8n.io) -我们的AI卓越中心致力于为用户提供全方位的n8n技术支持和服务,助力个人和企业在自动化领域取得卓越成就。 +n8n迷你Hackathon小组是一个非盈利的学习交流组织,致力于为n8n用户提供技术支持和学习资源。 ## 🎯 核心职能 -### 技术支持服务 +### 技术支持 +提供专业的技术支持,解决用户在使用n8n过程中遇到的问题。 -
提供n8n部署、配置、优化等全方位技术支持,解决您在使用过程中遇到的各种技术问题
-为您提供项目规划、设计和实施的专业咨询,确保自动化项目的顺利进行和成功落地
-定期举办线上线下培训课程,帮助用户掌握n8n使用技巧和行业最佳实践
-维护和管理技术社区资源,促进用户交流合作,共同推动n8n生态发展
-
+
+
+
+### 2.2 本地/私有化部署
+
+#### 部署方式对比
+
+1. **n8n 云服务 (Cloud Hosting) - 最快速、无需部署**
+ * **描述**:最简单快捷的入门方式,无需任何本地安装和配置。访问 https://n8n.io 注册即可开始,官方提供免费试用。
+ * **适用人群**:初学者、业务用户、希望快速验证自动化想法的用户。
+
+2. **使用 npm 安装 - 适合开发者快速本地启动**
+ * **描述**:对于熟悉 Node.js 环境的开发者,通过简单的 `npm` 命令行指令即可在本地快速启动 n8n,适合在本地进行开发、测试和调试。
+
+3. **使用 Docker 安装 - 推荐的本地或服务器部署方式**
+ * **描述**:Docker 提供容器化部署,确保环境一致性,避免复杂的依赖问题。它封装了 n8n 及其所有依赖,是本地开发和中小型项目生产部署的理想选择。
+
+4. **服务器自托管 (Self-hosting) - 灵活且注重隐私**
+ * **描述**:n8n 是一款**公平代码许可 (fair-code licensed)** 的软件,支持自托管,提供极高的**灵活性、隐私和安全性控制**。您可以在 Digital Ocean, AWS, Azure, Google Cloud 等任意云服务器上部署,并进行深度定制化配置。
+ * **适用人群**:对数据隐私、系统性能或集成有特定需求的企业和高级用户。
+ **相关教程**:
+ * 图文教程
+ https://blog.csdn.net/2501_90561511/article/details/147479401?spm=1001.2014.3001.5502
+ * 视频教程:
+ https://www.bilibili.com/video/BV1kZNrzpEy6
+
+#### Docker 部署注意事项
+
+如果选择 Docker 部署,请特别注意 `volumes` 映射配置:
+* **第一个 Volume**:用于持久化存储 n8n 的工作流、凭证等核心数据。
+ * `Host Path`:您服务器上的一个路径,例如 `/data/n8n/config`。
+ * `Container Path`:固定为 `/home/node/.n8n`。
+* **第二个 Volume**:用于 n8n 工作流读写本地文件。
+ * `Host Path`:您服务器上用于存放处理文件的路径,例如 `/data/n8n/files`。
+ * `Container Path`:在 n8n 节点中访问该文件夹的路径,例如 `/files`(请记住这个路径)。
+
+
+
+### 2.3 界面介绍
+
+n8n 的界面直观易用,主要由工作流画布、节点面板、参数配置区和执行日志等部分组成。详细介绍请参考:
+https://n8n.akashio.com/article/n8n-ui
+
+### 2.4 凭证管理 (Credentials)
+
+**凭证是 n8n 连接外部世界的“钥匙”**。它用于安全地存储和管理连接外部服务(如数据库、API、邮箱)所需的授权信息(如 API 密钥、OAuth 令牌、用户名密码等)。
+
+* **安全存储**:n8n 对凭证进行加密存储,保护您的账户安全。
+* **集中管理**:在一个地方统一创建、查看和管理所有凭证。
+* **一次配置,多次使用**:创建一次凭证后,可在多个工作流和节点中重复使用。
+* **避免硬编码**:将敏感信息与工作流逻辑分离,是更安全、更易于维护的最佳实践。
+常用凭证:
+- 大模型凭证
+- 邮箱凭证
+- 数据库凭证
+图文示例请参考:
+https://jishuzhan.net/article/1951148541186977794
+
+### 2.5 n8n 汉化
+
+在使用 Docker 部署时,可以通过添加环境变量和挂载中文语言包的方式实现界面汉化。
+
+参考:
+https://zhuanlan.zhihu.com/p/1937586953865372387
+
+
+## 3. 学习与使用
+### 3.1常用节点
+
+
+
+1. 触发 (Triggers)
+
+触发器是工作流的起点,用于在特定事件发生时启动自动化流程。
+
+• **手动触发 (Manual Trigger)**:
+
+- **功能和用法**:手动触发节点用于**用户启动的工作流**。它允许您在需要时手动运行工作流,而不是等待特定事件发生。
+
+- **配置**:作为核心节点,通常不需要复杂配置,只需在需要时点击执行即可。
+
+• **定时触发 (Schedule Trigger)**:
+
+- **功能和用法**:定时触发节点用于**基于时间的自动化任务**。您可以设置工作流在特定时间或按固定时间间隔自动运行。
+
+- **配置**:您需要配置触发的时间、频率等参数。文档中也提到了该节点可能遇到的“常见问题”。
+
+• **Webhook (Webhook)**:
+
+- **功能和用法**:Webhook 节点用于**API 触发的自动化**。它允许外部服务通过发送HTTP请求来启动n8n工作流,实现实时集成和响应。
+
+- **配置**:需要设置一个生产URL,并在您的MCP客户端中使用这个URL。文档中提到了“工作流开发”和“常见问题”。在导入工作流时,需要更新Webhook URL。
+
+• **自动化 (Automation)**:
+
+- **功能和用法**:自动化是n8n的核心能力和目标。它涵盖了**连接任何带有API的应用程序并对其数据进行操作**,以及**构建复杂的、端到端的工作流**。n8n特别适用于**批量数据处理、搬运和引入AI到现有工作流**。
+
+- **配置**:自动化是n8n平台提供的整体能力,而非单一节点。各种触发器、处理节点和逻辑节点共同实现自动化。
+
+• **邮件触发 (Email Trigger)**:
+
+- **功能和用法**:邮件触发(IMAP)节点可以根据新邮件或其他邮件事件来启动工作流。例如,可以构建工作流来**自动标记收到的Gmail邮件** 或**根据新邮件内容草拟回复**。
+
+- **配置**:需要配置IMAP相关参数,如服务器、端口、凭据等。
+
+• **对话触发 (Chat Trigger)**:
+
+- **功能和用法**:对话触发节点用于响应聊天消息来启动工作流。例如,“AI代理聊天”和“Telegram AI聊天机器人”是趋势模板,它们可能通过对话触发来接收用户输入。
+- 配置:配置聊天平台和监听的事件。
+
+2. 输入 (Input)
+
+输入节点用于从各种数据源获取信息,供工作流后续处理使用。
+
+• **读本地文件 (Read Local File)**:
+
+- **功能和用法**:允许工作流读取本地文件系统中的文件。
+
+- **配置**:使用“Read/Write Files from Disk”核心节点来指定文件路径和读取方式。
+
+• **HTTP 请求 (HTTP Request)**:
+
+- **功能和用法**:HTTP请求节点是**“半开放式节点”**,它允许n8n接入**几乎任何开放API的第三方服务**。可以用于从互联网获取数据。
+
+- **配置**:需要配置请求URL、方法(GET、POST等)、头部信息和请求体等。可以与ChatGPT结合使用来编写代码片段,帮助连接不在官方节点库中的功能。
+
+• **MySQL 获取数据 (MySQL Get Data)**:
+
+- **功能和用法**:n8n支持与MySQL数据库集成。可以用于从MySQL数据库中**查询和检索数据**。
+
+- **配置**:需要配置MySQL凭据和要执行的查询语句。例如,可以使用AI代理与PostgreSQL或MongoDB数据库进行交互,并支持自定义SQL查询和模式内省,MySQL也应有类似功能。
+
+• **RSS 网络搜索 (RSS Web Search)**:
+
+- **功能和用法**:RSS Read和RSS Feed Trigger节点用于**读取RSS订阅源**,从而获取最新的网络信息或文章更新。可以构建“基于RSS的阅读分流器” 或**监控RSS源并总结文章**。
+
+- **配置**:输入RSS订阅源URL。
+
+• **Google 表格、云盘 (Google Sheets, Google Drive)**:
+
+- **功能和用法**:n8n与Google Sheets和Google Drive有深度集成。您可以**读取、写入Google Sheets中的数据**;**访问和利用Google Drive中的文件**,例如构建AI助手来回答基于文档内容的问题。还可以监控Google Drive中的新文档,并使用AI进行总结。
+
+- **配置**:需要配置Google凭据,并指定要操作的表格或文件路径。
+
+3. 处理 (Process)
+
+处理节点用于对输入数据进行转换、分析或执行特定操作。
+
+• **AI 代理 (AI Agent)**:
+
+- **功能和用法**:AI代理节点是n8n中构建高级AI功能的核心。它将**LangChain框架可视化**,允许AI代理**发现、管理和运行工作流**。AI代理能够根据任务自动选择和执行工具(如搜索、存储)。
+
+- **配置**:AI代理节点具有子节点,允许灵活配置**模型(Model)、记忆(Memory)、工具(Tool)和输出解析器(Output Parser)**。在使用社区节点作为AI代理工具时,必须设置环境变量 `N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true`。
+
+• **代码 (Code)**:
+
+- **功能和用法**:代码节点是**“半开放式节点”**,支持在服务器端运行**JavaScript和Python代码**。这使得您可以**编写自定义逻辑**或处理n8n内置节点无法直接支持的复杂任务。
+
+- **配置**:在节点内部编写JavaScript或Python代码,可以访问和处理工作流中的数据。
+
+• **编辑字段 (Edit Fields)**:
+
+- **功能和用法**:Edit Fields (Set) 节点用于**设置或修改工作流中数据项的字段值**。这类似于电子表格中查找和修改单元格的操作,AI可以通过此类节点修改数据。
+- **配置**:指定要编辑的字段名和新的值。
+
+4. 逻辑 (Logic)
+
+逻辑节点用于控制工作流的执行路径和数据流。
+
+• **If (If)**:
+
+- **功能和用法**:If 节点用于**条件判断**,根据设定的条件将工作流分支到不同的路径。
+
+- **配置**:设置条件表达式,当条件为真时执行一个分支,为假时执行另一个分支。
+
+• **循环项 (Loop Over Items)**:
+
+- **功能和用法**:Loop Over Items (Split in Batches) 节点用于**遍历数据集合**,对每个数据项执行重复操作。
+
+- **配置**:配置循环的批处理大小或遍历方式。
+
+• **切换 (Switch)**:
+
+- **功能和用法**:Switch 节点类似于多条件判断,根据输入数据的不同值将工作流路由到多个不同的分支。
+
+- **配置**:为不同的输入值设置对应的输出分支。
+
+• **合并 (Merge)**:
+
+- **功能和用法**:Merge 节点用于**合并来自不同分支的数据流**,使它们能够在一个统一的流中继续处理。
+
+- **配置**:选择合并数据的策略。
+
+5. 输出 (Output)
+
+输出节点用于将工作流处理后的结果发送到外部服务或存储。
+
+• **发送邮件 (Send Email)**:
+
+- **功能和用法**:Send Email 节点用于**发送电子邮件**。您可以配置邮件内容、收件人、主题等。
+
+- **配置**:需要配置邮件服务提供商的凭据(如Gmail、Outlook.com、Yahoo)。
+
+• **响应 Webhook (Respond to Webhook)**:
+
+- **功能和用法**:Respond to Webhook 节点用于**向发起Webhook请求的服务发送响应**。这使得n8n可以作为API的后端,对外部请求进行处理并返回数据。
+
+- **配置**:配置响应的状态码和响应体内容。
+
+• **生成文件到本地 (Generate File to Local)**:
+
+- **功能和用法**:虽然没有直接名为“生成文件到本地”的节点,但“Read/Write Files from Disk”核心节点支持**写入文件到本地磁盘**。这意味着工作流可以将处理后的数据保存为本地文件。例如,AI可以“SaveFile”将修改后的文件保存回硬盘。
+
+- **配置**:使用“Read/Write Files from Disk”节点,选择写入操作,并指定文件内容和保存路径。
+
+### 3.2基本工作流创建
+图文教程:
+https://mp.weixin.qq.com/s/oIcmTW0Gg2r63C0Tn91r2Q
+视频教程:
+https://www.bilibili.com/video/BV1nejbz6Eip/?spm_id_from=333.337.search-card.all.click&vd_source=d9f631f2aa422b95711dea08e6660a60
+
+### 3.3避坑指南
+n8n容易踩坑的环节,同事也是开发稳定性高的n8n工作流的要求。
+https://x.com/binggandata/status/1951798212995829996
+
+1️⃣97% 的 n8n 工作流缺乏异常处理, 在出错时默默失败。 建议:为每个工作流添加一个错误触发器, 并强制对关键节点(HTTP/API/DB)进行异常处理+邮件/Slack 通知。
+
+2️⃣320 个 webhooks 未进行身份验证, 152 个进程仍在使用明文 HTTP。 有些直接在节点中硬编码键。 建议:对所有 webhooks 强制执行身份验证, 全程使用 HTTPS,不要硬编码 API 密钥,定期轮换它们,并加密存储。
+
+3️⃣很多流程有无用节点、API 在循环里频繁请求、无效数据转换反复出现。 建议:能批量就批量,流程结构清晰,节点合并, 并行能并行,复杂逻辑直接用代码节点搞定。
+
+4️⃣35% 的工作流接入了 AI,但大部分没做向量数据库和缓存,token 消耗高。 建议:Prompt 要分块,简单用 GPT-3.5,复杂用 GPT-4, 批量处理+结果校验,AI 节点也要异常处理和日志监控。
+
+5️⃣74.7% 工作流分类都是 General, 文档说明严重不足,协作查错全靠猜。 建议:流程统一命名+标签, 关键节点加 Sticky Note,协作排查省大把时间。
+
+6️⃣高频套路: 数据转换(Set→HTTP)、API 链式(HTTP→HTTP)、条件分流(If/Switch→Set)、数据聚合(Set→Merge) 建议:直接套用成熟流程模板,少造轮子。
+
+7️⃣上线前安全清单: 所有 webhook 有认证、外部请求全 HTTPS、敏感数据加密、权限分层、异常信息不泄露隐私。 建议:每次上线前都照单自查一遍。
+
+8️⃣维护和优化: 慢流程拆分为子流程,API 并发要批量/加缓存,老旧节点及时清理。 建议:每月安全&性能巡检,流程有改动就同步文档。
+
+9️⃣很多流程没监控,出错没人知道,维护成本高。 建议:每个关键流程都加集中日志和监控, 记录流程名、节点、错误和时间戳,AI/长流程建议加进度日志。
+
+1️⃣0️⃣只要你把这些最佳实践都落地了: 绝大部分工作流有异常处理、webhook 全认证、HTTPS 全覆盖、无明文密钥、流程分类注释完整, 平均执行时间都能压到 10 秒以内!
+
+### 3.4进阶应用 - 模板套用
+n8n的模板套用方式非常直观
+首先在任意位置复制整段文本:
+
+
+
+在n8n任意位置粘贴:
+
+
+2000+模板
+https://github.com/enescingoz/awesome-n8n-templates ✅
+2000+模板
+https://github.com/Zie619/n8n-workflows ✅
+
+### 3.5进阶应用 - mcp
+
+模型上下文协议(MCP)定义了AI代理与外部工具的标准化通信框架,允许在不同LLM之间无缝切换工具集成逻辑。其架构包含三大组件:
+
+1. 主机(Host):承载MCP连接的LLM应用(如Claude Desktop、Cursor IDE)
+2. 客户端(Client):作为对接MCP服务器的通信端点
+3. 服务器(Server):为主机提供工具、数据或提示资源的独立服务
+
+这种架构使得n8n能以两种角色接入MCP生态:既可以将工作流作为MCP服务器对外暴露功能,也能作为客户端调用其他MCP服务器的能力。
+
+如何将整个mcp工作流部署为mcp服务
+图文教程
+https://zhuanlan.zhihu.com/p/1913630305291567877
+官网介绍:
+https://n8n.io/workflows/3770-build-your-own-n8n-workflows-mcp-server/
+
+### 3.6进阶应用 - 自然语言编程
+使用官方扩展:n8nchat
+https://n8nchat.com
+
+部署开源项目
+https://www.bilibili.com/video/BV1HuKEzDEaj/?spm_id_from=333.337.search-card.all.click&vd_source=c1396b80a656000a13265d2670a6de6e
+
+### 3.7进阶应用 - 社区节点
+ 社区节点排行榜 TOP 100
+https://github.com/restyler/awesome-n8n?tab=readme-ov-file
+点击设置
+
+
+
+点击社区节点和下载
+
+
+输入想要安装的社区节点
+
+
+## 4. 参考资料与术语表
+### 4.1 参考资料
+n8n文档
+https://docs.n8n.io
+中文文档:
+https://docs.n8ncn.io
+官方社区(模板、社区成员)
+https://community.n8n.io/
+快速开始:
+https://n8n.io/
+界面介绍
+https://n8n.akashio.com/article/n8n-ui
+教学合集:
+https://www.darrelltw.com/n8n-tutorial-resources/#templates
+零基础教程
+https://www.bilibili.com/video/BV1nejbz6Eip/?spm_id_from=333.337.search-card.all.click&vd_source=d9f631f2aa422b95711dea08e6660a60
+2000+模板
+https://github.com/enescingoz/awesome-n8n-templates
+2000+模板
+https://github.com/Zie619/n8n-workflows
+n8n踩坑环节。
+https://x.com/binggandata/status/1951798212995829996
+使用n8n自动抓取天气预报,并发送到微信
+https://zhuanlan.zhihu.com/p/629643758
+n8n+mcp+deepseek
+https://blog.csdn.net/m0_59235245/article/details/147950398)
+视频教程
+https://www.bilibili.com/video/BV11QX8YNEjU/?spm_id_from=333.337.search-card.all.click&vd_source=d9f631f2aa422b95711dea08e6660a60
+mcp节点
+https://github.com/nerding-io/n8n-nodes-mcp
+如何将整个mcp工作流部署为mcp服务
+图文教程
+https://zhuanlan.zhihu.com/p/1913630305291567877
+官网介绍:
+https://n8n.io/workflows/3770-build-your-own-n8n-workflows-mcp-server/
+n8nchat(自然语言编程)
+https://n8nchat.com
+飞书表格
+https://mp.weixin.qq.com/s/MIoNKpCSBYhhBjxCAaGSYg
+多智能体工作流
+https://mp.weixin.qq.com/s/efsB3GwZzTVH4rjW5i0iGQ
+论文自动解读知识库
+[https://mp.weixin.qq.com/s/YBoM7YkpHjsFl-hyaSsnOw
+### 4.2 术语表
+
+- **n8n**: 一个开源且公平代码许可的工作流自动化工具,允许用户通过可视化界面连接应用程序和 API,以实现数据操作和业务流程自动化。
+- **MCP (Model Context Protocol)**: 模型上下文协议,一种标准化协议,用于使 AI 模型能够与外部工具和数据源进行交互,从而扩展其能力。
+- **n8n MCP 服务器工作流模板**: 一个预构建的 n8n 工作流,用于将现有的 n8n 工作流转换为一个 MCP 服务器,使得 AI 客户端可以发现、管理和执行这些工作流。
+- **AI 代理 (AI Agent)**: 能够理解指令、规划行动、使用工具并与环境交互以实现目标的智能系统,通常由大型语言模型驱动。
+- **工作流 (Workflow)**: 在 n8n 中,由一系列相互连接的节点组成的自动化流程,用于执行特定任务或自动化业务逻辑。
+- **节点 (Node)**: n8n 工作流的基本组成单元,代表一个特定的操作或与一个应用程序的集成。
+- **MCP 触发器 (MCP Trigger)**: n8n MCP 服务器工作流模板中的一个核心节点,用于接收 MCP 客户端的请求并触发相关操作(如发现、管理或执行工作流)。
+- **“可用”工作流 (Available Workflows)**: 在 n8n MCP 服务器中,被明确允许 AI 代理访问和使用的 n8n 工作流集合,通常通过标签或其他过滤方式进行管理。
+- **Redis**: 一个开源的、内存中的数据结构存储,可用作数据库、缓存和消息代理。在 n8n MCP 服务器模板中,它被用作内存来跟踪“可用”工作流。
+- **Subworkflow 触发器 (Subworkflow Trigger)**: n8n 中的一种触发器节点,允许一个工作流作为另一个工作流的子流程被调用和执行,常用于模块化和参数传递。
+- **输入模式 (Input Schema)**: 定义工作流或节点预期接收的数据结构和数据类型,确保数据以正确的格式传入。
+- **直通方法 (Passthrough Method)**: 在 n8n 中,一种参数传递方式,表示当节点未明确设置参数时,将使用传入的数据作为默认值。
+- **API 密钥 (API Key)**: 应用程序编程接口密钥,一种用于验证用户、应用程序或服务的身份并授予其访问 API 权限的凭证。
+- **Claude Desktop**: 一种 MCP 客户端或 AI 代理,能够通过 MCP 协议与外部工具和数据源(如 n8n MCP 服务器)进行交互。
+- **LangChain**: 一个流行的开源框架,旨在帮助开发者构建由大型语言模型 (LLM) 驱动的应用程序和代理,它将 LLM 相关代码封装为可复用的组件。
+- **RAG (Retrieval-Augmented Generation)**: 检索增强生成,一种 AI 技术,通过从外部知识库中检索相关信息来增强大型语言模型的生成能力,使其能够提供更准确和实时的回答。
+- **HTTP Request**: 一种 n8n 节点,用于向任意 HTTP/HTTPS 端点发送请求,常用于与未直接集成的第三方服务进行交互。
+- **Code 节点 (Code Node)**: n8n 中的一种节点,允许用户在工作流中编写和执行自定义的 JavaScript 或 Python 代码,实现更复杂的逻辑或与特定库交互。
+- **私有部署 (Self-hosting)**: 用户在自己的服务器或基础设施上安装和运行软件,而不是使用云服务提供商提供的托管版本,通常出于隐私、安全或定制需求。
+- **低代码 (Low-code)**: 一种软件开发方法,通过最少量的手动编码实现应用程序的快速开发,通常依赖于图形用户界面和可视化工具。
+- **无代码 (No-code)**: 一种软件开发方法,允许非技术用户通过拖拽界面和预构建组件来创建应用程序和自动化流程,无需编写任何代码。
+- **Docker**: 一个用于开发、交付和运行应用程序的开源平台,通过容器化技术使应用程序及其依赖项能够打包在一起,并在任何环境中以相同方式运行。
+- **GitHub**: 一个基于 Web 的版本控制和协作平台,用于软件开发,允许开发者存储、管理和共享代码仓库。n8n 的许多工作流模板和社区节点都托管在 GitHub 上。
+
+
+## 5. n8n迷你Hackathon小组
+### 5.1 职能与支持
+- 技术支持:提供专业的技术支持,解决用户在使用n8n过程中遇到的问题。
+- 项目咨询:为用户提供项目规划、设计和实施的咨询服务,确保项目的顺利进行。
+- 培训服务:定期举办线上或线下的培训课程,帮助用户掌握n8n的使用技巧和最佳实践。
+- 社区建设:维护和管理社区资源,促进用户之间的交流与合作,共同推动n8n的发展。
+### 5.2 加入我们的方式
+扫码加入群聊:
+
diff --git a/docs/assets/images/二维码.jpg b/docs/assets/images/二维码.jpg
new file mode 100644
index 0000000..8334253
Binary files /dev/null and b/docs/assets/images/二维码.jpg differ
diff --git a/docs/assets/images/云平台1.png b/docs/assets/images/云平台1.png
new file mode 100644
index 0000000..6e4ac1d
Binary files /dev/null and b/docs/assets/images/云平台1.png differ
diff --git a/docs/assets/images/云平台2.png b/docs/assets/images/云平台2.png
new file mode 100644
index 0000000..e371b9f
Binary files /dev/null and b/docs/assets/images/云平台2.png differ
diff --git a/docs/assets/images/云平台3.png b/docs/assets/images/云平台3.png
new file mode 100644
index 0000000..8280d74
Binary files /dev/null and b/docs/assets/images/云平台3.png differ
diff --git a/docs/assets/images/复制.png b/docs/assets/images/复制.png
new file mode 100644
index 0000000..5d373ee
Binary files /dev/null and b/docs/assets/images/复制.png differ
diff --git a/docs/assets/images/工具箱.png b/docs/assets/images/工具箱.png
new file mode 100644
index 0000000..bfb1c27
Binary files /dev/null and b/docs/assets/images/工具箱.png differ
diff --git a/docs/assets/images/节点分类.png b/docs/assets/images/节点分类.png
new file mode 100644
index 0000000..bfb1c27
Binary files /dev/null and b/docs/assets/images/节点分类.png differ
diff --git a/docs/assets/images/选择名字.png b/docs/assets/images/选择名字.png
new file mode 100644
index 0000000..7353668
Binary files /dev/null and b/docs/assets/images/选择名字.png differ
diff --git a/docs/assets/images/选择社区.png b/docs/assets/images/选择社区.png
new file mode 100644
index 0000000..abdafb9
Binary files /dev/null and b/docs/assets/images/选择社区.png differ
diff --git a/docs/assets/images/选择设置.png b/docs/assets/images/选择设置.png
new file mode 100644
index 0000000..88edb81
Binary files /dev/null and b/docs/assets/images/选择设置.png differ
diff --git a/docs/assets/images/配置画面.png b/docs/assets/images/配置画面.png
new file mode 100644
index 0000000..a70f167
Binary files /dev/null and b/docs/assets/images/配置画面.png differ
diff --git a/docs/assets/images/黏贴.png b/docs/assets/images/黏贴.png
new file mode 100644
index 0000000..e6dbbf2
Binary files /dev/null and b/docs/assets/images/黏贴.png differ
diff --git a/docs/installation/local-deployment.md b/docs/installation/local-deployment.md
index 0100e51..7cccb6d 100644
--- a/docs/installation/local-deployment.md
+++ b/docs/installation/local-deployment.md
@@ -50,6 +50,8 @@ n8n start
- **数据存储**:`/home/node/.n8n` - 存储工作流和凭证
- **文件访问**:`/files` - 工作流读写本地文件
+
+
**基础环境变量**:
```bash
GENERIC_TIMEZONE=Asia/Shanghai
diff --git a/docs/installation/localization.md b/docs/installation/localization.md
index e77f0a1..cd61f47 100644
--- a/docs/installation/localization.md
+++ b/docs/installation/localization.md
@@ -6,7 +6,7 @@
- **官方文档**:[n8n官方文档](https://docs.n8n.io)
- **中文文档**:[n8n中文文档](https://docs.n8ncn.io)
-在使用Docker部署时,可以通过添加环境变量和挂载中文语言包的方式实现界面汉化。
+在使用Docker部署时,可以通过添加环境变量的方式实现界面汉化。
## 🌏 汉化的必要性
@@ -40,7 +40,7 @@
## 🐳 Docker部署汉化方案
-### 方案一:环境变量汉化
+### 环境变量汉化
最简单的汉化方式是通过环境变量设置:
@@ -77,230 +77,7 @@ volumes:
n8n_data:
```
-### 方案二:挂载语言包
-更完整的汉化需要挂载自定义语言包:
-
-```yaml title="docker-compose.zh.yml"
-version: '3.8'
-
-services:
- n8n:
- image: n8nio/n8n
- container_name: n8n-zh
- restart: unless-stopped
- ports:
- - "5678:5678"
- environment:
- - GENERIC_TIMEZONE=Asia/Shanghai
- - N8N_DEFAULT_LOCALE=zh-CN
- - NODE_ENV=production
- volumes:
- - n8n_data:/home/node/.n8n
- - /data/n8n/files:/files
- # 挂载中文语言包
- - ./locales:/usr/local/lib/node_modules/n8n/dist/packages/editor-ui/dist/static/locales
- depends_on:
- - postgres
-
- postgres:
- image: postgres:13
- restart: unless-stopped
- environment:
- - POSTGRES_USER=n8n
- - POSTGRES_PASSWORD=n8n_password
- - POSTGRES_DB=n8n
- # 设置数据库字符集
- - POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=zh_CN.UTF-8 --lc-ctype=zh_CN.UTF-8
- volumes:
- - postgres_data:/var/lib/postgresql/data
-
-volumes:
- n8n_data:
- postgres_data:
-```
-
-## 📁 语言包文件结构
-
-### 创建本地语言包目录
-
-```bash
-# 创建语言包目录
-mkdir -p /data/n8n/locales
-
-# 下载中文语言包
-curl -o /data/n8n/locales/zh-CN.json https://raw.githubusercontent.com/n8n-io/n8n/master/packages/editor-ui/src/plugins/i18n/locales/zh.json
-```
-
-### 自定义翻译内容
-
-```json title="locales/zh-CN.json"
-{
- "n8n": {
- "auth": {
- "signin": "登录",
- "signup": "注册",
- "signout": "退出登录",
- "forgotPassword": "忘记密码"
- },
- "generic": {
- "save": "保存",
- "cancel": "取消",
- "delete": "删除",
- "edit": "编辑",
- "create": "创建",
- "search": "搜索",
- "loading": "加载中..."
- },
- "workflows": {
- "new": "新建工作流",
- "save": "保存工作流",
- "execute": "执行工作流",
- "activate": "激活",
- "deactivate": "停用"
- },
- "nodes": {
- "add": "添加节点",
- "delete": "删除节点",
- "duplicate": "复制节点",
- "rename": "重命名"
- },
- "credentials": {
- "title": "凭证管理",
- "create": "创建凭证",
- "edit": "编辑凭证",
- "test": "测试连接"
- }
- }
-}
-```
-
-## 🛠️ 完整汉化部署脚本
-
-### 一键汉化部署脚本
-
-```bash title="setup-n8n-zh.sh"
-#!/bin/bash
-
-# n8n中文版一键部署脚本
-
-set -e
-
-echo "🚀 开始部署n8n中文版..."
-
-# 创建必要目录
-echo "📁 创建目录结构..."
-mkdir -p /data/n8n/{config,files,locales,backups}
-
-# 下载语言包
-echo "🌏 下载中文语言包..."
-curl -s -o /data/n8n/locales/zh-CN.json \
- https://raw.githubusercontent.com/n8n-io/n8n/master/packages/editor-ui/src/plugins/i18n/locales/zh.json
-
-# 创建docker-compose配置
-echo "🐳 创建Docker配置..."
-cat > /data/n8n/docker-compose.yml << 'EOF'
-version: '3.8'
-
-services:
- postgres:
- image: postgres:13
- restart: unless-stopped
- environment:
- - POSTGRES_USER=n8n
- - POSTGRES_PASSWORD=n8n_secure_password
- - POSTGRES_DB=n8n
- - POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=zh_CN.UTF-8 --lc-ctype=zh_CN.UTF-8
- volumes:
- - postgres_data:/var/lib/postgresql/data
- networks:
- - n8n-network
-
- n8n:
- image: n8nio/n8n:latest
- restart: unless-stopped
- ports:
- - "5678:5678"
- environment:
- # 数据库配置
- - DB_TYPE=postgresdb
- - DB_POSTGRESDB_HOST=postgres
- - DB_POSTGRESDB_PORT=5432
- - DB_POSTGRESDB_DATABASE=n8n
- - DB_POSTGRESDB_USER=n8n
- - DB_POSTGRESDB_PASSWORD=n8n_secure_password
-
- # 基础配置
- - GENERIC_TIMEZONE=Asia/Shanghai
- - N8N_DEFAULT_LOCALE=zh-CN
- - N8N_ENCRYPTION_KEY=your-encryption-key-32-chars
-
- # 界面汉化
- - LOCALE=zh-CN
- - LC_ALL=zh_CN.UTF-8
- - LANG=zh_CN.UTF-8
-
- # 安全配置
- - N8N_BASIC_AUTH_ACTIVE=true
- - N8N_BASIC_AUTH_USER=admin
- - N8N_BASIC_AUTH_PASSWORD=admin_secure_password
-
- # Webhook配置
- - WEBHOOK_URL=http://localhost:5678/
-
- volumes:
- - /data/n8n/config:/home/node/.n8n
- - /data/n8n/files:/files
- - /data/n8n/locales:/usr/local/lib/node_modules/n8n/dist/packages/editor-ui/dist/static/locales
- depends_on:
- - postgres
- networks:
- - n8n-network
-
-volumes:
- postgres_data:
-
-networks:
- n8n-network:
- driver: bridge
-EOF
-
-# 启动服务
-echo "🚀 启动n8n服务..."
-cd /data/n8n
-docker-compose up -d
-
-# 等待服务启动
-echo "⏳ 等待服务启动..."
-sleep 30
-
-# 检查服务状态
-echo "🔍 检查服务状态..."
-docker-compose ps
-
-# 显示访问信息
-echo "✅ n8n中文版部署完成!"
-echo "🌐 访问地址: http://localhost:5678"
-echo "👤 用户名: admin"
-echo "🔑 密码: admin_secure_password"
-echo ""
-echo "📚 管理命令:"
-echo " 查看日志: cd /data/n8n && docker-compose logs -f"
-echo " 重启服务: cd /data/n8n && docker-compose restart"
-echo " 停止服务: cd /data/n8n && docker-compose down"
-echo " 备份数据: cd /data/n8n && docker-compose exec postgres pg_dump -U n8n n8n > backups/backup-\$(date +%Y%m%d).sql"
-```
-
-### 运行部署脚本
-
-```bash
-# 下载并执行部署脚本
-curl -sL https://raw.githubusercontent.com/your-repo/n8n-zh/main/setup.sh | bash
-
-# 或者手动执行
-chmod +x setup-n8n-zh.sh
-./setup-n8n-zh.sh
-```
## 🎨 界面汉化效果
diff --git a/docs/installation/quick-start.md b/docs/installation/quick-start.md
index 1c7f601..658a033 100644
--- a/docs/installation/quick-start.md
+++ b/docs/installation/quick-start.md
@@ -17,9 +17,15 @@
2. 点击 "Get started for free" 按钮
3. 使用邮箱注册或选择第三方登录(GitHub、Google)
+
+
!!! tip "注册建议"
建议使用企业邮箱注册,便于后续的团队协作功能
+注册完成后,您将看到如下界面:
+
+
+
### 第二步:创建第一个工作流
注册完成后,您将进入n8n的主界面:
diff --git a/docs/learning/common-nodes.md b/docs/learning/common-nodes.md
index 55e02f9..1734d50 100644
--- a/docs/learning/common-nodes.md
+++ b/docs/learning/common-nodes.md
@@ -8,6 +8,8 @@
n8n提供了丰富的节点库,覆盖了工作流自动化的各个方面。掌握这些常用节点是构建高效工作流的基础。
+
+
## 🧩 节点分类概览
**触发器**:手动触发、定时触发、Webhook、邮件触发、文件监控
diff --git a/docs/learning/community-nodes.md b/docs/learning/community-nodes.md
index 74ce963..02fac0b 100644
--- a/docs/learning/community-nodes.md
+++ b/docs/learning/community-nodes.md
@@ -8,6 +8,22 @@
社区节点是n8n生态系统的重要组成部分,提供了官方节点库之外的丰富功能扩展。
+## 🔧 安装社区节点
+
+### 安装步骤
+
+1. **进入设置页面**:点击右上角设置按钮
+
+
+
+2. **选择社区节点**:在设置中找到"Community Nodes"选项
+
+
+
+3. **搜索并安装**:输入想要安装的社区节点名称
+
+
+
## 🌟 社区节点概述
### 什么是社区节点
diff --git a/docs/learning/templates.md b/docs/learning/templates.md
index eb2cf85..092ce09 100644
--- a/docs/learning/templates.md
+++ b/docs/learning/templates.md
@@ -17,7 +17,13 @@ n8n的模板套用方式非常直观,通过复制粘贴就能快速应用成
### 使用方法
1. **复制模板代码**:在任意位置复制整段JSON文本
+
+
+
2. **粘贴到n8n**:在n8n画布任意位置粘贴
+
+
+
3. **配置参数**:根据需要调整节点参数
4. **测试运行**:验证工作流是否正常
diff --git a/health-check.sh b/health-check.sh
new file mode 100644
index 0000000..4e9e0f4
--- /dev/null
+++ b/health-check.sh
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+# n8n指南健康检查脚本
+echo "🔍 检查n8n指南服务状态..."
+
+# 检查容器是否运行
+if docker-compose ps | grep -q "Up"; then
+ echo "✅ 容器运行正常"
+else
+ echo "❌ 容器未运行"
+ exit 1
+fi
+
+# 检查端口是否可访问
+if curl -s http://localhost:8000 > /dev/null; then
+ echo "✅ 服务可访问"
+ echo "📱 访问地址:http://localhost:8000"
+else
+ echo "❌ 服务不可访问"
+ echo "📋 查看日志:docker-compose logs"
+ exit 1
+fi
+
+echo "🎉 服务健康检查通过!"
\ No newline at end of file
diff --git a/restart.sh b/restart.sh
new file mode 100644
index 0000000..53e3df7
--- /dev/null
+++ b/restart.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+# 重启n8n指南服务
+echo "🔄 重启n8n指南服务..."
+
+docker-compose restart
+
+echo "✅ 服务已重启"
+echo "📱 访问地址:http://localhost:8000"
diff --git a/start.sh b/start.sh
new file mode 100644
index 0000000..5f057fa
--- /dev/null
+++ b/start.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+
+# 启动n8n指南服务
+echo "🚀 启动n8n指南服务..."
+
+docker-compose up -d
+
+echo "✅ 服务已启动"
+echo "📱 访问地址:http://localhost:8000"
+echo "📊 查看状态:docker-compose ps"
+echo "📋 查看日志:docker-compose logs -f"
diff --git a/stop.sh b/stop.sh
new file mode 100644
index 0000000..22190b9
--- /dev/null
+++ b/stop.sh
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+# 停止n8n指南服务
+echo "🛑 停止n8n指南服务..."
+
+docker-compose down
+
+echo "✅ 服务已停止"
\ No newline at end of file
diff --git a/快速开始.md b/快速开始.md
new file mode 100644
index 0000000..6b78501
--- /dev/null
+++ b/快速开始.md
@@ -0,0 +1,670 @@
+# N8N HTML 文档项目
+
+这是一个基于MkDocs和Material主题构建的n8n工作流自动化指南项目。
+
+## 📚 项目概述
+
+### 目标
+将n8n指南内容改造为一个美观且用户友好的HTML界面,提供完整的学习路径和实践指导。
+
+### 特色
+- 🎨 **美观界面**: 采用Material Design,深蓝+灰色专业配色
+- 📱 **响应式设计**: 完美适配桌面、平板、手机
+- 🔍 **强大搜索**: 中文搜索支持,快速定位内容
+- 🌓 **主题切换**: 支持明暗两种主题模式
+- 📊 **丰富组件**: 统计卡片、特性网格、流程图等
+
+## 🗂️ 项目结构
+
+```
+n8n_html/
+├── README.md # 项目说明文件
+└── n8n/ # MkDocs项目目录
+ ├── mkdocs.yml # MkDocs配置文件
+ └── docs/ # 文档内容目录
+ ├── index.md # 首页
+ ├── stylesheets/ # 自定义CSS样式
+ │ └── extra.css
+ ├── introduction/ # 引言部分
+ │ ├── background.md
+ │ ├── target-audience.md
+ │ ├── purpose-value.md
+ │ └── why-n8n.md
+ ├── installation/ # 安装与配置
+ │ ├── quick-start.md
+ │ ├── local-deployment.md
+ │ ├── interface.md
+ │ ├── credentials.md
+ │ └── localization.md
+ ├── learning/ # 学习与使用
+ │ ├── common-nodes.md
+ │ └── basic-workflows.md
+ ├── reference/ # 参考资料
+ │ ├── resources.md
+ │ └── glossary.md
+ └── ai-center/ # AI卓越中心
+ ├── functions.md
+ └── join.md
+```
+
+## 🚀 快速开始
+
+### 方法一:安装依赖(推荐)
+
+```bash
+# 安装Python和pip(如果未安装)
+# Windows: 下载Python安装包
+# Mac: brew install python
+# Linux: apt-get install python3 python3-pip
+
+# 安装MkDocs和Material主题
+pip install mkdocs
+pip install mkdocs-material
+
+# 进入项目目录
+cd n8n
+
+# 启动开发服务器
+mkdocs serve
+
+# 访问 http://127.0.0.1:8000
+```
+
+### 方法二:使用Docker
+
+```bash
+# 进入项目目录
+cd n8n
+
+# 使用Docker运行
+docker run --rm -it -p 8000:8000 -v ${PWD}:/docs squidfunk/mkdocs-material
+
+# 访问 http://127.0.0.1:8000
+```
+
+### 方法三:在线预览
+
+如果遇到端口冲突,可以指定其他端口:
+
+```bash
+# 使用端口8001
+mkdocs serve -a 127.0.0.1:8001
+
+# 使用端口8080
+mkdocs serve -a 127.0.0.1:8080
+```
+
+## 🎨 设计特色
+
+### 视觉设计
+- **主色调**: 深蓝色 (#37474f) + 靛蓝色 (#3f51b5)
+- **背景**: 科技感渐变背景
+- **字体**: Arial/Helvetica 确保清晰度
+- **图标**: Material Design Icons
+
+### 用户体验
+- **导航系统**: 顶部标签 + 左侧树形导航
+- **搜索功能**: 实时中文搜索
+- **内容组织**: 标签页、折叠面板、统计卡片
+- **代码高亮**: 语法高亮 + 复制按钮
+
+### 交互功能
+- **动画效果**: 悬停动画、淡入效果
+- **响应式布局**: 自适应不同屏幕尺寸
+- **快捷键支持**: 常用操作快捷键
+- **打印友好**: 优化的打印样式
+
+## 📖 内容组织
+
+### 文档结构
+1. **引言**: 背景、目标读者、价值、选择理由
+2. **安装配置**: 快速开始、本地部署、界面、凭证、汉化
+3. **学习使用**: 常用节点、基本工作流、避坑指南、进阶应用
+4. **参考资料**: 学习资源、术语表
+5. **AI卓越中心**: 服务介绍、加入方式
+
+### 内容特色
+- **循序渐进**: 从基础到高级的学习路径
+- **图文并茂**: 流程图、架构图、截图说明
+- **实战导向**: 真实案例和项目实践
+- **社区驱动**: 问题解答和经验分享
+
+## 🛠️ 技术实现
+
+### 基础技术栈
+- **MkDocs**: 静态站点生成器
+- **Material主题**: Google Material Design
+- **Markdown**: 内容编写格式
+- **Python**: 构建工具依赖
+
+### 扩展功能
+- **搜索插件**: 中文搜索支持
+- **代码高亮**: Pygments语法高亮
+- **图表支持**: Mermaid流程图
+- **数学公式**: MathJax支持
+- **选项卡**: 内容分组展示
+
+### 自定义样式
+- **CSS网格**: 特性卡片布局
+- **Flexbox**: 响应式布局
+- **CSS变量**: 主题色彩管理
+- **媒体查询**: 移动端适配
+
+## 📱 移动端适配
+
+### 响应式断点
+- **大屏 (>1920px)**: 完整布局,最佳体验
+- **标准 (1366-1920px)**: 标准桌面体验
+- **平板 (768-1366px)**: 折叠侧栏,核心功能保留
+- **手机 (<768px)**: 移动优化,单列布局
+
+### 移动端优化
+- **触摸友好**: 按钮大小适合手指操作
+- **滑动导航**: 左右滑动切换章节
+- **快速加载**: 优化图片和资源大小
+- **离线阅读**: 支持离线缓存
+
+## 🔧 构建和部署
+
+### 本地开发
+```bash
+# 实时预览(开发模式)
+mkdocs serve
+
+# 构建静态文件
+mkdocs build
+
+# 输出目录:site/
+```
+
+### 生产部署
+```bash
+# 构建生产版本
+mkdocs build
+
+# 部署到GitHub Pages
+mkdocs gh-deploy
+
+# 部署到自定义服务器
+# 将site/目录内容上传到Web服务器
+```
+
+### 持续集成
+可以配置GitHub Actions自动构建和部署:
+
+```yaml
+# .github/workflows/ci.yml
+name: ci
+on:
+ push:
+ branches:
+ - master
+jobs:
+ deploy:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions/setup-python@v2
+ with:
+ python-version: 3.x
+ - run: pip install mkdocs-material
+ - run: mkdocs gh-deploy --force
+```
+
+## 🎯 使用指南
+
+### 编辑内容
+1. 修改 `docs/` 目录下的Markdown文件
+2. 图片放置在 `docs/assets/` 目录
+3. 运行 `mkdocs serve` 预览更改
+4. 提交更改并推送到仓库
+
+### 添加新页面
+1. 在相应目录下创建新的 `.md` 文件
+2. 在 `mkdocs.yml` 的 `nav` 部分添加导航项
+3. 更新相关页面的链接
+
+### 自定义样式
+1. 编辑 `docs/stylesheets/extra.css`
+2. 添加新的CSS类和样式
+3. 在Markdown中使用HTML和CSS类
+
+## 🐛 常见问题
+
+### 构建问题
+**问题**: `mkdocs serve` 端口被占用
+**解决**: 使用 `mkdocs serve -a 127.0.0.1:8001` 指定其他端口
+
+**问题**: Material主题样式不生效
+**解决**: 确认已安装 `mkdocs-material` 包
+
+### 内容问题
+**问题**: 中文搜索不工作
+**解决**: 确认配置中包含 `lang: zh` 设置
+
+**问题**: 图片不显示
+**解决**: 检查图片路径,确保相对路径正确
+
+## 📞 支持和反馈
+
+### 技术支持
+- **GitHub Issues**: 报告Bug和功能请求
+- **讨论区**: 使用问题和建议讨论
+- **社区群**: 加入微信/QQ群获得帮助
+
+### 贡献指南
+1. Fork项目仓库
+2. 创建功能分支
+3. 提交更改
+4. 发起Pull Request
+5. 代码审查和合并
+
+## 📄 许可证
+
+本项目采用 MIT 许可证开源,详见 LICENSE 文件。
+
+## 🙏 致谢
+
+感谢所有为n8n开源社区做出贡献的开发者和用户!
+
+---
+
+**开始您的n8n学习之旅吧!** 🚀
+
+很好的问题!让我详细解释n8n指南网站中文搜索支持的技术原理和实现方式。
+
+[1 tool called]
+
+## 🔍 中文搜索技术原理详解
+
+### 1. 基础配置原理
+
+在我们的项目中,中文搜索主要通过以下配置实现:
+
+```yaml
+# mkdocs.yml 中的搜索配置
+plugins:
+ - search:
+ lang: zh # 指定中文语言支持
+```
+
+### 2. 技术架构层次
+
+```mermaid
+graph TD
+ A[用户输入中文查询] --> B[前端搜索接口]
+ B --> C[Lunr.js搜索引擎]
+ C --> D[中文分词器]
+ D --> E[索引匹配]
+ E --> F[结果排序]
+ F --> G[高亮显示]
+
+ subgraph "预处理阶段"
+ H[Markdown文档] --> I[内容提取]
+ I --> J[中文分词]
+ J --> K[索引构建]
+ end
+
+ K --> C
+
+ style D fill:#e3f2fd
+ style J fill:#e8f5e8
+```
+
+### 3. 核心技术组件
+
+#### 3.1 Lunr.js 搜索引擎
+
+**Lunr.js** 是 MkDocs-Material 内置的客户端搜索引擎:
+
+```javascript
+// Lunr.js 中文搜索配置原理
+lunr(function () {
+ // 中文语言支持
+ this.use(lunr.zh);
+
+ // 字段权重配置
+ this.field('title', { boost: 10 }); // 标题权重最高
+ this.field('text', { boost: 1 }); // 内容权重标准
+ this.field('tags', { boost: 5 }); // 标签权重较高
+
+ // 中文分词处理
+ this.pipeline.add(
+ lunr.trimmer,
+ lunr.stopWordFilter,
+ lunr.stemmer,
+ lunr.zh.trimmer, // 中文修剪器
+ lunr.zh.stopWordFilter, // 中文停止词过滤
+ lunr.zh.stemmer // 中文词干提取
+ );
+
+ // 文档索引
+ documents.forEach(function(doc) {
+ this.add(doc);
+ }, this);
+});
+```
+
+#### 3.2 中文分词处理
+
+**分词算法**:
+```javascript
+// 中文分词示例
+const chineseText = "n8n工作流自动化平台";
+
+// 基础分词结果
+const tokens = [
+ "n8n", "工作流", "工作", "流",
+ "自动化", "自动", "化", "平台"
+];
+
+// 权重计算
+const weightedTokens = {
+ "n8n": 1.0,
+ "工作流": 0.9,
+ "自动化": 0.9,
+ "平台": 0.8,
+ "工作": 0.6,
+ "流": 0.3,
+ "自动": 0.5,
+ "化": 0.3
+};
+```
+
+#### 3.3 索引构建过程
+
+```javascript
+// 文档索引构建
+const documentProcessor = {
+ // 1. 内容提取
+ extractContent: function(markdown) {
+ const content = {
+ title: extractTitle(markdown),
+ headings: extractHeadings(markdown),
+ text: extractPlainText(markdown),
+ tags: extractTags(markdown)
+ };
+ return content;
+ },
+
+ // 2. 中文预处理
+ preprocessChinese: function(text) {
+ return text
+ .replace(/[,。!?;:""''()【】]/g, ' ') // 替换标点
+ .replace(/\s+/g, ' ') // 合并空格
+ .trim(); // 去除首尾空格
+ },
+
+ // 3. 构建搜索索引
+ buildIndex: function(documents) {
+ const index = lunr(function() {
+ this.use(lunr.zh);
+ this.ref('id');
+ this.field('title', { boost: 10 });
+ this.field('text');
+
+ documents.forEach(doc => {
+ this.add({
+ id: doc.id,
+ title: this.preprocessChinese(doc.title),
+ text: this.preprocessChinese(doc.text)
+ });
+ });
+ });
+
+ return index;
+ }
+};
+```
+
+### 4. 搜索流程详解
+
+#### 4.1 实时搜索处理
+
+```javascript
+// 前端搜索实现
+class ChineseSearch {
+ constructor(index, documents) {
+ this.index = index;
+ this.documents = documents;
+ this.minQueryLength = 1; // 中文最小查询长度
+ }
+
+ search(query) {
+ if (query.length < this.minQueryLength) {
+ return [];
+ }
+
+ // 中文查询预处理
+ const processedQuery = this.preprocessQuery(query);
+
+ // 执行搜索
+ const results = this.index.search(processedQuery);
+
+ // 结果后处理
+ return this.postprocessResults(results, query);
+ }
+
+ preprocessQuery(query) {
+ // 中文查询增强
+ const enhanced = query
+ .split('')
+ .map(char => {
+ if (/[\u4e00-\u9fff]/.test(char)) {
+ // 中文字符模糊匹配
+ return `${char}* ${char}~1`;
+ }
+ return char;
+ })
+ .join(' ');
+
+ return enhanced;
+ }
+
+ postprocessResults(results, originalQuery) {
+ return results.map(result => {
+ const doc = this.documents[result.ref];
+ const highlights = this.generateHighlights(doc, originalQuery);
+
+ return {
+ ...result,
+ document: doc,
+ highlights: highlights
+ };
+ });
+ }
+}
+```
+
+#### 4.2 高亮显示算法
+
+```javascript
+// 中文文本高亮
+function highlightChinese(text, query) {
+ const queryChars = query.split('');
+ let highlightedText = text;
+
+ queryChars.forEach(char => {
+ if (/[\u4e00-\u9fff]/.test(char)) {
+ const regex = new RegExp(char, 'gi');
+ highlightedText = highlightedText.replace(
+ regex,
+ `${char}`
+ );
+ }
+ });
+
+ return highlightedText;
+}
+```
+
+### 5. 性能优化策略
+
+#### 5.1 索引优化
+
+```javascript
+// 索引大小优化
+const optimizedIndex = {
+ // 停止词过滤
+ stopWords: ['的', '了', '在', '是', '我', '有', '和', '就'],
+
+ // 词频阈值
+ minTermFrequency: 2,
+
+ // 索引压缩
+ compress: true,
+
+ // 字段选择性索引
+ indexFields: {
+ title: { weight: 10, store: true },
+ content: { weight: 1, store: false },
+ tags: { weight: 5, store: true }
+ }
+};
+```
+
+#### 5.2 搜索性能
+
+```javascript
+// 搜索性能优化
+class SearchOptimizer {
+ constructor() {
+ this.cache = new Map();
+ this.debounceDelay = 300; // 防抖延迟
+ }
+
+ // 结果缓存
+ cachedSearch(query) {
+ if (this.cache.has(query)) {
+ return this.cache.get(query);
+ }
+
+ const results = this.performSearch(query);
+ this.cache.set(query, results);
+
+ // 限制缓存大小
+ if (this.cache.size > 100) {
+ const firstKey = this.cache.keys().next().value;
+ this.cache.delete(firstKey);
+ }
+
+ return results;
+ }
+
+ // 防抖搜索
+ debouncedSearch = debounce((query, callback) => {
+ const results = this.cachedSearch(query);
+ callback(results);
+ }, this.debounceDelay);
+}
+```
+
+### 6. 中文搜索特殊处理
+
+#### 6.1 字符编码处理
+
+```javascript
+// Unicode 中文字符范围
+const chineseRanges = {
+ basic: /[\u4e00-\u9fff]/, // 基本中文字符
+ punctuation: /[\u3000-\u303f]/, // 中文标点符号
+ symbols: /[\uff00-\uffef]/, // 全角字符
+ radicals: /[\u2e80-\u2eff]/, // 部首
+ extensions: /[\u3400-\u4dbf]/ // 扩展A区
+};
+
+function isChineseChar(char) {
+ return chineseRanges.basic.test(char) ||
+ chineseRanges.extensions.test(char);
+}
+```
+
+#### 6.2 拼音搜索支持
+
+```javascript
+// 拼音搜索增强(可选)
+const pinyinMap = {
+ '工': ['gong'],
+ '作': ['zuo'],
+ '流': ['liu'],
+ '自': ['zi'],
+ '动': ['dong'],
+ '化': ['hua']
+};
+
+function addPinyinSupport(text) {
+ return text.split('').map(char => {
+ const pinyin = pinyinMap[char];
+ return pinyin ? `${char} ${pinyin.join(' ')}` : char;
+ }).join(' ');
+}
+```
+
+### 7. 配置文件完整实现
+
+让我为您展示一个完整的中文搜索配置:
+
+```yaml
+# 高级中文搜索配置
+plugins:
+ - search:
+ lang: zh
+ separator: '[\s\-\.]+' # 分隔符正则
+ indexing: 'full' # 全文索引
+ prebuild_index: python # 预构建索引
+ min_search_length: 1 # 最小搜索长度
+
+# 中文优化的Markdown扩展
+markdown_extensions:
+ - pymdownx.superfences # 代码块支持
+ - attr_list # 属性列表
+ - md_in_html # HTML中的Markdown
+
+# 主题中文搜索配置
+theme:
+ name: material
+ language: zh
+ features:
+ - search.highlight # 搜索高亮
+ - search.share # 搜索分享
+ - search.suggest # 搜索建议
+```
+
+### 8. 测试搜索功能
+
+您可以测试以下中文搜索场景:
+
+```bash
+# 启动服务后测试这些搜索词
+搜索词示例:
+- "工作流" # 精确匹配
+- "n8n" # 英文关键词
+- "自动化" # 常用词汇
+- "安装" # 功能搜索
+- "AI代理" # 复合词
+- "避坑" # 俚语搜索
+```
+
+### 9. 未来优化方向
+
+```javascript
+// 可能的增强功能
+const futureEnhancements = {
+ // 1. 智能联想
+ smartSuggestion: true,
+
+ // 2. 语义搜索
+ semanticSearch: true,
+
+ // 3. 搜索统计
+ searchAnalytics: true,
+
+ // 4. 个性化搜索
+ personalizedResults: true,
+
+ // 5. 多语言混合搜索
+ multilingual: ['zh', 'en']
+};
+```
+
+这就是我们n8n指南网站中文搜索的完整技术实现!通过Lunr.js + 中文分词 + Material主题的组合,实现了高效准确的中文全文搜索功能。🔍
\ No newline at end of file