Table of Contents
This chapter contains information about writing Docbook documentation within the OpenLaszlo project. It builds on the standard information available about Docbook itself and the Docbook-XSL tool. Content in this chapter assumes you are familiar with the basic information available in those references. For general information about the local Docbook-based OpenLaszlo documentation tool chain, see Chapter 54, The Documentation Toolchain.
When using an
indexterm
tag, be aware
that the text of the corresponding entry in the index will be
generated from the
title
or
xreflabel
found nearest
to the
indexterm
itself.
<section> <title>Including HTML markup in OpenLaszlo applications</title> <para>Openlaszlo provides support for incorporating HTML. Here's a list of tags that are supported: </para> <simplelist> <listitem> <indexterm><primary>a</primary></indexterm> <sgmltag class="element"><a></sgmltag> </listitem> <listitem> <indexterm><primary>font</primary></indexterm> <sgmltag class="element"><font></sgmltag> </listitem> </simplelist> </section>
Here, the index entry text for
a
and
font
both read, "Including
HTML markup in OpenLaszlo applications."
Mentions of class members (properties, methods, etc.) within the text that have been properly declared are automatically expanded to include index entries and hyperlinks to the appropriate section of the reference guide.
For example, this declaration:
<sgmltag class="attribute" role="LzView.__ivars__.resourcewidth
">resourcewidth
</sgmltag>
is expanded to this Docbook markup:
<indexterm> <primary>resourcewidth</primary> </indexterm> <link linkend="LzView.__ivars__.resourcewidth"> <sgmltag class="attribute">resourcewidth</sgmltag> </link>
The
indexterm
block generates an
entry in the index. The entry text is automatically derived
from the nearest surrounding section title.
The
link
block is a hypertext
link into the appropriate reference page. The value of the
role
attribute is the same
as the automatically-generated
id
of that member in the
js2doc output.
Expansion of markup occurs in the preprocess stage, and
requires inclusion of the
role
attribute in the
relevant tag. The tags currently supported are:
structfield
,
property
,
methodname
,
sgmltag
.
Note that
classname
,
tag
, and other potentially
relevant tags, are not currently supported. Adding support
should be relatively straightforward, perhaps as simple as
adding a new match clause to the relevant XSLT
template.
The simplest way of determining what string to put into
the
role
value is to find the
desired entry in the HTML version of the Reference Guide and
note the first
a
tag in the member
entry.
<span class="term"> <a name="LzView.__ivars__.resourcewidth"> <a class="indexterm" name="d0e187250"> "resourcewidth" </span>
Here is an simple version of an inline example:
<example> <title>A simple title/> <programlisting language="lzx"> <canvas height="100" width="500"> <window> <animator attribute="x" to="100" duration="1000"/> </window> </canvas> </programlisting> </example>
Here is a version that transcludes the source code.
<example>
<title>A simple animator</title>
<programlisting language="lzx">
<textobject>
<textdata fileref="programs/animation-$4.lzx"/>
</textobject>
</programlisting>
</example>
Here is a version that runs within the documentation page:
<example role="live-example">
<title>Importing a resource</title>
<programlisting language="lzx">
<textobject>
<textdata fileref="programs/animation-$4.lzx" />
</textobject>
</programlisting>
</example>
Here is a version with highlighted areas:
<example role="live-example"> <title>Controlling animation with a script</title> <programlistingco> <programlisting language="lzx"> <textobject> <textdata fileref="programs/animation-$4.lzx"/> </textobject> </programlisting> <areaspec> <area units="other" otherunits="/canvas[1]/view[1]/@onclick"/> </areaspec> </programlistingco> </example>
The
areaspec
block is an
OpenLaszlo specialization of Docbook-XSL that highlights any
portion of an LZX program that matches the given XPath
expression. Here, we are targeting a section of the following
LZX source:
<canvas height="100" width="500">
<view bgcolor="red" width="100" height="100"
onclick="this.myAnimator.doStart()">
<animator name="myAnimator" attribute="x" to="100"
duration="1000" start="false"/>
</view>
</canvas>
The XPath expression refers to the attribute highlighted in the above source.
Less commonly, there is a need to use callouts within live examples.
<example role="live-example"> <title>Using attributes and class children together</title> <programlisting language="lzx"> <textobject> <textdata fileref="programs/class-1.lzx"/> </textobject> </programlisting> </example> <calloutlist> <callout arearefs="N10086"> <para>Blah blah</para> </callout> <callout arearefs="N10090"> <para>Blah blah</para> </callout> </calloutlist>
To accomplish this, we can't use XPath expressions, so we have to embed processing instructions into the source.
<canvas height="40"> <class name="myframe" extends="view"> <?lzx-co N10086 ?> <attribute name="bgcolor" value="red"/> <view x="5" y="5" width="${parent.width-10}" height="${parent.height-10}" bgcolor="blue"/> </class> <myframe width="40" height="40"/> <?lzx-co N10090 ?> </canvas>
LPP-4308: Examples whose text is not transcluded (included from an external file) are not pretty-printed.
Docbook content can be marked as runtime specific. This
is done using the
condition
attribute within
a selection of Docbook markup tags.
The currently-supported list of tags is
para
title
within a
section
Support within other tags is possible by editing the
relevant portion of
docs/src/xsl/conditional-html.xsl
.
Currently only one runtime may be given within an
condition
attribute.
Copyright © 2002-2010 Laszlo Systems, Inc. All Rights Reserved. Unauthorized use, duplication or distribution is strictly prohibited. This is the proprietary information of Laszlo Systems, Inc. Use is subject to license terms.