gtk-doc r644 - in trunk: . tests/gobject/docs
- From: stefkost svn gnome org
- To: svn-commits-list gnome org
- Subject: gtk-doc r644 - in trunk: . tests/gobject/docs
- Date: Mon, 19 Jan 2009 16:49:09 +0000 (UTC)
Author: stefkost
Date: Mon Jan 19 16:49:09 2009
New Revision: 644
URL: http://svn.gnome.org/viewvc/gtk-doc?rev=644&view=rev
Log:
* TODO:
More ideas.
* gtk-doc.xsl:
Experiment with navigation for index and glossaries.
* gtkdoc-fixxref.in:
* gtkdoc-mkdb.in:
Fix index entries and copy doc along with the method.
* style.css:
also do the extra spacing for the index/glossary environments now.
* tests/gobject/docs/tester-docs.xml:
Experiment with a more complete doc structure.
Modified:
trunk/ChangeLog
trunk/TODO
trunk/gtk-doc.xsl
trunk/gtkdoc-fixxref.in
trunk/gtkdoc-mkdb.in
trunk/style.css
trunk/tests/gobject/docs/tester-docs.xml
Modified: trunk/TODO
==============================================================================
--- trunk/TODO (original)
+++ trunk/TODO Mon Jan 19 16:49:09 2009
@@ -101,6 +101,9 @@
unrtf -t ps tester-docs.rtf >tester-docs.ps
unrtf -t latex tester-docs.rtf >tester-docs.tex
- bad output
+* man
+ we shouldn't convert the whole document to man. We should convert e.g. tool
+ sections to man pages.
= Indexes =
* http://www.w3.org/TR/2003/WD-xinclude-20031110/#syntax
@@ -127,11 +130,12 @@
== scanning ==
* ideas
* use gir files
- 1) replace gtkdoc-scan/gtkdoc-scangobject by gtkdoc-gir and output the classical files
+ 1) replace gtkdoc-scan/gtkdoc-scangobject by gtkdoc-gir and output the classical files or
+ patch gtkdoc-scan/gtkdoc-scangobject to output gir files
2) patch gtkdoc-mkdb to read stuff from gir instead of classical files
- * if gir-files would have the comments too:
+ * if gir-files would have the comments too (they are getting this now):
* we could even drop scanning the sources
- * IDEs could use the gir-files to show doc-tooltips for symbols
+ * IDEs could use the gir-files to show doc-tooltips for symbols
* perl and xml
* http://www.xml.com/pub/a/2001/04/18/perlxmlqstart1.html
== binding docs ==
@@ -163,9 +167,20 @@
- unfortunately we can't link to symbols
- linking to files is difficult as in gtkdoc we have modules
-= more bookinfo data =
-http://www.docbook.org/tdg/en/html/bookinfo.html
-e.g. copyright and legalnotice
+= docbook xml =
+Its tedious to write large amounts of docbook. Can we offer integration with
+asciidoc (http://www.methods.co.nz/asciidoc/)? This way the master document
+could be written musch easier. It would be cool if we could use the asciidoc
+markup in source-comments also.
+
+== extract other bits and pieces ==
+=== library api ==
+gtkdoc-scan could be obsoleted and gtkdoc-mkdb would build docbook fragemnts for
+api docs and their indexes
+=== DBUs Interfaces ===
+http://hal.freedesktop.org/docs/DeviceKit/DeviceKit.html
+http://cgit.freedesktop.org/DeviceKit/DeviceKit/tree/doc/dbus
+=== GConf schemas ===
= styling =
== warnings ==
@@ -184,15 +199,13 @@
source-highlight -i./tests/gobject/examples/gobject.c -o$HOME/temp/gobject.html -n -t4 -sc
source-highlight -i./tests/gobject/examples/gobject.c -o$HOME/temp/gobject.html -n -t4 -sc -cstyle.css --no-doc
source-highlight -i./tests/gobject/examples/gobject.c -o$HOME/temp/gobject.xml -n -t4 -sc -f docbook
-
+
highlight -itests/gobject/examples/gobject.c -o$HOME/temp/gobject.xml -l -H -f -j2
-
+
if we highlight to docbook, we just get emphasis (bold)
if we hightlight to html we get colors, we need to cehck what tags we should process though:
<pre class="programlisting"> is used for all code boxes.
<div class="informalexample"><pre class="programlisting"> is used for examples.
-
-links in the same module only work once its installed
= documentation best practises #518427 =
* we'd like offer a more complete skelleton
@@ -213,8 +226,10 @@
* classes / overview / tutorial&examples
* recommendation
* front-page
- * table with details
+ * table with details (http://www.docbook.org/tdg/en/html/bookinfo.html)
+ (problem: what enclosing tag)
Logo, Module Version
+ Copyright and Legalnotice
Links
* homepage, mailing lists, irc channel
* repository, source releases, bugtracker
@@ -228,3 +243,34 @@
* (releated) tools - tools part of the package or recommended for development
* indexes - api-index, depretations, new api since xxx
+proposed structure in docbook xml:
+<book>
+ <bookinfo>
+ </bookinfo>
+ <preface><title>Introduction</title>
+ ...
+ </preface>
+ <part label="I"><title>xxx Overview</title>
+ <xi:include href="building.xml" />
+ ...
+ </part>
+ <reference label="II"><title>xxx Core Reference</title>
+ <xi:include href="xml/gtkmain.xml" />
+ ...
+ </part>
+ <reference label="III"><title>xxx Object Reference</title>
+ <chapter><title>Object Hierarchy</title>
+ <xi:include href="xml/tree_index.sgml" />
+ </chapter>
+ <chapter>...
+ </part>
+ <index>...</index>
+</book>
+
+some things to check:
+* gtk,glib: can we make a <part> for the glosary and index's (according to docbook, yes)
+ should we use <appendix>? its like a chapter.
+* gobject: uses a <preface> for introductions
+* gobject: uses <reference> as a parent for the xi:includeed <refentry> docs
+
+
Modified: trunk/gtk-doc.xsl
==============================================================================
--- trunk/gtk-doc.xsl (original)
+++ trunk/gtk-doc.xsl Mon Jan 19 16:49:09 2009
@@ -196,7 +196,9 @@
<xsl:param name="next" select="/foo"/>
<xsl:variable name="home" select="/*[1]"/>
<xsl:variable name="up" select="parent::*"/>
- <xsl:variable name="sections" select="./refsect1[ role]"/>
+ <xsl:variable name="refsections" select="./refsect1[ role]"/>
+ <xsl:variable name="glssections" select="./glossdiv/title"/>
+ <xsl:variable name="idxsections" select="./indexdiv/indexdiv/title"/>
<xsl:variable name="section_id" select="./@id"/>
<xsl:variable name="sect_object_hierarchy" select="./refsect1[ role='object_hierarchy']"/>
<xsl:variable name="sect_impl_interfaces" select="./refsect1[ role='impl_interfaces']"/>
@@ -318,107 +320,143 @@
</xsl:choose>
</tr>
<!--<xsl:if test="name()='refentry'"-->
- <xsl:if test="count($sections) > 0">
- <tr>
- <td colspan="5" class="shortcuts">
- <xsl:if test="count($sect_synopsis) > 0">
- <a href="#{$section_id}.synopsis" class="shortcut">Top</a>
- </xsl:if>
- <xsl:if test="count($sect_desc) > 0">
-  | 
- <a href="#{$section_id}.description" class="shortcut">
- <xsl:value-of select="./refsect1[ role='desc']/title"/>
- </a>
- </xsl:if>
- <xsl:if test="count($sect_object_hierarchy) > 0">
-  | 
- <a href="#{$section_id}.object-hierarchy" class="shortcut">
- <xsl:value-of select="./refsect1[ role='object_hierarchy']/title"/>
- </a>
- </xsl:if>
- <xsl:if test="count($sect_impl_interfaces) > 0">
-  | 
- <a href="#{$section_id}.implemented-interfaces" class="shortcut">
- <xsl:value-of select="./refsect1[ role='impl_interfaces']/title"/>
- </a>
- </xsl:if>
- <xsl:if test="count($sect_prerequisites) > 0">
-  | 
- <a href="#{$section_id}.prerequisites" class="shortcut">
- <xsl:value-of select="./refsect1[ role='prerequisites']/title"/>
- </a>
- </xsl:if>
- <xsl:if test="count($sect_derived_interfaces) > 0">
-  | 
- <a href="#{$section_id}.derived-interfaces" class="shortcut">
- <xsl:value-of select="./refsect1[ role='derived_interfaces']/title"/>
- </a>
- </xsl:if>
- <xsl:if test="count($sect_implementations) > 0">
-  | 
- <a href="#{$section_id}.implementations" class="shortcut">
- <xsl:value-of select="./refsect1[ role='implementations']/title"/>
- </a>
- </xsl:if>
- <xsl:if test="count($sect_properties) > 0">
-  | 
- <a href="#{$section_id}.properties" class="shortcut">
- <xsl:value-of select="./refsect1[ role='properties']/title"/>
- </a>
- </xsl:if>
- <xsl:if test="count($sect_child_properties) > 0">
-  | 
- <a href="#{$section_id}.child-properties" class="shortcut">
- <xsl:value-of select="./refsect1[ role='child_properties']/title"/>
- </a>
- </xsl:if>
- <xsl:if test="count($sect_style_properties) > 0">
-  | 
- <a href="#{$section_id}.style-properties" class="shortcut">
- <xsl:value-of select="./refsect1[ role='style_properties']/title"/>
- </a>
- </xsl:if>
- <xsl:if test="count($sect_signal_proto) > 0">
-  | 
- <a href="#{$section_id}.signals" class="shortcut">
- <xsl:value-of select="./refsect1[ role='signal_proto']/title"/>
- </a>
- </xsl:if>
- <!--
- <xsl:if test="count($sect_details) > 0">
- <a href="#details" class="shortcut">
- <xsl:value-of select="./refsect1[ id='details']/title"/>
- </a>
-  | 
- </xsl:if>
- <xsl:if test="count($sect_property_details) > 0">
- <a href="#property_details" class="shortcut">
- <xsl:value-of select="./refsect1[ id='property_details']/title"/>
- </a>
-  | 
- </xsl:if>
- <xsl:if test="count($sect_child_property_details) > 0">
- <a href="#child_property_details" class="shortcut">
- <xsl:value-of select="./refsect1[ id='property_child_details']/title"/>
- </a>
-  | 
- </xsl:if>
- <xsl:if test="count($sect_style_property_details) > 0">
- <a href="#style_property_details" class="shortcut">
- <xsl:value-of select="./refsect1[ id='style_property_details']/title"/>
- </a>
-  | 
- </xsl:if>
- <xsl:if test="count($sect_signals) > 0">
- <a href="#signals" class="shortcut">
- <xsl:value-of select="./refsect1[ id='signals']/title"/>
- </a>
-  | 
- </xsl:if>
- -->
- </td>
- </tr>
- </xsl:if>
+ <xsl:choose>
+ <xsl:when test="count($refsections) > 0">
+ <tr>
+ <td colspan="5" class="shortcuts">
+ <xsl:if test="count($sect_synopsis) > 0">
+ <a href="#{$section_id}.synopsis" class="shortcut">Top</a>
+ </xsl:if>
+ <xsl:if test="count($sect_desc) > 0">
+  | 
+ <a href="#{$section_id}.description" class="shortcut">
+ <xsl:value-of select="./refsect1[ role='desc']/title"/>
+ </a>
+ </xsl:if>
+ <xsl:if test="count($sect_object_hierarchy) > 0">
+  | 
+ <a href="#{$section_id}.object-hierarchy" class="shortcut">
+ <xsl:value-of select="./refsect1[ role='object_hierarchy']/title"/>
+ </a>
+ </xsl:if>
+ <xsl:if test="count($sect_impl_interfaces) > 0">
+  | 
+ <a href="#{$section_id}.implemented-interfaces" class="shortcut">
+ <xsl:value-of select="./refsect1[ role='impl_interfaces']/title"/>
+ </a>
+ </xsl:if>
+ <xsl:if test="count($sect_prerequisites) > 0">
+  | 
+ <a href="#{$section_id}.prerequisites" class="shortcut">
+ <xsl:value-of select="./refsect1[ role='prerequisites']/title"/>
+ </a>
+ </xsl:if>
+ <xsl:if test="count($sect_derived_interfaces) > 0">
+  | 
+ <a href="#{$section_id}.derived-interfaces" class="shortcut">
+ <xsl:value-of select="./refsect1[ role='derived_interfaces']/title"/>
+ </a>
+ </xsl:if>
+ <xsl:if test="count($sect_implementations) > 0">
+  | 
+ <a href="#{$section_id}.implementations" class="shortcut">
+ <xsl:value-of select="./refsect1[ role='implementations']/title"/>
+ </a>
+ </xsl:if>
+ <xsl:if test="count($sect_properties) > 0">
+  | 
+ <a href="#{$section_id}.properties" class="shortcut">
+ <xsl:value-of select="./refsect1[ role='properties']/title"/>
+ </a>
+ </xsl:if>
+ <xsl:if test="count($sect_child_properties) > 0">
+  | 
+ <a href="#{$section_id}.child-properties" class="shortcut">
+ <xsl:value-of select="./refsect1[ role='child_properties']/title"/>
+ </a>
+ </xsl:if>
+ <xsl:if test="count($sect_style_properties) > 0">
+  | 
+ <a href="#{$section_id}.style-properties" class="shortcut">
+ <xsl:value-of select="./refsect1[ role='style_properties']/title"/>
+ </a>
+ </xsl:if>
+ <xsl:if test="count($sect_signal_proto) > 0">
+  | 
+ <a href="#{$section_id}.signals" class="shortcut">
+ <xsl:value-of select="./refsect1[ role='signal_proto']/title"/>
+ </a>
+ </xsl:if>
+ <!--
+ <xsl:if test="count($sect_details) > 0">
+ <a href="#details" class="shortcut">
+ <xsl:value-of select="./refsect1[ id='details']/title"/>
+ </a>
+  | 
+ </xsl:if>
+ <xsl:if test="count($sect_property_details) > 0">
+ <a href="#property_details" class="shortcut">
+ <xsl:value-of select="./refsect1[ id='property_details']/title"/>
+ </a>
+  | 
+ </xsl:if>
+ <xsl:if test="count($sect_child_property_details) > 0">
+ <a href="#child_property_details" class="shortcut">
+ <xsl:value-of select="./refsect1[ id='property_child_details']/title"/>
+ </a>
+  | 
+ </xsl:if>
+ <xsl:if test="count($sect_style_property_details) > 0">
+ <a href="#style_property_details" class="shortcut">
+ <xsl:value-of select="./refsect1[ id='style_property_details']/title"/>
+ </a>
+  | 
+ </xsl:if>
+ <xsl:if test="count($sect_signals) > 0">
+ <a href="#signals" class="shortcut">
+ <xsl:value-of select="./refsect1[ id='signals']/title"/>
+ </a>
+  | 
+ </xsl:if>
+ -->
+ </td>
+ </tr>
+ </xsl:when>
+ <!-- this is not yet very nice, as it requires all glossdic/indexdiv
+ elements having a anchor element. maybe we can customize the xsl
+ to automaticaly create local anchors
+ -->
+ <xsl:when test="count($glssections) > 0">
+ <tr>
+ <td colspan="5" class="shortcuts">
+ <xsl:for-each select="./glossdiv">
+ <xsl:if test="position() > 1">
+  | 
+ </xsl:if>
+ <a class="shortcut">
+ <xsl:attribute name="href">#<xsl:value-of select="./anchor/@id"/></xsl:attribute>
+ <xsl:value-of select="./title"/>
+ </a>
+ </xsl:for-each>
+ </td>
+ </tr>
+ </xsl:when>
+ <xsl:when test="count($idxsections) > 0">
+ <tr>
+ <td colspan="5" class="shortcuts">
+ <xsl:for-each select="./indexdiv/indexdiv">
+ <xsl:if test="position() > 1">
+  | 
+ </xsl:if>
+ <a class="shortcut">
+ <xsl:attribute name="href">#<xsl:value-of select="./anchor/@id"/></xsl:attribute>
+ <xsl:value-of select="./title"/>
+ </a>
+ </xsl:for-each>
+ </td>
+ </tr>
+ </xsl:when>
+ </xsl:choose>
</table>
</xsl:if>
</xsl:template>
@@ -479,29 +517,29 @@
<div class="{name(.)}">
<table width="100%">
<tr><td valign="top">
- <xsl:call-template name="anchor"/>
- <xsl:choose>
- <xsl:when test="$refentry.generate.name != 0">
- <h2>
+ <xsl:call-template name="anchor"/>
+ <xsl:choose>
+ <xsl:when test="$refentry.generate.name != 0">
+ <h2>
<xsl:call-template name="gentext">
- <xsl:with-param name="key" select="'RefName'"/>
- </xsl:call-template>
- </h2>
- </xsl:when>
- <xsl:when test="$refentry.generate.title != 0">
- <h2>
- <xsl:choose>
- <xsl:when test="../refmeta/refentrytitle">
- <xsl:apply-templates select="../refmeta/refentrytitle"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:apply-templates select="refname[1]"/>
- </xsl:otherwise>
- </xsl:choose>
- </h2>
- </xsl:when>
- </xsl:choose>
- <p>
+ <xsl:with-param name="key" select="'RefName'"/>
+ </xsl:call-template>
+ </h2>
+ </xsl:when>
+ <xsl:when test="$refentry.generate.title != 0">
+ <h2>
+ <xsl:choose>
+ <xsl:when test="../refmeta/refentrytitle">
+ <xsl:apply-templates select="../refmeta/refentrytitle"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates select="refname[1]"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </h2>
+ </xsl:when>
+ </xsl:choose>
+ <p>
<xsl:apply-templates/>
</p>
</td>
Modified: trunk/gtkdoc-fixxref.in
==============================================================================
--- trunk/gtkdoc-fixxref.in (original)
+++ trunk/gtkdoc-fixxref.in Mon Jan 19 16:49:09 2009
@@ -316,6 +316,14 @@
return "<div class=\"$type\"><pre class=\"programlisting\">$highlighted_source</pre></div>";
}
+#############################################################################
+# Function : CreateValidSGMLID
+# Description : Creates a valid SGML 'id' from the given string.
+# NOTE: SGML ids are case-insensitive, so we have a few special
+# cases to avoid clashes of ids.
+# Arguments : $id - the string to be converted into a valid SGML id.
+#############################################################################
+
sub CreateValidSGMLID {
my ($id) = $_[0];
Modified: trunk/gtkdoc-mkdb.in
==============================================================================
--- trunk/gtkdoc-mkdb.in (original)
+++ trunk/gtkdoc-mkdb.in Mon Jan 19 16:49:09 2009
@@ -832,7 +832,6 @@
my $curletter = uc(substr($short_symbol,0,1));
my $id = $apiindex{$symbol};
- my $xref = &MakeXRef ($id, $symbol);
#print " add symbol $symbol with $id to index in section $curletter\n";
@@ -847,7 +846,7 @@
}
print (OUTPUT <<EOF);
-<indexentry><primaryie linkends="$id">$xref</primaryie></indexentry>
+<indexentry><primaryie linkends="$id"><link linkend="$id">$symbol</link></primaryie></indexentry>
EOF
}
Modified: trunk/style.css
==============================================================================
--- trunk/style.css (original)
+++ trunk/style.css Mon Jan 19 16:49:09 2009
@@ -63,16 +63,10 @@
font-size: 80%;
white-space: nowrap;
}
- div.refentry, div.chapter, div.reference, div.part, div.book, div.glossary, div.sect1, div.appendix, div.preface
+ div.refentry, div.chapter, div.reference, div.part, div.book, div.glossary, div.sect1, div.appendix, div.preface, div.glossary, div.index
{
position: relative;
- top: 3em;
- z-index: 0;
- }
- div.glossary, div.index
- {
- position: relative;
- top: 2em;
+ top: 3.1em;
z-index: 0;
}
div.refnamediv
Modified: trunk/tests/gobject/docs/tester-docs.xml
==============================================================================
--- trunk/tests/gobject/docs/tester-docs.xml (original)
+++ trunk/tests/gobject/docs/tester-docs.xml Mon Jan 19 16:49:09 2009
@@ -15,59 +15,84 @@
The latest version of this documentation can be found on-line at
<ulink role="online-location" url="http://[SERVER]/tester/index.html">http://[SERVER]/tester/</ulink>.
</releaseinfo>
+ <legalnotice>
+ This manual is published as public domain.
+ </legalnotice>
</bookinfo>
- <chapter id="intro">
+ <preface id="intro">
<title>Introduction</title>
<para>
This document is for testing purpose only.
It is generated from Docbook-<acronym>XML</acronym>.
</para>
- </chapter>
+ </preface>
+
+ <part label="I">
+ <title>Overview</title>
+ <chapter id="Overview-building">
+ <title>How to build the library</title>
+ </chapter>
+ </part>
- <chapter id="main-api">
- <title>Tests</title>
- <xi:include href="xml/object.xml"/>
- <xi:include href="xml/iface.xml"/>
- </chapter>
+ <reference label="II">
+ <title>API Reference</title>
+ <chapter id="main-api">
+ <title>Tests</title>
+ <xi:include href="xml/object.xml"/>
+ <xi:include href="xml/iface.xml"/>
+ </chapter>
+ </reference>
- <chapter id="object-tree">
- <title>Object Hierarchy</title>
- <xi:include href="xml/tree_index.sgml"/>
- </chapter>
+ <part label="III">
+ <title>Appendix</title>
- <index id="api-index-full">
- <title>API Index</title>
- <xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-deprecated" role="deprecated">
- <title>Index of deprecated API</title>
- <xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-0-1" role="0.1">
- <title>Index of new API in 0.1</title>
- <xi:include href="xml/api-index-0.1.xml"><xi:fallback /></xi:include>
- </index>
- <index id="api-index-0-5" role="0.5">
- <title>Index of new API in 0.5</title>
- <xi:include href="xml/api-index-0.5.xml"><xi:fallback /></xi:include>
- </index>
+ <chapter id="object-tree">
+ <title>Object Hierarchy</title>
+ <xi:include href="xml/tree_index.sgml"/>
+ </chapter>
- <glossary>
- <title>Glossary</title>
- <glossdiv id="glossary-X"><title>X</title>
- <glossentry>
- <glossterm><anchor id="glossterm-XML"/>XML</glossterm>
- <glossdef>
- <para>Extensible Markup Language</para>
- </glossdef>
- </glossentry>
- <glossentry>
- <glossterm><anchor id="glossterm-XSL"/>XSL</glossterm>
- <glossdef>
- <para>XML Stylesheet Language</para>
- </glossdef>
- </glossentry>
- </glossdiv>
- </glossary>
+ <index id="api-index-full">
+ <title>API Index</title>
+ <xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
+ </index>
+ <index id="api-index-deprecated" role="deprecated">
+ <title>Index of deprecated API</title>
+ <xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
+ </index>
+ <index id="api-index-0-1" role="0.1">
+ <title>Index of new API in 0.1</title>
+ <xi:include href="xml/api-index-0.1.xml"><xi:fallback /></xi:include>
+ </index>
+ <index id="api-index-0-5" role="0.5">
+ <title>Index of new API in 0.5</title>
+ <xi:include href="xml/api-index-0.5.xml"><xi:fallback /></xi:include>
+ </index>
+
+ <glossary>
+ <title>Glossary</title>
+ <glossdiv><anchor id="glossary-A"/><title>A</title>
+ <glossentry>
+ <glossterm><anchor id="glossterm-API"/>API</glossterm>
+ <glossdef>
+ <para>Application Programming Interface</para>
+ </glossdef>
+ </glossentry>
+ </glossdiv>
+ <glossdiv><anchor id="glossary-X"/><title>X</title>
+ <glossentry>
+ <glossterm><anchor id="glossterm-XML"/>XML</glossterm>
+ <glossdef>
+ <para>Extensible Markup Language</para>
+ </glossdef>
+ </glossentry>
+ <glossentry>
+ <glossterm><anchor id="glossterm-XSL"/>XSL</glossterm>
+ <glossdef>
+ <para>XML Stylesheet Language</para>
+ </glossdef>
+ </glossentry>
+ </glossdiv>
+ </glossary>
+ </part>
</book>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]