ABP Framework 文档管理
一、系统概述
ABP 文档系统是基于Volo.Docs
模块的综合解决方案,支持技术文档的创建、管理和展示,核心能力包括:
- Markdown 转 HTML 渲染
- 分层导航内容组织
- 多语言与版本控制
- 全文搜索功能
- 支持单项目/多项目场景
二、核心架构(mermaid graph)
基础设施层(Infrastructure Layer) 领域层(Domain Layer) 应用层(Application Layer) 表现层(Presentation Layer) EFCoreDocumentRepository MongoDocumentRepository DocumentSourceFactory ElasticDocumentFullSearch Document Entity Project Entity NavigationNode IDocumentRepository IProjectRepository DocumentAppService IDocumentAppService ProjectAppService IndexModel (Project/Index.cshtml.cs) DocsWebModule TreeTagHelper
三、文档渲染管道(mermaid graph)
No Yes HTTP Request
/Documents/{project}/{version}/{document} IndexModel.OnGetAsync() DocumentAppService.GetAsync() Document in Cache? DocumentSourceFactory IDocumentSource.GetDocumentAsync() Raw Markdown Document MarkdownDocumentToHtmlConverter NormalizeLinks() _markdownConverter.ConvertToHtml() WebDocumentSectionRenderer Final HTML Content Cache Document HTTP Response Return Cached Document
四、导航系统(mermaid graph)
Rendering Components LiItemTemplateWithLink ListItemAnchor UlItemTemplate Navigation Structure Child NavigationNodes[] Root NavigationNode Leaf Nodes (Documents) docs-nav.json NavigationNode Tree TreeTagHelper.Process() Generate Navigation HTML
五、多语言与版本控制
- URL 结构 :
/Documents/{ProjectName}/{LanguageCode}/{Version}/{DocumentPath}
- 核心组件 :
DocsUiOptions
:UI 配置与路由管理LanguageConfig
:语言定义VersionInfo
:语义化版本管理(支持预览版)IDocsLinkGenerator
:URL 生成器
六、搜索功能(mermaid graph)
Search Infrastructure Full-Text Search DocsElasticSearchOptions IDocumentFullSearch IElasticClientProvider Client-Side Navigation Search initNavigationFilter() #filter input doc.lazyExpandableNavigation ElasticDocumentFullSearch #fullsearch input EsDocument Index DocumentSearchOutput[]
七、管理功能(mermaid graph)
Caching System Admin Operations Admin UI IDistributedCache IDistributedCache IDistributedCache ClearCacheAsync() PullAllAsync() ReIndexAsync() RemoveFromCacheAsync() index.js Documents/Index.cshtml Filter Controls Documents DataTable DocumentSourceFactory ElasticDocumentFullSearch
八、配置选项(示例表格)
配置项 | 用途 | 默认值 |
---|---|---|
RoutePrefix |
文档 URL 前缀 | 'documents' |
SingleProjectMode.Enable |
单项目模式 | false |
MultiLanguageMode |
多语言支持 | true |
ShowProjectsCombobox |
项目选择下拉框 | true |
SectionRendering |
动态内容渲染 | true |