跳转至

🗂️ 分类导航系统使用指南

概述

为了更好地管理和展示 215+ 个开源项目,我们设计了一套智能的多级分类导航系统。该系统支持:

  • 23个主要技术分类 - 涵盖AI、Spring生态、分布式系统、数据库等
  • 多视图模式 - 网格视图、列表视图、树形视图
  • 智能搜索 - 快速定位任何项目
  • 统计面板 - 实时展示热门分类
  • 响应式设计 - 完美适配各种设备

功能特性

1. 三种视图模式

📊 分类视图(默认)

  • 以卡片形式展示各个技术分类
  • 每个分类显示项目数量、描述和预览
  • 点击"查看全部"可展开完整项目列表

📋 列表视图

  • 以表格形式列出所有项目
  • 显示项目名称、所属分类和快捷操作
  • 适合快速浏览和查找特定项目

🌳 树形视图

  • 层级展示所有分类和项目
  • 支持折叠/展开控制
  • 清晰展示分类层级关系

2. 智能搜索

在搜索框中输入关键词,系统会: - 搜索分类名称 - 搜索项目名称 - 实时过滤结果

3. 快捷导航

点击"热门分类"卡片,页面自动滚动到对应分类,并高亮显示。

4. 弹窗详情

点击分类卡片的"查看全部"按钮,打开弹窗查看: - 完整的项目列表 - 所有子分类 - 项目快速访问链接

分类体系

🤖 AI & 机器学习

包含 23 个项目,涵盖: - Spring AI 生态 - 大语言模型工具(AutoGPT, FastGPT, MetaGPT) - AI 应用框架(langchain4j, ollama) - 文档处理(docling, firecrawl)

🍃 Spring 生态系统

包含 40+ 个项目,分为: - 核心框架: Spring Framework, Spring Boot - 微服务组件: Spring Cloud 全家桶 - 数据访问: Spring Data 系列 - 集成与消息: Spring Integration, Spring Kafka

🔄 分布式系统

包含 20+ 个项目,分为: - RPC框架: Dubbo, gRPC, SOFA-RPC - 服务网格: Istio, Envoy - 分布式事务: Seata - 服务治理: Sentinel, Nacos, Apollo

☁️ 云原生技术

包含 30+ 个项目,分为: - Kubernetes生态: K3s, Helm, Dashboard - 容器技术: Docker, Containerd, Harbor - CI/CD: Jenkins, ArgoCD - 可观测性: SkyWalking, Prometheus, Grafana

💾 数据库技术

包含 20+ 个项目,分为: - 缓存: Redis, Redisson, Lettuce - 关系型数据库: TiDB, PostgreSQL - NoSQL: HBase, InfluxDB, IoTDB - 数据处理: DataX, Flink CDC, Canal - ORM工具: MyBatis, jOOQ, Druid

其他分类

  • 📨 消息队列
  • ⚙️ 中间件
  • 🔧 开发工具
  • 📚 Java 类库
  • 🎨 前端技术
  • 🌐 网络与协议
  • 🔒 安全认证
  • 📄 文档处理
  • 🎮 游戏与图形
  • 📱 移动与桌面
  • 🔌 物联网
  • ⛓️ 区块链
  • 🏗️ 基础设施

使用场景

场景1: 查找特定项目

  1. 在搜索框输入项目名称
  2. 系统实时过滤显示匹配结果
  3. 点击项目链接直接访问

场景2: 浏览某个技术领域

  1. 找到对应的分类卡片
  2. 查看该分类下的项目预览
  3. 点击"查看全部"获取完整列表

场景3: 了解整体项目分布

  1. 切换到"列表视图"或"树形视图"
  2. 查看所有项目的组织结构
  3. 使用折叠/展开控制浏览深度

场景4: 技术选型参考

  1. 查看"热门分类"统计
  2. 对比不同分类下的项目数量
  3. 点击分类快速跳转查看详情

技术实现

数据结构

所有分类数据存储在 /docs/zh/release_note/categories.json 文件中,采用如下结构:

{
  "categories": {
    "分类key": {
      "name": "分类名称",
      "icon": "图标emoji",
      "description": "分类描述",
      "projects": ["项目1", "项目2"],
      "subcategories": {
        "子分类key": {
          "name": "子分类名称",
          "projects": ["项目3", "项目4"]
        }
      }
    }
  }
}

前端组件

  • JavaScript: /docs/javascripts/category-navigation.js
  • 动态加载分类数据
  • 实现三种视图模式
  • 处理搜索和过滤逻辑
  • 管理弹窗交互

  • CSS: /docs/stylesheets/category-navigation.css

  • 响应式布局设计
  • 三种视图样式
  • 深色模式适配
  • 动画和过渡效果

集成方式

在页面中添加容器元素:

<div class="category-navigation-container"></div>

系统会自动: 1. 检测容器元素 2. 加载分类数据 3. 渲染导航界面 4. 绑定交互事件

维护指南

添加新项目

  1. 确定项目所属分类
  2. 编辑 categories.json 文件
  3. 在对应分类的 projects 数组中添加项目名称
  4. 无需重新部署,刷新页面即可看到更新

添加新分类

  1. categories.jsoncategories 对象中添加新分类
  2. 设置分类的基本信息(name, icon, description)
  3. 添加该分类下的项目列表
  4. 如需子分类,添加 subcategories 对象

调整分类结构

如需将项目从一个分类移动到另一个分类: 1. 从原分类的 projects 数组中删除 2. 添加到目标分类的 projects 数组 3. 保存并刷新

最佳实践

  1. 保持分类均衡 - 避免某个分类下项目过多或过少
  2. 合理使用子分类 - 当主分类项目超过20个时考虑拆分子分类
  3. 描述要准确 - 分类描述应清晰说明该分类包含的项目类型
  4. 图标要一致 - 使用表情符号作为图标,保持视觉统一
  5. 定期维护 - 随着项目增加,定期review分类结构的合理性

性能优化

  • 分类数据使用 JSON 格式存储,体积小、加载快
  • 采用懒加载策略,只在需要时加载完整列表
  • 使用CSS Grid和Flexbox实现高性能布局
  • 搜索使用防抖优化,减少不必要的渲染

浏览器兼容性

  • ✅ Chrome 90+
  • ✅ Firefox 88+
  • ✅ Safari 14+
  • ✅ Edge 90+
  • ✅ 移动端浏览器

反馈与改进

如有任何问题或建议,请通过以下方式联系: - 微信搜索"中间件源码" - 在 GitHub 仓库提交 Issue - 通过网站反馈表单


最后更新: 2025-01-19
版本: 1.0.0