# html-md2web-mkdocs-project
**Repository Path**: aylerh/html-md2web-mkdocs-project
## Basic Information
- **Project Name**: html-md2web-mkdocs-project
- **Description**: Nginx 静态页面发布与管理平台-本地 HTML 文件上传到服务器并访问;特点:(1)有前端页面;(2)可设置nginx的ip和port;多分支:(1)quartz:单md显示-latex好;(2)main-缺点:基于mkdocs;标题导航标签显示不好;底部有技术标签;
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-12-17
- **Last Updated**: 2026-04-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 概览
这是一个**轻量级的Nginx 静态页面发布与管理平台。
它允许用户通过可视化界面将本地 HTML或markdown(md)或zip(包含图片和md)文件上传到服务器,并立即通过 Nginx 进行访问,同时支持对已发布页面的元数据管理。
[项目位置](https://gitee.com/aylerh/html2web-project)
## 核心功能
1. **一键发布**:
* 上传 HTML 文件即可自动挂载到 Nginx 容器中。
* 支持自定义**子目录**(例如 `/activity/2024/`),实现多项目隔离。(不设置则默认在static_html/根目录下)
2. **页面管理**:
* **持久化记录**:记录上传时间、文件路径。
* **信息编辑**:可随时修改页面的“显示名称”和“描述备注”。
* **自动发现**:如果直接将文件复制到后台文件夹(FTP/命令行),系统能自动扫描并添加到列表。
3. **动态配置**:
* 在前端界面即可设置 Nginx 的访问 IP 和 端口,无需修改代码。
4. **即时访问**:
* 上传后生成可点击的跳转链接,直接预览效果。
## 优点
- **灵活别名路由**:
* 默认模式:`http://127.0.0.1:5001/view/md1`
* 物理映射:`http://127.0.0.1:5001/folder/md1`
- **自动冲突处理**:如果路由重复,系统会自动添加序号。
## 缺点
- md的latex未正确预览
- md预览中的标题目录显示不正确;
## 页面样式
### 首页:

### md发布

超过3页有目录显示:

缺点:无标题导航栏;
### 自带html-md在线编辑与pdf对比:

# 部署
## 重新构建
打开终端(Terminal / CMD),进入包含 docker compose.yml 的目录。
运行以下命令启动(重新构建镜像并启动)-有更新时:
```
docker compose down
docker compose up -d --build
```
-d: 后台运行。
--build: 确保每次代码修改后都会重新构建 Python 镜像。
## 仅启动:
```
docker compose up -d
```
## 从镜像启动
```
git clone https://gitee.com/aylerh/html2web-project
cd html2web-project
docker pull ayler/html-uploader-web:latest
docker compose up -d
```
# 使用流程
1. **启动服务**
* 在项目目录下运行终端命令:`docker compose up -d`。
* 浏览器访问后台管理地址(默认 `http://localhost:HOST_PORT`)
* -404 page not found时访问: `http://127.0.0.1:HOST_PORT`。
2. **初始配置**
* 点击页面右上角的 **“⚙️ Nginx 设置”**。
* 输入服务器的 **IP 地址** 和 Nginx **端口**(如 `8081`),确保生成的跳转链接正确。
3. **发布页面**
* **上传**:填写页面名称、描述,选择 HTML 文件。
* **分流**(可选):输入“子目录”名称(如 `activity`),实现路径隔离。
* 点击“上传并发布”。
4. **访问与验证**
* 在下方的列表中,点击绿色的 **“访问”** 按钮,即可跳转查看 Nginx 托管的静态页面。
5. **后续管理**
* **修改信息**:点击“编辑”按钮修改页面的显示名称或备注。
* **手动同步**:如果通过 FTP/命令行直接将文件放入 `static_html` 文件夹,只需**刷新页面**,系统会自动发现并添加到列表中。
### 技术栈
* **后端**:`Python` + `Flask`
* 处理文件上传、路径计算、JSON 数据读写以及文件系统扫描。
* **前端**:`HTML5` + `CSS3` + `JavaScript (Vanilla)`
* 使用 Fetch API 实现异步提交(无刷新上传/修改)。
* 采用卡片式布局和模态框(Modal)进行交互。
* **Web 服务器**:`Nginx`
* 运行在 Docker 容器中,负责高性能的静态资源解析。
* **容器化**:`Docker` + `Docker Compose`
* **双服务架构**:Backend(Flask)和 Nginx 通过 **Docker Volume(挂载卷)** 共享 `static_html` 目录,实现文件共享。
* **数据存储**:`JSON` + `Local Filesystem`
* 无数据库依赖,使用 JSON 文件存储配置和元数据,轻量且易于迁移。