API 参考
除特殊注明外,除非改变主版本号,以下功能均会被维护。
设置结构
GiscusSetting
、MainScriptSetting
、PageSetting
、PageSetting
设置结构主要用于传参。
default_parser()
可生成支持恰当多功能的 Markdown 解析器,该解析器来自 CommonMark 包。
文档树结构
基本的文件信息类型名为 FileBase
,包含以下字段
字段名 | 类型限制 | 作用 |
---|---|---|
is_outlined | Bool | 标记是否在提纲中 |
generated | Bool | make_rec 检测为否则进行「标准单文档框架」包裹 |
parent | Int | 父母节点的索引 |
name | String | 去掉后缀的文件名 |
suffix | String | 文件后缀 |
title | String | 标题 |
target | String | 目标文件名(包括后缀) |
data | String | 文本数据 |
基本的目录信息类型名为 DirBase
,包含以下字段
字段名 | 类型限制 | 作用 |
---|---|---|
is_outlined | Bool | 标记是否在提纲中 |
parent | Int | 父母节点的索引 |
name | String | 去掉后缀的文件名 |
title | String | 标题 |
children | / | 暂不维护 |
setting | Dict | 设置文件的内容 |
Markdown 处理
ify_md
原型 ify_md(s::AbstractString, pss::PagesSetting, accept_crlf::Bool = true)
,直接将 Markdown 格式的文本 s
转为 HTML。
childrenhtml
原型 childrenhtml(node::CommonMark.Node, pss::PagesSetting)
用于辅助,对 node
所有子节点应用 mkhtml
并合并。
mkhtml
原型 mkhtml(node::CommonMark.Node, c::CommonMark.AbstractContainer, pss::PagesSetting)
,用于对 node
数据(递归地)生成 HTML。其中 c
等于 node.t
,用于派发。
代码块处理
highlight
一个原型是 highlight(language::AbstractString, code::AbstractString, pss::PagesSetting)
,对于一个代码块,code
为内部内容,language
为标题,调用此函数转为 HTML。 另一个原型是 highlight(::Val, code::AbstractString, pss::PagesSetting, args)
用于对于指定类型的代码块生成 HTML。第一个参数用于派发,等于 args[1]
,args
是原标题解析后得到的。
highlight_directly
原型 highlight_directly(language, code::AbstractString, pss::PagesSetting)
,用于对无需解析标题的代码块调用恰当的 highlight
(Ⅱ)方法。
生成单个文档 HTML
makehtml
原型 makehtml(pss::PagesSetting, ps::PageSetting)
,用于生成单个文档 HTML。嵌入模板中的 HTML 作为 ps.mds
传参。
主流程
generate
是文档生成的最顶级功能函数,原型是 generate(srcdir::AbstractString, tardir::AbstractString, build_setting::AbstractString = "DoctreeBuild.toml")
与 generate(srcdir::AbstractString, tardir::AbstractString, pss::PagesSetting)
:将 srcdir
目录下文档的生成结果置于 tardir
下。它会调用 @info
显示提示信息。
scan_rec
是文档生成时的递归扫描函数,会将信息载入 Doctree
结构,并调用 filedeal
进行预处理。原型是 scan_rec(tree::Doctree, pss::PagesSetting; outlined::Bool, path::String, pathv::Vector{String})
。
make_rec
是文档生成时的递归处理函数,会读取 Doctree
内容,递归地给预处理得到的 HTML 套壳(包括生成前后篇箭头)。原型是 make_rec(tree::Doctree, pss::PagesSetting; path::String, pathv::Vector{String})
。
单文件生成
filedeal
是单个文件的处理函数,原型是 filedeal(::Val; fbase::FileBase, method::Symbol, pss::PagesSetting)
。第一个参数是文件后缀,函数借此进行派发。若函数自身只是进行预处理,需把数据置于 fbase.data
中并设置 fbase.target
,若进行了完全处理,应设置 fbase.generated = true
。
操作辅助
github_action
原型 github_action(setting::Union{AbstractString, PagesSetting} = "DoctreeBuild.toml")
,用于配合 peaceiris/actions-gh-pages
直接在 Github Action 脚本中调用生成功能。
template
原型 template(;print_help::Bool = true)
,用于生成文档模板(包含 Github Action 脚本)。