# MeNav 源代码目录

## 目录

- [目录概述](#目录概述)
- [源代码结构分工](#源代码结构分工)
  - [根目录函数（核心功能）](#根目录函数核心功能)
  - [helpers 目录函数（辅助功能）](#helpers-目录函数辅助功能)
- [函数职责分工](#函数职责分工)
  - [核心函数（根目录）](#核心函数根目录)
  - [辅助函数（helpers目录）](#辅助函数helpers目录)
- [扩展和修改指南](#扩展和修改指南)
  - [添加新的核心功能](#添加新的核心功能)
  - [添加新的辅助函数](#添加新的辅助函数)

## 目录概述

`src` 目录包含 MeNav 项目的所有源代码，按照功能和职责进行了明确的分层组织：

- 根目录：核心功能实现
- `helpers` 子目录：辅助功能实现

## 源代码结构分工

### 根目录函数（核心功能）

根目录下的js文件实现了应用的核心功能，每个文件负责特定领域：

- **generator.js**: 站点生成器的核心实现
  - 负责将配置文件转换为HTML网站
  - 处理模板渲染、配置解析和文件输出
  - 控制整个生成流程

- **script.js**: 客户端功能的核心实现
  - 处理用户界面交互逻辑
  - 实现搜索、导航、主题切换等功能
  - 管理页面状态和响应式布局

- **bookmark-processor.js**: 书签处理工具
  - 转换浏览器书签为MeNav配置格式
  - 提供书签导入功能


### helpers 目录函数（辅助功能）

`helpers` 目录下的函数提供辅助性支持，主要服务于Handlebars模板系统：

- **formatters.js**: 格式化函数
  - 日期格式化
  - 文本处理
  - 内容展示辅助

- **conditions.js**: 条件判断函数
  - 比较操作
  - 逻辑运算
  - 条件检查

- **utils.js**: 工具函数
  - 数组处理
  - 对象操作
  - 通用辅助方法

- **index.js**: 助手函数注册中心
  - 统一导入所有助手函数
  - 提供注册函数到Handlebars实例的方法
  - 定义核心HTML处理函数

## 函数职责分工

### 核心函数（根目录）

根目录下的函数负责"做什么"——实现具体的业务逻辑和功能：

- 应用入口和流程控制
- 用户交互响应
- 数据处理和转换
- 文件生成和输出

这些函数通常：
- 直接面向最终用户需求
- 控制程序主流程
- 调用辅助函数完成特定任务

### 辅助函数（helpers目录）

helpers目录下的函数负责"怎么做"——提供可重用的工具方法：

- 为模板渲染提供扩展能力
- 处理数据格式化和转换
- 提供通用的条件判断逻辑
- 实现常见的工具操作

这些函数通常：
- 高度重用性和通用性
- 专注于单一职责
- 被核心函数调用

## 扩展和修改指南

### 添加新的核心功能

如需添加新的核心功能，应在src根目录创建新的js文件或修改现有文件，确保：
- 文件名清晰反映功能用途
- 保持单一责任原则
- 适当调用辅助函数，避免重复实现通用功能

### 添加新的辅助函数

如需添加新的辅助函数，应在helpers目录下相应文件中添加，并在index.js中注册：
- 按功能类型放入正确的文件（formatters/conditions/utils）
- 编写清晰的JSDoc注释
- 更新README.md文档
- 在index.js中添加导出和注册 