技术架构

目录

    技术栈

    MDMS 采用纯 Go 技术栈,单二进制文件即可运行,零外部依赖。

    后端语言: Go 1.22+

    Markdown 渲染: goldmark v1.7.4

    模板引擎: Go 标准库 html/template

    拼音转换: go-pinyin(中文标题自动转 URL slug)

    后台框架: AdminLTE 3.2.0

    图表: Chart.js 3.9.1

    部署: Nginx 反向代理 + 纯静态文件

    目录结构

    /opt/mms/
    ├── main.go              # 入口
    ├── config/              # 配置(结构体 + 默认值 + 读写)
    ├── model/               # 数据模型
    ├── generator/           # 静态页面生成引擎
    ├── handler/             # 后台管理(路由 + 所有功能)
    ├── middleware/           # 中间件
    ├── templates/admin/     # 后台模板(30+ 页面)
    ├── templates/site/      # 前台模板(7 个)
    ├── static/css/          # 前台样式
    ├── content/md/          # Markdown 源文件
    └── data/                # 运行数据(配置/统计/同义词等)
    

    数据流

    用户在后台编辑器中撰写 Markdown 文章,保存为 .md 文件存储在 content/md/ 目录下。执行生成命令时,goldmark 将 Markdown 渲染为 HTML 片段,html/template 将片段套入前台模板,同时注入 canonical、JSON-LD、内链替换等 SEO 元素,最终输出纯静态 .shtml 文件到站点目录,由 Nginx 直接伺服。

    后台管理通过 Go net/http 提供服务,Nginx 反向代理 /admin/ 和 /api/ 路径到 Go 进程,其余路径直接返回静态文件。

    核心模块

    handler 目录包含 10 个 Go 源文件,每个文件负责一个独立功能域:

    handler.go 路由注册和所有页面管理

    auth.go 登录认证和 Session 管理

    llm.go LLM API 调用(5 个函数)

    suggestion.go 下拉词采集(5 家搜索引擎)

    synonym.go 同义词替换引擎

    websearch.go 联网搜索 HTML 解析

    ipstats.go IP 统计系统

    baiduindex.go 收录量监控

    batch.go 批量操作

    每个源文件顶部都有重构路标注释,标注了职责、风险等级、依赖和被依赖关系,方便二次开发时快速理解模块边界。

    平台声明:该文观点仅代表作者本人,快搜系信息发布平台,本平台仅提供信息存储空间服务。
    作者声明:本文系 MDMS 原创,未经许可,谢绝转载。
    相关话题 技术架构二次开发

    热门话题

    最新话题