0
0
mirror of https://github.com/zeux/pugixml.git synced 2024-12-27 13:33:17 +08:00

docs: Added custom navigation bar, moved table of contents to separate section

git-svn-id: http://pugixml.googlecode.com/svn/trunk@585 99668b35-9821-0410-8761-19e4c4f06640
This commit is contained in:
arseny.kapoulkine 2010-07-10 19:36:50 +00:00
parent 3a68a170e0
commit 0b3a50f9e3
4 changed files with 120 additions and 9 deletions

View File

@ -105,7 +105,7 @@ for CONFIG in $(CONFIGURATIONS)
}
# documentation
Documentation docs/manual.html : docs/manual.qbk ;
Documentation docs/manual.html : docs/manual.qbk : docs/manual.xsl ;
Alias docs : docs/manual.html ;

View File

@ -486,9 +486,12 @@ actions QuickbookAction
%QUICKBOOK_PATH%\bin\quickbook.exe --output-file $(<) --input-file $(>) >nul
}
actions XSLTProcAction
actions response XSLTProcAction
{
%QUICKBOOK_PATH%\bin\xsltproc.exe --path$(SPACE)$(XSLPATH:C) --stringparam$(SPACE)$(XSLPARAM) --output $(<) $(XSL) $(>)
%QUICKBOOK_PATH%\bin\xsltproc.exe --path$(SPACE)$(XSLPATH:C) --stringparam$(SPACE)$(XSLPARAM) --output $(<) @(<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:import$(SPACE)href="file:///$(XSL:/)"$(SPACE)/>
</xsl:stylesheet>) $(>)
}
rule MakeFileDir TARGET
@ -616,7 +619,13 @@ rule QuickbookImport SOURCE : IMPORT
Includes $(SOURCE) : $(SOURCE:D)/$(IMPORT) ;
}
rule Documentation TARGET : SOURCE
rule FullPath FILE
{
local PWD = [ Subst [ Shell "cd" ] : "%c" : "" ] ;
return "$(PWD)/$(FILE)" ;
}
rule Documentation TARGET : SOURCE : STYLESHEET
{
# escape colon with %3A because colon is a path list separator
local XSLDIR = [ Subst $(QUICKBOOK_PATH) : ":" : "%%%%3A" ] ;
@ -635,7 +644,7 @@ rule Documentation TARGET : SOURCE
# boostbook -> docbook
local DOCBOOK = $(BUILD)/$(SOURCE:S=.db.xml) ;
XSL on $(DOCBOOK) = $(XSLDIR)/boostbook/xsl/docbook.xsl ;
XSL on $(DOCBOOK) = $(QUICKBOOK_PATH)/boostbook/xsl/docbook.xsl ;
XSLPATH on $(DOCBOOK) = $(XSLDIR)/boostbook/dtd $(XSLDIR)/docbook-xml ;
XSLTProcAction $(DOCBOOK) : $(BOOSTBOOK) ;
Depends $(DOCBOOK) : $(BOOSTBOOK) ;
@ -643,7 +652,7 @@ rule Documentation TARGET : SOURCE
# docbook -> html
local HTML = $(TARGET) ;
XSL on $(HTML) = $(XSLDIR)/boostbook/xsl/html.xsl ;
XSL on $(HTML) = $(QUICKBOOK_PATH)/boostbook/xsl/html.xsl [ FullPath $(STYLESHEET) ] ;
XSLPATH on $(HTML) = $(XSLDIR)/docbook-xml $(XSLDIR)/docbook-xsl/html $(XSLDIR)/docbook-xsl/lib ;
XSLPARAM on $(HTML) =
@ -657,5 +666,5 @@ rule Documentation TARGET : SOURCE
;
XSLTProcAction $(HTML) : $(DOCBOOK) ;
Depends $(HTML) : $(DOCBOOK) ;
Depends $(HTML) : $(DOCBOOK) $(STYLESHEET) ;
}

View File

@ -1,4 +1,4 @@
[article pugixml
[book pugixml
[quickbook 1.5]
[version 0.9]
@ -23,7 +23,7 @@ pugixml enables very fast, convenient and memory-efficient XML document processi
This is the complete user manual for pugixml, which describes all features of the library in detail. If you want to start writing code as quickly as possible, you are advised to [@quickstart.html read the quick start guide first].
[note No documentation is perfect, neither is this one. If you encounter a description that is unclear, please file an issue as described in [sref manual.overview.feedback]. Also if you can spare the time for a full proof-reading, including spelling and grammar, that would be great! Please send me an e-mail; as a token of appreciation, your name will be put into the corresponding section of this documentation.]
[note No documentation is perfect, neither is this one. If you encounter a description that is unclear, please file an issue as described in [sref manual.overview.feedback]. Also if you can spare the time for a full proof-reading, including spelling and grammar, that would be great! Please [link email send me an e-mail]; as a token of appreciation, your name will be included into the [link manual.overview.thanks corresponding section] of this documentation.]
[endsect] [/introduction]
@ -1996,3 +1996,10 @@ Functions:
* [link set_memory_management_functions]
[endsect] [/apiref]
[section:toc Table of contents]
toc-placeholder
[endsect] [/toc]

95
docs/manual.xsl Normal file
View File

@ -0,0 +1,95 @@
<?xml version='1.0'?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template name="navbar.section">
<xsl:param name="name" select="/foo" />
<xsl:param name="target" select="id($name)" />
<xsl:param name="text" select="normalize-space($target/title)" />
<xsl:choose>
<xsl:when test="@id != $name">
<a>
<xsl:attribute name="href">
<xsl:call-template name="href.target">
<xsl:with-param name="object" select="$target"/>
</xsl:call-template>
</xsl:attribute>
<xsl:value-of select="$text" />
</a>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$text" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="navbar.contents">
<xsl:value-of select="/*/title" /> user manual |
<xsl:call-template name="navbar.section"><xsl:with-param name="name" select="'manual.overview'" /></xsl:call-template> |
<xsl:call-template name="navbar.section"><xsl:with-param name="name" select="'manual.install'" /></xsl:call-template> |
Document:
<xsl:call-template name="navbar.section"><xsl:with-param name="name" select="'manual.dom'" /><xsl:with-param name="text" select="'Object model'" /></xsl:call-template>
<xsl:text disable-output-escaping="yes"> &amp;middot; </xsl:text>
<xsl:call-template name="navbar.section"><xsl:with-param name="name" select="'manual.loading'" /><xsl:with-param name="text" select="'Loading'" /></xsl:call-template>
<xsl:text disable-output-escaping="yes"> &amp;middot; </xsl:text>
<xsl:call-template name="navbar.section"><xsl:with-param name="name" select="'manual.access'" /><xsl:with-param name="text" select="'Accessing'" /></xsl:call-template>
<xsl:text disable-output-escaping="yes"> &amp;middot; </xsl:text>
<xsl:call-template name="navbar.section"><xsl:with-param name="name" select="'manual.modify'" /><xsl:with-param name="text" select="'Modifying'" /></xsl:call-template>
<xsl:text disable-output-escaping="yes"> &amp;middot; </xsl:text>
<xsl:call-template name="navbar.section"><xsl:with-param name="name" select="'manual.saving'" /><xsl:with-param name="text" select="'Saving'" /></xsl:call-template> |
<xsl:call-template name="navbar.section"><xsl:with-param name="name" select="'manual.xpath'" /></xsl:call-template> |
<xsl:call-template name="navbar.section"><xsl:with-param name="name" select="'manual.apiref'" /></xsl:call-template> |
<xsl:call-template name="navbar.section"><xsl:with-param name="name" select="'manual.toc'" /></xsl:call-template>
</xsl:template>
<xsl:template name="header.navigation">
<xsl:param name="prev" select="/foo"/>
<xsl:param name="next" select="/foo"/>
<xsl:param name="nav.context"/>
<table width="100%"><tr>
<td>
<xsl:call-template name="navbar.contents" />
</td>
<td width="*" align="right">
<xsl:call-template name="navbar.spirit">
<xsl:with-param name="prev" select="$prev"/>
<xsl:with-param name="next" select="$next"/>
<xsl:with-param name="nav.context" select="$nav.context"/>
</xsl:call-template>
</td>
</tr></table>
<hr/>
</xsl:template>
<xsl:template name="footer.navigation">
<xsl:param name="prev" select="/foo"/>
<xsl:param name="next" select="/foo"/>
<xsl:param name="nav.context"/>
<hr/>
<table width="100%"><tr>
<td>
<xsl:call-template name="navbar.contents" />
</td>
<td width="*" align="right">
<xsl:call-template name="navbar.spirit">
<xsl:with-param name="prev" select="$prev"/>
<xsl:with-param name="next" select="$next"/>
<xsl:with-param name="nav.context" select="$nav.context"/>
</xsl:call-template>
</td>
</tr></table>
</xsl:template>
<xsl:template match="section[@id='manual.toc']/para[normalize-space(text())='toc-placeholder']">
<!-- trick to switch context node to root element -->
<xsl:for-each select="/*">
<xsl:call-template name="component.toc">
<xsl:with-param name="toc.title.p" select="false()" />
</xsl:call-template>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>