蔡坤之难 Wiki 项目
项目概述
这是一个基于 PHP 的维基百科系统,名为"蔡坤之难 Wiki"。该项目提供了一个完整的文档管理和展示平台,支持页面创建、编辑、主题定制、用户管理和多媒体内容管理功能。该系统具有现代化的界面设计,支持 Markdown 和 HTML 内容编辑,具备完善的后台管理功能。
主要技术栈
- 后端: PHP (MySQL 数据库)
- 前端: HTML5, CSS3, JavaScript
- 动画库: Anime.js
- 数据库: MySQL
- 样式框架: 自定义CSS与TailwindCSS组件
- 主题系统: 支持多种颜色主题和动态配色定制
- 支持创建、编辑、删除页面和目录
- 分级页面结构(支持多级目录)
- 页面内容支持 Markdown 和 HTML 双模式解析
- 智能内容类型检测与安全解析
- 页面排序和层级管理(拖拽式操作)
- 侧边栏导航自动生成
- 页面属性管理(标题、描述等元数据)
- 动态配色方案(支持自定义主色调)
- 分级导航颜色设置(最多5级)
- 自定义 CSS 和 JavaScript 代码注入(针对不同页面类型)
- 背景图片、透明度、尺寸设置
- Banner图片上传和轮播
- 悬浮装饰图片设置
- Logo自定义上传
- 管理员登录系统(支持多账户)
- 会话管理与权限控制
- 响应式用户界面和管理菜单
- 图片上传功能(支持PNG、JPG、JPEG、GIF、WebP格式)
- 图片删除和管理
- 自动图片格式转换(统一转换为WebP格式)
- 图片放大查看功能
- 页面标签管理
- 标签分类和搜索
- 标签合并功能
- 标签与页面关联管理
- Markdown实时编辑器(支持预览)
- 丰富的文本编辑工具(粗体、斜体、标题、列表等)
- 代码块和语法高亮支持
- 图片和链接插入功能
- 表格创建和编辑
- 响应式设计(支持移动端)
- 页面过渡动画效果
- 自定义光标样式
- 滚动隐藏侧边栏功能
- 智能导航和页面切换
pages- 页面内容(包括标题、内容、层级关系、排序、元数据等)
settings- 系统设置(包括主题配置、站点标题、页脚内容、自定义CSS/JS等)
tags- 标签管理
page_tags- 页面与标签关联表
admin_users- 管理员用户表
- PHP 7.4+
- MySQL 5.7+
- Web 服务器 (Apache/Nginx)
- GD 扩展(用于图片处理和转换)
- 克隆项目到 Web 服务器目录
- 创建 MySQL 数据库并导入数据库结构
- 配置
db.php中的数据库连接信息
- 设置
config.php中的管理员账户
- 确保以下目录可写:
pages/
banner/
bj/
uploads/(新创建的上传目录)
- 运行
npm install安装前端依赖(可选)
pages(id, parent_id, title, content, content_type, meta_description, sort_order)
settings(key, value)
tags(id, name)
page_tags(id, page_id, tag_id)
admin_users(id, username, password)
- 首页:
http://your-domain/wiki/
- 后台管理:
http://your-domain/wiki/admin.php
- 登录页面:
http://your-domain/wiki/login.php
- 页面编辑:
http://your-domain/wiki/markdown_editor.php
- PHP 文件使用小写字母和下划线
- 配置和功能文件使用描述性名称(如
content_parser.php,theme_config.php)
- 组件文件使用功能描述性名称(如
sidebar_view.php,footer.php)
- 所有用户输入进行过滤和转义
- 使用 PDO 预处理语句防止 SQL 注入
- 设置全面的安全头文件(CSP, XSS防护等)
- 文件上传验证(类型、大小、内容)
- HTML内容安全解析(白名单标签和属性)
- 会话管理和权限验证
- 使用一致的缩进和格式
- 变量和函数命名清晰、有意义
- 保持适当的注释(特别是复杂逻辑)
- 遵循一致的代码结构
- 安全优先的编程实践
- 背景透明度:
bg_opacity.txt
- Logo 宽度:
logo_width.txt
- Meta 描述:
meta_description.txt
- 侧边栏内容:
sidebar.txt
- 站点配置:
config.php
- 数据库配置:
db.php
- 站点标题:
site_title
- 首页标题:
home_title
- 页脚HTML:
footer_html
- 首页HTML:
homepage_html
- 自定义CSS(侧边栏):
custom_css_sidebar
- 自定义CSS(主页):
custom_css_homepage
- 自定义CSS(View页面侧边栏):
custom_css_view_sidebar
- 自定义JS(侧边栏):
custom_js_sidebar
- 自定义JS(主页):
custom_js_homepage
- 自定义JS(View页面侧边栏):
custom_js_view_sidebar
- 悬浮图片路径:
float_img
- Banner图片路径:
top_img
- 主色调:
accent_color
- 分级导航颜色:
nav_color_0到nav_color_4
animejs: 动画库
tailwindcss: CSS 框架(开发依赖)
- GD 扩展(用于图片处理和格式转换)
- PDO 扩展(用于数据库操作)
- JSON 扩展(用于配置处理)
- 登录后台管理
- 点击"新建界面"或"页面属性"
- 选择父级目录(可选)
- 填写页面标题和内容
- 设置页面标签和元数据
- 保存页面
- 进入后台管理
- 选择"配色设置"
- 调整主色调和分级导航颜色
- 选择"主题设置"调整页面定制CSS/JS
- 保存配置
- 在 Markdown 编辑器中使用图片上传功能
- 或通过后台管理的媒体管理功能
- 支持 PNG、JPG、JPEG、GIF、WebP 格式
- 系统自动转换为 WebP 格式存储
- 进入后台管理
- 点击"标签管理"
- 查看、编辑或合并标签
- 管理标签与页面的关联关系
- 在后台管理的页面管理中
- 通过拖拽调整页面层级和顺序
- 点击"应用设置"保存排序
- 数据库连接失败: 检查
db.php配置及数据库服务状态
- 权限错误: 确保以下目录可写权限:
pages/,banner/,bj/,uploads/
- 图片不显示: 检查图片路径、权限及GD扩展是否安装
- 编辑器无法保存: 确认已登录并具有管理员权限
- 主题设置不生效: 检查浏览器缓存或尝试强制刷新
- 图片上传失败: 确认图片格式(PNG、JPG、JPEG、GIF、WebP)及大小限制
- PHP 错误日志
- Web 服务器访问日志
- MySQL 错误日志
- 系统错误日志(在
db.php中使用error_log()记录)
- 检查
config.php和db.php中的配置信息
- 确认 PHP 扩展(GD、PDO、JSON)是否安装
- 验证文件和目录的读写权限
- 使用浏览器开发者工具检查前端错误
- 创建相应的 PHP 文件(遵循现有文件结构和命名约定)
- 在
admin.php中添加管理选项(如需要)
- 如需存储数据,更新数据库结构并添加相应的数据表
- 添加相应的 CSS 和 JavaScript
- 确保安全措施(输入验证、输出转义等)
- 在
content_parser.php中添加新的内容解析支持(如需要)
- 修改
theme.css.php或通过后台"主题设置"使用自定义CSS
- 添加新的颜色变量和样式
- 更新主题选择器和配色方案
- 通过后台设置分级导航颜色(最多5级)
- 修改
content_parser.php以支持新的内容类型
- 添加相应的解析函数到
sg_mark.php或sg_html.php
- 确保安全解析(白名单标签和属性)
- 当前版本: 1.0.0
- 最后更新: 2025年
- 维护者: Longxia studio
项目结构
`wiki/
├── admin.php # 后台管理界面
├── index.php # 首页
├── view.php # 页面查看
├── markdown_editor.php # 页面编辑器(实际的编辑功能文件)
├── edit.php # 旧的编辑文件(被markdown_editor.php替代)
├── login.php # 登录页面
├── logout.php # 退出登录
├── config.php # 配置文件
├── db.php # 数据库连接
├── style.css # 主样式文件
├── animations.css # 动画样式
├── theme.css.php # 主题样式生成
├── theme_config.php # 主题配置管理
├── theme_settings.json # 主题设置文件
├── save.php # 保存页面内容
├── save_theme.php # 保存主题设置
├── toggle_theme_mode.php # 切换主题模式
├── content_parser.php # 内容解析器
├── sg_html.php # HTML安全解析器
├── sg_mark.php # Markdown解析器
├── new_interface.php # 新建界面
├── page_attr.php # 页面属性管理
├── edit_discard.php # 页面编辑(已弃用)
├── tags.php # 标签系统
├── tag_manage.php # 标签管理
├── upload_image.php # 图片上传
├── upload_img.php # 图片上传辅助
├── delete_image.php # 图片删除
├── delete_jpg.php # JPG图片删除
├── delete_png.php # PNG图片删除
├── get_images.php # 获取图片列表
├── bg_opacity.php # 背景透明度设置
├── join.php # 登录跳转
├── footer.php # 页脚组件
├── package.json # Node.js 依赖配置
├── 1.txt # 临时文件
├── bg_opacity.txt # 背景透明度配置
├── logo_width.txt # Logo宽度配置
├── meta_description.txt # Meta描述配置
├── sidebar.txt # 侧边栏内容配置
├── sidebar_index.php # 首页侧边栏组件
├── sidebar_view.php # 查看页面侧边栏组件
├── sidebar_edit.php # 编辑页面侧边栏组件
├── pages/ # 页面内容存储目录
├── banner/ # 横幅图片目录
├── bj/ # 背景图片目录
├── uploads/ # 上传文件目录
├── svg/ # SVG图标目录
│ ├── page-add.svg # 添加页面图标
│ └── page-edit.svg # 编辑页面图标
└── 其他功能文件...
`核心功能
1. 页面管理系统
2. 主题定制系统
3. 用户管理
4. 媒体管理
5. 标签系统
6. 内容编辑功能
7. 界面特性
数据库配置
数据库连接信息在
db.php 中配置:`php$db_host = 'localhost'; // 数据库主机
$db_name = 'wiki'; // 数据库名
$db_user = 'wiki'; // 用户名
$db_pass = 'wiki'; // 密码
`主要数据表:
安装和运行
环境要求
安装步骤
数据库初始化
如无现成数据库结构,需先创建以下数据表:
访问地址
开发规范
文件命名
安全措施
代码风格
自定义配置
主题设置
主题配置存储在
theme_settings.json:`json{
"theme": "orange",
"mode": "color"
}
`系统配置文件
数据库配置项(存储在settings表)
依赖管理
Node.js 依赖
`bashnpm install
`主要依赖:
PHP 扩展依赖
常用操作
创建新页面
修改主题
上传图片
标签管理
页面排序
故障排除
常见问题
日志查看
调试技巧
扩展开发
添加新功能
自定义主题
内容解析器扩展
版本信息
联系方式
如有问题或建议,请联系系统管理员。