文档检索
本文档介绍 mdView 文档系统的全文检索功能。
功能概述
文档检索支持按文档名称和文档路径进行模糊匹配,并在文档正文中提取包含关键词的上下文片段,帮助用户快速定位目标文档。
入口
在导航栏右侧有搜索按钮(🔍),点击或使用快捷键即可打开搜索弹窗。
搜索行为
匹配规则
documents 表的 name 字段)path 字段)结果展示
每条搜索结果包含:
键盘导航
在搜索结果列表中可使用键盘操作:
输入防抖
输入停止 200ms 后才发起搜索请求,避免频繁查询。
API 接口
搜索功能通过后端 API 提供数据支持。
请求
GET /search?q=关键词
响应
{
"results": [
{
"id": 1,
"parent_id": 0,
"name": "简介",
"path": "intro.md",
"type": "file",
"level": 0,
"url_path": "intro",
"breadcrumb": "",
"snippet": "{{{mdView}}} 是一个轻量级 PHP 文档管理系统..."
}
],
"total": 1
}
后端实现
搜索逻辑位于 DocumentModel.php 和 index.php 中。
查询流程
LIKE 在 documents 表中按 name 和 path 模糊匹配.md 文件中提取关键词周围的上下文片段{{{...}}} 标记,供前端高亮渲染涉及方法
前端实现
搜索 UI 位于 vitep.php。
组件结构
navbar → 搜索按钮 (.VPSearch)
↓ 点击 / 快捷键
搜索弹窗 (.VPModalSearch)
├── 搜索输入框 (.VPModalSearchInput)
└── 结果列表 (.VPModalSearchResults)
└── 结果项 (.search-result-item) × N
关键函数
主题适配
搜索弹窗和结果卡片样式遵循系统主题变量(--vp-c-*),自动适配亮色/深色模式。