| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 | <refentry xmlns="http://docbook.org/ns/docbook"          xmlns:xlink="http://www.w3.org/1999/xlink"          xmlns:xi="http://www.w3.org/2001/XInclude"          xmlns:src="http://nwalsh.com/xmlns/litprog/fragment"          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"          version="5.0" xml:id="custom.css.source">  <refmeta>    <refentrytitle>custom.css.source</refentrytitle>    <refmiscinfo class="other" otherclass="datatype">string</refmiscinfo>  </refmeta>  <refnamediv>    <refname>custom.css.source</refname>    <refpurpose>Name of a custom CSS input file</refpurpose>  </refnamediv>  <refsynopsisdiv>    <src:fragment xml:id="custom.css.source.frag"><xsl:param name="custom.css.source"></xsl:param></src:fragment>  </refsynopsisdiv>  <refsection><info><title>Description</title></info><para>The <parameter>custom.css.source</parameter>parameter enables you to add CSS styles to DocBook'sHTML output.</para><para>The parameterspecifies the name of a file containing customCSS styles.  The file must be a well-formed XML file thatconsists of a single <tag>style</tag> rootelement that contains CSS styles as its text content.For example:</para><programlisting><![CDATA[<?xml version="1.0"?><style>h2 {  font-weight: bold;  color: blue;}...</style>]]></programlisting><para>The filename specified by the parametershould have a <literal>.xml</literal>filename suffix, although that is not required.The default value of this parameter is blank.</para><para>If <parameter>custom.css.source</parameter> is not blank, thenthe stylesheet takes the following actions.These actions take place regardless of the value ofthe <parameter>make.clean.html</parameter> parameter.</para><orderedlist>  <listitem>    <para>The stylesheet uses the XSLT <literal>document()</literal>    function to open the file specified by the parameter and    load it into a variable.</para>  </listitem>  <listitem>    <para>The stylesheet forms an output pathname consisting of the    value of the <parameter>base.dir</parameter> parameter (if it is set)    and the value of <parameter>custom.css.source</parameter>,    with the <literal>.xml</literal> suffix stripped off.    </para>  </listitem>  <listitem>    <para>The stylesheet removes the <tag>style</tag>    wrapper element and writes just the CSS text content to the output file.</para>  </listitem>  <listitem>    <para>The stylesheet adds a <tag>link</tag> element to the    HTML <tag>HEAD</tag> element to reference this external CSS stylesheet.    For example:    <programlisting><link rel="stylesheet" href="custom.css" type="text/css">    </programlisting>    </para>  </listitem></orderedlist><para>If the <parameter>make.clean.html</parameter> parameter is nonzero(the default is zero),and if the <parameter>docbook.css.source</parameter> parameteris not blank (the default is not blank),then the stylesheet will also generate a default CSS fileand add a <tag>link</tag> tag to reference it.The <tag>link</tag> to the custom CSS comes after the <tag>link</tag> to the default, so it should cascade properlyin most browsers.If you do not want two <tag>link</tag> tags, andinstead want your custom CSS to import the default generatedCSS file, then do the following:</para><orderedlist>  <listitem>    <para>Add a line like the following to your custom CSS source file:</para>    <programlisting>@import url("docbook.css")    </programlisting>  </listitem>  <listitem>    <para>Set the <parameter>docbook.css.link</parameter> parameter     to zero. This will omit the <tag>link</tag> tag    that references the default CSS file.</para>  </listitem></orderedlist><para>If you set <parameter>make.clean.html</parameter> to nonzero butyou do not want the default CSS generated, then also setthe <parameter>docbook.css.source</parameter> parameter to blank.Then no default CSS will be generated, and soall CSS styles must come from your custom CSS file.</para><para>You can use the <parameter>generate.css.header</parameter>parameter to instead write the CSS to each HTML <tag>HEAD</tag>element in a <tag>style</tag> tag instead of an external CSS file.</para>  </refsection></refentry>
 |