- Add line number indicators to programlisting and screen in the HTML

version. This makes linewrap indicators unnecessary since the
  line numbers suggest where the line is wrapped.

No objection from:	doc
This commit is contained in:
Gabor Kovesdan 2014-03-03 16:16:57 +00:00
parent 49226af4a0
commit 38b32d78ce
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=44109
2 changed files with 71 additions and 9 deletions

View file

@ -265,26 +265,47 @@ html {
text-decoration: underline;
}
pre.screen {
white-space: pre;
overflow: auto;
.screen {
white-space: pre-wrap;
font-family: monospace;
padding: 1ex;
background-color: #edc;
border: 1px solid #ccc;
border-style: solid;
border-color: #EEB985;
border-width: 0 0 0 24px;
border-radius: 6px;
line-height: 1.1;
counter-reset: code;
}
pre.programlisting {
white-space: pre;
overflow: auto;
.programlisting {
white-space: pre-wrap;
font-family: monospace;
padding: 1ex;
background-color: #eee;
border: 1px solid #ccc;
border-style: solid;
border-color: #BABABA;
border-width: 0 0 0 24px;
border-radius: 6px;
line-height: 1.1;
counter-reset: code;
}
span.verbatim {
counter-increment: code;
display: block;
padding: 0 13px 0 29px;
position: relative;
margin: 0 -8px 0 -24px;
overflow: hidden;
}
span.verbatim:before {
width: 24px;
text-align: right;
content: counter(code) " ";
position: absolute;
left: -10px;
}
@media screen { /* hide from IE3 */
@ -378,7 +399,7 @@ pre.programlisting {
font-weight: bold;
}
pre.screen strong {
.screen strong {
font-weight: normal;
}

View file

@ -7,6 +7,7 @@
version='1.0'
xmlns:str="http://exslt.org/strings"
xmlns:db="http://docbook.org/ns/docbook"
xmlns="http://www.w3.org/1999/xhtml"
exclude-result-prefixes="db"
extension-element-prefixes="str">
@ -31,6 +32,7 @@
<xsl:param name="generate.manifest" select="1"/>
<xsl:param name="generate.meta.abstract" select="1"/>
<xsl:param name="html.longdesc" select="0"/>
<xsl:param name="hyphenate.verbatim" select="1"/>
<xsl:param name="make.valid.html" select="1"/>
<xsl:param name="html.cleanup" select="1"/>
@ -292,4 +294,43 @@
<hr/>
</xsl:template>
<xsl:template name="wrap.text">
<xsl:param name="content"/>
<xsl:for-each select="str:tokenize($content, '&#x0A;')">
<span class="verbatim"><xsl:value-of select="."/>&#x0A;</span>
</xsl:for-each>
</xsl:template>
<!-- XXX: breaks line numbering and syntax highlighting that we do not use
anyway -->
<xsl:template match="db:programlisting|db:screen|db:synopsis">
<xsl:variable name="id">
<xsl:call-template name="object.id"/>
</xsl:variable>
<xsl:call-template name="anchor"/>
<xsl:variable name="div.element">
<xsl:choose>
<xsl:when test="$make.clean.html != 0">div</xsl:when>
<xsl:otherwise>pre</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<xsl:element name="{$div.element}" namespace="http://www.w3.org/1999/xhtml">
<xsl:apply-templates select="." mode="common.html.attributes"/>
<xsl:if test="@width != ''">
<xsl:attribute name="width">
<xsl:value-of select="@width"/>
</xsl:attribute>
</xsl:if>
<xsl:call-template name="wrap.text">
<xsl:with-param name="content">
<xsl:apply-templates/>
</xsl:with-param>
</xsl:call-template>
</xsl:element>
</xsl:template>
</xsl:stylesheet>