一个现代化、可扩展、基于 React 和 Markdown 的动态内容平台,用于展示及查看相应的md内容。
本项目是一个完整的动态内容平台,通过简单的 Markdown 文件即可创建结构化的展示内容,提供响应式设计和直观的用户体验,适用于各类在线展示、在线课程、教程和文档、知识库等。
# 安装依赖
npm install
# 启动开发服务器
npm run dev
# 本地访问开发服务器(包括外部设备访问)
npm run dev:host
# 构建生产版本
npm run build
# 预览生产版本
npm run preview
生成的文件将位于 dist 目录下,可部署到任何静态网站托管服务。
src/
├── chapters/ # 展示内容 (Markdown 文件)
│ ├── intro/ # 平台简介章节
│ ├── features/ # 核心功能章节
│ ├── deployment/ # 部署指南章节
│ ├── development/ # 开发指南章节
│ ├── usage/ # 使用教程章节
│ └── advanced/ # 高级应用章节
├── components/ # 页面组件
│ ├── CourseContent.tsx # 内容展示组件
│ ├── HomePage.tsx # 首页组件
│ └── ConfigPage.tsx # 内容配置管理组件
├── config/ # 配置文件
│ └── content-config.json # 内容配置
├── server/ # 服务器端代码
│ ├── index.ts # API服务器入口
│ └── api-handlers.ts # API处理函数
├── utils/
│ ├── contentLoader.ts # 内容加载和管理
│ └── configLoader.ts # 配置加载
├── App.tsx # 路由配置
└── main.tsx # 应用入口
展示内容通过 Markdown 文件组织,系统使用 Vite 的 import.meta.glob 功能在构建时扫描 src/chapters 目录,自动发现和加载章节内容。
src/chapters 下创建对应章节文件夹# 标题中提取小节标题# 小节标题
## 学习目标
- 目标一
- 目标二
- 目标三
## 内容概述
简要介绍本节内容和重点...
## 核心内容
### 1. 主题一
详细说明...
### 2. 主题二
详细说明...
## 小结
总结本节要点...
平台支持通过 src/config/content-config.json 文件进行整体配置,无需修改代码:
{
"site": {
"title": "平台标题",
"subtitle": "平台副标题",
"description": "平台描述"
},
"theme": {
"primaryColor": "主题颜色", // tailwind颜色名称,如 "indigo"
"secondaryColor": "次要颜色"
},
"features": [
{
"icon": "图标名称", // lucide-react图标名称
"title": "特性标题",
"description": "特性描述"
}
],
"chapterMappings": {
"文件夹名称": "显示的章节名称"
},
"chapterOrder": ["排序的章节文件夹名"],
"ui": {
"语言相关的文本配置"
}
}
MDShow 提供了可视化的内容配置管理页面,让您可以轻松管理章节结构,而无需手动编辑配置文件:
/config 路径content-config.json注意:配置管理功能仅在开发环境可用,构建后的静态网站无法使用此功能。
site 部分的标题、副标题和描述theme 部分修改 primaryColor(使用 Tailwind 颜色名称)features 数组,可指定 Lucide 图标chapterMappings 配置文件夹名称与显示名称的对应关系chapterOrder 自定义章节顺序ui 部分的文本内容支持不同语言项目构建后生成纯静态文件,可部署到各种静态托管服务:
dist 目录上传到 Web 服务器MIT License
🌟 如果觉得有用,别忘了给项目点个星!