要写文档了,emmm,先写个文档工具吧——DocMarkdown
前言之前想用Markdown
来写框架文档 , 找来找去发现还是Jekyll
的多 , 但又感觉不是很合我的需求于是打算自己简单弄一个展示Markdown
文档的网站工具 , 要支持多版本、多语言、导航、页内导航等 , 并且支持Github Pages免费站点
组件选择【要写文档了,emmm,先写个文档工具吧——DocMarkdown】我自己呢比较喜欢C#
, 恰好现在ASP.Net Core Blazor
支持WebAssembly
, 绝大部分代码都可以用C#
完成对于Markdown
的分析 , 可以使用markdig
组件(有个缺点 , 目前它把生成Html的代码也放到了程序集里 , 增加了不少的程序集大小 , 增加了载入时间)展示组件可以使用Blazorise
, 有挺多组件能用 , 还有几个风格能选 , 使用比较方便
配置为了能提供较好的通用性 , 我定义了以下配置
配置文件站点目录必须包含config.json
配置文件 , 配置文件声明了DocMarkdown
该从哪里读取Markdown
文档并建立目录关系 。
config.json
是一个JSON
格式的配置文件 , 以下配置是一个完整的配置文件示例 。
{"Title": "DocMarkdown","Icon": "logo.png","BaseUrl": "https://raw.githubusercontent.com/who/project","Path": "docs","Languages": [{"Name": "简体中文","Value": "zh-cn","CatalogText": "本文内容"}],"Versions": [{"Name": "DocMarkdown 1.0","Value": "1.0","Path": "main"}]}
标题$.Title
属性值决定了显示于左上角(默认主题)的文档标题名称 。该属性必须填写 。
图标$.Icon
属性决定了显示于文档标题左侧的图标路径 。该属性可不存在或为空 。
基础地址$.BaseUrl
属性决定了整个Markdown
文档的路径 。该属性必须填写 , 可以为空字符串 。当属性为空字符串或相对路径时 , 将使用本域名内资源 。
路径地址$.Path
属性将附加于每个Markdown
文档路径之前 。该属性可以不存在 。
多语言$.Languages
属性用于定义文档的多语言支持 。该属性可以不存在 。属性内容必须为数组 。第一个元素将作为默认语言 。
语言名称$.Languages[0].Name
属性用于显示语言名称 。该属性必须填写 。
语言值$.Languages[0].Value
属性决定了该语言的文件名称 。该属性必须填写 。属性内容将附加在Markdown
文档路径扩展名之前 。例如.zh-cn
。
目录文本$.Languages[0].CatalogText
属性决定了选择该语言时 , 文档页右侧的导航目录标题 。该属性必须填写 。
多版本$.Versions
属性用于定义文档的多版本支持 。该属性可以不存在 。属性内容必须为数组 。第一个元素将作为默认版本 。
版本名称$.Versions[0].Name
属性用于显示版本名称 。该属性必须填写 。
版本值$.Languages[0].Value
属性决定了该版本在Url上的值 。该属性必须填写 。
版本路径$.Languages[0].Path
属性决定了该版本在Url上的值 。该属性必须填写 。
导航配置文档根路径必须存在nav.json
, 如果存在多语言 , 每个语言都需要一份导航配置 。以文档路径规则里的示例为例 , 则必须存在https://raw.githubusercontent.com/who/project/main/docs/nav.zh-cn.json
导航配置文件 。
nav.json
是一个JSON
格式的配置文件 , 以下配置是一个完整的配置文件示例 。
经验总结扩展阅读
- 客厅隔断材质都有哪些 客厅隔断设计要点是什么
- 矮的拼音怎么写 矮的解释是什么
- 毒五月的九毒日是哪几天
- 安装电视机挂架方法 这几点一定要注意到
- 空调加氟收费标准 如何判断空调是否需要加氟
- 痛风的症状以及治疗方法
- 2023年广州毕业生创业补贴怎么申请 广州毕业生创业补贴社保要求吗
- 夏普和三星电视哪个好 好质量要会选
- 如何选购电视机 选购电视时要注意什么
- 噫的拼音怎么写 噫的解释是什么