linux早期内核文档使用docbook管理,Docbook提供了结构化文档的体系模板,使用SGML/XML定义了一系列文档元素,并可以把原始的文档源文件转换成各种文档格式。
转化示例:
xsltproc -o docbook.html /usr/share/xml/docbook/xsl-stylesheets-1.73.2/html/html.xsl docbook.xml
#通过模板文件转化定义文件为html格式
安装环境:
yum install docbook-style-xsl libxslt
#libxslt提供了命令操作, docbook-style-xsl提供了转换模板文件
#文档地址http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl
# 文档使用介绍地址 https://tdg.docbook.org/tdg/5.2/ch01
参数样式表:
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<!--调用的样式表-->
<xsl:import href="/usr/share/xml/docbook/xsl-stylesheets-1.73.2/html/chunk.xsl"/>
<xsl:param name="chunker.output.encoding" select="'utf-8'"/>
<!--标准信息所使用语言-->
<xsl:param name="l10n.gentext.language" select="'zh_cn'"/>
<!--指定样式表-->
<xsl:param name="html.stylesheet" select="'docbook.css'"/>
<!--对于警告类信息是否使用图形 0 1-->
<xsl:param name="admon.graphics" select="1"/>
<!--生成的 HTML 文件存放的起始目录-->
<!--如果没有在 Makefile 或命令中指定,取消这里的注释
<xsl:param name="base.dir" select="'../html/'"/>
-->
<!--生成的 HTML 文件内容是否进行缩排 yes no-->
<xsl:param name="chunker.output.indent" select="'yes'"/>
<!--给节编号 0 1-->
<xsl:param name="section.autolabel" select="0"/>
<!--节的编号是否包含章的编号 0 1-->
<xsl:param name="section.label.includes.component.label" select="1"/>
<!--表格边框的属性是否使用预设 CSS 来指定-->
<xsl:param name="table.borders.with.css" select="0"/>
<!--参考书目是否进行编号-->
<xsl:param name="bibliography.numbered" select="1"></xsl:param>
<!--目录深度-->
<xsl:param name="toc.max.depth" select="2"/>
<!--sect#页面上显示目录-->
<xsl:param name="generate.section.toc.level" select="0"/>
<!--sect#可以生成目录条目-->
<xsl:param name="toc.section.depth" select="2"/>
<!--目录中收录哪些内容-->
<!--包括 toc,title,figure,table,example,equation -->
<!-- nop 为空 -->
<xsl:param name="generate.toc">
appendix toc
article/appendix nop
article toc,title
book toc,title,example
chapter toc,title
part toc,title
preface toc,title
qandadiv toc
qandaset toc
reference toc,title
sect1 toc
sect2 toc
sect3 toc
sect4 toc
sect5 toc
section toc
set toc,title
</xsl:param>
<!--在源码中插入 <?linebreak?> 标记,生成 Html 时替换为<br> -->
<xsl:template match="processing-instruction('linebreak')">
<br/>
</xsl:template>
</xsl:stylesheet>
使用Makfile编译
OBJECT = all
SOURCE = docbook.xml
PARAM = param.xsl
ARG = --output html/
COMPILER = xsltproc
$(OBJECT):$(SOURCE) $(PARAM)
$(COMPILER) $(ARG) $(PARAM) $(SOURCE)
clean:
rm -rf ../html/*.html
最新的kernel文档使用是通过reStructuredText方式管理,reStructuredText语法相对简单,属于纯文本标记语法。