diff options
author | Shaun McCance <shaunm@src.gnome.org> | 2003-10-13 01:42:49 +0000 |
---|---|---|
committer | Shaun McCance <shaunm@src.gnome.org> | 2003-10-13 01:42:49 +0000 |
commit | e1fac4bc261671a7e8d1bd58226c0874aaf2ffbe (patch) | |
tree | 1145f40305cb207b2ad48d86dcf7794abe8f4195 | |
parent | 04ab1fd30a7b85392e911db39bf291a0cdeb0416 (diff) | |
download | yelp-e1fac4bc261671a7e8d1bd58226c0874aaf2ffbe.tar.gz |
- Revert change for making navbars in C. Should not be necessary with new
* src/yelp-cache.c:
* src/yelp-cache.h:
* src/yelp-db2html.c:
* src/yelp-reader.c:
* src/yelp-scrollkeeper.c:
* src/yelp-view-content.c:
- Revert change for making navbars in C. Should not be necessary
with new stylesheets.
- Use new stylesheets
* stylesheets/db2html*.xsl:
* stylesheets/yelp-customization.xsl:
- Uber-fast new stylesheets
* stylesheets/Makefile.am:
* stylesheets/docbook/Makefile.am:
- Use new stylesheets
45 files changed, 6377 insertions, 1021 deletions
@@ -1,3 +1,15 @@ +2003-10-12 Shaun McCance <shaunm@gnome.org> + + * src/yelp-cache.c: + * src/yelp-cache.h: + * src/yelp-db2html.c: + * src/yelp-reader.c: + * src/yelp-scrollkeeper.c: + * src/yelp-view-content.c: + - Revert change for making navbars in C. Should not be necessary + with new stylesheets. + - Use new stylesheets + 2003-10-06 Christian Rose <menthos@menthos.com> * configure.in: Added "mr" to ALL_LINGUAS. diff --git a/src/.cvsignore b/src/.cvsignore deleted file mode 100644 index 508f2c41..00000000 --- a/src/.cvsignore +++ /dev/null @@ -1,20 +0,0 @@ -Makefile -Makefile.in -.deps -.libs -*.o -ghelp-test -libvfs-help.la -*.lo -GNOME_Yelp-* -GNOME_Yelp.h -GNOME_Yelp.server -gnome_yelp_idl_stamp -test-uri -test-reader -yelp-marshal.c -yelp-marshal.h -yelp -yelp-db2html -yelp-pregenerate -core* diff --git a/src/yelp-cache.c b/src/yelp-cache.c index 391c7a98..bb7b0757 100644 --- a/src/yelp-cache.c +++ b/src/yelp-cache.c @@ -30,17 +30,11 @@ GHashTable *cache_table; GMutex *cache_mutex; -GHashTable *links_table; -GMutex *links_mutex; - void yelp_cache_init (void) { cache_mutex = g_mutex_new (); cache_table = g_hash_table_new (g_str_hash, g_str_equal); - - links_mutex = g_mutex_new (); - links_table = g_hash_table_new (g_str_hash, g_str_equal); } const gchar * @@ -57,20 +51,6 @@ yelp_cache_lookup (const gchar *path) return ret_val; } -YelpNavLinks * -yelp_cache_lookup_links (const gchar *path) -{ - YelpNavLinks *ret_val; - - g_mutex_lock (links_mutex); - - ret_val = (YelpNavLinks *) g_hash_table_lookup (links_table, path); - - g_mutex_unlock (links_mutex); - - return ret_val; -} - void yelp_cache_add (const gchar *path, const gchar *html) { @@ -80,15 +60,3 @@ yelp_cache_add (const gchar *path, const gchar *html) g_mutex_unlock (cache_mutex); } - -void -yelp_cache_add_links (const gchar *path, const YelpNavLinks *links) -{ - YelpNavLinks *new_links; - - g_mutex_lock (links_mutex); - - g_hash_table_insert (links_table, (gchar *) path, links); - - g_mutex_unlock (links_mutex); -} diff --git a/src/yelp-cache.h b/src/yelp-cache.h index 0c1aad50..bd6f74b0 100644 --- a/src/yelp-cache.h +++ b/src/yelp-cache.h @@ -27,31 +27,10 @@ #include "yelp-uri.h" -typedef struct _YelpNavLinks YelpNavLinks; - -#define YELP_NAV_LINKS(x) ((YelpNavLinks *) x) - -struct _YelpNavLinks { - gchar *prev_link_uri; - gchar *next_link_uri; - gchar *prev_link_title; - gchar *next_link_title; - gchar *prev_link_text; - gchar *next_link_text; - gchar *up_link_uri; - gchar *up_link_title; -}; - void yelp_cache_init (void); const gchar * yelp_cache_lookup (const gchar *path); void yelp_cache_add (const gchar *path, const gchar *html); - -YelpNavLinks * yelp_cache_lookup_links (const gchar *path); - -void yelp_cache_add_links (const gchar *path, - const YelpNavLinks *links); - #endif /* __YELP_CACHE_H__ */ diff --git a/src/yelp-db2html.c b/src/yelp-db2html.c index 6c9d8c61..0b4aabc2 100644 --- a/src/yelp-db2html.c +++ b/src/yelp-db2html.c @@ -66,28 +66,16 @@ main (gint argc, gchar **argv) const gchar *params[16 + 1]; gchar *pathname; gchar *docpath; - gboolean gen_links; db_doc = NULL; putenv ("XML_CATALOG_FILES=" DATADIR "/yelp/catalog"); if (argc < 2) { - g_print ("Usage 'yelp-db2html [-n] url'\n"); + g_print ("Usage 'yelp-db2html url'\n"); exit (1); } - if (!strcmp (argv[1], "-n")) { - if (argc < 3) { - g_print ("Usage 'yelp-db2html [-n] url'\n"); - exit (1); - } - - docpath = argv[2]; - gen_links = FALSE; - } else { - docpath = argv[1]; - gen_links = TRUE; - } + docpath = argv[1]; if (!g_file_test (docpath, G_FILE_TEST_EXISTS)) { g_warning ("'%s' doesn't exist.", docpath); @@ -129,19 +117,13 @@ main (gint argc, gchar **argv) pathname = g_path_get_dirname (docpath); /* set params to be passed to stylesheet */ - params[0] = "yelp_docname"; + params[0] = "doc_name"; params[1] = g_strconcat("\"", docpath, "\"", NULL) ; - params[2] = "yelp_pathname"; - params[3] = g_strconcat("\"", pathname, "\"", NULL) ; - params[4] = "yelp_stylesheet_path"; - params[5] = g_strconcat("\"", DB_STYLESHEET_PATH, "\"", NULL) ; - params[6] = "yelp_max_chunk_depth"; - params[7] = "2"; - params[8] = "yelp_generate_navbar"; - params[9] = (gen_links ? "1" : "0"); - params[10] = "yelp_chunk_method"; - params[11] = "'yelp'"; - params[12] = NULL; + params[2] = "doc_path"; + params[3] = g_strconcat("\"file://", pathname, "/\"", NULL) ; + params[4] = "stylesheet_path"; + params[5] = g_strconcat("\"file://", DB_STYLESHEET_PATH, "/\"", NULL) ; + params[6] = NULL; g_free (pathname); diff --git a/src/yelp-reader.c b/src/yelp-reader.c index 6eac8e80..b018fd7b 100644 --- a/src/yelp-reader.c +++ b/src/yelp-reader.c @@ -94,7 +94,7 @@ static void reader_q_data_free (ReaderQueueData *q_data); static void reader_th_data_free (ReaderThreadData *th_data); #endif static gchar * reader_get_chunk (const gchar *document, - YelpURI *uri); + const gchar *section); static gchar * reader_look_for_cached_help_file (const gchar *url); @@ -261,15 +261,9 @@ reader_convert_start (ReaderThreadData *th_data) break; case YELP_URI_TYPE_DOCBOOK_XML: case YELP_URI_TYPE_DOCBOOK_SGML: - if (yelp_cache_lookup_links (yelp_uri_to_string (uri))) { - command_line = g_strdup_printf ("%s/yelp-db2html -n %s", - SERVERDIR, - yelp_uri_get_path (uri)); - } else { - command_line = g_strdup_printf ("%s/yelp-db2html %s", - SERVERDIR, - yelp_uri_get_path (uri)); - } + command_line = g_strdup_printf ("%s/yelp-db2html %s", + SERVERDIR, + yelp_uri_get_path (uri)); break; default: /* Set error */ @@ -318,7 +312,14 @@ reader_convert_start (ReaderThreadData *th_data) yelp_uri_get_type (uri) == YELP_URI_TYPE_DOCBOOK_SGML) { gchar *chunk; - chunk = reader_get_chunk (q_data->data, uri); + if (yelp_uri_get_section (uri) && + strcmp (yelp_uri_get_section (uri), "")) { + chunk = reader_get_chunk (q_data->data, + yelp_uri_get_section (uri)); + } else { + chunk = reader_get_chunk (q_data->data, + "toc"); + } g_free (q_data->data); q_data->data = chunk; @@ -633,30 +634,25 @@ reader_th_data_free (ReaderThreadData *th_data) #endif static gchar * -reader_get_chunk (const gchar *document, YelpURI *uri) +reader_get_chunk (const gchar *document, const gchar *section) { - const gchar *section; - gchar *header; - gchar *chunk; - const gchar *footer; - gchar *ret_val; - const gchar *start; - const gchar *end; - gchar *tag; - GTimer *timer; - YelpNavLinks *links; - const gchar *nav_top; - const gchar *nav_bottom; - - // timer = g_timer_new (); - - section = yelp_uri_get_section (uri); - if (!section || !strcmp (section, "")) - section = "toc"; + gchar *header; + gchar *chunk; + const gchar *footer; + gchar *ret_val; + const gchar *start; + const gchar *end; + gchar *tag; + GTimer *timer; + +/* g_print ("%s\n", document); */ + + timer = g_timer_new (); end = strstr (document, "<!-- End of header -->"); if (!end) { +/* g_warning ("Wrong type of document\n"); */ return g_strdup (document); } @@ -667,6 +663,7 @@ reader_get_chunk (const gchar *document, YelpURI *uri) g_free (tag); if (!start) { +/* g_warning ("Document doesn't include section: '%s'", section); */ g_free (header); return g_strdup (document); @@ -675,6 +672,8 @@ reader_get_chunk (const gchar *document, YelpURI *uri) end = strstr (start, "<!-- End of chunk -->"); if (!end) { +/* g_warning ("Document is doesn't contain end tag for section: %s", */ +/* section); */ g_free (header); return g_strdup (document); @@ -685,59 +684,15 @@ reader_get_chunk (const gchar *document, YelpURI *uri) footer = strstr (document, "<!-- Start of footer -->"); if (!footer) { +/* g_warning ("Couldn't find footer in document"); */ g_free (header); g_free (chunk); return g_strdup (document); } - - links = yelp_cache_lookup_links (yelp_uri_to_string (uri)); - - if (!links) { - nav_top = ""; - nav_bottom = ""; - } else { - nav_top = g_strconcat ("<table width='100%'><tr>", - "<td width='40%' align='left'>", - "<a accesskey='p' href='", - links->prev_link_uri, "'>", - links->prev_link_title, - "</a></td>", - "<td width='40%' align='right'>", - "<a accesskey='n' href='", - links->next_link_uri, "'>", - links->next_link_title, - "</a></td>", - "</tr></table>", - "<hr>", - NULL); - nav_bottom = g_strconcat ("<hr class='bottom'>", - "<table width='100%'><tr>", - "<td width='40%' align='left'>", - "<a accesskey='p' href='", - links->prev_link_uri, "'>", - links->prev_link_title, - "</a><br>", - links->prev_link_text, - "</td>", - "<td width='20%' align='center'>", - "<a accesskey='u' href='", - links->up_link_uri, "'>", - links->up_link_title, - "</a></td>", - "<td width='40%' align='right'>", - "<a accesskey='n' href='", - links->next_link_uri, "'>", - links->next_link_title, - "</a><br>", - links->next_link_text, - "</td>", - "</tr></table>", - NULL); - } - - ret_val = g_strconcat (header, nav_top, chunk, nav_bottom, footer, NULL); - + + ret_val = g_strconcat (header, chunk, footer, NULL); + g_free (header); g_free (chunk); @@ -947,8 +902,14 @@ yelp_reader_start (YelpReader *reader, YelpURI *uri) } else { document = read_document; } - - chunk = reader_get_chunk (document, new_uri); + + if (yelp_uri_get_section (new_uri) && + strcmp (yelp_uri_get_section (new_uri), "")) { + chunk = reader_get_chunk (document, + yelp_uri_get_section (new_uri)); + } else { + chunk = reader_get_chunk (document, "toc"); + } g_free (read_document); yelp_uri_unref (new_uri); diff --git a/src/yelp-scrollkeeper.c b/src/yelp-scrollkeeper.c index 216b1439..edcd7eb5 100644 --- a/src/yelp-scrollkeeper.c +++ b/src/yelp-scrollkeeper.c @@ -593,7 +593,6 @@ yelp_scrollkeeper_get_toc_tree (const gchar *docpath) xmlNode *xml_node; GNode *tree; gchar *full_path; - gchar *title_path; g_return_val_if_fail (docpath != NULL, NULL); @@ -620,22 +619,11 @@ yelp_scrollkeeper_get_toc_tree (const gchar *docpath) xml_node = doc->xmlRootNode->xmlChildrenNode; full_path = g_strconcat ("ghelp:", docpath, NULL); - title_path = g_strconcat (full_path, "?title-page", NULL); - - g_node_append_data (tree, - yelp_section_new (YELP_SECTION_DOCUMENT_SECTION, - _("About This Document"), - yelp_uri_new (title_path) )); - g_node_append_data (tree, - yelp_section_new (YELP_SECTION_DOCUMENT_SECTION, - _("Contents"), - yelp_uri_new (full_path) )); for (; xml_node != NULL; xml_node = xml_node->next) { scrollkeeper_parse_toc_section (tree, xml_node, full_path); } - g_free (title_path); g_free (full_path); return tree; diff --git a/src/yelp-view-content.c b/src/yelp-view-content.c index 972e69ce..c90c66b5 100644 --- a/src/yelp-view-content.c +++ b/src/yelp-view-content.c @@ -39,7 +39,6 @@ #include "yelp-scrollkeeper.h" #include "yelp-util.h" #include "yelp-uri.h" -#include "yelp-cache.h" #include "yelp-view-content.h" #define d(x) @@ -74,9 +73,6 @@ static void content_insert_tree (YelpViewContent *content, GNode *node); static void content_set_tree (YelpViewContent *content, GNode *node); -gboolean content_generate_links (GNode *node, - gpointer data); -GNode * node_last_ancestor (GNode *node); static void content_show_uri (YelpView *view, YelpURI *uri, @@ -424,98 +420,6 @@ content_set_tree (YelpViewContent *content, GNode *node) } } - -GNode * -node_last_ancestor (GNode *node) -{ - if (node->children) - return node_last_ancestor (g_node_last_child (node)); - else - return node; -} - - -gboolean -content_generate_links (GNode *node, gpointer data) -{ - GNode *prev_node; - GNode *next_node; - GNode *up_node; - YelpURI *prev_uri; - YelpURI *next_uri; - YelpURI *up_uri; - YelpNavLinks *links = g_new0 (YelpNavLinks, 1); - YelpURI *uri; - - if (!node->data) - return FALSE; - - uri = YELP_SECTION (node->data)->uri; - - if (yelp_cache_lookup_links (yelp_uri_to_string (uri))) - return FALSE; - - if (node->prev) - prev_node = node_last_ancestor (node->prev); - else if (node->parent && node->parent->data) - prev_node = node->parent; - else - prev_node = NULL; - - if (node->children) - next_node = node->children; - else if (node->next) - next_node = node->next; - else if (node->parent && node->parent->next) - next_node = node->parent->next; - else - next_node = NULL; - - if (yelp_uri_get_section (uri) && - strcmp (yelp_uri_get_section (uri), "") && - strcmp (yelp_uri_get_section (uri), "toc") && - strcmp (yelp_uri_get_section (uri), "title-page")) - up_node = g_node_nth_child (g_node_get_root (node), 1); - else - up_node = NULL; - - if (!prev_node) { - links->prev_link_uri = ""; - links->prev_link_title = ""; - links->prev_link_text = ""; - } else { - prev_uri = YELP_SECTION (prev_node->data)->uri; - links->prev_link_uri = yelp_uri_to_string (prev_uri); - links->prev_link_title = _("Previous"); - links->prev_link_text = YELP_SECTION (prev_node->data)->name; - } - - if (!next_node) { - links->next_link_uri = ""; - links->next_link_title = ""; - links->next_link_text = ""; - } else { - next_uri = YELP_SECTION (next_node->data)->uri; - links->next_link_uri = yelp_uri_to_string (next_uri); - links->next_link_title = _("Next"); - links->next_link_text = YELP_SECTION (next_node->data)->name; - } - - if (!up_node) { - links->up_link_uri = ""; - links->up_link_title = ""; - } else { - up_uri = YELP_SECTION (up_node->data)->uri; - links->up_link_uri = yelp_uri_to_string (up_uri); - links->up_link_title = YELP_SECTION (up_node->data)->name; - } - - yelp_cache_add_links (yelp_uri_to_string (uri), links); - - return FALSE; -} - - static void content_show_uri (YelpView *view, YelpURI *uri, GError **error) { @@ -541,13 +445,7 @@ content_show_uri (YelpView *view, YelpURI *uri, GError **error) gtk_widget_show (priv->tree_sw); content_set_tree (YELP_VIEW_CONTENT (view), node); - - g_node_traverse (node, - G_PRE_ORDER, - G_TRAVERSE_ALL, - -1, - (GNodeTraverseFunc) content_generate_links, - NULL); + } else { if (gtk_widget_is_focus (priv->tree_sw)) { reset_focus = TRUE; diff --git a/stylesheets/ChangeLog b/stylesheets/ChangeLog index 3d94e6c6..1446b768 100644 --- a/stylesheets/ChangeLog +++ b/stylesheets/ChangeLog @@ -1,3 +1,13 @@ +2003-10-12 Shaun McCance <shaunm@gnome.org> + + * db2html*.xsl: + * yelp-customization.xsl: + - Uber-fast new stylesheets + + * Makefile.am: + * docbook/Makefile.am: + - Use new stylesheets + 2003-09-08 Shaun McCance <shaunm@gnome.org> * yelp-customization.xsl: diff --git a/stylesheets/Makefile.am b/stylesheets/Makefile.am index b01acf3d..2d1dd43c 100644 --- a/stylesheets/Makefile.am +++ b/stylesheets/Makefile.am @@ -3,10 +3,40 @@ SUBDIRS = docbook yelpcustomizationdir=$(datadir)/sgml/docbook/yelp yelpcustomization_DATA = \ - yelp-customization.xsl \ - yelp-functions.xsl \ - yelp-custom.xsl \ - l10n.xml + db2html-admon.xsl \ + db2html-biblio.xsl \ + db2html-block.xsl \ + db2html-callout.xsl \ + db2html-chunk.xsl \ + db2html-common.xsl \ + db2html-division.xsl \ + db2html-ebnf.xsl \ + db2html-footnote.xsl \ + db2html-formal.xsl \ + db2html-glossary.xsl \ + db2html-html.xsl \ + db2html-index.xsl \ + db2html-inline.xsl \ + db2html-list.xsl \ + db2html-lists.xsl \ + db2html-math.xsl \ + db2html-media.xsl \ + db2html-navbar.xsl \ + db2html-node.xsl \ + db2html-param.xsl \ + db2html-qanda.xsl \ + db2html-refentry.xsl \ + db2html-section.xsl \ + db2html-suppressed.xsl \ + db2html-synopsis.xsl \ + db2html-table.xsl \ + db2html-title.xsl \ + db2html-titlepage.xsl \ + db2html-tmp.xsl \ + db2html-toc.xsl \ + db2html-xref.xsl \ + db2html.xsl \ + gettext.xsl \ + yelp-customization.xsl EXTRA_DIST=$(yelpcustomization_DATA) - diff --git a/stylesheets/db2html-admon.xsl b/stylesheets/db2html-admon.xsl new file mode 100644 index 00000000..f2b2b8b5 --- /dev/null +++ b/stylesheets/db2html-admon.xsl @@ -0,0 +1,40 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<xsl:template match="caution | important | note | tip | warning"> + <div class="admonition"><div class="{name(.)}"> + <xsl:call-template name="anchor"/> + <xsl:choose> + <xsl:when test="$text_only"> + <xsl:call-template name="node.heading"/> + <xsl:apply-templates select="*[name(.) != 'title']"/> + </xsl:when> + <xsl:otherwise> + <table style="border: none;"> + <tr> + <td rowspan="2" align="center" valign="top"> + <img> + <xsl:attribute name="src"> + <xsl:value-of select="$admon_graphics_path"/> + <xsl:value-of select="name(.)"/> + <xsl:value-of select="$admon_graphics_extension"/> + </xsl:attribute> + </img> + </td> + <th align="left" valign="top"> + <xsl:call-template name="node.heading"/> + </th> + </tr> + <tr> + <td align="left" valign="top"> + <xsl:apply-templates select="*[name(.) != 'title']"/> + </td> + </tr> + </table> + </xsl:otherwise> + </xsl:choose> + </div></div> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-biblio.xsl b/stylesheets/db2html-biblio.xsl new file mode 100644 index 00000000..d2333990 --- /dev/null +++ b/stylesheets/db2html-biblio.xsl @@ -0,0 +1,46 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<xsl:template match="bibliocoverage"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="bibliodiv"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="biblioentry"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="biblioid"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="bibliomisc"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="bibliomixed"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="bibliomset"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="bibliorelation"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="biblioset"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="bibliosource"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-block.xsl b/stylesheets/db2html-block.xsl new file mode 100644 index 00000000..038d2ff2 --- /dev/null +++ b/stylesheets/db2html-block.xsl @@ -0,0 +1,305 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> +<!DOCTYPE xsl:stylesheet [ +<!ENTITY is-division " +(name(.) = 'appendix') or (name(.) = 'article') or +(name(.) = 'book') or (name(.) = 'bibliography') or +(name(.) = 'chapter') or (name(.) = 'colophon') or +(name(.) = 'glossary') or (name(.) = 'index') or +(name(.) = 'part') or (name(.) = 'preface') or +(name(.) = 'reference') or (name(.) = 'refentry') or +(name(.) = 'refsect1') or (name(.) = 'refsect2') or +(name(.) = 'refsect3') or (name(.) = 'refsection') or +(name(.) = 'sect1') or (name(.) = 'sect2') or +(name(.) = 'sect3') or (name(.) = 'sect4') or +(name(.) = 'sect5') or (name(.) = 'section') or +(name(.) = 'set') or (name(.) = 'setindex') or +(name(.) = 'simplesect') "> +<!ENTITY is-info " +(name(.) = 'appendixinfo') or (name(.) = 'articleinfo') or +(name(.) = 'bibliographyinfo') or (name(.) = 'bookinfo') or +(name(.) = 'chapterinfo') or (name(.) = 'glossaryinfo') or +(name(.) = 'indexinfo') or (name(.) = 'partinfo') or +(name(.) = 'prefaceinfo') or (name(.) = 'refentryinfo') or +(name(.) = 'referenceinfo') or (name(.) = 'refsect1info') or +(name(.) = 'refsect2info') or (name(.) = 'refsect3info') or +(name(.) = 'refsectioninfo') or (name(.) = 'sect1info') or +(name(.) = 'sect2info') or (name(.) = 'sect3info') or +(name(.) = 'sect4info') or (name(.) = 'sect5info') or +(name(.) = 'sectioninfo') or (name(.) = 'setinfo') or +(name(.) = 'setindexinfo') "> +]> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<!-- ======================================================================= --> + +<xsl:template name="block"> + <div class="{name(.)}"> + <xsl:call-template name="anchor"/> + <xsl:apply-templates/> + </div> +</xsl:template> + +<xsl:template name="block.pre"> + <pre class="{name(.)}"> + <xsl:call-template name="anchor"/> + <xsl:apply-templates/> + </pre> +</xsl:template> + +<!-- ======================================================================= --> + +<xsl:template match="abstract"> + <div class="{name(.)}"> + <xsl:call-template name="anchor"/> + <xsl:if test="title or sidebarinfo/title"> + <xsl:call-template name="node.heading"/> + </xsl:if> + <xsl:apply-templates select="*[name(.) != 'title']"/> + </div> +</xsl:template> + +<xsl:template match="authorblurb"> + <xsl:call-template name="block"/> +</xsl:template> + +<xsl:template match="blockquote | epigraph"> + <div class="{name(.)}"> + <xsl:if test="title"> + <xsl:call-template name="node.heading"/> + </xsl:if> + <blockquote> + <xsl:apply-templates + select="*[name(.) != 'title' and name(.) != 'attribution']"/> + </blockquote> + <xsl:if test="attribution"> + <div class="attribution"> + <xsl:apply-templates select="attribution"/> + </div> + </xsl:if> + </div> +</xsl:template> + +<xsl:template match="caption"> + <xsl:call-template name="block"/> +</xsl:template> + +<xsl:template match="dedication"> + <div class="{name(.)}"> + <xsl:call-template name="node.heading"/> + <xsl:apply-templates select="*[ + name(.) != 'title' and + name(.) != 'subtitle' and + name(.) != 'titleabbrev' ]"/> + </div> +</xsl:template> + +<xsl:template match="example"> + <div class="{name(.)}"> + <xsl:call-template name="anchor"/> + <div class="heading"> + <i> + <xsl:apply-templates select="." mode="node.header.header.mode"/> + </i> + <xsl:apply-templates select="title/node()"/> + </div> + <xsl:apply-templates select="*[ + name(.) != 'blockinfo' and + name(.) != 'title' and + name(.) != 'titleabbrev' ]"/> + </div> +</xsl:template> + +<xsl:template match="figure"> + <div class="{name(.)}"> + <xsl:call-template name="anchor"/> + <div class="heading"> + <i> + <xsl:apply-templates select="." mode="node.header.header.mode"/> + </i> + <xsl:apply-templates select="title/node()"/> + </div> + <xsl:apply-templates select="*[ + name(.) != 'blockinfo' and + name(.) != 'title' and + name(.) != 'titleabbrev' ]"/> + </div> +</xsl:template> + +<xsl:template match="formalpara"> + <div class="{name(.)}"> + <xsl:if test="title"> + <xsl:call-template name="node.heading"/> + </xsl:if> + <xsl:apply-templates select="*[name(.) != 'title']"/> + </div> +</xsl:template> + +<xsl:template match="highlights"> + <xsl:call-template name="block"/> +</xsl:template> + +<xsl:template match="informalexample"> + <div class="{name(.)}"> + <xsl:call-template name="anchor"/> + <xsl:apply-templates/> + </div> +</xsl:template> + +<xsl:template match="informalfigure"> + <div class="{name(.)}"> + <xsl:call-template name="anchor"/> + <xsl:apply-templates/> + </div> +</xsl:template> + +<xsl:template match="informaltable"> + <div class="{name(.)}"> + <xsl:call-template name="anchor"/> + <xsl:apply-templates/> + </div> +</xsl:template> + +<xsl:template match="literallayout"> + <xsl:call-template name="block.pre"/> +</xsl:template> + +<xsl:template match="msg"> + <xsl:call-template name="block"/> +</xsl:template> + +<xsl:template match="msgaud | msglevel | msgorig"> + <div class="{name(.)}"> + <xsl:call-template name="anchor"/> + <xsl:call-template name="node.heading"/> + <xsl:apply-templates/> + </div> +</xsl:template> + +<xsl:template match="msgentry"> + <xsl:call-template name="block"/> +</xsl:template> + +<xsl:template match="msgexplan"> + <xsl:call-template name="block"/> +</xsl:template> + +<xsl:template match="msginfo"> + <xsl:call-template name="block"/> +</xsl:template> + +<xsl:template match="para"> + <p> + <xsl:call-template name="anchor"/> + <xsl:if test="@role"> + <xsl:attribute name="class"> + <xsl:value-of select="@role"/> + </xsl:attribute> + </xsl:if> + <xsl:call-template name="anchor"/> + <xsl:apply-templates/> + </p> +</xsl:template> + +<xsl:template match="partintro"> + <xsl:call-template name="block"/> +</xsl:template> + +<xsl:template match="programlisting"> + <xsl:call-template name="block.pre"/> +</xsl:template> + +<xsl:template match="screen"> + <xsl:call-template name="block.pre"/> +</xsl:template> + +<xsl:template match="sidebar"> + <div class="{name(.)}"> + <xsl:call-template name="anchor"/> + <xsl:if test="title or sidebarinfo/title"> + <xsl:call-template name="node.heading"/> + </xsl:if> + <xsl:apply-templates select="*[ + (name(.) != 'sidebarinfo') and + (name(.) != 'title') and + (name(.) != 'titleabbrev') ]"/> + </div> +</xsl:template> + +<xsl:template match="simpara"> + <p> + <xsl:call-template name="anchor"/> + <xsl:apply-templates/> + </p> +</xsl:template> + +<xsl:template match="simplemsgentry"> + <xsl:call-template name="block"/> +</xsl:template> + +<xsl:template match="subtitle"> + <xsl:param name="depth" select="count(ancestor::*[&is-division;]) - 1"/> + <xsl:variable name="element"> + <xsl:choose> + <xsl:when test="$depth < 6"> + <xsl:value-of select="concat('h', $depth + 2)"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="'h7'"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:element name="{$element}"> + <xsl:attribute name="class" select="'subtitle'"/> + <xsl:call-template name="anchor"/> + <xsl:apply-templates/> + </xsl:element> +</xsl:template> + +<xsl:template match="synopsis"> + <xsl:call-template name="block.pre"/> +</xsl:template> + +<xsl:template match="table"> + <div class="{name(.)}"> + <xsl:call-template name="anchor"/> + <div class="heading"> + <i> + <xsl:apply-templates select="." mode="node.header.header.mode"/> + </i> + <xsl:apply-templates select="title/node()"/> + </div> + <xsl:apply-templates select="*[ + name(.) != 'blockinfo' and + name(.) != 'title' and + name(.) != 'titleabbrev' ]"/> + </div> +</xsl:template> + +<xsl:template match="title"> + <xsl:param name="depth" select="count(ancestor::*[&is-division;]) - 1"/> + <xsl:variable name="element"> + <xsl:choose> + <xsl:when test="$depth < 7"> + <xsl:value-of select="concat('h', $depth + 1)"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="'h7'"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:variable name="parent" select="(parent::*[&is-info;]/.. | parent::*)[1]"/> + <xsl:element name="{$element}"> + <xsl:attribute name="class"> + <xsl:value-of select="name($parent)"/> + </xsl:attribute> + <xsl:call-template name="anchor"/> + <xsl:apply-templates select="$parent" mode="node.header.header.mode"/> + <xsl:apply-templates/> + </xsl:element> +</xsl:template> + +<!-- ======================================================================= --> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-callout.xsl b/stylesheets/db2html-callout.xsl new file mode 100644 index 00000000..809876b2 --- /dev/null +++ b/stylesheets/db2html-callout.xsl @@ -0,0 +1,38 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<xsl:template match="programlistingco | screenco"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="area"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="areaset"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="areaspec"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="callout"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="calloutlist"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="co"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="coref"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-chunk.xsl b/stylesheets/db2html-chunk.xsl new file mode 100644 index 00000000..deb5cdb5 --- /dev/null +++ b/stylesheets/db2html-chunk.xsl @@ -0,0 +1,305 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> +<!DOCTYPE xsl:stylesheet [ +<!ENTITY is-division " + (name(.) = 'appendix') or (name(.) = 'article') or + (name(.) = 'book') or (name(.) = 'bibliography') or + (name(.) = 'chapter') or (name(.) = 'colophon') or + (name(.) = 'glossary') or (name(.) = 'index') or + (name(.) = 'part') or (name(.) = 'preface') or + (name(.) = 'reference') or (name(.) = 'refentry') or + (name(.) = 'refsect1') or (name(.) = 'refsect2') or + (name(.) = 'refsect3') or (name(.) = 'refsection') or + (name(.) = 'sect1') or (name(.) = 'sect2') or + (name(.) = 'sect3') or (name(.) = 'sect4') or + (name(.) = 'sect5') or (name(.) = 'section') or + (name(.) = 'set') or (name(.) = 'setindex') or + (name(.) = 'simplesect') "> +<!ENTITY is-info " + (name(.) = 'appendixinfo') or (name(.) = 'articleinfo') or + (name(.) = 'bibliographyinfo') or (name(.) = 'bookinfo') or + (name(.) = 'chapterinfo') or (name(.) = 'glossaryinfo') or + (name(.) = 'indexinfo') or (name(.) = 'partinfo') or + (name(.) = 'prefaceinfo') or (name(.) = 'refentryinfo') or + (name(.) = 'referenceinfo') or (name(.) = 'refsect1info') or + (name(.) = 'refsect2info') or (name(.) = 'refsect3info') or + (name(.) = 'refsectioninfo') or (name(.) = 'sect1info') or + (name(.) = 'sect2info') or (name(.) = 'sect3info') or + (name(.) = 'sect4info') or (name(.) = 'sect5info') or + (name(.) = 'sectioninfo') or (name(.) = 'setinfo') or + (name(.) = 'setindexinfo') "> +]> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:exsl="http://exslt.org/common" + extension-element-prefixes="exsl" + version="1.0"> + +<!-- ======================================================================= --> + +<xsl:template name="chunk"> + <xsl:param name="node" select="."/> + <xsl:param name="info" select="false()"/> + <xsl:param name="divisions" select="false()"/> + <xsl:param name="id" select="$node/@id"/> + + <exsl:document href="{concat($id, $html_extension)}"> + <xsl:call-template name="html"> + <xsl:with-param name="node" select="$node"/> + <xsl:with-param name="leaf" select=" + count($node/ancestor::*[&is-division;]) >= $chunk_depth"/> + </xsl:call-template> + </exsl:document> + + <xsl:if test="$generate_titlepage and $info and ($node = /*)"> + <xsl:apply-templates select="$info" mode="chunk.mode"/> + </xsl:if> + + <xsl:if test="count($node/ancestor::*[&is-division;]) < $chunk_depth"> + <xsl:apply-templates select="$divisions" mode="chunk.mode"/> + </xsl:if> +</xsl:template> + +<!-- ======================================================================= --> + +<xsl:template mode="chunk.mode" match=" + appendixinfo | articleinfo | bibliographyinfo | bookinfo | + chapterinfo | glossaryinfo | indexinfo | partinfo | + prefaceinfo | refentryinfo | referenceinfo | refsect1info | + refsect2info | refsect3info | refsectioninfo | sect1info | + sect2info | sect3info | sect4info | sect5info | + sectioninfo | setinfo | setindexinfo "> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="id" select="'titlepage'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="chunk.mode" match="appendix"> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="info" select="appendixinfo"/> + <xsl:with-param name="divisions" select=" + refentry | sect1 | section | simplesect "/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="chunk.mode" match="article"> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="info" select="articleinfo"/> + <xsl:with-param name="divisions" select=" + refentry | sect1 | section | simplesect "/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="chunk.mode" match="book"> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="info" select="bookinfo"/> + <xsl:with-param name="divisions" select=" + appendix | article | bibliography | chapter | colophon | glossary | + index | part | preface | reference | setindex "/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="chunk.mode" match="bibliography"> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="info" select="bibliographyinfo"/> + <xsl:with-param name="divisions" select="false()"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="chunk.mode" match="chapter"> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="info" select="chapterinfo"/> + <xsl:with-param name="divisions" select=" + refentry | sect1 | section | simplesect "/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="chunk.mode" match="colophon"> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="info" select="false()"/> + <xsl:with-param name="divisions" select="false()"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="chunk.mode" match="glossary"> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="info" select="glossaryinfo"/> + <xsl:with-param name="divisions" select="false()"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="chunk.mode" match="index"> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="info" select="indexinfo"/> + <xsl:with-param name="divisions" select="false()"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="chunk.mode" match="part"> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="info" select="partinfo"/> + <xsl:with-param name="divisions" select=" + appendix | article | bibliography | chapter | glossary | + index | preface | refentry | reference "/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="chunk.mode" match="preface"> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="info" select="prefaceinfo"/> + <xsl:with-param name="divisions" select=" + refentry | sect1 | section | simplesect "/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="chunk.mode" match="reference"> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="info" select="referenceinfo"/> + <xsl:with-param name="divisions" select="refentry"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="chunk.mode" match="refentry"> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="info" select="refentryinfo"/> + <xsl:with-param name="divisions" select="refsect1 | refsection"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="chunk.mode" match="refsect1"> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="info" select="refsect1info"/> + <xsl:with-param name="divisions" select="refsect2"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="chunk.mode" match="refsect2"> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="info" select="refsect2info"/> + <xsl:with-param name="divisions" select="refsect3"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="chunk.mode" match="refsect3"> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="info" select="refsect3info"/> + <xsl:with-param name="divisions" select="false()"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="chunk.mode" match="refsection"> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="info" select="refsectioninfo"/> + <xsl:with-param name="divisions" select="refsection"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="chunk.mode" match="sect1"> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="info" select="sect1info"/> + <xsl:with-param name="divisions" select="refentry | sect2 | simplesect"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="chunk.mode" match="sect2"> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="info" select="sect2info"/> + <xsl:with-param name="divisions" select="refentry | sect3 | simplesect"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="chunk.mode" match="sect3"> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="info" select="sect3info"/> + <xsl:with-param name="divisions" select="refentry | sect4 | simplesect"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="chunk.mode" match="sect4"> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="info" select="sect4info"/> + <xsl:with-param name="divisions" select="refentry | sect5 | simplesect"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="chunk.mode" match="sect5"> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="info" select="sect5info"/> + <xsl:with-param name="divisions" select="refentry | simplesect"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="chunk.mode" match="section"> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="info" select="sectioninfo"/> + <xsl:with-param name="divisions" select="refentry | section | simplesect"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="chunk.mode" match="set"> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="info" select="setinfo"/> + <xsl:with-param name="divisions" select="book | setindex"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="chunk.mode" match="setindex"> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="info" select="setindexinfo"/> + <xsl:with-param name="divisions" select="false()"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="chunk.mode" match="simplesect"> + <xsl:call-template name="chunk"> + <xsl:with-param name="node" select="."/> + <xsl:with-param name="info" select="false()"/> + <xsl:with-param name="divisions" select="false()"/> + </xsl:call-template> +</xsl:template> + +<!-- ======================================================================= --> + +<xsl:template mode="chunk.id.mode" match="*"> + <xsl:choose> + <xsl:when test="self::preface[@role = 'bookintro']"> + <xsl:apply-templates select=".." mode="chunk.id.mode"/> + </xsl:when> + <xsl:when test=" + (&is-division;) and + (count(ancestor::*[&is-division;]) <= $chunk_depth)"> + <xsl:value-of select="@id"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select=".." mode="chunk.id.mode"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<!-- ======================================================================= --> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-common.xsl b/stylesheets/db2html-common.xsl new file mode 100644 index 00000000..e96fb745 --- /dev/null +++ b/stylesheets/db2html-common.xsl @@ -0,0 +1,92 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<xsl:template name="person.name"> + <xsl:param name="node" select="."/> + <xsl:choose> + <xsl:when test="$node/personname"> + <xsl:call-template name="person.name"> + <xsl:with-param name="node" select="$node/personname"/> + </xsl:call-template> + </xsl:when> + <xsl:when test="name($node)='corpauthor'"> + <xsl:apply-templates select="$node"/> + </xsl:when> + <xsl:otherwise> + <xsl:if test="$node/honorific"> + <xsl:value-of select="$node/honorific[1]"/> + <xsl:text>.</xsl:text> + </xsl:if> + <xsl:choose> + <xsl:when test="$node/@role = 'family-given'"> + <xsl:if test="$node/surname"> + <xsl:if test="$node/honorific"> + <xsl:text> </xsl:text> + </xsl:if> + <xsl:value-of select="$node/surname[1]"/> + </xsl:if> + <xsl:if test="$node/othername"> + <xsl:if test="$node/honorific or $node/surname"> + <xsl:text> </xsl:text> + </xsl:if> + <xsl:value-of select="$node/othername[1]"/> + </xsl:if> + <xsl:if test="$node/firstname"> + <xsl:if test="$node/honorific or $node/surname or $node/othername"> + <xsl:text> </xsl:text> + </xsl:if> + <xsl:value-of select="$node/firstname[1]"/> + </xsl:if> + </xsl:when> + <xsl:otherwise> + <xsl:if test="$node/firstname"> + <xsl:if test="$node/honorific"> + <xsl:text> </xsl:text> + </xsl:if> + <xsl:value-of select="$node/firstname[1]"/> + </xsl:if> + <xsl:if test="$node/othername"> + <xsl:if test="$node/honorific or $node/firstname"> + <xsl:text> </xsl:text> + </xsl:if> + <xsl:value-of select="$node/othername[1]"/> + </xsl:if> + <xsl:if test="$node/surname"> + <xsl:if test="$node/honorific or $node/firstname or $node/othername"> + <xsl:text> </xsl:text> + </xsl:if> + <xsl:value-of select="$node/surname[1]"/> + </xsl:if> + </xsl:otherwise> + </xsl:choose> + <xsl:if test="$node/lineage"> + <xsl:text>, </xsl:text> + <xsl:value-of select="$node/lineage"/> + </xsl:if> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template name="copy-string"> + <xsl:param name="string"/> + <xsl:param name="count" select="0"/> + <xsl:param name="result"/> + <xsl:choose> + <xsl:when test="$count > 0"> + <xsl:call-template name="copy-string"> + <xsl:with-param name="string" select="$string"/> + <xsl:with-param name="count" select="$count - 1"/> + <xsl:with-param name="result"> + <xsl:value-of select="$result"/> + <xsl:value-of select="$string"/> + </xsl:with-param> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$result"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-division.xsl b/stylesheets/db2html-division.xsl new file mode 100644 index 00000000..44fd6de3 --- /dev/null +++ b/stylesheets/db2html-division.xsl @@ -0,0 +1,288 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> +<!DOCTYPE xsl:stylesheet [ +<!ENTITY divcomponent " +abstract | address | anchor | authorblurb | +beginpage | blockquote | bridgehead | calloutlist | +caution | classsynopsis | cmdsynopsis | constraintdef | +constructorsynopsis | desctructorsynopsis | epigraph | equation | +example | fieldsynopsis | figure | formalpara | +funcsynopsis | glosslist | graphic | graphicco | +highlights | important | indexterm | informalequation | +informalexample | informalfigure | informaltable | itemizedlist | +literallayout | mediaobject | mediaobjectco | methodsynopsis | +msgset | note | orderedlist | para | +procedure | productionset | programlisting | programlistingco | +qandaset | remark | screen | screenco | +screenshot | segmentedlist | sidebar | simpara | +simplelist | synopsis | table | tip | +variablelist | warning "> +]> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<!-- ======================================================================= --> + +<xsl:template match=" + appendix | article | book | bibliography | chapter | + colophon | glossary | index | part | preface | + reference | refsect1 | refsect2 | refsect3 | refsection | + sect1 | sect2 | sect3 | sect4 | sect5 | + section | set | setindex | simplesect "> + <xsl:param name="depth" select="0"/> + <xsl:param name="leaf" select="true()"/> + <div class="{name(.)}"> + <xsl:call-template name="anchor"/> + <xsl:apply-templates select="." mode="content.mode"> + <xsl:with-param name="depth" select="$depth"/> + </xsl:apply-templates> + <xsl:choose> + <xsl:when test="$leaf"> + <xsl:apply-templates select="." mode="division.mode"> + <xsl:with-param name="depth" select="$depth"/> + </xsl:apply-templates> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="toc"/> + </xsl:otherwise> + </xsl:choose> + </div> +</xsl:template> + +<xsl:template match="refentry"> + <xsl:param name="depth" select="0"/> + <xsl:param name="leaf" select="true()"/> + <xsl:if test="preceding-sibling::refentry and $depth > 0"> + <hr class="refentry.seperator"/> + </xsl:if> + <div class="{name(.)}"> + <xsl:apply-templates select="." mode="content.mode"> + <xsl:with-param name="depth" select="$depth"/> + </xsl:apply-templates> + <xsl:choose> + <xsl:when test="$leaf"> + <xsl:apply-templates select="." mode="division.mode"> + <xsl:with-param name="depth" select="$depth"/> + </xsl:apply-templates> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="toc"/> + </xsl:otherwise> + </xsl:choose> + </div> +</xsl:template> + +<!-- ======================================================================= --> + +<xsl:template mode="content.mode" match=" + appendix | article | chapter | colophon | preface | refsect1 | + refsect2 | refsect3 | refsection | sect1 | sect2 | sect3 | + sect4 | sect5 | section | simplesect "> + <xsl:param name="depth" select="0"/> + <xsl:apply-templates select="title | subtitle"> + <xsl:with-param name="depth" select="$depth"/> + </xsl:apply-templates> + <xsl:apply-templates select="&divcomponent;"/> +</xsl:template> + +<xsl:template mode="content.mode" match="book"> + <xsl:param name="depth" select="0"/> + <xsl:apply-templates select="title | subtitle"> + <xsl:with-param name="depth" select="$depth"/> + </xsl:apply-templates> + <xsl:apply-templates select="dedication"/> + <xsl:apply-templates select="preface[@role = 'bookintro']"/> +</xsl:template> + +<xsl:template mode="content.mode" match="bibliography"> + <xsl:param name="depth" select="0"/> + <xsl:apply-templates select="title | subtitle"> + <xsl:with-param name="depth" select="$depth"/> + </xsl:apply-templates> + <xsl:apply-templates select=" + &divcomponent; | bibliodiv | biblioentry | bibliomixed"/> +</xsl:template> + +<xsl:template mode="content.mode" match="glossary"> + <xsl:param name="depth" select="0"/> + <xsl:apply-templates select="title | subtitle"> + <xsl:with-param name="depth" select="$depth"/> + </xsl:apply-templates> + <xsl:apply-templates select="&divcomponent; | glossdiv | glossentry"/> +</xsl:template> + +<xsl:template mode="content.mode" match="index | setindex"> + <xsl:param name="depth" select="0"/> + <xsl:apply-templates select="title | subtitle"> + <xsl:with-param name="depth" select="$depth"/> + </xsl:apply-templates> + <xsl:apply-templates select=" + &divcomponent; | indexdiv | indexentry"/> +</xsl:template> + +<xsl:template mode="content.mode" match="part | reference"> + <xsl:param name="depth" select="0"/> + <xsl:apply-templates select="title | subtitle"> + <xsl:with-param name="depth" select="$depth"/> + </xsl:apply-templates> + <xsl:apply-templates select="partintro"/> +</xsl:template> + +<xsl:template mode="content.mode" match="refentry"> + <xsl:param name="depth" select="0"/> + <xsl:choose> + <xsl:when test="refmeta/refentrytitle"> + <xsl:apply-templates select="refmeta/refentrytitle"> + <xsl:with-param name="depth" select="$depth"/> + </xsl:apply-templates> + </xsl:when> + <xsl:when test="refentryinfo/title"> + <xsl:apply-templates select="refentryinfo/title"> + <xsl:with-param name="depth" select="$depth"/> + </xsl:apply-templates> + </xsl:when> + </xsl:choose> + <xsl:apply-templates + select="*[name(.) != 'refsect1' and name(.) != 'refsection']"/> +</xsl:template> + +<xsl:template mode="content.mode" match="set"> + <xsl:param name="depth" select="0"/> + <xsl:apply-templates select="title | subtitle"> + <xsl:with-param name="depth" select="$depth"/> + </xsl:apply-templates> +</xsl:template> + +<!-- ======================================================================= --> + +<xsl:template mode="division.mode" match=" + appendix | article | chapter | preface"> + <xsl:param name="depth" select="0"/> + <xsl:apply-templates select="refentry | sect1 | section | simplesect"> + <xsl:with-param name="depth" select="$depth + 1"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template mode="division.mode" match="book"> + <xsl:param name="depth" select="0"/> + <xsl:apply-templates select=" + appendix | article | bibliography | chapter | colophon | + glossary | index | part | reference | setindex | + preface[@role != 'bookintro'] "> + <xsl:with-param name="depth" select="$depth + 1"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template mode="division.mode" match="bibliography"/> +<xsl:template mode="division.mode" match="colophon"/> + +<xsl:template mode="division.mode" match="glossary"> + <xsl:param name="depth" select="0"/> + <xsl:apply-templates select="bibliography"> + <xsl:with-param name="depth" select="$depth + 1"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template mode="division.mode" match="index"/> + +<xsl:template mode="division.mode" match="part"> + <xsl:param name="depth" select="0"/> + <xsl:apply-templates select=" + appendix | article | bibliography | chapter | glossary | + index | preface | refentry | reference "> + <xsl:with-param name="depth" select="$depth + 1"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template mode="division.mode" match="refentry"> + <xsl:param name="depth" select="0"/> + <xsl:apply-templates select="refsect1 | refsection"> + <xsl:with-param name="depth" select="$depth + 1"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template mode="division.mode" match="reference"> + <xsl:param name="depth" select="0"/> + <xsl:apply-templates select="refentry"> + <xsl:with-param name="depth" select="$depth + 1"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template mode="division.mode" match="refsect1"> + <xsl:param name="depth" select="0"/> + <xsl:apply-templates select="refsect2"> + <xsl:with-param name="depth" select="$depth + 1"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template mode="division.mode" match="refsect2"> + <xsl:param name="depth" select="0"/> + <xsl:apply-templates select="refsect3"> + <xsl:with-param name="depth" select="$depth + 1"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template mode="division.mode" match="refsect3"/> + +<xsl:template mode="division.mode" match="refsection"> + <xsl:param name="depth" select="0"/> + <xsl:apply-templates select="refsection"> + <xsl:with-param name="depth" select="$depth + 1"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template mode="division.mode" match="sect1"> + <xsl:param name="depth" select="0"/> + <xsl:apply-templates select="refentry | sect2 | simplesect"> + <xsl:with-param name="depth" select="$depth + 1"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template mode="division.mode" match="sect2"> + <xsl:param name="depth" select="0"/> + <xsl:apply-templates select="refentry | sect3 | simplesect"> + <xsl:with-param name="depth" select="$depth + 1"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template mode="division.mode" match="sect3"> + <xsl:param name="depth" select="0"/> + <xsl:apply-templates select="refentry | sect4 | simplesect"> + <xsl:with-param name="depth" select="$depth + 1"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template mode="division.mode" match="sect4"> + <xsl:param name="depth" select="0"/> + <xsl:apply-templates select="refentry | sect5 | simplesect"> + <xsl:with-param name="depth" select="$depth + 1"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template mode="division.mode" match="sect5"> + <xsl:param name="depth" select="0"/> + <xsl:apply-templates select="refentry | simplesect"> + <xsl:with-param name="depth" select="$depth + 1"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template mode="division.mode" match="section"> + <xsl:param name="depth" select="0"/> + <xsl:apply-templates select="refentry | section | simplesect"> + <xsl:with-param name="depth" select="$depth + 1"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template mode="division.mode" match="set"> + <xsl:param name="depth" select="0"/> + <xsl:apply-templates select="book | setindex"> + <xsl:with-param name="depth" select="$depth + 1"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template mode="division.mode" match="setindex"/> +<xsl:template mode="division.mode" match="simplesect"/> + +<!-- ======================================================================= --> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-ebnf.xsl b/stylesheets/db2html-ebnf.xsl new file mode 100644 index 00000000..6af012cb --- /dev/null +++ b/stylesheets/db2html-ebnf.xsl @@ -0,0 +1,38 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<xsl:template match="constraint"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="constraintdef"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="lhs"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="nonterminal"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="production"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="productionrecap"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="productionset"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="rhs"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-footnote.xsl b/stylesheets/db2html-footnote.xsl new file mode 100644 index 00000000..c5514a83 --- /dev/null +++ b/stylesheets/db2html-footnote.xsl @@ -0,0 +1,14 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<xsl:template match="footnote"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="footnoteref"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-formal.xsl b/stylesheets/db2html-formal.xsl new file mode 100644 index 00000000..70749bbc --- /dev/null +++ b/stylesheets/db2html-formal.xsl @@ -0,0 +1,13 @@ +<?xml version='1.0'?><!-- -*- Mode: xml -*- --> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<xsl:template name="formal.object"> + <div class="{name(.)}"> + <xsl:call-template name="formal.object.heading"/> + <xsl:apply-templates mode="content.mode"/> + </div> +</xsl:template> + + +</xsl:stylesheet> diff --git a/stylesheets/db2html-glossary.xsl b/stylesheets/db2html-glossary.xsl new file mode 100644 index 00000000..807e9344 --- /dev/null +++ b/stylesheets/db2html-glossary.xsl @@ -0,0 +1,95 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<xsl:template match="glossdef"> + <dd> + <xsl:apply-templates select="*[name(.) != 'glossseealso']"/> + <xsl:if test="glossseealso"> + <p> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'See Also'"/> + </xsl:call-template> + <xsl:text> </xsl:text> + <xsl:for-each select="glossseealso"> + <xsl:apply-templates select="."/> + <xsl:choose> + <xsl:when test="position() = last()"> + <xsl:text>.</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>, </xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:for-each> + </p> + </xsl:if> + </dd> +</xsl:template> + +<xsl:template match="glossdiv"> + <div class="{name(.)}"> + <xsl:apply-templates select="(glossentry[1]/preceding-sibling::*)"/> + <dl> + <xsl:apply-templates select="glossentry"/> + </dl> + </div> +</xsl:template> + +<xsl:template match="glossentry"> + <xsl:call-template name="block"/> +</xsl:template> + +<xsl:template match="glosslist"> + <div class="{name(.)}"> + <xsl:call-template name="anchor"/> + <dl> + <xsl:apply-templates/> + </dl> + </div> +</xsl:template> + +<xsl:template match="glosssee"> + <dd> + <p> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'See'"/> + </xsl:call-template> + <xsl:choose> + <xsl:when test="@otherterm"> + <a href="#{@otherterm}"> + <xsl:call-template name="xref.content"> + <xsl:with-param name="linkend" select="@otherterm"/> + </xsl:call-template> + </a> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates/> + </xsl:otherwise> + </xsl:choose> + </p> + </dd> +</xsl:template> + +<xsl:template match="glossseealso"> + <xsl:choose> + <xsl:when test="@otherterm"> + <a href="#{@otherterm}"> + <xsl:call-template name="xref.content"> + <xsl:with-param name="linkend" select="@otherterm"/> + </xsl:call-template> + </a> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="glossterm"> + <dt> + <xsl:apply-templates/> + </dt> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-html.xsl b/stylesheets/db2html-html.xsl new file mode 100644 index 00000000..dae6f365 --- /dev/null +++ b/stylesheets/db2html-html.xsl @@ -0,0 +1,203 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<xsl:template name="html"> + <xsl:param name="node" select="."/> + <xsl:param name="leaf" select="true()"/> + + <html> + <head> + <title> + <xsl:apply-templates select="$node" mode="title.text.mode"/> + </title> + <style type="text/css"> + <xsl:call-template name="html.css"> + <xsl:with-param name="node" select="$node"/> + </xsl:call-template> + </style> + <xsl:call-template name="html.head"> + <xsl:with-param name="node" select="$node"/> + </xsl:call-template> + </head> + <body> + <xsl:call-template name="html.body.attributes"> + <xsl:with-param name="node" select="$node"/> + </xsl:call-template> + <xsl:call-template name="html.body.top"> + <xsl:with-param name="node" select="$node"/> + </xsl:call-template> + <xsl:call-template name="html.navbar.top"> + <xsl:with-param name="node" select="$node"/> + </xsl:call-template> + + <xsl:apply-templates select="$node"> + <xsl:with-param name="depth" select="0"/> + <xsl:with-param name="leaf" select="$leaf"/> + </xsl:apply-templates> + + <xsl:call-template name="html.navbar.bottom"> + <xsl:with-param name="node" select="$node"/> + </xsl:call-template> + <xsl:call-template name="html.body.bottom"> + <xsl:with-param name="node" select="$node"/> + </xsl:call-template> + </body> + </html> +</xsl:template> + +<xsl:template name="html.css"><xsl:text> +body { + margin-right: 1em; +} + +h1 { + font-size: 1.6em; + font-weight: bold; + margin-bottom: 0em; + padding-bottom: 0em; +} +h1 + * { + margin-top: 0.2em; + padding-top: 0em; +} +h2 { + font-size: 1.4em; + font-weight: bold; + margin-top: 1.2em; + margin-bottom: 0em; + padding-bottom: 0em; +} +h2 + * { + margin-top: 0.2em; + padding-top: 0em; +} +h3 { + font-size: 1.2em; + font-weight: bold; + margin-bottom: 0em; + padding-bottom: 0em; +} +h3 + * { + margin-top: 0.2em; + padding-top: 0em; +} +h4 { + margin-bottom: 0em; + padding-bottom: 0em; +} +h4 + * { + margin-top: 0.2em; + padding-top: 0em; +} + +div[class="heading"] { + margin-bottom: 0.5em; +} + +div[class="admonition"] { + border-top: outset 1px; + border-bottom: outset 1px; + margin-left: 2em; + margin-right: 2em; + margin-bottom: 1em; +} + +div[class="informalexample"] { + margin-left: 2em; + margin-right: 1em; + margin-bottom: 1em; +} +div[class="informalfigure"] { + margin-left: 2em; + margin-right: 1em; + margin-bottom: 1em; +} +div[class="informaltable"] { + margin-left: 2em; + margin-right: 1em; + margin-bottom: 1em; +} +div[class="example"] { + margin-left: 2em; + margin-right: 1em; + margin-bottom: 1em; +} +div[class="figure"] { + margin-left: 2em; + margin-right: 1em; + margin-bottom: 1em; +} +div[class="table"] { + margin-left: 2em; + margin-right: 1em; + margin-bottom: 1em; +} + +div[class="sidebar"] { + border: outset 1px; + margin-left: 2em; + margin-right: 2em; +} + +ul { + list-style-image: url("li.png") +} + +<!-- +table { + border: outset 1px; +} +--> +thead th { + border-bottom: solid 1px; +} +tfoot th { + border-top: solid 1px; +} +tr[class="even"] { + background-color: #EEEEEE; +} +tr > * { + text-align: left; + padding: 0.2em 0.5em 0.2em 0.5em; +} +td { + vertical-align: top; +} +th { + vertical-align: bottom; +} + +div[class="attribution"] { + text-align: right; +} +</xsl:text></xsl:template> + +<xsl:template name="html.head"> + <xsl:param name="node" select="."/> +</xsl:template> + +<xsl:template name="html.body.attributes"> + <xsl:param name="node" select="."/> +</xsl:template> + +<xsl:template name="html.body.top"> + <xsl:param name="node" select="."/> +</xsl:template> + +<xsl:template name="html.body.bottom"> + <xsl:param name="node" select="."/> +</xsl:template> + +<xsl:template name="html.navbar.top"> + <xsl:param name="node" select="."/> +<p><i><xsl:apply-templates select="$node" mode="navbar.prev.link.mode"/></i></p> +<p><i><xsl:apply-templates select="$node" mode="navbar.next.link.mode"/></i></p> +</xsl:template> + +<xsl:template name="html.navbar.bottom"> + <xsl:param name="node" select="."/> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-index.xsl b/stylesheets/db2html-index.xsl new file mode 100644 index 00000000..e3a9d423 --- /dev/null +++ b/stylesheets/db2html-index.xsl @@ -0,0 +1,46 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<xsl:template match="indexdiv"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="indexentry"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="indexterm"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="primaryie"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="secondaryie"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="see"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="seealso"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="seealsoie"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="seeie"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="tertiaryie"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-inline.xsl b/stylesheets/db2html-inline.xsl new file mode 100644 index 00000000..8408eafa --- /dev/null +++ b/stylesheets/db2html-inline.xsl @@ -0,0 +1,653 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<!-- ======================================================================= --> + +<xsl:template name="inline"> + <span class="{name(.)}"> + <xsl:call-template name="anchor"/> + <xsl:apply-templates/> + </span> +</xsl:template> + +<xsl:template name="inline.bold"> + <span class="{name(.)}"> + <xsl:call-template name="anchor"/> + <b><xsl:apply-templates/></b> + </span> +</xsl:template> + +<xsl:template name="inline.bold.italic"> + <span class="{name(.)}"> + <xsl:call-template name="anchor"/> + <b><i><xsl:apply-templates/></i></b> + </span> +</xsl:template> + +<xsl:template name="inline.bold.mono"> + <span class="{name(.)}"> + <xsl:call-template name="anchor"/> + <b><tt><xsl:apply-templates/></tt></b> + </span> +</xsl:template> + +<xsl:template name="inline.italic"> + <span class="{name(.)}"> + <xsl:call-template name="anchor"/> + <i><xsl:apply-templates/></i> + </span> +</xsl:template> + +<xsl:template name="inline.italic.mono"> + <span class="{name(.)}"> + <xsl:call-template name="anchor"/> + <i><tt><xsl:apply-templates/></tt></i> + </span> +</xsl:template> + +<xsl:template name="inline.mono"> + <span class="{name(.)}"> + <xsl:call-template name="anchor"/> + <tt><xsl:apply-templates/></tt> + </span> +</xsl:template> + +<!-- ======================================================================= --> + +<xsl:template match="abbrev"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="accel"> + <u><xsl:call-template name="inline"/></u> +</xsl:template> + +<xsl:template match="acronym"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="action"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="address"> + <span class="{name(.)}" style="white-space: pre;"> + <xsl:call-template name="anchor"/> + <xsl:apply-templates/> + </span> +</xsl:template> + +<xsl:template match="application"> + <xsl:call-template name="inline.italic"/> +</xsl:template> + +<xsl:template match="attribution"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="author"> + <span class="{name(.)}"><xsl:call-template name="person.name"/></span> +</xsl:template> + +<xsl:template match="authorinitials"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="city"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="citation"> + <xsl:text>[</xsl:text> + <xsl:call-template name="inline"/> + <xsl:text>]</xsl:text> +</xsl:template> + +<xsl:template match="citerefentry"> + <a> + <xsl:attribute name="href"> + <xsl:value-of select="concat('man:', refentrytitle)"/> + </xsl:attribute> + <xsl:apply-templates select="refentrytitle/node()"/> + <xsl:if test="manvolnum"> + <xsl:text>(</xsl:text> + <xsl:apply-templates select="manvolnum/node()"/> + <xsl:text>)</xsl:text> + </xsl:if> + </a> +</xsl:template> + +<xsl:template match="citetitle"> + <xsl:choose> + <xsl:when test="@pubwork = 'article'"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'“'"/> + </xsl:call-template> + <xsl:call-template name="inline"/> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'”'"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="inline.italic"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="classname"> + <xsl:call-template name="inline.mono"/> +</xsl:template> + +<xsl:template match="command"> + <xsl:call-template name="inline.mono"/> +</xsl:template> + +<xsl:template match="computeroutput"> + <xsl:call-template name="inline.mono"/> +</xsl:template> + +<xsl:template match="constant"> + <xsl:call-template name="inline.mono"/> +</xsl:template> + +<xsl:template match="corpauthor"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="country"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="database"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="date"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="editor"> + <span class="{name(.)}"><xsl:call-template name="person.name"/></span> +</xsl:template> + +<xsl:template match="email"> + <span class="{name(.)}"> + <xsl:call-template name="anchor"/> + <tt> + <xsl:text><</xsl:text> + <a> + <xsl:attribute name="href"> + <xsl:text>mailto:</xsl:text> + <xsl:value-of select="."/> + </xsl:attribute> + <xsl:apply-templates/> + </a> + <xsl:text>></xsl:text> + </tt> + </span> +</xsl:template> + +<xsl:template match="emphasis"> + <xsl:choose> + <xsl:when test="(@role = 'bold') or (@role = 'strong')"> + <xsl:call-template name="inline.bold"/> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="inline.italic"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="envar"> + <xsl:call-template name="inline.mono"/> +</xsl:template> + +<xsl:template match="errorcode"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="errorname"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="errortext"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="errortype"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="exceptionname"> + <xsl:call-template name="inline.mono"/> +</xsl:template> + +<xsl:template match="fax"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="filename"> + <xsl:call-template name="inline.mono"/> +</xsl:template> + +<xsl:template match="firstterm"> + <xsl:call-template name="inline.italic"/> +</xsl:template> + +<xsl:template match="foreignphrase"> + <xsl:call-template name="inline.italic"/> +</xsl:template> + +<xsl:template match="function"> + <xsl:choose> + <xsl:when test="function or parameter or replaceable"> + <span class="{name(.)}"> + <xsl:call-template name="anchor"/> + <tt><xsl:apply-templates select="(* | text())[1]"/></tt> + <xsl:for-each select="(* | text())[position() != 1]"> + <xsl:apply-templates select="."/> + <xsl:if test=" + (self::parameter or self::replaceable) and + (following-sibling::*)"> + <xsl:text>, </xsl:text> + </xsl:if> + </xsl:for-each> + </span> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="inline.mono"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="guibutton"> + <xsl:call-template name="inline.bold"/> +</xsl:template> + +<xsl:template match="guiicon"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="guilabel"> + <xsl:call-template name="inline.bold"/> +</xsl:template> + +<xsl:template match="guimenu"> + <xsl:call-template name="inline.bold"/> +</xsl:template> + +<xsl:template match="guimenuitem"> + <xsl:call-template name="inline.bold"/> +</xsl:template> + +<xsl:template match="guisubmenu"> + <xsl:call-template name="inline.bold"/> +</xsl:template> + +<xsl:template match="hardware"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="interfacename"> + <xsl:call-template name="inline.mono"/> +</xsl:template> + +<xsl:template match="jobtitle"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="keycap"> + <xsl:call-template name="inline.bold"/> +</xsl:template> + +<xsl:template match="keycode"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="keycombo"> + <xsl:variable name="joinchar"> + <xsl:choose> + <xsl:when test="@action = 'seq'"><xsl:text> </xsl:text></xsl:when> + <xsl:when test="@action = 'simul'">+</xsl:when> + <xsl:when test="@action = 'press'">-</xsl:when> + <xsl:when test="@action = 'click'">-</xsl:when> + <xsl:when test="@action = 'double-click'">-</xsl:when> + <xsl:when test="@action = 'other'"></xsl:when> + <xsl:otherwise>+</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:for-each select="*"> + <xsl:if test="position()>1"><xsl:value-of select="$joinchar"/></xsl:if> + <xsl:apply-templates select="."/> + </xsl:for-each> +</xsl:template> + +<xsl:template match="keysym"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="lineannotation"> + <xsl:call-template name="inline.italic"/> +</xsl:template> + +<xsl:template match="literal"> + <xsl:call-template name="inline.mono"/> +</xsl:template> + +<xsl:template match="markup"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="medialabel"> + <xsl:call-template name="inline.italic"/> +</xsl:template> + +<xsl:template match="menuchoice"> + <span class="{name(.)}"> + <xsl:for-each select="*[name(.) != 'shortcut']"> + <xsl:if test="position() > 1"> + <xsl:text>➔</xsl:text> + </xsl:if> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:if test="shortcut"> + <xsl:text> (</xsl:text> + <xsl:apply-templates select="shortcut"/> + <xsl:text>)</xsl:text> + </xsl:if> + </span> +</xsl:template> + +<xsl:template match="methodname"> + <xsl:call-template name="inline.mono"/> +</xsl:template> + +<xsl:template match="mousebutton"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="msgmain"> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="msgrel"> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="msgrel/title"> + <b><xsl:apply-templates/></b> +</xsl:template> + +<xsl:template match="msgset"> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="msgsub"> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="msgtext"> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="option"> + <xsl:call-template name="inline.mono"/> +</xsl:template> + +<xsl:template match="optional"> + <xsl:text>[</xsl:text> + <xsl:call-template name="inline"/> + <xsl:text>]</xsl:text> +</xsl:template> + +<xsl:template match="orgdiv"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="orgname"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="otheraddr"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="othercredit"> + <span class="{name(.)}"><xsl:call-template name="person.name"/></span> +</xsl:template> + +<xsl:template match="parameter"> + <xsl:call-template name="inline.italic.mono"/> +</xsl:template> + +<xsl:template match="personname"> + <xsl:call-template name="person.name"/> +</xsl:template> + +<xsl:template match="phone"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="phrase"> + <span> + <xsl:call-template name="anchor"/> + <xsl:if test="@role"> + <xsl:attribute name="class"> + <xsl:value-of select="@role"/> + </xsl:attribute> + </xsl:if> + <xsl:apply-templates/> + </span> +</xsl:template> + +<xsl:template match="pob"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="postcode"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="productname"> + <xsl:call-template name="inline"/> + <xsl:if test="@class"> + <xsl:call-template name="dingbat"> + <xsl:with-param name="dingbat" select="@class"/> + </xsl:call-template> + </xsl:if> +</xsl:template> + +<xsl:template match="productnumber"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="prompt"> + <xsl:call-template name="inline.mono"/> +</xsl:template> + +<xsl:template match="property"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="quote"> + <xsl:choose> + <xsl:when test="(count(ancestor::quote) mod 2) = 0"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'“'"/> + </xsl:call-template> + <xsl:apply-templates/> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'”'"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'‘'"/> + </xsl:call-template> + <xsl:apply-templates/> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'’'"/> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="replaceable"> + <xsl:call-template name="inline.italic"/> +</xsl:template> + +<xsl:template match="returnvalue"> + <xsl:call-template name="inline.mono"/> +</xsl:template> + +<xsl:template match="sgmltag"> + <xsl:variable name="class"> + <xsl:choose> + <xsl:when test="@class"> + <xsl:value-of select="@class"/> + </xsl:when> + <xsl:otherwise>element</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <tt class="sgmltag-{$class}"> + <xsl:choose> + <xsl:when test="$class = 'attribute'"> + <xsl:apply-templates/> + </xsl:when> + <xsl:when test="$class = 'attvalue'"> + <xsl:apply-templates/> + </xsl:when> + <xsl:when test="$class = 'element'"> + <xsl:apply-templates/> + </xsl:when> + <xsl:when test="$class = 'emptytag'"> + <xsl:text><</xsl:text> + <xsl:apply-templates/> + <xsl:text>/></xsl:text> + </xsl:when> + <xsl:when test="$class = 'endtag'"> + <xsl:text></</xsl:text> + <xsl:apply-templates/> + <xsl:text>></xsl:text> + </xsl:when> + <xsl:when test="$class = 'genentity'"> + <xsl:text>&</xsl:text> + <xsl:apply-templates/> + <xsl:text>;</xsl:text> + </xsl:when> + <xsl:when test="$class = 'numcharref'"> + <xsl:text>&#</xsl:text> + <xsl:apply-templates/> + <xsl:text>;</xsl:text> + </xsl:when> + <xsl:when test="$class = 'paramentity'"> + <xsl:text>%</xsl:text> + <xsl:apply-templates/> + <xsl:text>;</xsl:text> + </xsl:when> + <xsl:when test="$class = 'pi'"> + <xsl:text><?</xsl:text> + <xsl:apply-templates/> + <xsl:text>></xsl:text> + </xsl:when> + <xsl:when test="$class = 'sgmlcomment'"> + <xsl:text><!--</xsl:text> + <xsl:apply-templates/> + <xsl:text>--></xsl:text> + </xsl:when> + <xsl:when test="$class = 'starttag'"> + <xsl:text><</xsl:text> + <xsl:apply-templates/> + <xsl:text>></xsl:text> + </xsl:when> + <xsl:when test="$class = 'xmlpi'"> + <xsl:text><?</xsl:text> + <xsl:apply-templates/> + <xsl:text>?></xsl:text> + </xsl:when> + </xsl:choose> + </tt> +</xsl:template> + +<xsl:template match="shortcut"> + <xsl:call-template name="inline.bold"/> +</xsl:template> + +<xsl:template match="state"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="street"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="structfield"> + <xsl:call-template name="inline.italic.mono"/> +</xsl:template> + +<xsl:template match="structname"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="subscript"> + <sub> + <xsl:call-template name="anchor"/> + <xsl:apply-templates/> + </sub> +</xsl:template> + +<xsl:template match="superscript"> + <sup> + <xsl:call-template name="anchor"/> + <xsl:apply-templates/> + </sup> +</xsl:template> + +<xsl:template match="symbol"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="systemitem"> + <xsl:call-template name="inline.mono"/> +</xsl:template> + +<xsl:template match="token"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="trademark"> + <xsl:variable name="class"> + <xsl:choose> + <xsl:when test="@class"> + <xsl:value-of select="@class"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="'trade'"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:call-template name="dingbat"> + <xsl:with-param name="dingbat" select="$class"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="type"> + <xsl:call-template name="inline"/> +</xsl:template> + +<xsl:template match="userinput"> + <xsl:call-template name="inline.bold.mono"/> +</xsl:template> + +<xsl:template match="varname"> + <xsl:call-template name="inline.mono"/> +</xsl:template> + +<xsl:template match="wordasword"> + <xsl:call-template name="inline.italic"/> +</xsl:template> + +<!-- ======================================================================= --> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-list.xsl b/stylesheets/db2html-list.xsl new file mode 100644 index 00000000..f6208e23 --- /dev/null +++ b/stylesheets/db2html-list.xsl @@ -0,0 +1,283 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> +<!DOCTYPE xsl:stylesheet [ +<!ENTITY listcomponent " +abstract | address | anchor | authorblurb | +beginpage | blockquote | bridgehead | caution | +classsynopsis | cmdsynopsis | constructorsynopsis | desctructorsynopsis | +epigraph | fieldsynopsis | formalpara | funcsynopsis | +graphic | graphicco | highlights | important | +indexterm | informalequation | informalexample | informalfigure | +informaltable | literallayout | mediaobject | mediaobjectco | +methodsynopsis | note | para | programlisting | +programlistingco | remark | screen | screenco | +screenshot | simpara | synopsis | tip | +warning "> +]> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<!-- == itemizedlist ======================================================= --> + +<xsl:template match="itemizedlist"> + <div class="{name(.)}"> + <xsl:call-template name="anchor"/> + <xsl:if test="title"> + <xsl:call-template name="node.heading"/> + </xsl:if> + <xsl:apply-templates select="&listcomponent;"/> + <ul> + <xsl:if test="@mark"> + <xsl:attribute name="style"> + <xsl:text>list-style-type: </xsl:text> + <xsl:choose> + <xsl:when test="@mark = 'bullet'">disc</xsl:when> + <xsl:when test="@mark = 'box'">square</xsl:when> + <xsl:otherwise><xsl:value-of select="@mark"/></xsl:otherwise> + </xsl:choose> + </xsl:attribute> + </xsl:if> + <xsl:if test="@spacing = 'compact'"> + <xsl:attribute name="compact"> + <xsl:value-of select="@spacing"/> + </xsl:attribute> + </xsl:if> + <xsl:apply-templates select="listitem"/> + </ul> + </div> +</xsl:template> + +<xsl:template match="itemizedlist/listitem"> + <li> + <xsl:if test="@override"> + <xsl:attribute name="style"> + <xsl:text>list-style-type: </xsl:text> + <xsl:choose> + <xsl:when test="@override = 'bullet'">disc</xsl:when> + <xsl:when test="@override = 'box'">square</xsl:when> + <xsl:otherwise><xsl:value-of select="@override"/></xsl:otherwise> + </xsl:choose> + </xsl:attribute> + </xsl:if> + <xsl:call-template name="anchor"/> + <xsl:apply-templates/> + </li> +</xsl:template> + +<!-- == orderedlist ======================================================== --> + +<xsl:template name="orderedlist.start"> + <xsl:param name="list" select="."/> + <xsl:choose> + <xsl:when test="$list/@continutation != 'continues'">1</xsl:when> + <xsl:otherwise> + <xsl:variable name="prevlist" + select="$list/preceding::orderedlist[1]"/> + <xsl:choose> + <xsl:when test="count($prevlist) = 0">1</xsl:when> + <xsl:otherwise> + <xsl:variable name="prevlength" select="count($prevlist/listitem)"/> + <xsl:variable name="prevstart"> + <xsl:call-template name="orderedlist.start"> + <xsl:with-param name="list" select="$prevlist"/> + </xsl:call-template> + </xsl:variable> + <xsl:value-of select="$prevstart + $prevlength"/> + </xsl:otherwise> + </xsl:choose> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="orderedlist"> + <xsl:variable name="start"> + <xsl:choose> + <xsl:when test="@continuation = 'continues'"> + <xsl:call-template name="orderedlist.start"/> + </xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <div class="{name(.)}"> + <xsl:call-template name="anchor"/> + <xsl:if test="title"> + <xsl:call-template name="node.heading"/> + </xsl:if> + <xsl:apply-templates select="&listcomponent;"/> + <ol> + <xsl:if test="@numeration"> + <xsl:attribute name="type"> + <xsl:choose> + <xsl:when test="@numeration = 'arabic'">1</xsl:when> + <xsl:when test="@numeration = 'loweralpha'">a</xsl:when> + <xsl:when test="@numeration = 'lowerroman'">i</xsl:when> + <xsl:when test="@numeration = 'upperalpha'">A</xsl:when> + <xsl:when test="@numeration = 'upperroman'">I</xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:attribute> + </xsl:if> + <xsl:if test="$start != '1'"> + <xsl:attribute name="start"> + <xsl:value-of select="$start"/> + </xsl:attribute> + </xsl:if> + <xsl:if test="@spacing = 'compact'"> + <xsl:attribute name="compact"> + <xsl:value-of select="@spacing"/> + </xsl:attribute> + </xsl:if> + <!-- FIXME: inheritnum --> + <xsl:apply-templates select="listitem"/> + </ol> + </div> +</xsl:template> + +<xsl:template match="orderedlist/listitem"> + <li> + <xsl:if test="@override"> + <xsl:attribute name="value"> + <xsl:value-of select="@override"/> + </xsl:attribute> + </xsl:if> + <xsl:call-template name="anchor"/> + <xsl:apply-templates/> + </li> +</xsl:template> + +<!-- == procedure ========================================================== --> + +<xsl:template match="procedure"> + <div class="{name(.)}"> + <xsl:call-template name="anchor"/> + <xsl:if test="title"> + <xsl:call-template name="node.heading"/> + </xsl:if> + <xsl:apply-templates select="*[ + (name(.) != 'blockinfo') and (name(.) != 'title') and + (name(.) != 'titleabbrev') and (name(.) != 'step') ]"/> + <xsl:choose> + <xsl:when test="count(step) = 1"> + <ul> + <xsl:apply-templates select="step"/> + </ul> + </xsl:when> + <xsl:otherwise> + <ol> + <xsl:apply-templates select="step"/> + </ol> + </xsl:otherwise> + </xsl:choose> + </div> +</xsl:template> + +<xsl:template match="step"> + <li> + <xsl:call-template name="anchor"/> + <xsl:if test="title"> + <xsl:call-template name="node.heading"/> + </xsl:if> + <xsl:apply-templates select="*[name(.) != 'title']"/> + </li> +</xsl:template> + +<xsl:template match="substeps"> + <div class="{name(.)}"> + <xsl:call-template name="anchor"/> + <ol> + <xsl:apply-templates/> + </ol> + </div> +</xsl:template> + +<!-- == segmentedlist ====================================================== --> + +<xsl:template match="segmentedlist"> + <div class="{name(.)}"> + <xsl:call-template name="anchor"/> + <xsl:if test="title"> + <xsl:call-template name="node.heading"/> + </xsl:if> + <ul style="list-style-type: none;"> + <xsl:apply-templates select="seglistitem"/> + </ul> + </div> +</xsl:template> + +<xsl:template match="seglistitem"> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="segtitle"> + <b> + <xsl:apply-templates/> + <xsl:text>: </xsl:text> + </b> +</xsl:template> + +<xsl:template match="seg"> + <xsl:variable name="position" select="count(preceding-sibling::seg) + 1"/> + <p> + <li> + <xsl:if test="$position = 1"> + <xsl:attribute name="class"> + <xsl:text>segfirst</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:apply-templates + select="../../segtitle[position() = $position]"/> + <xsl:apply-templates/> + </li> + </p> +</xsl:template> + +<!-- == simplelist ========================================================= --> + +<xsl:template match="simplelist"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="member"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<!-- == variablelist ======================================================= --> + +<xsl:template match="variablelist"> + <div class="{name(.)}"> + <xsl:call-template name="anchor"/> + <xsl:if test="title"> + <xsl:call-template name="node.heading"/> + </xsl:if> + <xsl:apply-templates select="&listcomponent;"/> + <dl> + <xsl:apply-templates select="varlistentry"/> + </dl> + </div> +</xsl:template> + +<xsl:template match="varlistentry"> + <dt> + <xsl:call-template name="anchor"/> + <xsl:for-each select="term"> + <xsl:if test="position() != 1"> + <xsl:text>, </xsl:text> + </xsl:if> + <xsl:apply-templates select="."/> + </xsl:for-each> + </dt> + <xsl:apply-templates select="listitem"/> +</xsl:template> + +<xsl:template match="varlistentry/listitem"> + <dd> + <xsl:call-template name="anchor"/> + <xsl:apply-templates/> + </dd> +</xsl:template> + +<xsl:template match="term"> + <xsl:call-template name="inline.bold"/> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-lists.xsl b/stylesheets/db2html-lists.xsl new file mode 100644 index 00000000..2c13e8d3 --- /dev/null +++ b/stylesheets/db2html-lists.xsl @@ -0,0 +1,85 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> +<!DOCTYPE xsl:stylesheet [ +<!ENTITY listcomponent " + abstract | address | anchor | authorblurb | + beginpage | blockquote | bridgehead | caution | + classsynopsis | cmdsynopsis | constructorsynopsis | destructorsynopsis | + epigraph | fieldsynopsis | formalpara | funcsynopsis | + graphic | graphicco | highlights | important | + indexterm | informalequation | informalexample | informalfigure | + informaltable | literallayout | mediaobject | mediaobjectco | + methodsynopsis | note | para | programlisting | + programlistingco | remark | screen | screenco | + screenshot | simpara | synopsis | tip | + warning "> +]> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<!-- == itemizedlist ======================================================= --> + +<xsl:template match="itemizedlist"> + <div class="{name(.)}"> + <xsl:call-template name="anchor"/> + <xsl:if test="title"> + <xsl:call-template name="node.heading"/> + </xsl:if> + <xsl:apply-templates select="&listcomponent;"/> + <ul> + <xsl:if test="@spacing='compact'"> + <xsl:attribute name="compact"> + <xsl:value-of select="@spacing"/> + </xsl:attribute> + </xsl:if> + <xsl:if test="@mark"> + <xsl:attribute name="style"> + <xsl:text>list-style-type: </xsl:text> + <xsl:choose> + <xsl:when test="@mark = 'opencircle'"> + <xsl:text>circle</xsl:text> + </xsl:when> + <xsl:when test="@mark = 'bullet'"> + <xsl:text>disc</xsl:text> + </xsl:when> + <xsl:when test="@mark = 'box'"> + <xsl:text>square</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="@mark"/> + </xsl:otherwise> + </xsl:choose> + </xsl:attribute> + </xsl:if> + <xsl:apply-templates select="listitem"/> + </ul> + </div> +</xsl:template> + +<xsl:template match="itemizedlist/listitem"> + <li> + <xsl:if test="@override"> + <xsl:attribute name="style"> + <xsl:text>list-style-type: </xsl:text> + <xsl:choose> + <xsl:when test="@override = 'opencircle'"> + <xsl:text>circle</xsl:text> + </xsl:when> + <xsl:when test="@override = 'bullet'"> + <xsl:text>disc</xsl:text> + </xsl:when> + <xsl:when test="@override = 'box'"> + <xsl:text>square</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="@override"/> + </xsl:otherwise> + </xsl:choose> + </xsl:attribute> + </xsl:if> + <xsl:call-template name="anchor"/> + <xsl:apply-templates/> + </li> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-math.xsl b/stylesheets/db2html-math.xsl new file mode 100644 index 00000000..aef01c08 --- /dev/null +++ b/stylesheets/db2html-math.xsl @@ -0,0 +1,22 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<xsl:template match="alt"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="equation"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="informalequation"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="inlineequation"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-media.xsl b/stylesheets/db2html-media.xsl new file mode 100644 index 00000000..86f93a60 --- /dev/null +++ b/stylesheets/db2html-media.xsl @@ -0,0 +1,199 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<!-- ======================================================================= --> + +<xsl:template name="mediadata"> + <xsl:variable name="element"> + <xsl:choose> + <xsl:when test=" + name(.) = 'imagedata' or + name(.) = 'graphic' or + name(.) = 'inlinegraphic' "> + <xsl:value-of select="'img'"/> + </xsl:when> + </xsl:choose> + </xsl:variable> + <xsl:element name="{$element}"> + <xsl:attribute name="src"> + <xsl:value-of select="$mediaobject_path"/> + <xsl:choose> + <xsl:when test="@fileref"> + <!-- FIXME: do this less stupidly, or not at all --> + <xsl:choose> + <xsl:when test=" + @format = 'PNG' and + (substring(@fileref, string-length(@fileref) - 3) + != '.png')"> + <xsl:value-of select="concat(@fileref, '.png')"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="@fileref"/> + </xsl:otherwise> + </xsl:choose> + </xsl:when> + <xsl:when test="@entityref"> + <xsl:value-of select="unparsed-entity-uri(@entityref)"/> + </xsl:when> + </xsl:choose> + </xsl:attribute> + <xsl:choose> + <xsl:when test="@scale"> + <xsl:attribute name="width"> + <xsl:value-of select="concat(@scale, '%')"/> + </xsl:attribute> + </xsl:when> + <xsl:when test="@width"> + <xsl:attribute name="width"> + <xsl:value-of select="@width"/> + </xsl:attribute> + <xsl:if test="@height"> + <xsl:attribute name="height"> + <xsl:value-of select="@height"/> + </xsl:attribute> + </xsl:if> + </xsl:when> + </xsl:choose> + <xsl:if test="@align"> + <xsl:attribute name="align"> + <xsl:value-of select="@align"/> + </xsl:attribute> + </xsl:if> + <xsl:if test="$textobject/phrase"> + <xsl:attribute name="alt"> + <xsl:value-of select="phrase[1]"/> + </xsl:attribute> + </xsl:if> + </xsl:element> +</xsl:template> + +<xsl:template name="mediaobject"> + <xsl:choose> + <xsl:when test="$text_only"> + <xsl:apply-templates select="textobject[1]"/> + </xsl:when> + <xsl:when test="imageobject[imagedata/@format = 'PNG']"> + <xsl:apply-templates + select="imageobject[imagedata/@format = 'PNG'][1]"> + <xsl:with-param name="textobject" select="textobject[1]"/> + </xsl:apply-templates> + </xsl:when> + <xsl:when test="imageobjectco[imageobject/imagedata/@format = 'PNG']"> + <xsl:apply-templates + select="imageobjectco[imageobject/imagedata/@format = 'PNG'][1]"> + <xsl:with-param name="textobject" select="textobject[1]"/> + </xsl:apply-templates> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="(imageobject | imageobjectco)[1]"> + <xsl:with-param name="textobject" select="textobject[1]"/> + </xsl:apply-templates> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<!-- ======================================================================= --> + +<xsl:template match="graphic"> + <xsl:param name="textobject" select="false()"/> + <xsl:call-template name="mediadata"> + <xsl:with-param name="textobject" select="textobject"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="graphicco"> + <xsl:param name="textobject" select="false()"/> + <xsl:call-template name="anchor"/> + <xsl:apply-templates select="graphic"> + <xsl:with-param name="textobject" select="$textobject"/> + </xsl:apply-templates> + <xsl:apply-templates select="calloutlist"/> +</xsl:template> + +<xsl:template match="audiodata"> + <!-- FIXME --> +</xsl:template> + +<xsl:template match="audioobject"> + <!-- FIXME --> +</xsl:template> + +<xsl:template match="imagedata"> + <xsl:param name="textobject" select="false()"/> + <xsl:call-template name="mediadata"> + <xsl:with-param name="textobject" select="textobject"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="imageobject"> + <xsl:param name="textobject" select="false()"/> + <xsl:apply-templates select="imagedata"> + <xsl:with-param name="textobject" select="$textobject"/> + </xsl:apply-templates> +</xsl:template> + +<xsl:template match="imageobjectco"> + <xsl:param name="textobject" select="false()"/> + <xsl:call-template name="anchor"/> + <xsl:apply-templates select="imageobject"> + <xsl:with-param name="textobject" select="$textobject"/> + </xsl:apply-templates> + <xsl:apply-templates select="calloutlist"/> +</xsl:template> + +<xsl:template match="inlinegraphic"> + <xsl:param name="textobject" select="false()"/> + <span class="{name(.)}"> + <xsl:call-template name="anchor"/> + <xsl:call-template name="mediadata"> + <xsl:with-param name="textobject" select="textobject"/> + </xsl:call-template> + </span> +</xsl:template> + +<xsl:template match="inlinemediaobject"> + <span class="{name(.)}"> + <xsl:call-template name="anchor"/> + <xsl:call-template name="mediaobject"/> + </span> +</xsl:template> + +<xsl:template match="mediaobject"> + <div class="{name(.)}"> + <xsl:call-template name="anchor"/> + <xsl:call-template name="mediaobject"/> + <xsl:apply-templates select="caption"/> + </div> +</xsl:template> + +<xsl:template match="mediaobjectco"> + <div class="{name(.)}"> + <xsl:call-template name="anchor"/> + <xsl:call-template name="mediaobject"/> + </div> +</xsl:template> + +<xsl:template match="screenshot"> + <xsl:call-template name="block"/> +</xsl:template> + +<xsl:template match="textdata"> + <!-- FIXME --> +</xsl:template> + +<xsl:template match="textobject"> + <!-- FIXME --> +</xsl:template> + +<xsl:template match="videodata"> + <!-- FIXME --> +</xsl:template> + +<xsl:template match="videoobject"> + <!-- FIXME --> +</xsl:template> + +<!-- ======================================================================= --> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-navbar.xsl b/stylesheets/db2html-navbar.xsl new file mode 100644 index 00000000..ac1e12da --- /dev/null +++ b/stylesheets/db2html-navbar.xsl @@ -0,0 +1,154 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> +<!DOCTYPE xsl:stylesheet [ +<!ENTITY is-division " + (name(.) = 'appendix') or (name(.) = 'article') or + (name(.) = 'book') or (name(.) = 'bibliography') or + (name(.) = 'chapter') or (name(.) = 'colophon') or + (name(.) = 'glossary') or (name(.) = 'index') or + (name(.) = 'part') or (name(.) = 'preface') or + (name(.) = 'reference') or (name(.) = 'refentry') or + (name(.) = 'refsect1') or (name(.) = 'refsect2') or + (name(.) = 'refsect3') or (name(.) = 'refsection') or + (name(.) = 'sect1') or (name(.) = 'sect2') or + (name(.) = 'sect3') or (name(.) = 'sect4') or + (name(.) = 'sect5') or (name(.) = 'section') or + (name(.) = 'set') or (name(.) = 'setindex') or + (name(.) = 'simplesect') "> +<!ENTITY is-info " + (name(.) = 'appendixinfo') or (name(.) = 'articleinfo') or + (name(.) = 'bibliographyinfo') or (name(.) = 'bookinfo') or + (name(.) = 'chapterinfo') or (name(.) = 'glossaryinfo') or + (name(.) = 'indexinfo') or (name(.) = 'partinfo') or + (name(.) = 'prefaceinfo') or (name(.) = 'refentryinfo') or + (name(.) = 'referenceinfo') or (name(.) = 'refsect1info') or + (name(.) = 'refsect2info') or (name(.) = 'refsect3info') or + (name(.) = 'refsectioninfo') or (name(.) = 'sect1info') or + (name(.) = 'sect2info') or (name(.) = 'sect3info') or + (name(.) = 'sect4info') or (name(.) = 'sect5info') or + (name(.) = 'sectioninfo') or (name(.) = 'setinfo') or + (name(.) = 'setindexinfo') "> +]> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<xsl:template match="*" mode="navbar.following.link.mode"> + <xsl:variable name="depth" select="count(ancestor::*[&is-division;])"/> + <xsl:choose> + <xsl:when test="not(&is-division;)"> + <xsl:apply-templates mode="navbar.following.link.mode" + select="ancestor::*[&is-division;][1]"/> + </xsl:when> + <xsl:when test="following-sibling::*[&is-division;]"> + <xsl:variable name="foll" + select="following-sibling::*[&is-division;][1]"/> + <xsl:call-template name="xref"> + <xsl:with-param name="linkend" select="$foll/@id"/> + <xsl:with-param name="target" select="$foll"/> + </xsl:call-template> + </xsl:when> + <xsl:when test="$depth > 0"> + <xsl:apply-templates select=".." mode="navbar.following.link.mode"/> + </xsl:when> + </xsl:choose> +</xsl:template> + +<xsl:template match="*" mode="navbar.last.link.mode"> + <xsl:variable name="depth" select="count(ancestor::*[&is-division;])"/> + <xsl:choose> + <xsl:when test="not(&is-division;)"> + <xsl:apply-templates mode="navbar.last.link.mode" + select="ancestor::*[&is-division;][1]"/> + </xsl:when> + <xsl:when test="$depth > $chunk_depth"> + <xsl:apply-templates select="." mode="navbar.prev.link.mode"/> + </xsl:when> + <xsl:when test="$depth = $chunk_depth"> + <xsl:call-template name="xref"> + <xsl:with-param name="linkend" select="@id"/> + <xsl:with-param name="target" select="."/> + </xsl:call-template> + </xsl:when> + <xsl:when test="*[&is-division;]"> + <xsl:apply-templates mode="navbar.last.link.mode" + select="*[&is-division;][last()]"/> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="xref"> + <xsl:with-param name="linkend" select="@id"/> + <xsl:with-param name="target" select="."/> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="*" mode="navbar.prev.link.mode"> + <xsl:variable name="depth" select="count(ancestor::*[&is-division;])"/> + <xsl:variable name="chunk_id"> + <xsl:apply-templates select="." mode="chunk.id.mode"/> + </xsl:variable> + <xsl:choose> + <xsl:when test="string($chunk_id) != @id"> + <xsl:apply-templates select="id($chunk_id)" mode="navbar.prev.link.mode"/> + </xsl:when> + <xsl:when test="&is-info;"/> + <xsl:when test="$depth > $chunk_depth"> + <xsl:apply-templates select=".." mode="navbar.prev.link.mode"/> + </xsl:when> + <xsl:when test=" + ($depth = $chunk_depth) and (preceding-sibling::*[&is-division;])"> + <xsl:variable name="prev" select="preceding-sibling::*[&is-division;][1]"/> + <xsl:call-template name="xref"> + <xsl:with-param name="linkend" select="$prev/@id"/> + <xsl:with-param name="target" select="$prev"/> + </xsl:call-template> + </xsl:when> + <xsl:when test="preceding-sibling::*[&is-division;]"> + <xsl:apply-templates mode="navbar.last.link.mode" + select="preceding-sibling::*[&is-division;][1]"/> + </xsl:when> + <xsl:when test="parent::*[&is-division;]"> + <xsl:call-template name="xref"> + <xsl:with-param name="linkend" select="../@id"/> + <xsl:with-param name="target" select=".."/> + </xsl:call-template> + </xsl:when> + <xsl:when test="$generate_titlepage and (. = /*) and *[&is-info;]"> + <xsl:variable name="prev" select="*[&is-info;][1]"/> + <xsl:call-template name="xref"> + <xsl:with-param name="linkend" select="$prev/@id"/> + <xsl:with-param name="target" select="$prev"/> + </xsl:call-template> + </xsl:when> + </xsl:choose> +</xsl:template> + +<xsl:template match="*" mode="navbar.next.link.mode"> + <xsl:variable name="depth" select="count(ancestor::*[&is-division;])"/> + <xsl:choose> + <xsl:when test="&is-info;"> + <xsl:call-template name="xref"> + <xsl:with-param name="linkend" select="../@id"/> + <xsl:with-param name="target" select=".."/> + </xsl:call-template> + </xsl:when> + <xsl:when test="not(&is-division;)"> + <xsl:apply-templates mode="navbar.next.link.mode" + select="ancestor::*[&is-division;][1]"/> + </xsl:when> + <xsl:when test="$depth > $chunk_depth"> + <xsl:apply-templates select="." mode="navbar.next.link.mode"/> + </xsl:when> + <xsl:when test="($depth < $chunk_depth) and (*[&is-division;])"> + <xsl:variable name="next" select="*[&is-division;][1]"/> + <xsl:call-template name="xref"> + <xsl:with-param name="linkend" select="$next/@id"/> + <xsl:with-param name="target" select="$next"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="." mode="navbar.following.link.mode"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-node.xsl b/stylesheets/db2html-node.xsl new file mode 100644 index 00000000..28fe2179 --- /dev/null +++ b/stylesheets/db2html-node.xsl @@ -0,0 +1,771 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> +<!DOCTYPE xsl:stylesheet [ +<!ENTITY is-info " + (name(.) = 'appendixinfo') or (name(.) = 'articleinfo') or + (name(.) = 'bibliographyinfo') or (name(.) = 'bookinfo') or + (name(.) = 'chapterinfo') or (name(.) = 'glossaryinfo') or + (name(.) = 'indexinfo') or (name(.) = 'partinfo') or + (name(.) = 'prefaceinfo') or (name(.) = 'refentryinfo') or + (name(.) = 'referenceinfo') or (name(.) = 'refsect1info') or + (name(.) = 'refsect2info') or (name(.) = 'refsect3info') or + (name(.) = 'refsectioninfo') or (name(.) = 'sect1info') or + (name(.) = 'sect2info') or (name(.) = 'sect3info') or + (name(.) = 'sect4info') or (name(.) = 'sect5info') or + (name(.) = 'sectioninfo') or (name(.) = 'setinfo') or + (name(.) = 'setindexinfo') or (name(.) = 'sidebarinfo') "> +]> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<!-- == node.heading ======================================================= --> + +<xsl:template name="node.heading"> + <xsl:param name="node" select="."/> + <xsl:param name="content" select="false()"/> + <div class="header"><b> + <xsl:choose> + <xsl:when test="$content"> + <xsl:copy-of select="$content"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="$node" mode="title.inline.mode"/> + </xsl:otherwise> + </xsl:choose> + </b></div> +</xsl:template> + +<!-- == node.header.header.mode ============================================ --> + +<!-- Defaults --> +<xsl:template mode="node.header.header.mode" match="*"> + <xsl:apply-templates select="." mode="node.name.mode"/> +</xsl:template> + +<!-- Divisions --> +<xsl:template mode="node.header.header.mode" match="appendix | chapter | part"> + <xsl:call-template name="format.header.header"> + <xsl:with-param name="header"> + <xsl:apply-templates select="." mode="node.name.mode"/> + </xsl:with-param> + <xsl:with-param name="number"> + <xsl:apply-templates select="." mode="node.number.mode"/> + </xsl:with-param> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="node.header.header.mode" match="article | reference"> + <xsl:variable name="node" select="."/> + <xsl:if test=" + (preceding-sibling::*[name(.) = name($node)]) or + (following-sibling::*[name(.) = name($node)]) or + (parent::part/preceding-sibling::part/*[name(.) = name($node)]) or + (parent::part/following-sibling::part/*[name(.) = name($node)]) "> + <xsl:call-template name="format.header.number"> + <xsl:with-param name="number"> + <xsl:apply-templates select="." mode="node.number.mode"/> + </xsl:with-param> + </xsl:call-template> + </xsl:if> +</xsl:template> + +<xsl:template mode="node.header.header.mode" match="book"/> +<xsl:template mode="node.header.header.mode" match="bibliography"/> +<xsl:template mode="node.header.header.mode" match="colophon"/> +<xsl:template mode="node.header.header.mode" match="glossary"/> +<xsl:template mode="node.header.header.mode" match="index"/> +<xsl:template mode="node.header.header.mode" match="preface"/> +<xsl:template mode="node.header.header.mode" match="refentry"/> +<xsl:template mode="node.header.header.mode" match="refsect1"/> +<xsl:template mode="node.header.header.mode" match="refsect2"/> +<xsl:template mode="node.header.header.mode" match="refsect3"/> +<xsl:template mode="node.header.header.mode" match="refsection"/> + +<xsl:template mode="node.header.header.mode" match=" + sect1 | sect2 | sect3 | sect4 | + sect5 | section | simplesect "> + <xsl:call-template name="format.header.number"> + <xsl:with-param name="number"> + <xsl:apply-templates select="." mode="node.number.mode"/> + </xsl:with-param> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="node.header.header.mode" match="set"/> +<xsl:template mode="node.header.header.mode" match="setindex"/> + +<!-- Infos --> +<xsl:template mode="node.header.header.mode" match="*[&is-info;]"/> + +<!-- Titles --> +<xsl:template match="subtitle" mode="node.header.header.mode"> + <xsl:apply-templates select=".." mode="node.header.header.mode"/> +</xsl:template> + +<xsl:template match="title" mode="node.header.header.mode"> + <xsl:apply-templates select=".." mode="node.header.header.mode"/> +</xsl:template> + +<xsl:template match="titleabbrev" mode="node.header.header.mode"> + <xsl:apply-templates select=".." mode="node.header.header.mode"/> +</xsl:template> + +<!-- Blocks --> +<xsl:template match="example | figure | table" mode="node.header.header.mode"> + <xsl:choose> + <xsl:when test="@label"> + <xsl:call-template name="format.header"> + <xsl:with-param name="header" select="@label"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="format.header.header"> + <xsl:with-param name="header"> + <xsl:apply-templates select="." mode="node.name.mode"/> + </xsl:with-param> + <xsl:with-param name="number"> + <xsl:apply-templates select="." mode="node.number.mode"/> + </xsl:with-param> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<!-- == node.header.inline.mode ============================================ --> + +<!-- Defaults --> +<xsl:template mode="node.header.inline.mode" match="*"> + <xsl:apply-templates select="." mode="node.name.mode"/> +</xsl:template> + +<!-- Divisions --> +<xsl:template mode="node.header.inline.mode" match=" + appendix | chapter | part | refsect1 | refsect2 | refsect3 | + refsection | sect1 | sect2 | sect3 | sect4 | sect5 | + section | simplesect "> + <xsl:call-template name="format.header.inline"> + <xsl:with-param name="header"> + <xsl:apply-templates select="." mode="node.name.mode"/> + </xsl:with-param> + <xsl:with-param name="number"> + <xsl:apply-templates select="." mode="node.number.mode"/> + </xsl:with-param> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="node.header.inline.mode" match="article | reference"> + <xsl:choose> + <xsl:when test="titleabbrev"> + <xsl:apply-templates select="titleabbrev/node()"/> + </xsl:when> + <xsl:when test="*[&is-info;]/titleabbrev"> + <xsl:apply-templates select="*[&is-info;]/titleabbrev/node()"/> + </xsl:when> + <xsl:when test="title"> + <xsl:apply-templates select="title/node()"/> + </xsl:when> + <xsl:when test="*[&is-info;]/title"> + <xsl:apply-templates select="*[&is-info;]/title/node()"/> + </xsl:when> + <xsl:when test=" + (preceding-sibling::*[name(.) = name($node)]) or + (following-sibling::*[name(.) = name($node)]) or + (parent::part/preceding-sibling::part/*[name(.) = name($node)]) or + (parent::part/following-sibling::part/*[name(.) = name($node)]) "> + <xsl:call-template name="format.header.inline"> + <xsl:with-param name="header"> + <xsl:apply-templates select="." mode="node.name.mode"/> + </xsl:with-param> + <xsl:with-param name="number"> + <xsl:apply-templates select="." mode="node.number.mode"/> + </xsl:with-param> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="." mode="node.name.mode"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template mode="node.header.inline.mode" match=" + book | bibliography | colophon | glossary | + index | preface | set | setindex "> + <xsl:choose> + <xsl:when test="titleabbrev"> + <xsl:apply-templates select="titleabbrev/node()"/> + </xsl:when> + <xsl:when test="*[&is-info;]/titleabbrev"> + <xsl:apply-templates select="*[&is-info;]/titleabbrev/node()"/> + </xsl:when> + <xsl:when test="title"> + <xsl:apply-templates select="title/node()"/> + </xsl:when> + <xsl:when test="*[&is-info;]/title"> + <xsl:apply-templates select="*[&is-info;]/title/node()"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="." mode="node.name.mode"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template mode="node.header.inline.mode" match="refentry"> + <xsl:choose> + <xsl:when test="refentryinfo/titleabbrev"> + <xsl:apply-templates select="refentryinfo/titleabbrev/node()"/> + </xsl:when> + <xsl:when test="refentryinfo/title"> + <xsl:apply-templates select="refentryinfo/title/node()"/> + </xsl:when> + <xsl:when test="refsynopsisdiv/titleabbrev"> + <xsl:apply-templates select="refsynopsisdiv/titleabbrev/node()"/> + </xsl:when> + <xsl:when test="refsynopsisdiv/title"> + <xsl:apply-templates select="refsynopsisdiv/title/node()"/> + </xsl:when> + <xsl:when test="refsynopsisdiv/refsynopsisdivinfo/titleabbrev"> + <xsl:apply-templates + select="refsynopsisdiv/refsynopsisdivinfo/titleabbrev/node()"/> + </xsl:when> + <xsl:when test="refsynopsisdiv/refsynopsisdivinfo/title"> + <xsl:apply-templates + select="refsynopsisdiv/refsynopsisdivinfo/title/node()"/> + </xsl:when> + <xsl:when test="refnamediv/refdescriptor"> + <xsl:apply-templates select="refnamediv/refdescriptor/node()"/> + </xsl:when> + <xsl:when test="refnamediv/refname"> + <xsl:apply-templates select="refnamediv/refname[1]/node()"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="." mode="node.name.mode"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<!-- Infos --> +<xsl:template mode="node.header.inline.mode" match="appendixinfo"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'About This Appendix'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="node.header.inline.mode" match="articleinfo"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'About This Article'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="node.header.inline.mode" match="bibliographyinfo"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'About This Bibliography'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="node.header.inline.mode" match="bookinfo"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'About This Book'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="node.header.inline.mode" match="chapterinfo"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'About This Chapter'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="node.header.inline.mode" match="glossaryinfo"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'About This Glossary'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="node.header.inline.mode" match="indexinfo | setindexinfo"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'About This Index'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="node.header.inline.mode" match="partinfo"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'About This Part'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="node.header.inline.mode" match="prefaceinfo"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'About This Preface'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="node.header.inline.mode" match="refentryinfo"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'About This Entry'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="node.header.inline.mode" match="referenceinfo"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'About This Reference'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="node.header.inline.mode" match=" + refsect1info | refsect2info | refsect3info | refsectioninfo | + sect1info | sect2info | sect3info | sect4info | + sect5info | sectioninfo "> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'About This Section'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="node.header.inline.mode" match="setinfo"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'About This Set'"/> + </xsl:call-template> +</xsl:template> + +<!-- Titles --> +<xsl:template match="subtitle" mode="node.header.inline.mode"> + <xsl:apply-templates select=".." mode="node.header.inline.mode"/> +</xsl:template> + +<xsl:template match="title" mode="node.header.inline.mode"> + <xsl:apply-templates select=".." mode="node.header.inline.mode"/> +</xsl:template> + +<xsl:template match="titleabbrev" mode="node.header.inline.mode"> + <xsl:apply-templates select=".." mode="node.header.inline.mode"/> +</xsl:template> + +<!-- Blocks --> +<xsl:template match="example | figure | table" mode="node.header.inline.mode"> + <xsl:choose> + <xsl:when test="@label"> + <xsl:value-of select="@label"/> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="format.header.inline"> + <xsl:with-param name="header"> + <xsl:apply-templates select="." mode="node.name.mode"/> + </xsl:with-param> + <xsl:with-param name="number"> + <xsl:apply-templates select="." mode="node.number.mode"/> + </xsl:with-param> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="glossentry" mode="node.header.inline.mode"> + <xsl:apply-templates select="glossterm[1]" mode="node.header.inline.mode"/> +</xsl:template> + +<xsl:template match="glossterm" mode="node.header.inline.mode"> + <xsl:apply-templates/> +</xsl:template> + +<!-- == node.name.mode ===================================================== --> + +<!-- Defaults --> +<xsl:template match="*" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Unknown'"/> + </xsl:call-template> +</xsl:template> + +<!-- Divisions --> +<xsl:template match="appendix" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Appendix'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="article" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Article'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="book" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Book'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="bibliography" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Bigliography'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="chapter" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Chapter'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="colophon" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Colophon'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="glossary" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Glossary'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="index" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Index'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="part" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Part'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="preface" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Preface'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="reference" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Reference'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="refentry" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Reference Entry'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="refsect1" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Reference Section'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="refsect2" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Reference Section'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="refsect3" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Reference Section'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="refsection" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Reference Section'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="sect1" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Section'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="sect2" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Section'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="sect3" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Section'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="sect4" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Section'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="sect5" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Section'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="section" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Section'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="set" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Set'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="setindex" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Set Index'"/> + </xsl:call-template> +</xsl:template> + +<!-- Titles --> +<xsl:template match="subtitle" mode="node.name.mode"> + <xsl:apply-templates select=".." mode="node.name.mode"/> +</xsl:template> + +<xsl:template match="title" mode="node.name.mode"> + <xsl:apply-templates select=".." mode="node.name.mode"/> +</xsl:template> + +<xsl:template match="titleabbrev" mode="node.name.mode"> + <xsl:apply-templates select=".." mode="node.name.mode"/> +</xsl:template> + +<!-- Blocks --> +<xsl:template match="caution" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Caution'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="dedication" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Dedication'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="example" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Example'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="figure" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Figure'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="important" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Important'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="msgaud" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Message Audience'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="msglevel" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Message Level'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="msgorig" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Message Origin'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="note" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Note'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="table" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Table'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="tip" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Tip'"/> + </xsl:call-template> +</xsl:template> + +<xsl:template match="warning" mode="node.name.mode"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Warning'"/> + </xsl:call-template> +</xsl:template> + +<!-- == node.number.mode =================================================== --> + +<!-- Defaults --> +<xsl:template match="*" mode="node.number.mode"> + <xsl:apply-templates select=".." mode="node.number.mode"/> +</xsl:template> + +<!-- Divisions --> +<xsl:template mode="node.number.mode" match="appendix"> + <xsl:call-template name="format.appendix.number"> + <xsl:with-param name="appendix" select=" + count(preceding-sibling::appendix) + 1 + + count(parent::part/preceding-sibling::part/appendix)"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="node.number.mode" match="article"> + <xsl:call-template name="format.article.number"> + <xsl:with-param name="article" select=" + count(preceding-sibling::article) + 1 + + count(parent::part/preceding-sibling::part/article)"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="node.number.mode" match="book"/> +<xsl:template mode="node.number.mode" match="bibliography"/> +<xsl:template mode="node.number.mode" match="colophon"/> + +<xsl:template mode="node.number.mode" match="chapter"> + <xsl:call-template name="format.chapter.number"> + <xsl:with-param name="chapter" select=" + count(preceding-sibling::chapter) + 1 + + count(parent::part/preceding-sibling::part/chapter)"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="node.number.mode" match="glossary"/> +<xsl:template mode="node.number.mode" match="index"/> + +<xsl:template mode="node.number.mode" match="part"> + <xsl:call-template name="format.part.number"> + <xsl:with-param name="part" select=" + count(preceding-sibling::part) + 1"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="node.number.mode" match="preface"/> + +<xsl:template mode="node.number.mode" match="reference"> + <xsl:call-template name="format.reference.number"> + <xsl:with-param name="reference" select=" + count(preceding-sibling::reference) + 1 + + count(parent::part/preceding-sibling::part/reference)"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="node.number.mode" match=" + refentry | refsect1 | refsect2 | refsect3 | refsection | + sect1 | sect2 | sect3 | sect4 | sect5 | + section | simplesect "> + <xsl:variable name="sect" select="."/> + <xsl:call-template name="format.section.number"> + <xsl:with-param name="parent"> + <xsl:apply-templates select=".." mode="node.number.mode"/> + </xsl:with-param> + <xsl:with-param name="section" select=" + count(preceding-sibling::*[name(.) = name($sect)]) + 1"/> + </xsl:call-template> +</xsl:template> + +<xsl:template mode="node.number.mode" match="set"/> +<xsl:template mode="node.number.mode" match="setindex"/> + +<!-- Titles --> +<xsl:template match="subtitle" mode="node.number.mode"> + <xsl:apply-templates select=".." mode="node.number.mode"/> +</xsl:template> + +<xsl:template match="title" mode="node.number.mode"> + <xsl:apply-templates select=".." mode="node.number.mode"/> +</xsl:template> + +<xsl:template match="titleabbrev" mode="node.number.mode"> + <xsl:apply-templates select=".." mode="node.number.mode"/> +</xsl:template> + +<!-- Blocks --> +<xsl:template mode="node.number.mode" match="example | figure | table"> + <xsl:variable name="parent"> + <xsl:choose> + <xsl:when test=" + ancestor::*[ + (name(.) = 'refentry') or (name(.) = 'sect1') or + (name(.) = 'section') or (name(.) = 'simplesect') ] + [parent::article]"> + <xsl:apply-templates mode="node.number.mode" select=" + ancestor::*[ + (name(.) = 'refentry') or (name(.) = 'sect1') or + (name(.) = 'section') or (name(.) = 'simplesect') ] + [parent::article][last()]"/> + </xsl:when> + <xsl:when test="ancestor::*[name(.) = 'appendix' or name(.) = 'chapter']"> + <xsl:apply-templates mode="node.number.mode" select=" + ancestor::*[name(.) = 'appendix' or name(.) = 'chapter'][1]"/> + </xsl:when> + </xsl:choose> + </xsl:variable> + <xsl:variable name="num"> + <xsl:choose> + <xsl:when test=" + ancestor::*[ + (name(.) = 'refentry') or (name(.) = 'sect1') or + (name(.) = 'section') or (name(.) = 'simplesect') ] + [parent::article]"> + <xsl:value-of select="count( + ancestor-or-self::*[ancestor::*[ + (name(.) = 'refentry') or (name(.) = 'sect1') or + (name(.) = 'section') or (name(.) = 'simplesect') ] + [parent::article] + ]/preceding-sibling::*/descendant-or-self::*[ + name(.) = name(current())] + ) + 1"/> + </xsl:when> + <xsl:when test="ancestor::*[name(.) = 'appendix' or name(.) = 'chapter']"> + <xsl:value-of select="count( + ancestor-or-self::*[ancestor::*[ + name(.) = 'appendix' or name(.) = 'chapter' ] + ]/preceding-sibling::*/descendant-or-self::*[ + name(.) = name(current())] + ) + 1"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="count(preceding::*[name(.) = name(current())]) + 1"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:choose> + <xsl:when test="not($parent)"> + <xsl:value-of select="$num"/> + </xsl:when> + <xsl:when test="name(.) = 'example'"> + <xsl:call-template name="format.example.number"> + <xsl:with-param name="parent" select="$parent"/> + <xsl:with-param name="example" select="$num"/> + </xsl:call-template> + </xsl:when> + <xsl:when test="name(.) = 'figure'"> + <xsl:call-template name="format.figure.number"> + <xsl:with-param name="parent" select="$parent"/> + <xsl:with-param name="figure" select="$num"/> + </xsl:call-template> + </xsl:when> + <xsl:when test="name(.) = 'table'"> + <xsl:call-template name="format.table.number"> + <xsl:with-param name="parent" select="$parent"/> + <xsl:with-param name="table" select="$num"/> + </xsl:call-template> + </xsl:when> + </xsl:choose> +</xsl:template> + +<!-- ======================================================================= --> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-param.xsl b/stylesheets/db2html-param.xsl new file mode 100644 index 00000000..43697288 --- /dev/null +++ b/stylesheets/db2html-param.xsl @@ -0,0 +1,49 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<xsl:param name="stylesheet_path" select="''"/> + +<xsl:param name="admon_graphics_extension" select="'.png'"/> +<xsl:param name="admon_graphics_path"> + <xsl:choose> + <xsl:when test="$stylesheet_path != ''"> + <xsl:value-of select="concat($stylesheet_path, 'images/')"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="'./images/'"/> + </xsl:otherwise> + </xsl:choose> +</xsl:param> + +<xsl:param name="chunk_depth" select="2"/> + +<xsl:param name="classsynopsis_default_langauge" select="'idl'"/> + +<xsl:param name="doc_name" select="''"/> +<xsl:param name="doc_path" select="''"/> + +<xsl:param name="generate_titlepage" select="true()"/> +<xsl:param name="generate_navbar" select="true()"/> + +<xsl:param name="html_extension" select="'.html'"/> + +<xsl:param name="lang"> + <xsl:choose> + <xsl:when test="/*/@lang"> + <xsl:value-of select="/*/@lang"/> + </xsl:when> + <xsl:when test="/*/@xml:lang"> + <xsl:value-of select="/*/@xml:lang"/> + </xsl:when> + <xsl:otherwise> + <xsl:text>C</xsl:text> + </xsl:otherwise> + </xsl:choose> +</xsl:param> + +<xsl:param name="mediaobject_path" select="$doc_path"/> + +<xsl:param name="text_only" select="false()"/> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-qanda.xsl b/stylesheets/db2html-qanda.xsl new file mode 100644 index 00000000..d138b8b0 --- /dev/null +++ b/stylesheets/db2html-qanda.xsl @@ -0,0 +1,30 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<xsl:template match="answer"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="label"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="qandadiv"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="qandaentry"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="qandaset"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="question"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-refentry.xsl b/stylesheets/db2html-refentry.xsl new file mode 100644 index 00000000..e02b62f5 --- /dev/null +++ b/stylesheets/db2html-refentry.xsl @@ -0,0 +1,95 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> +<!DOCTYPE xsl:stylesheet [ +<!ENTITY is-division " + (name(.) = 'appendix') or (name(.) = 'article') or + (name(.) = 'book') or (name(.) = 'bibliography') or + (name(.) = 'chapter') or (name(.) = 'colophon') or + (name(.) = 'glossary') or (name(.) = 'index') or + (name(.) = 'part') or (name(.) = 'preface') or + (name(.) = 'reference') or (name(.) = 'refentry') or + (name(.) = 'refsect1') or (name(.) = 'refsect2') or + (name(.) = 'refsect3') or (name(.) = 'refsection') or + (name(.) = 'sect1') or (name(.) = 'sect2') or + (name(.) = 'sect3') or (name(.) = 'sect4') or + (name(.) = 'sect5') or (name(.) = 'section') or + (name(.) = 'set') or (name(.) = 'setindex') or + (name(.) = 'simplesect') "> +]> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<xsl:template match="manvolnum"> + <xsl:text>(</xsl:text> + <xsl:apply-templates/> + <xsl:text>)</xsl:text> +</xsl:template> + +<xsl:template match="refclass"> + <div class="{name(.)}"> + <b> + <xsl:if test="@role"> + <xsl:value-of select="@role"/> + <xsl:text>: </xsl:text> + </xsl:if> + </b> + <xsl:apply-templates/> + </div> +</xsl:template> + +<xsl:template match="refdescriptor"> + <xsl:call-template name="block"/> +</xsl:template> + +<xsl:template match="refentrytitle"> + <xsl:param name="depth" select="count(ancestor::*[&is-division;]) - 1"/> + <xsl:variable name="element"> + <xsl:choose> + <xsl:when test="$depth < 7"> + <xsl:value-of select="concat('h', $depth + 1)"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="'h7'"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:element name="{$element}"> + <xsl:attribute name="class"> + <xsl:value-of select="'refentry'"/> + </xsl:attribute> + <xsl:call-template name="anchor"/> + <xsl:apply-templates/> + </xsl:element> +</xsl:template> + +<xsl:template match="refname"> + <xsl:apply-templates/> + <xsl:if test="following-sibling::refname"> + <xsl:text>, </xsl:text> + </xsl:if> +</xsl:template> + +<xsl:template match="refnamediv"> + <xsl:call-template name="block"/> +</xsl:template> + +<xsl:template match="refpurpose"> + <xsl:text> — </xsl:text> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="refsynopsisdiv"> + <div class="{name(.)}"> + <xsl:call-template name="anchor"/> + <xsl:if test="title or refsynopsisdivinfo/title"> + <xsl:call-template name="node.heading"/> + </xsl:if> + <xsl:apply-templates select="*[ + name(.) != 'refsynopsisdivinfo' and + name(.) != 'title' and + name(.) != 'subtitle' and + name(.) != 'titleabbrev' ]"/> + </div> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-section.xsl b/stylesheets/db2html-section.xsl new file mode 100644 index 00000000..56dfe565 --- /dev/null +++ b/stylesheets/db2html-section.xsl @@ -0,0 +1,133 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<!-- ======================================================================= --> + +<xsl:template name="section"> + <xsl:param name="content" select="*[yelp:is-content(.)]"/> + <xsl:param name="divisions" select="*[yelp:is-division(.)]"/> + <div class="{name(.)}"> + <xsl:apply-templates select="title"/> + <xsl:apply-templates select="subtitle"/> + <xsl:apply-templates select="$content"/> + <xsl:choose> + <xsl:when test="yelp:get-depth(.) < $chunk_depth"> + <xsl:call-template name="toc.verbose"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="$divisions"/> + </xsl:otherwise> + </xsl:choose> + </div> +</xsl:template> + +<!-- ======================================================================= --> + +<xsl:template match="appendix"> + <xsl:call-template name="section"/> +</xsl:template> + +<xsl:template match="article"> + <xsl:call-template name="section"/> +</xsl:template> + +<xsl:template match="book"> + <xsl:call-template name="section"/> +</xsl:template> + +<xsl:template match="bibliography"> + <xsl:call-template name="section"/> +</xsl:template> + +<xsl:template match="chapter"> + <xsl:call-template name="section"/> +</xsl:template> + +<xsl:template match="chapter"> + <xsl:call-template name="section"/> +</xsl:template> + +<xsl:template match="colophon"> + <xsl:call-template name="section"/> +</xsl:template> + +<xsl:template match="glossary"> + <xsl:call-template name="section"/> +</xsl:template> + +<xsl:template match="index"> + <xsl:call-template name="section"/> +</xsl:template> + +<xsl:template match="part"> + <xsl:call-template name="section"/> +</xsl:template> + +<xsl:template match="preface"> + <xsl:call-template name="section"/> +</xsl:template> + +<xsl:template match="reference"> + <xsl:call-template name="section"/> +</xsl:template> + +<xsl:template match="refentry"> + <xsl:call-template name="section"/> +</xsl:template> + +<xsl:template match="refsect1"> + <xsl:call-template name="section"/> +</xsl:template> + +<xsl:template match="refsect2"> + <xsl:call-template name="section"/> +</xsl:template> + +<xsl:template match="refsect3"> + <xsl:call-template name="section"/> +</xsl:template> + +<xsl:template match="refsection"> + <xsl:call-template name="section"/> +</xsl:template> + +<xsl:template match="sect1"> + <xsl:call-template name="section"/> +</xsl:template> + +<xsl:template match="sect2"> + <xsl:call-template name="section"/> +</xsl:template> + +<xsl:template match="sect3"> + <xsl:call-template name="section"/> +</xsl:template> + +<xsl:template match="sect4"> + <xsl:call-template name="section"/> +</xsl:template> + +<xsl:template match="sect5"> + <xsl:call-template name="section"/> +</xsl:template> + +<xsl:template match="section"> + <xsl:call-template name="section"/> +</xsl:template> + +<xsl:template match="set"> + <xsl:call-template name="section"/> +</xsl:template> + +<xsl:template match="setindex"> + <xsl:call-template name="section"/> +</xsl:template> + +<xsl:template match="simplesect"> + <xsl:call-template name="section"/> +</xsl:template> + +<!-- ======================================================================= --> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-suppressed.xsl b/stylesheets/db2html-suppressed.xsl new file mode 100644 index 00000000..9417a51c --- /dev/null +++ b/stylesheets/db2html-suppressed.xsl @@ -0,0 +1,102 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<xsl:template match="ackno"/> +<xsl:template match="affiliation"/> +<xsl:template match="authorblurb"/> +<xsl:template match="authorgroup"/> +<xsl:template match="artpagenums"/> +<xsl:template match="beginpage"/> +<xsl:template match="blockinfo"/> +<xsl:template match="bridgehead"/> +<xsl:template match="citebiblioid"/> +<xsl:template match="collab"/> +<xsl:template match="collabname"/> +<xsl:template match="colspec"/> + +<xsl:template match="confdates"/> +<xsl:template match="confgroup"/> +<xsl:template match="confnum"/> +<xsl:template match="confsponsor"/> +<xsl:template match="conftitle"/> + +<xsl:template match="copyright"/> +<xsl:template match="corpname"/> +<xsl:template match="contrib"/> +<xsl:template match="contractnum"/> +<xsl:template match="contractsponsor"/> +<xsl:template match="date"/> +<xsl:template match="edition"/> +<xsl:template match="firstname"/> +<xsl:template match="holder"/> +<xsl:template match="honorific"/> +<xsl:template match="indexterm"/> +<xsl:template match="invpartnumber"/> +<xsl:template match="isbn"/> +<xsl:template match="issn"/> +<xsl:template match="issuenum"/> +<xsl:template match="itermset"/> +<xsl:template match="keyword"/> +<xsl:template match="keywordset"/> +<xsl:template match="legalnotice"/> +<xsl:template match="lineage"/> + +<xsl:template match="lot"/> +<xsl:template match="lotentry"/> + +<xsl:template match="modespec"/> +<xsl:template match="objectinfo"/> +<xsl:template match="othername"/> +<xsl:template match="pagenums"/> +<xsl:template match="personblurb"/> +<xsl:template match="pubdate"/> +<xsl:template match="publisher"/> +<xsl:template match="publishername"/> +<xsl:template match="pubsnumber"/> +<xsl:template match="primary"/> +<xsl:template match="printhistory"/> + +<xsl:template match="refentryinfo"/> +<xsl:template match="refmeta"/> +<xsl:template match="refmiscinfo"/> +<xsl:template match="refsynopsisdivinfo"/> + +<xsl:template match="releaseinfo"/> +<xsl:template match="remark"/> + +<xsl:template match="revdescription"/> +<xsl:template match="revhistory"/> +<xsl:template match="revision"/> +<xsl:template match="revnumber"/> +<xsl:template match="revremark"/> + +<xsl:template match="screeninfo"/> +<xsl:template match="secondary"/> +<xsl:template match="seriesvolnums"/> +<xsl:template match="shortaffil"/> +<xsl:template match="sidebarinfo"/> +<xsl:template match="spanspec"/> +<xsl:template match="subject"/> +<xsl:template match="subjectset"/> +<xsl:template match="subjectterm"/> +<xsl:template match="surname"/> +<xsl:template match="tertiary"/> +<xsl:template match="titleabbrev"/> + +<xsl:template match="toc"/> +<xsl:template match="tocback"/> +<xsl:template match="tocchap"/> +<xsl:template match="tocentry"/> +<xsl:template match="tocfront"/> +<xsl:template match="toclevel1"/> +<xsl:template match="toclevel2"/> +<xsl:template match="toclevel3"/> +<xsl:template match="toclevel4"/> +<xsl:template match="toclevel5"/> +<xsl:template match="tocpart"/> + +<xsl:template match="volumenum"/> +<xsl:template match="year"/> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-synopsis.xsl b/stylesheets/db2html-synopsis.xsl new file mode 100644 index 00000000..31173c44 --- /dev/null +++ b/stylesheets/db2html-synopsis.xsl @@ -0,0 +1,621 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<!-- ======================================================================= --> + +<xsl:template name="synopsis.br"> + <xsl:if test=" + parent::classsynopsis or + following-sibling::constructorsynopsis or + following-sibling::destructorsynopsis or + following-sibling::fieldsynopsis or + following-sibling::methodsynopsis "> + <br/> + </xsl:if> +</xsl:template> + +<!-- == classsynopsis ====================================================== --> + +<xsl:template match="classsynopsisinfo"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match=" + classsynopsis | constructorsynopsis | fieldsynopsis | + methodsynopsis | destructorsynopsis "> + <xsl:param name="language"> + <xsl:choose> + <xsl:when test="@language"> + <xsl:value-of select="@language"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$classsynopsis_default_language"/> + </xsl:otherwise> + </xsl:choose> + </xsl:param> + + <xsl:choose> + <xsl:when test="$language = 'cpp'"> + <xsl:apply-templates select="." mode="classsynopsis.cpp"/> + </xsl:when> + <xsl:when test="$language = 'idl'"> + <xsl:apply-templates select="." mode="classsynopsis.idl"/> + </xsl:when> + <xsl:when test="$language = 'java'"> + <xsl:apply-templates select="." mode="classsynopsis.java"/> + </xsl:when> + <xsl:when test="$language = 'perl'"> + <xsl:apply-templates select="." mode="classsynopsis.perl"/> + </xsl:when> + <xsl:when test="$language = 'python'"> + <xsl:apply-templates select="." mode="classsynopsis.perl"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="."> + <xsl:with-param name="language" + select="$classsynopsis_default_language"/> + </xsl:apply-templates> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<!-- == cmdsynopsis ======================================================== --> + +<xsl:template match="cmdsynopsis"> + <div class="{name(.)}"> + <p> + <xsl:call-template name="anchor"/> + <xsl:for-each select="*"> + <xsl:if test="name(.) = 'command' and position() != 1"> + <br/> + </xsl:if> + <xsl:apply-templates select="."/> + </xsl:for-each> + </p> + </div> +</xsl:template> + +<xsl:template match="arg | group"> + <xsl:variable name="sepchar"> + <xsl:choose> + <xsl:when test="ancestor-or-self::*[@sepchar]"> + <xsl:value-of select="ancestor-or-self::[@sepchar][1]/@sepchar"/> + </xsl:when> + <xsl:otherwise> + <xsl:text> </xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:value-of select="$sepchar"/> + <xsl:choose> + <xsl:when test="@choice = 'plain'"> + <xsl:text> </xsl:text> + </xsl:when> + <xsl:when test="@choice = 'req'"> + <xsl:text>{</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>[</xsl:text> + </xsl:otherwise> + </xsl:choose> + <xsl:choose> + <xsl:when test="name(.) = 'group'"> + <xsl:for-each select="*"> + <xsl:if test="name(.) = 'arg' and position() != 1"> + <xsl:text> |</xsl:text> + </xsl:if> + <xsl:apply-templates select="."/> + </xsl:for-each> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates/> + </xsl:otherwise> + </xsl:choose> + <xsl:if test="@rep = 'repeat'"> + <xsl:text>...</xsl:text> + </xsl:if> + <xsl:choose> + <xsl:when test="@choice = 'plain'"> + <xsl:text> </xsl:text> + </xsl:when> + <xsl:when test="@choice = 'req'"> + <xsl:text>}</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>]</xsl:text> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="sbr"> + <br/> +</xsl:template> + +<xsl:template match="synopfragment"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template match="synopfragmentref"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<!-- == funcsynopsis ======================================================= --> + +<xsl:template match="funcsynopsisinfo"> + <pre class="{name(.)}"><xsl:apply-templates/></pre> +</xsl:template> + +<xsl:template match="funcdef"> + <code class="{name(.)}"> + <xsl:apply-templates/> + </code> +</xsl:template> + +<xsl:template match="funcparams"> + <xsl:text>(</xsl:text> + <xsl:apply-templates/> + <xsl:text>)</xsl:text> +</xsl:template> + +<xsl:template match="funcprototype"> + <p> + <code> + <xsl:apply-templates select="funcdef"/> + <xsl:text> (</xsl:text> + <xsl:for-each select="*"> + <xsl:apply-templates select="."/> + <xsl:if test="position() != last()"> + <xsl:text>, </xsl:text> + </xsl:if> + </xsl:for-each> + <xsl:text>);</xsl:text> + </code> + </p> +</xsl:template> + +<xsl:template match="paramdef"> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="varargs"> + <xsl:text>...</xsl:text> +</xsl:template> + +<xsl:template match="void"> + <xsl:text>void</xsl:text> +</xsl:template> + +<!-- == synopsis.cpp.mode ================================================== --> + +<xsl:template mode="synopsis.cpp.mode" match="*"> + <xsl:apply-templates select="."/> +</xsl:template> + +<xsl:template mode="synopsis.cpp.mode" match="classsynopsis"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.cpp.mode" match="classsynopsisinfo"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.cpp.mode" match="classname"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.cpp.mode" match="constructorsynopsis"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.cpp.mode" match="destructorsynopsis"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.cpp.mode" match="exceptionname"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.cpp.mode" match="fieldsynopsis"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.cpp.mode" match="initializer"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.cpp.mode" match="interfacename"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.cpp.mode" match="methodname"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.cpp.mode" match="methodparam"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.cpp.mode" match="methodsynopsis"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.cpp.mode" match="modifier"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.cpp.mode" match="ooclass"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.cpp.mode" match="ooexception"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.cpp.mode" match="oointerface"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.cpp.mode" match="parameter"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.cpp.mode" match="type"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.cpp.mode" match="varname"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.cpp.mode" match="void"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<!-- == synopsis.idl.mode ================================================== --> + +<xsl:template mode="synopsis.idl.mode" match="*"> + <xsl:apply-templates select="."/> +</xsl:template> + +<xsl:template mode="synopsis.idl.mode" match="classsynopsis"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.idl.mode" match="classsynopsisinfo"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.idl.mode" match="classname"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.idl.mode" match="constructorsynopsis"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.idl.mode" match="destructorsynopsis"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.idl.mode" match="exceptionname"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.idl.mode" match="fieldsynopsis"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.idl.mode" match="initializer"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.idl.mode" match="interfacename"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.idl.mode" match="methodname"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.idl.mode" match="methodparam"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.idl.mode" match="methodsynopsis"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.idl.mode" match="modifier"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.idl.mode" match="ooclass"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.idl.mode" match="ooexception"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.idl.mode" match="oointerface"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.idl.mode" match="parameter"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.idl.mode" match="type"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.idl.mode" match="varname"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.idl.mode" match="void"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<!-- == synopsis.java.mode ================================================= --> + +<xsl:template mode="synopsis.java.mode" match="*"> + <xsl:apply-templates select="."/> +</xsl:template> + +<xsl:template mode="synopsis.java.mode" match="classsynopsis"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.java.mode" match="classsynopsisinfo"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.java.mode" match="classname"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.java.mode" match="constructorsynopsis"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.java.mode" match="destructorsynopsis"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.java.mode" match="exceptionname"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.java.mode" match="fieldsynopsis"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.java.mode" match="initializer"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.java.mode" match="interfacename"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.java.mode" match="methodname"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.java.mode" match="methodparam"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.java.mode" match="methodsynopsis"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.java.mode" match="modifier"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.java.mode" match="ooclass"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.java.mode" match="ooexception"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.java.mode" match="oointerface"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.java.mode" match="parameter"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.java.mode" match="type"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.java.mode" match="varname"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.java.mode" match="void"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<!-- == synopsis.perl.mode ================================================= --> + +<xsl:template mode="synopsis.perl.mode" match="*"> + <xsl:apply-templates select="."/> +</xsl:template> + +<xsl:template mode="synopsis.perl.mode" match="classsynopsis"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.perl.mode" match="classsynopsisinfo"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.perl.mode" match="classname"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.perl.mode" match="constructorsynopsis"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.perl.mode" match="destructorsynopsis"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.perl.mode" match="exceptionname"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.perl.mode" match="fieldsynopsis"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.perl.mode" match="initializer"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.perl.mode" match="interfacename"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.perl.mode" match="methodname"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.perl.mode" match="methodparam"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.perl.mode" match="methodsynopsis"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.perl.mode" match="modifier"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.perl.mode" match="ooclass"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.perl.mode" match="ooexception"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.perl.mode" match="oointerface"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.perl.mode" match="parameter"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.perl.mode" match="type"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.perl.mode" match="varname"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.perl.mode" match="void"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<!-- == synopsis.python.mode ================================================= --> + +<xsl:template mode="synopsis.python.mode" match="*"> + <xsl:apply-templates select="."/> +</xsl:template> + +<xsl:template mode="synopsis.python.mode" match="classsynopsis"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.python.mode" match="classsynopsisinfo"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.python.mode" match="classname"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.python.mode" match="constructorsynopsis"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.python.mode" match="destructorsynopsis"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.python.mode" match="exceptionname"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.python.mode" match="fieldsynopsis"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.python.mode" match="initializer"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.python.mode" match="interfacename"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.python.mode" match="methodname"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.python.mode" match="methodparam"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.python.mode" match="methodsynopsis"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.python.mode" match="modifier"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.python.mode" match="ooclass"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.python.mode" match="ooexception"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.python.mode" match="oointerface"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.python.mode" match="parameter"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.python.mode" match="type"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.python.mode" match="varname"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template mode="synopsis.python.mode" match="void"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<!-- ======================================================================= --> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-table.xsl b/stylesheets/db2html-table.xsl new file mode 100644 index 00000000..c86c68b8 --- /dev/null +++ b/stylesheets/db2html-table.xsl @@ -0,0 +1,603 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> +<xsl:template name="entry" match="entry | entrytbl"> + <xsl:param name="colspecs"/> + <xsl:param name="spanspecs"/> + <xsl:param name="colsep" select="false()"/> + <xsl:param name="rowsep" select="false()"/> + <xsl:param name="col" select="1"/> + <xsl:param name="spans"/> + <xsl:variable name="named.colnum"> + <xsl:call-template name="entry.colnum"> + <xsl:with-param name="colspecs" select="$colspecs"/> + <xsl:with-param name="spanspecs" select="$spanspecs"/> + <xsl:with-param name="entry" select="."/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="entry.colnum"> + <xsl:choose> + <xsl:when test="$named.colnum > 0"> + <xsl:value-of select="$named.colnum"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$col"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:variable name="entry.colspan"> + <xsl:choose> + <xsl:when test="@spanname or @namest"> + <xsl:call-template name="calculate.colspan"> + <xsl:with-param name="colspecs" select="$colspecs"/> + <xsl:with-param name="spanspecs" select="$spanspecs"/> + <xsl:with-param name="entry" select="."/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:variable name="following.spans"> + <xsl:call-template name="calculate.following.spans"> + <xsl:with-param name="colspecs" select="$colspecs"/> + <xsl:with-param name="spanspecs" select="$spanspecs"/> + <xsl:with-param name="colspan" select="$entry.colspan"/> + <xsl:with-param name="spans" select="$spans"/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="element"> + <xsl:choose> + <xsl:when + test="name(../..) = 'thead' or name(../..) = 'tfoot'">th</xsl:when> + <xsl:otherwise>td</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:variable name="style"> + <xsl:if test="(following-sibling::*) and ( + (@colsep = '1') or + ($colspecs[@colname = current()/@colname]/@colsep = '1') or + ($colspecs[@colname = current()/@nameend]/@colsep = '1') or + ($spanspecs[@spanname = current()/@spanname]/@colsep = '1') or + ($colsep = '1' and ( + (@colsep != '0') or + ($colspecs[@colname = current()/@colname]/@colsep != '0') or + ($colspecs[@colname = current()/@nameend]/@colsep != '0') or + ($spanspecs[@spanname = current()/@spanname]/@colsep != '0') + )) )"> + <xsl:text>border-right: outset 1px; </xsl:text> + </xsl:if> + <xsl:if test="(../following-sibling::*) and ( + (@rowsep = '1') or + ($colspecs[@colname = current()/@colname]/@rowsep = '1') or + ($colspecs[@colname = current()/@namest]/@rowsep = '1') or + ($spanspecs[@spanname = current()/@spanname]/@rowsep = '1') or + ($rowsep = '1' and ( + (@rowsep != '0') or + ($colspecs[@colname = current()/@colname]/@rowsep != '0') or + ($colspecs[@colname = current()/@namest]/@rowsep != '0') or + ($spanspecs[@spanname = current()/@spanname]/@rowsep != '0') + )) )"> + <xsl:text>border-bottom: outset 1px; </xsl:text> + </xsl:if> + <xsl:choose> + <xsl:when test="@align"> + <xsl:text>text-align: </xsl:text> + <xsl:value-of select="@align"/> + <xsl:text>; </xsl:text> + </xsl:when> + <xsl:when + test="$colspecs[@colname = current()/@colname]/@align"> + <xsl:text>text-align: </xsl:text> + <xsl:value-of + select="$colspecs[@colname = current()/@colname]/@align"/> + <xsl:text>; </xsl:text> + </xsl:when> + <xsl:when + test="$colspecs[@colname = current()/@namest]/@align"> + <xsl:text>text-align: </xsl:text> + <xsl:value-of + select="$colspecs[@colname = current()/@namest]/@align"/> + <xsl:text>; </xsl:text> + </xsl:when> + <xsl:when + test="$spanspecs[@spanname = current()/@spanname]/@align"> + <xsl:text>text-align: </xsl:text> + <xsl:value-of + select="$spanspecs[@spanname = current()/@spanname]/@align"/> + <xsl:text>; </xsl:text> + </xsl:when> + <xsl:when test="../../../@align"> + <xsl:text>text-align: </xsl:text> + <xsl:value-of select="../../../@align"/> + <xsl:text>; </xsl:text> + </xsl:when> + </xsl:choose> + <xsl:choose> + <xsl:when test="@valign"> + <xsl:text>vertical-align: </xsl:text> + <xsl:value-of select="@valign"/> + <xsl:text>; </xsl:text> + </xsl:when> + <xsl:when + test="$colspecs[@colname = current()/@colname]/@valign"> + <xsl:text>vertical-align: </xsl:text> + <xsl:value-of + select="$colspecs[@colname = current()/@colname]/@valign"/> + <xsl:text>; </xsl:text> + </xsl:when> + <xsl:when + test="$colspecs[@colname = current()/@namest]/@valign"> + <xsl:text>vertical-align: </xsl:text> + <xsl:value-of + select="$colspecs[@colname = current()/@namest]/@valign"/> + <xsl:text>; </xsl:text> + </xsl:when> + <xsl:when + test="$spanspecs[@spanname = current()/@spanname]/@valign"> + <xsl:text>vertical-align: </xsl:text> + <xsl:value-of + select="$spanspecs[@spanname = current()/@spanname]/@valign"/> + <xsl:text>; </xsl:text> + </xsl:when> + <xsl:when test="../@valign"> + <xsl:text>vertical-align: </xsl:text> + <xsl:value-of select="../@valign"/> + <xsl:text>; </xsl:text> + </xsl:when> + <xsl:when test="../../@valign"> + <xsl:text>vertical-align: </xsl:text> + <xsl:value-of select="../../@valign"/> + <xsl:text>; </xsl:text> + </xsl:when> + </xsl:choose> + </xsl:variable> + <xsl:choose> + <xsl:when test="$spans != '' and not(starts-with($spans, '0:'))"> + <xsl:call-template name="entry"> + <xsl:with-param name="colspecs" select="$colspecs"/> + <xsl:with-param name="spanspecs" select="$spanspecs"/> + <xsl:with-param name="col" select="$col + 1"/> + <xsl:with-param name="spans" select="substring-after($spans, ':')"/> + </xsl:call-template> + </xsl:when> + <xsl:when test="$entry.colnum > $col"> + <td> + <xsl:if test="$style"> + <xsl:attribute name="style"> + <xsl:value-of select="$style"/> + </xsl:attribute> + </xsl:if> + <xsl:text> </xsl:text> + </td> + <xsl:call-template name="entry"> + <xsl:with-param name="colspecs" select="$colspecs"/> + <xsl:with-param name="spanspecs" select="$spanspecs"/> + <xsl:with-param name="col" select="$col + 1"/> + <xsl:with-param name="spans" select="substring-after($spans, ':')"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:variable name="char"> + <xsl:choose> + <xsl:when test="@char"> + <xsl:value-of select="@char"/> + </xsl:when> + <xsl:when + test="$colspecs[@colname = current()/@colname]/@char"> + <xsl:value-of + select="$colspecs[@colname = current()/@colname]/@char"/> + </xsl:when> + <xsl:when + test="$colspecs[@colname = current()/@namest]/@char"> + <xsl:value-of + select="$colspecs[@colname = current()/@namest]/@char"/> + </xsl:when> + <xsl:when + test="$spanspecs[@spanname = current()/@spanname]/@char"> + <xsl:value-of + select="$spanspecs[@spanname = current()/@spanname]/@char"/> + </xsl:when> + <xsl:when test="../../../@char"> + <xsl:value-of select="../../@char"/> + </xsl:when> + </xsl:choose> + </xsl:variable> + <xsl:variable name="charoff"> + <xsl:choose> + <xsl:when test="@charoff"> + <xsl:value-of select="@charoff"/> + </xsl:when> + <xsl:when + test="$colspecs[@colname = current()/@colname]/@charoff"> + <xsl:value-of + select="$colspecs[@colname = current()/@colname]/@charoff"/> + </xsl:when> + <xsl:when + test="$colspecs[@colname = current()/@namest]/@charoff"> + <xsl:value-of + select="$colspecs[@colname = current()/@namest]/@charoff"/> + </xsl:when> + <xsl:when + test="$spanspecs[@spanname = current()/@spanname]/@charoff"> + <xsl:value-of + select="$spanspecs[@spanname = current()/@spanname]/@charoff"/> + </xsl:when> + <xsl:when test="../../../@charoff"> + <xsl:value-of select="../../@charoff"/> + </xsl:when> + </xsl:choose> + </xsl:variable> + <xsl:element name="{$element}"> + <xsl:if test="$style != ''"> + <xsl:attribute name="style"> + <xsl:value-of select="$style"/> + </xsl:attribute> + </xsl:if> + <xsl:if test="@morerows > 0"> + <xsl:attribute name="rowspan"> + <xsl:value-of select="@morerows + 1"/> + </xsl:attribute> + </xsl:if> + <xsl:if test="$entry.colspan > 1"> + <xsl:attribute name="colspan"> + <xsl:value-of select="$entry.colspan"/> + </xsl:attribute> + </xsl:if> + <xsl:if test="$char != ''"> + <xsl:attribute name="char"> + <xsl:value-of select="$char"/> + </xsl:attribute> + </xsl:if> + <xsl:if test="$charoff != ''"> + <xsl:attribute name="charoff"> + <xsl:value-of select="$charoff"/> + </xsl:attribute> + </xsl:if> + <xsl:apply-templates/> + </xsl:element> + <xsl:apply-templates select="following-sibling::*[1]"> + <xsl:with-param name="colspecs" select="$colspecs"/> + <xsl:with-param name="spanspecs" select="$spanspecs"/> + <xsl:with-param name="colsep" select="$colsep"/> + <xsl:with-param name="rowsep" select="$rowsep"/> + <xsl:with-param name="col" select="$col + $entry.colspan"/> + <xsl:with-param name="spans" select="$following.spans"/> + </xsl:apply-templates> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template match="tbody | tfoot | thead"> + <xsl:param name="colspecs"/> + <xsl:param name="spanspecs"/> + <xsl:param name="colsep" select="false()"/> + <xsl:param name="rowsep" select="false()"/> + <xsl:element name="{name(.)}"> + <xsl:if test="@valign"> + <xsl:attribute name="valign"> + <xsl:value-of select="@valign"/> + </xsl:attribute> + </xsl:if> + <xsl:choose> + <xsl:when test="colspec"> + <xsl:apply-templates select="row[1]"> + <xsl:with-param name="colspecs" select="colspec"/> + <xsl:with-param name="spanspecs" select="spanspec"/> + <xsl:with-param name="colsep" select="$colsep"/> + <xsl:with-param name="rowsep" select="$rowsep"/> + </xsl:apply-templates> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="row[1]"> + <xsl:with-param name="colspecs" select="$colspecs"/> + <xsl:with-param name="spanspecs" select="$spanspecs"/> + <xsl:with-param name="colsep" select="$colsep"/> + <xsl:with-param name="rowsep" select="$rowsep"/> + </xsl:apply-templates> + </xsl:otherwise> + </xsl:choose> + </xsl:element> +</xsl:template> + +<xsl:template match="tgroup"> + <xsl:variable name="style"> + <xsl:if test="(../@frame) and (../@frame != 'all')"> + <xsl:text>border: none; </xsl:text> + </xsl:if> + <xsl:if test="../@frame = 'bottom' or ../@frame = 'topbot'"> + <xsl:text>border-bottom: outset 1px; </xsl:text> + </xsl:if> + <xsl:if test="../@frame = 'top' or ../@frame = 'topbot'"> + <xsl:text>border-top: outset 1px; </xsl:text> + </xsl:if> + <xsl:if test="../@frame = 'sides'"> + <xsl:text>border-left: outset 1px; border-right: outset 1px; </xsl:text> + </xsl:if> + </xsl:variable> + <table> + <xsl:if test="../title"> + <xsl:attribute name="summary"> + <xsl:value-of select="../title"/> + </xsl:attribute> + </xsl:if> + <xsl:if test="../@pgwide = '1'"> + <xsl:attribute name="width">100%</xsl:attribute> + </xsl:if> + <xsl:if test="string($style) != ''"> + <xsl:attribute name="style"> + <xsl:value-of select="$style"/> + </xsl:attribute> + </xsl:if> + <xsl:apply-templates select="thead"> + <xsl:with-param name="colspecs" select="colspec"/> + <xsl:with-param name="spanspecs" select="spanspec"/> + <xsl:with-param name="colsep" select="@colsep = '1'"/> + <xsl:with-param name="rowsep" select="@rowsep = '1'"/> + </xsl:apply-templates> + <xsl:apply-templates select="tbody"> + <xsl:with-param name="colspecs" select="colspec"/> + <xsl:with-param name="spanspecs" select="spanspec"/> + <xsl:with-param name="colsep" select="@colsep = '1'"/> + <xsl:with-param name="rowsep" select="@rowsep = '1'"/> + </xsl:apply-templates> + <xsl:apply-templates select="tfoot"> + <xsl:with-param name="colspecs" select="colspec"/> + <xsl:with-param name="spanspecs" select="spanspec"/> + <xsl:with-param name="colsep" select="@colsep = '1'"/> + <xsl:with-param name="rowsep" select="@rowsep = '1'"/> + </xsl:apply-templates> + </table> +</xsl:template> + +<xsl:template match="row"> + <xsl:param name="colspecs"/> + <xsl:param name="spanspecs"/> + <xsl:param name="colsep" select="false()"/> + <xsl:param name="rowsep" select="false()"/> + <xsl:param name="spans"/> + <tr> + <xsl:if test="name(..) = 'tbody'"> + <xsl:attribute name="class"> + <xsl:choose> + <xsl:when + test="count(preceding-sibling::row) mod 2">odd</xsl:when> + <xsl:otherwise>even</xsl:otherwise> + </xsl:choose> + </xsl:attribute> + </xsl:if> + <xsl:apply-templates select="*[1]"> + <xsl:with-param name="colspecs" select="$colspecs"/> + <xsl:with-param name="spanspecs" select="$spanspecs"/> + <xsl:with-param name="colsep" select="$colsep"/> + <xsl:with-param name="rowsep" select=" + (@rowsep = '1') or ((@rowsep != '0') and $rowsep)"/> + <xsl:with-param name="spans" select="$spans"/> + </xsl:apply-templates> + </tr> + <xsl:apply-templates select="following-sibling::row[1]"> + <xsl:with-param name="colspecs" select="$colspecs"/> + <xsl:with-param name="spanspecs" select="$spanspecs"/> + <xsl:with-param name="colsep" select="$colsep"/> + <xsl:with-param name="rowsep" select="$rowsep"/> + <xsl:with-param name="spans"> + <xsl:apply-templates select="*[1]" mode="span"> + <xsl:with-param name="colspecs" select="$colspecs"/> + <xsl:with-param name="spanspecs" select="$spanspecs"/> + <xsl:with-param name="spans" select="$spans"/> + </xsl:apply-templates> + </xsl:with-param> + </xsl:apply-templates> +</xsl:template> + +<!-- ======================================================================= --> + +<xsl:template mode="span" name="entry.span" match="entry | entrytbl"> + <xsl:param name="colspecs"/> + <xsl:param name="spanspecs"/> + <xsl:param name="col" select="1"/> + <xsl:param name="spans"/> + <xsl:variable name="entry.colnum"> + <xsl:call-template name="entry.colnum"> + <xsl:with-param name="colspecs" select="$colspecs"/> + <xsl:with-param name="spanspecs" select="$spanspecs"/> + <xsl:with-param name="entry" select="."/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="entry.colspan"> + <xsl:choose> + <xsl:when test="@spanname or @namest"> + <xsl:call-template name="calculate.colspan"> + <xsl:with-param name="colspecs" select="$colspecs"/> + <xsl:with-param name="spanspecs" select="$spanspecs"/> + <xsl:with-param name="entry" select="."/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:variable name="following.spans"> + <xsl:call-template name="calculate.following.spans"> + <xsl:with-param name="colspecs" select="$colspecs"/> + <xsl:with-param name="spanspecs" select="$spanspecs"/> + <xsl:with-param name="colspan" select="$entry.colspan"/> + <xsl:with-param name="spans" select="$spans"/> + </xsl:call-template> + </xsl:variable> + <xsl:choose> + <xsl:when test="$spans != '' and not(starts-with($spans, '0:'))"> + <xsl:value-of select="substring-before($spans, ':') - 1"/> + <xsl:text>:</xsl:text> + <xsl:call-template name="entry.span"> + <xsl:with-param name="colspecs" select="$colspecs"/> + <xsl:with-param name="spanspecs" select="$spanspecs"/> + <xsl:with-param name="col" select="$col + 1"/> + <xsl:with-param name="spans" select="substring-after($spans, ':')"/> + </xsl:call-template> + </xsl:when> + <xsl:when test="$entry.colnum > $col"> + <xsl:text>0:</xsl:text> + <xsl:call-template name="entry.span"> + <xsl:with-param name="colspecs" select="$colspecs"/> + <xsl:with-param name="spanspecs" select="$spanspecs"/> + <xsl:with-param name="col" select="$col + $entry.colspan"/> + <xsl:with-param name="spans" select="$following-spans"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="copy-string"> + <xsl:with-param name="count" select="$entry.colspan"/> + <xsl:with-param name="string"> + <xsl:choose> + <xsl:when test="@morerows"> + <xsl:value-of select="@morerows"/> + </xsl:when> + <xsl:otherwise>0</xsl:otherwise> + </xsl:choose> + <xsl:text>:</xsl:text> + </xsl:with-param> + </xsl:call-template> + <xsl:if test="following-sibling::*"> + <xsl:apply-templates select="following-sibling::*[1]" mode="span"> + <xsl:with-param name="colspecs" select="$colspecs"/> + <xsl:with-param name="spanspecs" select="$spanspecs"/> + <xsl:with-param name="col" select="$col + $entry.colspan"/> + <xsl:with-param name="spans" select="$following.spans"/> + </xsl:apply-templates> + </xsl:if> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template name="entry.colnum"> + <xsl:param name="colspecs"/> + <xsl:param name="spanspecs"/> + <xsl:param name="entry" select="."/> + <xsl:choose> + <xsl:when test="$entry/@spanname"> + <xsl:variable name="spanspec" + select="$spanspecs[@spanname = $entry/@spanname]"/> + <xsl:variable name="colspec" + select="$colspecs[@colname = $spanspec/@namest]"/> + <xsl:call-template name="colspec.colnum"> + <xsl:with-param name="colspecs" select="$colspecs"/> + <xsl:with-param name="spanspecs" select="$spanspecs"/> + <xsl:with-param name="colspec" select="$colspec"/> + </xsl:call-template> + </xsl:when> + <xsl:when test="$entry/@colname"> + <xsl:variable name="colspec" + select="$colspecs[@colname = $entry/@colname]"/> + <xsl:call-template name="colspec.colnum"> + <xsl:with-param name="colspecs" select="$colspecs"/> + <xsl:with-param name="spanspecs" select="$spanspecs"/> + <xsl:with-param name="colspec" select="$colspec"/> + </xsl:call-template> + </xsl:when> + <xsl:when test="$entry/@namest"> + <xsl:variable name="colspec" + select="$colspecs[@colname = $entry/namest]"/> + <xsl:call-template name="colspec.colnum"> + <xsl:with-param name="colspecs" select="$colspecs"/> + <xsl:with-param name="spanspecs" select="$spanspecs"/> + <xsl:with-param name="colspec" select="$colspec"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise>0</xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template name="colspec.colnum"> + <xsl:param name="colspecs"/> + <xsl:param name="spanspecs"/> + <xsl:param name="colspec" select="."/> + <xsl:choose> + <xsl:when test="$colspec/@colnum"> + <xsl:value-of select="$colspec/@colnum"/> + </xsl:when> + <xsl:when test="$colspec/preceding-sibling::colspec"> + <xsl:variable name="prec.colspec.colnum"> + <xsl:call-template name="colspec.colnum"> + <xsl:with-param name="colspecs" select="$colspecs"/> + <xsl:with-param name="spanspecs" select="$spanspecs"/> + <xsl:with-param name="colspec" + select="$colspec/preceding-sibling::colspec[1]"/> + </xsl:call-template> + </xsl:variable> + <xsl:value-of select="$prec.colspec.colnum + 1"/> + </xsl:when> + <xsl:otherwise>1</xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template name="calculate.colspan"> + <xsl:param name="colspecs"/> + <xsl:param name="spanspecs"/> + <xsl:param name="entry" select="."/> + <xsl:variable name="namest"> + <xsl:choose> + <xsl:when test="$entry/@spanname"> + <xsl:value-of + select="$spanspecs[@spanname = $entry/@spanname]/@namest"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$entry/@namest"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:variable name="nameend"> + <xsl:choose> + <xsl:when test="$entry/@spanname"> + <xsl:value-of + select="$spanspecs[@spanname = $entry/@spanname]/@nameend"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$entry/@nameend"/> + </xsl:otherwise> + </xsl:choose> + </xsl:variable> + <xsl:variable name="colnumst"> + <xsl:call-template name="colspec.colnum"> + <xsl:with-param name="colspecs" select="$colspecs"/> + <xsl:with-param name="spanspecs" select="$spanspecs"/> + <xsl:with-param name="colspec" select="$colspecs[@colname = $namest]"/> + </xsl:call-template> + </xsl:variable> + <xsl:variable name="colnumend"> + <xsl:call-template name="colspec.colnum"> + <xsl:with-param name="colspecs" select="$colspecs"/> + <xsl:with-param name="spanspecs" select="$spanspecs"/> + <xsl:with-param name="colspec" select="$colspecs[@colname = $nameend]"/> + </xsl:call-template> + </xsl:variable> + <xsl:choose> + <xsl:when test="$namest = '' or $nameend = ''">1</xsl:when> + <xsl:when test="$colnumend > $colnumst"> + <xsl:value-of select="$colnumend - $colnumst + 1"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$colnumst - $colnumend + 1"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template name="calculate.following.spans"> + <xsl:param name="colspecs"/> + <xsl:param name="spanspecs"/> + <xsl:param name="colspan" select="1"/> + <xsl:param name="spans" select="''"/> + <xsl:choose> + <xsl:when test="$colspan > 0"> + <xsl:call-template name="calculate.following.spans"> + <xsl:with-param name="colspecs" select="$colspecs"/> + <xsl:with-param name="spanspecs" select="$spanspecs"/> + <xsl:with-param name="colspan" select="$colspan - 1"/> + <xsl:with-param name="spans" select="substring-after($spans, ':')"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$spans"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-title.xsl b/stylesheets/db2html-title.xsl new file mode 100644 index 00000000..defdd417 --- /dev/null +++ b/stylesheets/db2html-title.xsl @@ -0,0 +1,129 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> +<!DOCTYPE xsl:stylesheet [ +<!ENTITY is-info " +(name(.) = 'appendixinfo') or (name(.) = 'articleinfo') or +(name(.) = 'bibliographyinfo') or (name(.) = 'blockinfo') or +(name(.) = 'bookinfo') or (name(.) = 'chapterinfo') or +(name(.) = 'glossaryinfo') or (name(.) = 'indexinfo') or +(name(.) = 'objectinfo') or (name(.) = 'partinfo') or +(name(.) = 'prefaceinfo') or (name(.) = 'refentryinfo') or +(name(.) = 'referenceinfo') or (name(.) = 'refsect1info') or +(name(.) = 'refsect2info') or (name(.) = 'refsect3info') or +(name(.) = 'refsectioninfo') or (name(.) = 'refsynopsisdivinfo') or +(name(.) = 'sect1info') or (name(.) = 'sect2info') or +(name(.) = 'sect3info') or (name(.) = 'sect4info') or +(name(.) = 'sect5info') or (name(.) = 'sectioninfo') or +(name(.) = 'setinfo') or (name(.) = 'setindexinfo') or +(name(.) = 'sidebarinfo') "> +]> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<!-- ======================================================================= --> + +<xsl:template mode="title.text.mode" match="*"> + <xsl:choose> + <xsl:when test="title"> + <xsl:value-of select="title"/> + </xsl:when> + <xsl:when test="(&is-info;) and ../title"> + <xsl:value-of select="../title"/> + </xsl:when> + <xsl:when test="*[&is-info;]/title"> + <xsl:value-of select="*[&is-info;]/title"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="." mode="node.header.inline.mode"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template mode="title.text.mode" match="refentry"> + <xsl:choose> + <xsl:when test="refmeta/refentrytitle"> + <xsl:value-of select="refmeta/refentrytitle"/> + </xsl:when> + <xsl:when test="refentryinfo/title"> + <xsl:value-of select="refentryinfo/title"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="." mode="node.header.inline.mode"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<!-- ======================================================================= --> + +<xsl:template mode="titleabbrev.text.mode" match="*"> + <xsl:choose> + <xsl:when test="titleabbrev"> + <xsl:value-of select="titleabbrev"/> + </xsl:when> + <xsl:when test="(&is-info;) and ../titleabbrev"> + <xsl:value-of select="../titleabbrev"/> + </xsl:when> + <xsl:when test="*[&is-info;]/titleabbrev"> + <xsl:value-of select="*[&is-info;]/titleabbrev"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="." mode="title.text.mode"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<!-- ======================================================================= --> + +<xsl:template mode="title.inline.mode" match="*"> + <xsl:choose> + <xsl:when test="title"> + <xsl:apply-templates select="title/node()"/> + </xsl:when> + <xsl:when test="(&is-info;) and ../title"> + <xsl:apply-templates select="../title/node()"/> + </xsl:when> + <xsl:when test="*[&is-info;]/title"> + <xsl:apply-templates select="*[&is-info;]/title/node()"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="." mode="node.header.inline.mode"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<xsl:template mode="title.inline.mode" match="refentry"> + <xsl:choose> + <xsl:when test="refmeta/refentrytitle"> + <xsl:value-of select="refmeta/refentrytitle"/> + </xsl:when> + <xsl:when test="refentryinfo/title"> + <xsl:value-of select="refentryinfo/title"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="." mode="node.header.inline.mode"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<!-- ======================================================================= --> + +<xsl:template mode="titleabbrev.inline.mode" match="*"> + <xsl:choose> + <xsl:when test="titleabbrev"> + <xsl:apply-templates select="titleabbrev/node()"/> + </xsl:when> + <xsl:when test="(&is-info;) and ../titleabbrev"> + <xsl:apply-templates select="../titleabbrev/node()"/> + </xsl:when> + <xsl:when test="*[&is-info;]/titleabbrev"> + <xsl:apply-templates select="*[&is-info;]/titleabbrev/node()"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="." mode="title.inline.mode"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<!-- ======================================================================= --> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-titlepage.xsl b/stylesheets/db2html-titlepage.xsl new file mode 100644 index 00000000..d89b15b3 --- /dev/null +++ b/stylesheets/db2html-titlepage.xsl @@ -0,0 +1,402 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<xsl:template mode="content.mode" match=" + appendixinfo | articleinfo | bibliographyinfo | bookinfo | + chapterinfo | glossaryinfo | indexinfo | partinfo | + prefaceinfo | refentryinfo | referenceinfo | refsect1info | + refsect2info | refsect3info | refsectioninfo | sect1info | + sect2info | sect3info | sect4info | sect5info | + sectioninfo | setinfo | setindexinfo "> + <xsl:apply-templates select="."/> +</xsl:template> + +<xsl:template match=" + appendixinfo | articleinfo | bibliographyinfo | bookinfo | + chapterinfo | glossaryinfo | indexinfo | partinfo | + prefaceinfo | refentryinfo | referenceinfo | refsect1info | + refsect2info | refsect3info | refsectioninfo | sect1info | + sect2info | sect3info | sect4info | sect5info | + sectioninfo | setinfo | setindexinfo "> + + <xsl:variable name="authors" + select="author|authorgroup/author|corpauthor|authorgroup/corpauthor"/> + <xsl:variable name="editors" select="editor|authorgroup/editor"/> + <xsl:variable name="collabs" select="collab|authorgroup/collab"/> + <xsl:variable name="credits" + select="contrib|othercredit|authorgroup/othercredit"/> + + <div class="titlepage"> + <xsl:call-template name="anchor"> + <xsl:with-param name="name" select="'titlepage'"/> + </xsl:call-template> + <xsl:if test="not(title) and ../title"> + <xsl:apply-templates select="../title" mode="titlepage.mode"/> + </xsl:if> + <xsl:if test="not(subtitle) and ../subtitle"> + <xsl:apply-templates select="../subtitle" mode="titlepage.mode"/> + </xsl:if> + <xsl:if test="$authors"> + <div> + <h2 class="author"> + <xsl:call-template name="ngettext"> + <xsl:with-param name="key" select="'Author'"/> + <xsl:with-param name="num" select="count($authors)"/> + </xsl:call-template> + </h2> + <dl> + <xsl:apply-templates select="$authors" mode="titlepage.mode"/> + </dl> + </div> + </xsl:if> + <xsl:if test="$editors"> + <div> + <h2 class="editor"> + <xsl:call-template name="ngettext"> + <xsl:with-param name="key" select="'Editor'"/> + <xsl:with-param name="num" select="count($editors)"/> + </xsl:call-template> + </h2> + <dl> + <xsl:apply-templates select="$editors" mode="titlepage.mode"/> + </dl> + </div> + </xsl:if> + <xsl:if test="$collabs"> + <div> + <h2 class="collab"> + <xsl:call-template name="ngettext"> + <xsl:with-param name="key" select="'Collaborator'"/> + <xsl:with-param name="num" select="count($collabs)"/> + </xsl:call-template> + </h2> + <dl> + <xsl:apply-templates select="$collabs" mode="titlepage.mode"/> + </dl> + </div> + </xsl:if> + <xsl:if test="$credits"> + <div> + <h2 class="othercredit"> + <xsl:call-template name="ngettext"> + <xsl:with-param name="key" select="'Other Contributor'"/> + <xsl:with-param name="num" select="count($credits)"/> + </xsl:call-template> + </h2> + <dl> + <xsl:apply-templates select="$credits" mode="titlepage.mode"/> + </dl> + </div> + </xsl:if> + <xsl:if test="publisher"> + <div> + <h2 class="publisher"> + <xsl:call-template name="ngettext"> + <xsl:with-param name="key" select="'Publisher'"/> + <xsl:with-param name="num" select="count(publisher)"/> + </xsl:call-template> + </h2> + <dl> + <xsl:apply-templates select="publisher" mode="titlepage.mode"/> + </dl> + </div> + </xsl:if> + <xsl:if test="copyright"> + <div> + <h2 class="copyright"> + <xsl:call-template name="ngettext"> + <xsl:with-param name="key" select="'Copyright'"/> + <xsl:with-param name="num" select="count(copyright)"/> + </xsl:call-template> + </h2> + <dl> + <xsl:apply-templates select="copyright" mode="titlepage.mode"/> + </dl> + </div> + </xsl:if> + <xsl:apply-templates select="legalnotice" mode="titlepage.mode"/> + <xsl:apply-templates select="revhistory" mode="titlepage.mode"/> + </div> +</xsl:template> + +<xsl:template match="*" mode="titlepage.mode"> + <xsl:apply-templates select="."/> +</xsl:template> + +<!-- +<xsl:template match="abstract" mode="titlepage.mode"> + <div class="{name(.)}"> + <xsl:call-template name="formal.object.heading"> + <xsl:with-param name="title"> + <xsl:apply-templates select="." mode="title.markup"/> + </xsl:with-param> + </xsl:call-template> + <xsl:apply-templates mode="titlepage.mode"/> + </div> +</xsl:template> + +<xsl:template match="abstract/title" mode="titlepage.mode"> +</xsl:template> +--> + +<xsl:template match="authorinitials" mode="titlepage.mode"> + <span class="{name(.)}"> + <xsl:apply-templates mode="titlepage.mode"/> + </span> +</xsl:template> + +<xsl:template match="author" mode="titlepage.mode"> + <dt><xsl:call-template name="person.name"/></dt> + <xsl:for-each select="affiliation/orgname"> + <dd> + <strong> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Affiliation'"/> + </xsl:call-template> + <xsl:text>: </xsl:text> + </strong> + <xsl:apply-templates select="." mode="titlepage.mode"/> + </dd> + </xsl:for-each> + <xsl:for-each select="email"> + <dd> + <strong> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Email'"/> + </xsl:call-template> + <xsl:text>: </xsl:text> + </strong> + <xsl:apply-templates select="." mode="titlepage.mode"/> + </dd> + </xsl:for-each> + <xsl:apply-templates select="authorblurb | personblurb"/> +</xsl:template> + +<xsl:template match="authorblurb" mode="titlepage.mode"> + <dd><xsl:apply-templates mode="titlepage.mode"/></dd> +</xsl:template> + +<xsl:template match="collab" mode="titlepage.mode"> + <dt> + <xsl:apply-templates select="collabname" mode="titlepage.mode"/> + </dt> + <xsl:for-each select="affiliation/orgname"> + <dd> + <strong> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Affiliation'"/> + </xsl:call-template> + <xsl:text>: </xsl:text> + </strong> + <xsl:apply-templates select="." mode="titlepage.mode"/> + </dd> + </xsl:for-each> +</xsl:template> + +<xsl:template match="collabname" mode="titlepage.mode"> + <span class="{name(.)}"> + <xsl:apply-templates mode="titlepage.mode"/> + </span> +</xsl:template> + +<xsl:template match="contrib" mode="titlepage.mode"> + <dt><xsl:apply-templates mode="titlepage.mode"/></dt> +</xsl:template> + +<xsl:template match="copyright" mode="titlepage.mode"> + <dt> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Copyright'"/> + </xsl:call-template> + <xsl:text> © </xsl:text> + <xsl:for-each select="year"> + <xsl:if test="position() > 1"> + <xsl:text>, </xsl:text> + </xsl:if> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="holder"> + <xsl:if test="position() > 1"> + <xsl:text>, </xsl:text> + </xsl:if> + <xsl:apply-templates select="."/> + </xsl:for-each> + </dt> +</xsl:template> + +<xsl:template match="corpauthor" mode="titlepage.mode"> + <dt><xsl:apply-templates mode="titlepage.mode"/></dt> +</xsl:template> + +<xsl:template match="editor" mode="titlepage.mode"> + <dt><xsl:call-template name="person.name"/></dt> + <xsl:for-each select="email"> + <dd> + <strong> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Email'"/> + </xsl:call-template> + <xsl:text>: </xsl:text> + </strong> + <xsl:apply-templates select="." mode="titlepage.mode"/> + </dd> + </xsl:for-each> + <xsl:apply-templates select="personblurb"/> +</xsl:template> + +<xsl:template match="holder" mode="titlepage.mode"> + <xsl:apply-templates/> +</xsl:template> + +<xsl:template match="legalnotice" mode="titlepage.mode"> + <div class="{name(.)}"> + <xsl:call-template name="anchor"/> + <xsl:choose> + <xsl:when test="title"> + <xsl:apply-templates select="title" mode="titlepage.mode"/> + </xsl:when> + <xsl:otherwise> + <h2 class="{name(.)}"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Legal Notice'"/> + </xsl:call-template> + </h2> + </xsl:otherwise> + </xsl:choose> + <xsl:apply-templates mode="titlepage.mode" select=" + beginpage | blockquote | calloutlist | caution | + formalpara | glosslist | important | indexterm | + itemizedlist | literallayout | note | orderedlist | + para | programlisting | programlistingco | screen | + screenco | screenshot | segmentedlist | simpara | + simplelist | tip | variablelist | warning "/> + </div> +</xsl:template> + +<xsl:template match="legalnotice/title" mode="titlepage.mode"> + <h2 class="legalnotice"> + <xsl:apply-templates/> + </h2> +</xsl:template> + +<xsl:template match="othercredit" mode="titlepage.mode"> + <dt><xsl:call-template name="person.name"/></dt> + <dt><xsl:call-template name="person.name"/></dt> + <xsl:for-each select="email"> + <dd> + <strong> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Email'"/> + </xsl:call-template> + <xsl:text>: </xsl:text> + </strong> + <xsl:apply-templates select="." mode="titlepage.mode"/> + </dd> + </xsl:for-each> + <xsl:apply-templates select="personblurb"/> +</xsl:template> + +<xsl:template match="personblurb" mode="titlepage.mode"> + <dd><xsl:apply-templates mode="titlepage.mode"/></dd> +</xsl:template> + +<xsl:template match="publisher" mode="titlepage.mode"> + <dt><xsl:apply-templates mode="titlepage.mode"/></dt> +</xsl:template> + +<xsl:template match="publishername" mode="titlepage.mode"> + <span class="{name(.)}"> + <xsl:apply-templates mode="titlepage.mode"/> + </span> +</xsl:template> + +<xsl:template match="revhistory" mode="titlepage.mode"> + <div class="{name(.)}"> + <h2 class="{name(.)}"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Revision History'"/> + </xsl:call-template> + </h2> + <table class="{name(.)}"> + <xsl:attribute name="summary"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Revision History'"/> + </xsl:call-template> + </xsl:attribute> + <thead><tr> + <th> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Title'"/> + </xsl:call-template> + </th> + <th> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Date'"/> + </xsl:call-template> + </th> + <th> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Author'"/> + </xsl:call-template> + </th> + <th> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Publisher'"/> + </xsl:call-template> + </th> + </tr></thead> + <tbody> + <xsl:apply-templates mode="titlepage.mode"/> + </tbody> + </table> + </div> +</xsl:template> + +<xsl:template match="revision" mode="titlepage.mode"> + <tr> + <xsl:attribute name="class"> + <xsl:choose> + <xsl:when test="count(preceding-sibling::revision) mod 2"> + <xsl:text>odd</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:text>even</xsl:text> + </xsl:otherwise> + </xsl:choose> + </xsl:attribute> + <td><xsl:apply-templates mode="titlepage.mode" select="revnumber"/></td> + <td><xsl:apply-templates mode="titlepage.mode" select="date"/></td> + <td><xsl:apply-templates mode="titlepage.mode" select=" + revremark/para[@role='author'] | + revdescription/para[@role='author'] | + authorinitials "/></td> + <td><xsl:apply-templates mode="titlepage.mode" select=" + revremark/para[@role='publisher'] | + revdescription/para[@role='publisher'] "/></td> + </tr> +</xsl:template> + +<xsl:template match="revnumber" mode="titlepage.mode"> + <span class="{name(.)}"> + <xsl:apply-templates mode="titlepage.mode"/> + </span> +</xsl:template> + +<xsl:template match="subtitle" mode="titlepage.mode"> + <h2 class="{name(.)}"> + <xsl:apply-templates mode="titlepage.mode"/> + </h2> +</xsl:template> + +<xsl:template match="title" mode="titlepage.mode"> + <h1 class="titlepage"> + <xsl:apply-templates mode="titlepage.mode"/> + </h1> +</xsl:template> + +<xsl:template match="year" mode="titlepage.mode"> + <xsl:apply-templates mode="titlepage.mode"/> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-tmp.xsl b/stylesheets/db2html-tmp.xsl new file mode 100644 index 00000000..9c62a066 --- /dev/null +++ b/stylesheets/db2html-tmp.xsl @@ -0,0 +1,5 @@ +<?xml version='1.0'?><!-- -*- Mode: xml -*- --> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-toc.xsl b/stylesheets/db2html-toc.xsl new file mode 100644 index 00000000..f726096e --- /dev/null +++ b/stylesheets/db2html-toc.xsl @@ -0,0 +1,112 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> +<!DOCTYPE xsl:stylesheet [ +<!ENTITY is-division " + (name(.) = 'appendix') or (name(.) = 'article') or + (name(.) = 'book') or (name(.) = 'bibliography') or + (name(.) = 'chapter') or (name(.) = 'colophon') or + (name(.) = 'glossary') or (name(.) = 'index') or + (name(.) = 'part') or (name(.) = 'preface') or + (name(.) = 'reference') or (name(.) = 'refentry') or + (name(.) = 'refsect1') or (name(.) = 'refsect2') or + (name(.) = 'refsect3') or (name(.) = 'refsection') or + (name(.) = 'sect1') or (name(.) = 'sect2') or + (name(.) = 'sect3') or (name(.) = 'sect4') or + (name(.) = 'sect5') or (name(.) = 'section') or + (name(.) = 'set') or (name(.) = 'setindex') or + (name(.) = 'simplesect') "> +<!ENTITY is-info " + (name(.) = 'appendixinfo') or (name(.) = 'articleinfo') or + (name(.) = 'bibliographyinfo') or (name(.) = 'bookinfo') or + (name(.) = 'chapterinfo') or (name(.) = 'glossaryinfo') or + (name(.) = 'indexinfo') or (name(.) = 'partinfo') or + (name(.) = 'prefaceinfo') or (name(.) = 'refentryinfo') or + (name(.) = 'referenceinfo') or (name(.) = 'refsect1info') or + (name(.) = 'refsect2info') or (name(.) = 'refsect3info') or + (name(.) = 'refsectioninfo') or (name(.) = 'sect1info') or + (name(.) = 'sect2info') or (name(.) = 'sect3info') or + (name(.) = 'sect4info') or (name(.) = 'sect5info') or + (name(.) = 'sectioninfo') or (name(.) = 'setinfo') or + (name(.) = 'setindexinfo') "> +]> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<!-- ======================================================================= --> + +<xsl:template name="toc"> + <xsl:call-template name="toc.verbose"/> +</xsl:template> + +<!-- ======================================================================= --> +<!-- +<xsl:template name="toc.simple"> + <xsl:param name="node" select="."/> + <div class="toc"> + <xsl:call-template name="anchor"> + <xsl:with-param name="name" select="'toc'"/> + </xsl:call-template> + + <xsl:if test="$generate_titlepage and /*/*[&is-info;]"> + <p class="about"> + <xsl:call-template name="xref"> + <xsl:with-param name="linkend" select="'titlepage'"/> + </xsl:call-template> + </p> + </xsl:if> + <xsl:call-template name="node.heading"> + <xsl:with-param name="content"> + <xsl:call-template name="gettext"> + <xsl:with-param name="key" select="'Table of Contents'"/> + </xsl:call-template> + </xsl:with-param> + </xsl:call-template> + <ol> + <li value="1.1">Foo</li> + <li value="12.2">Bar</li> + </ol> + </div> +</xsl:template> +--> + +<!-- ======================================================================= --> + +<xsl:template name="toc.verbose"> + <div class="toc"><ul> + <xsl:for-each select="*[&is-division;]"> + <xsl:variable name="chunk_id"> + <xsl:apply-templates select="." mode="chunk.id.mode"/> + </xsl:variable> + <xsl:if test="string($chunk_id) = @id"> + <xsl:apply-templates select="." mode="toc.verbose.mode"/> + </xsl:if> + </xsl:for-each> + </ul></div> +</xsl:template> + +<xsl:template match="*" mode="toc.verbose.mode"> + <li> + <a> + <xsl:attribute name="href"> + <xsl:call-template name="xref.target"> + <xsl:with-param name="linkend" select="@id"/> + </xsl:call-template> + </xsl:attribute> + <xsl:apply-templates select="." mode="node.header.inline.mode"/> + </a> + <xsl:choose> + <xsl:when test="title"> + <xsl:text> </xsl:text> + <b><xsl:apply-templates select="title/node()"/></b> + </xsl:when> + <xsl:when test="*[&is-info;]/title"> + <xsl:text> </xsl:text> + <b><xsl:apply-templates select="*[&is-info;]/title/node()"/></b> + </xsl:when> + </xsl:choose> + </li> +</xsl:template> + +<!-- ======================================================================= --> + +</xsl:stylesheet> diff --git a/stylesheets/db2html-xref.xsl b/stylesheets/db2html-xref.xsl new file mode 100644 index 00000000..2f7cac97 --- /dev/null +++ b/stylesheets/db2html-xref.xsl @@ -0,0 +1,112 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<!-- ======================================================================= --> + +<xsl:template name="anchor" match="anchor"> + <xsl:param name="name" select="@id"/> + <xsl:if test="$name"> + <a name="{$name}"/> + </xsl:if> +</xsl:template> + +<!-- ======================================================================= --> + +<xsl:template match="link"> + <a> + <xsl:attribute name="href"> + <xsl:call-template name="xref.target"> + <xsl:with-param name="linkend" select="@linkend"/> + </xsl:call-template> + </xsl:attribute> + <xsl:choose> + <xsl:when test="@endterm"> + <xsl:apply-templates select="id(@endterm)"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates/> + </xsl:otherwise> + </xsl:choose> + </a> +</xsl:template> + +<xsl:template match="olink"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template name="ulink" match="ulink"> + <xsl:param name="url" select="@url"/> + <xsl:param name="content" select="false()"/> + <a href="{$url}"> + <xsl:choose> + <xsl:when test="$content"> + <xsl:copy-of select="$content"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates/> + </xsl:otherwise> + </xsl:choose> + </a> +</xsl:template> + +<!-- ======================================================================= --> + +<xsl:template name="xref" match="xref"> + <xsl:param name="linkend" select="@linkend"/> + <xsl:param name="target" select="id($linkend)"/> + <xsl:param name="content" select="false()"/> + <a> + <xsl:attribute name="href"> + <xsl:call-template name="xref.target"> + <xsl:with-param name="linkend" select="$linkend"/> + <xsl:with-param name="target" select="$target"/> + </xsl:call-template> + </xsl:attribute> + <xsl:choose> + <xsl:when test="$content"> + <xsl:copy-of select="$content"/> + </xsl:when> + <xsl:when test="@endterm"> + <xsl:apply-templates select="id(@endterm)"/> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="xref.content"> + <xsl:with-param name="linkend" select="$linkend"/> + <xsl:with-param name="target" select="$target"/> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </a> +</xsl:template> + +<xsl:template name="xref.target"> + <xsl:param name="linkend" select="@linkend"/> + <xsl:param name="target" select="id($linkend)"/> + <xsl:variable name="chunk_id"> + <xsl:apply-templates select="$target" mode="chunk.id.mode"/> + </xsl:variable> + <xsl:value-of select="concat($chunk_id, $html_extension)"/> + <xsl:if test="string($chunk_id) != $linkend"> + <xsl:text>#</xsl:text> + <xsl:value-of select="$linkend"/> + </xsl:if> +</xsl:template> + +<xsl:template name="xref.content"> + <xsl:param name="linkend" select="@linkend"/> + <xsl:param name="target" select="id($linkend)"/> + <xsl:choose> + <xsl:when test="$target/@xreflabel"> + <xsl:value-of select="$target/@xreflabel"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates select="$target" mode="node.header.inline.mode"/> + </xsl:otherwise> + </xsl:choose> +</xsl:template> + +<!-- ======================================================================= --> + +</xsl:stylesheet> diff --git a/stylesheets/db2html.xsl b/stylesheets/db2html.xsl new file mode 100644 index 00000000..15d3ab8b --- /dev/null +++ b/stylesheets/db2html.xsl @@ -0,0 +1,52 @@ +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + +<xsl:include href="db2html-param.xsl"/> + +<xsl:include href="gettext.xsl"/> + +<xsl:include href="db2html-common.xsl"/> +<xsl:include href="db2html-node.xsl"/> +<xsl:include href="db2html-title.xsl"/> + +<xsl:include href="db2html-chunk.xsl"/> +<xsl:include href="db2html-html.xsl"/> +<xsl:include href="db2html-navbar.xsl"/> + +<xsl:include href="db2html-suppressed.xsl"/> + +<xsl:include href="db2html-division.xsl"/> +<xsl:include href="db2html-titlepage.xsl"/> + +<xsl:include href="db2html-admon.xsl"/> +<xsl:include href="db2html-biblio.xsl"/> +<xsl:include href="db2html-block.xsl"/> +<xsl:include href="db2html-callout.xsl"/> +<xsl:include href="db2html-glossary.xsl"/> +<xsl:include href="db2html-index.xsl"/> +<xsl:include href="db2html-inline.xsl"/> +<xsl:include href="db2html-list.xsl"/> +<xsl:include href="db2html-media.xsl"/> +<xsl:include href="db2html-refentry.xsl"/> +<xsl:include href="db2html-table.xsl"/> +<xsl:include href="db2html-toc.xsl"/> +<xsl:include href="db2html-xref.xsl"/> + +<xsl:template match="/"> + <xsl:apply-templates select="book | article" mode="chunk.mode"/> +</xsl:template> + +<xsl:template match="*"> + <xsl:call-template name="FIXME"/> +</xsl:template> + +<xsl:template name="FIXME"> + <span class="{name(.)}"> + <span class="FIXME" style="color: red"> + <xsl:apply-templates/> + </span> + </span> +</xsl:template> + +</xsl:stylesheet> diff --git a/stylesheets/docbook/Makefile.am b/stylesheets/docbook/Makefile.am index bbc2fc7b..6df42060 100644 --- a/stylesheets/docbook/Makefile.am +++ b/stylesheets/docbook/Makefile.am @@ -1,42 +1,17 @@ SUBDIRS=dtd -DIRECTORIES= \ - common \ - html \ - images \ - lib - DOCBOOK_DIR=$(datadir)/sgml/docbook/yelp/docbook -install-data-local: - $(mkinstalldirs) $(DESTDIR)$(DOCBOOK_DIR); \ - echo '-- Installing VERSION'; \ - $(INSTALL_DATA) VERSION $(DESTDIR)$(DOCBOOK_DIR); \ - echo '-- Installing catalog'; \ - $(mkinstalldirs) $(DESTDIR)$(datadir)/yelp; - $(INSTALL_DATA) catalog $(DESTDIR)$(datadir)/yelp; \ - for DIR in $(DIRECTORIES); do \ - echo '-- Installing '$$DIR; \ - $(mkinstalldirs) $(DESTDIR)$(DOCBOOK_DIR)/$$DIR; \ - (installfiles=`find $(srcdir)/$$DIR -name "*.xml" -o -name "*.xsl" -o -name "*.dtd" -o -name "*.png"`; \ - for i in $$installfiles; do \ - echo '-- Installing '$$i; \ - $(INSTALL_DATA) $$i $(DESTDIR)$(DOCBOOK_DIR)/$$DIR; \ - done) \ - done - +install-data-local: + $(mkinstalldirs) $(DESTDIR)$(DOCBOOK_DIR); \ + echo '-- Installing VERSION'; \ + $(INSTALL_DATA) VERSION $(DESTDIR)$(DOCBOOK_DIR); \ + echo '-- Installing catalog'; \ + $(mkinstalldirs) $(DESTDIR)$(datadir)/yelp; \ + $(INSTALL_DATA) catalog $(DESTDIR)$(datadir)/yelp; dist-hook: - echo '-- Disting VERSION'; \ - cp VERSION $(distdir); \ - echo '-- Disting catalog.in'; \ - cp catalog.in $(distdir); \ - for DIR in $(DIRECTORIES); do \ - echo '-- Disting '$$DIR; \ - mkdir $(distdir)/$$DIR; \ - (installfiles=`find $(srcdir)/$$DIR -name "*.xml" -o -name "*.xsl" -o -name "*.dtd" -o -name "*.png"`; \ - for i in $$installfiles; do \ - echo '-- Disting '$$i; \ - cp $$i $(distdir)/$$DIR; \ - done) \ - done + echo '-- Disting VERSION'; \ + cp VERSION $(distdir); \ + echo '-- Disting catalog.in'; \ + cp catalog.in $(distdir); diff --git a/stylesheets/yelp-customization.xsl b/stylesheets/yelp-customization.xsl index 15ba98bb..edcedfca 100644 --- a/stylesheets/yelp-customization.xsl +++ b/stylesheets/yelp-customization.xsl @@ -1,707 +1,145 @@ -<?xml version='1.0'?> +<?xml version='1.0'?><!-- -*- Mode: fundamental; tab-width: 3 -*- --> +<!DOCTYPE xsl:stylesheet [ +<!ENTITY is-division " + (name(.) = 'appendix') or (name(.) = 'article') or + (name(.) = 'book') or (name(.) = 'bibliography') or + (name(.) = 'chapter') or (name(.) = 'colophon') or + (name(.) = 'glossary') or (name(.) = 'index') or + (name(.) = 'part') or (name(.) = 'preface') or + (name(.) = 'reference') or (name(.) = 'refentry') or + (name(.) = 'refsect1') or (name(.) = 'refsect2') or + (name(.) = 'refsect3') or (name(.) = 'refsection') or + (name(.) = 'sect1') or (name(.) = 'sect2') or + (name(.) = 'sect3') or (name(.) = 'sect4') or + (name(.) = 'sect5') or (name(.) = 'section') or + (name(.) = 'set') or (name(.) = 'setindex') or + (name(.) = 'simplesect') "> +]> + <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - xmlns:func="http://exslt.org/functions" - xmlns:exsl="http://exslt.org/common" - xmlns:yelp="http://www.gnome.org/" - extension-element-prefixes="func exsl" version='1.0'> -<xsl:import href="http://docbook.sourceforge.net/release/xsl/1.48/html/docbook.xsl"/> -<xsl:include href="yelp-custom.xsl"/> -<xsl:include href="yelp-functions.xsl"/> - -<xsl:param name="yelp_docname"/> -<xsl:param name="yelp_pathname"/> -<xsl:param name="yelp_stylesheet_path" select="'No Stylesheet'" /> - -<xsl:param name="yelp_max_chunk_depth" select="2" /> -<xsl:param name="yelp_generate_navbar" select="true()"/> -<!-- either 'yelp' or 'exslt' --> -<xsl:param name="yelp_chunk_method" select="'exslt'"/> - -<xsl:output encoding="ISO-8859-1" /> - -<!-- Specifies the default path for admonition graphics --> -<xsl:param name="admon.graphics.path"> - <xsl:choose> - <xsl:when test="$yelp_chunk_method = 'yelp'"> - <xsl:text>file://</xsl:text> - <xsl:value-of select="$yelp_stylesheet_path"/> - <xsl:text>/images/</xsl:text> - </xsl:when> - <xsl:otherwise> - <xsl:text>./stylesheet/</xsl:text> - </xsl:otherwise> - </xsl:choose> -</xsl:param> - -<xsl:param name="table.borders.with.css" select="1"/> - -<!-- direct parametrisation --> -<xsl:param name="admon.style"><xsl:text>margin-left: 0</xsl:text></xsl:param> - -<xsl:template name="process.image"> - <!-- When this template is called, the current node should be --> - <!-- a graphic, inlinegraphic, imagedata, or videodata. All --> - <!-- those elements have the same set of attributes, so we can --> - <!-- handle them all in one place. --> - <xsl:param name="tag" select="'img'"/> - <xsl:param name="alt"/> - - <xsl:variable name="filename"> - <xsl:choose> - <xsl:when test="local-name(.) = 'graphic' - or local-name(.) = 'inlinegraphic'"> - <xsl:choose> - <xsl:when test="@fileref"> - <xsl:value-of select="@fileref"/> - </xsl:when> - <xsl:when test="@entityref"> - <xsl:value-of select="unparsed-entity-uri(@entityref)"/> - </xsl:when> - <xsl:otherwise> - <xsl:message> - <xsl:text>A fileref or entityref is required on </xsl:text> - <xsl:value-of select="local-name(.)"/> - </xsl:message> - </xsl:otherwise> - </xsl:choose> - </xsl:when> - <xsl:otherwise> - <!-- imagedata, videodata, audiodata --> - <xsl:call-template name="mediaobject.filename"> - <xsl:with-param name="object" select=".."/> - </xsl:call-template> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - - <xsl:variable name="width"> - <xsl:choose> - <xsl:when test="@scale"><xsl:value-of select="@scale"/>%</xsl:when> - <xsl:when test="@width"><xsl:value-of select="@width"/></xsl:when> - <xsl:otherwise></xsl:otherwise> - </xsl:choose> - </xsl:variable> - - <xsl:variable name="height"> - <xsl:choose> - <xsl:when test="@scale"></xsl:when> - <xsl:when test="@depth"><xsl:value-of select="@depth"/></xsl:when> - <xsl:otherwise></xsl:otherwise> - </xsl:choose> - </xsl:variable> - - <xsl:variable name="align"> - <xsl:value-of select="@align"/> - </xsl:variable> - - <xsl:element name="{$tag}"> - <xsl:attribute name="src"> - <xsl:choose> - <xsl:when test="$yelp_chunk_method = 'yelp'"> - <xsl:text>file://</xsl:text> - <xsl:value-of select="$yelp_pathname"/> - <xsl:text>/</xsl:text> - <xsl:value-of select="$filename"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="$filename"/> - </xsl:otherwise> - </xsl:choose> - </xsl:attribute> - - <xsl:if test="$align != ''"> - <xsl:attribute name="align"> - <xsl:value-of select="$align"/> - </xsl:attribute> - </xsl:if> - <xsl:if test="$height != ''"> - <xsl:attribute name="height"> - <xsl:value-of select="$height"/> - </xsl:attribute> - </xsl:if> - <xsl:if test="$width != ''"> - <xsl:attribute name="width"> - <xsl:value-of select="$width"/> - </xsl:attribute> - </xsl:if> - <xsl:if test="$alt != ''"> - <xsl:attribute name="alt"> - <xsl:value-of select="$alt"/> - </xsl:attribute> - </xsl:if> - </xsl:element> -</xsl:template> - -<xsl:template name="href.target"> - <xsl:param name="object" select="."/> - <xsl:variable name="chunk" select="$object/ancestor-or-self::* - [yelp:is-division(.)] - [yelp:get-depth(.) <= $yelp_max_chunk_depth] - [1]"/> - - <xsl:choose> - <xsl:when test="$yelp_chunk_method = 'yelp'"> - <xsl:text>ghelp:</xsl:text> - <xsl:value-of select="$yelp_docname"/> - <xsl:text>?</xsl:text> - <xsl:value-of select="$chunk/@id"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="$chunk/@id"/> - <xsl:text>.html</xsl:text> - <xsl:if test="$chunk != $object"> - <xsl:text>#</xsl:text> - <xsl:value-of select="$object/@id"/> - </xsl:if> - </xsl:otherwise> - </xsl:choose> -</xsl:template> - -<!-- make a small custom css stylesheet reside in <head>...</head> --> - -<xsl:template name="user.head.content"> - <style> - <xsl:text> - B {font-weight: bold} - LI {margin-bottom: 0.66em;} - UL LI {margin-left: 1em} - OL LI {margin-left: 1.5em} - LI P {margin-bottom: 0} - LI P {margin-top: 0} - P.header-title {text-align: center; margin-top: 0; margin-bottom: 0} - P.copyright {margin-bottom: 0; margin-top: 0} - H2 + P.copyright {margin-top: 1em} - DIV.legalnotice P {font-size: 0.8em} - DIV.revhistory TR {vertical-align: top} - TT {font-family: monospace} - P.about {margin-bottom: 0} - DD P {margin-top: 0} - DD P {margin-bottom: 0} - OL {margin-top: 0; margin-bottom: 0} - LI OL {margin-left: 2em; margin-top: 0.66em} - UL {margin-top: 0; margin-bottom: 0} - LI UL {margin-left: 2em; margin-top: 0.66em} - OL LI UL {list-style-type: disc} - UL LI UL {list-style-type: circle} - OL LI OL {list-style-type: lower-alpha} - DD {margin-left: 2em} - DL {margin-top: 0} - DL {margin-bottom: 0} - DIV.variablelist DT {margin-top: 1em } - DIV.variablelist DD P {margin-top: 0.5em} - DIV.variablelist DD UL {margin-top: 0.5em} - DIV.variablelist DD LI P {margin-top: 0} - HR.bottom {margin-top: 2ex; margin-bottom: 0} - TD {vertical-align: top} - TH {vertical-align: top} - DIV.table P {margin-top: 0} - TABLE P {margin-bottom: 0; margin-top: 0} - TABLE UL {margin-top: 0.66em;} - DIV.toc {margin-bottom: 3ex} - DIV TD {padding-right: 1em; padding-left: 1em; padding-top: 0.5ex; padding-bottom: 0.5ex} - DIV TH {padding-right: 1em; padding-left: 1em; padding-top: 0.5ex; padding-bottom: 0.5ex} - DIV.note TD {padding-left: 0; padding-top: 0} - DIV.note TH {padding-left: 0; padding-top: 0} - DIV.informaltable TABLE {border-bottom: solid 1px black} - DIV.informaltable TR:FIRST-CHILD {border-top: solid 1px black} - DIV.table > TABLE > * > TR:FIRST-CHILD {border-top: solid 1px black} - DIV.table > TABLE {border-bottom: solid 1px black} - DIV.revhistory TABLE {border-spacing: 0} - LI DIV.informaltable {margin-top: 1em; margin-bottom: 1em} - LI DIV.figure P {margin-top: 1em; margin-bottom: 1em} - DIV.figure {margin-bottom: 4em} - H1 {font-size: 1.4em} - H2 {font-size: 1.3em; margin-bottom: 0} - H3 {font-size: 1.2em; margin-bottom: 0} - H4 {font-size: 1.1em; margin-bottom: 0} - </xsl:text> - </style> -</xsl:template> - -<!-- take over the control of the body tag attributes --> -<xsl:template name="body.attributes"> -<!-- - <xsl:attribute name="link">#0000FF</xsl:attribute> - <xsl:attribute name="vlink">#840084</xsl:attribute> - <xsl:attribute name="alink">#0000FF</xsl:attribute> ---> -</xsl:template> - -<!-- change some formating choices --> - -<xsl:template match="guibutton"> - <xsl:call-template name="inline.boldseq"/> -</xsl:template> - -<xsl:template match="command"> - <xsl:call-template name="inline.monoseq"/> -</xsl:template> - -<xsl:template match="inlinemediaobject"> - <span class="{name(.)}"> - <xsl:if test="@id"> - <a name="{@id}"/> - </xsl:if> - <xsl:call-template name="select.mediaobject"/> - </span> -<xsl:text disable-output-escaping="yes">&nbsp;</xsl:text> -</xsl:template> - -<!-- ======================================================================= --> - -<xsl:template name="yelp.toc.ref"> - <xsl:choose> - <xsl:when test="$yelp_chunk_method = 'yelp'"> - <xsl:text>ghelp:</xsl:text> - <xsl:value-of select="$yelp_docname"/> - </xsl:when> - <xsl:otherwise> - <xsl:text>index.html</xsl:text> - </xsl:otherwise> - </xsl:choose> -</xsl:template> - -<xsl:template name="yelp.titlepage.ref"> - <xsl:choose> - <xsl:when test="$yelp_chunk_method = 'yelp'"> - <xsl:text>ghelp:</xsl:text> - <xsl:value-of select="$yelp_docname"/> - <xsl:text>?title-page</xsl:text> - </xsl:when> - <xsl:otherwise> - <xsl:text>titlepage.html</xsl:text> - </xsl:otherwise> - </xsl:choose> -</xsl:template> - -<!-- ======================================================================= --> - -<xsl:template name="yelp.navbar.cell"> - <xsl:param name="target" select="."/> - <xsl:param name="show.title" select="false()"/> - <xsl:param name="position" select="'left'"/> - <xsl:param name="use.title" select="false()"/> - - <td width="40%"> - <xsl:attribute name="align"> - <xsl:value-of select="$position"/> - </xsl:attribute> - <xsl:if test="$target"> - <a> - <xsl:attribute name="accesskey"> - <xsl:choose> - <xsl:when test="$position = 'left'"><xsl:text>p</xsl:text></xsl:when> - <xsl:when test="$position = 'right'"><xsl:text>n</xsl:text></xsl:when> - </xsl:choose> - </xsl:attribute> - <xsl:attribute name="href"> - <xsl:choose> - <xsl:when test="$target = 'title-page'"> - <xsl:call-template name="yelp.titlepage.ref"/> - </xsl:when> - <xsl:when test="$target = 'toc'"> - <xsl:call-template name="yelp.toc.ref"/> - </xsl:when> - <xsl:otherwise> - <xsl:call-template name="href.target"> - <xsl:with-param name="object" select="$target"/> - </xsl:call-template> - </xsl:otherwise> - </xsl:choose> - </xsl:attribute> - <xsl:choose> - <xsl:when test="$position = 'left'"> - <xsl:call-template name="gentext"> - <xsl:with-param name="key" select="'Previous'"/> - </xsl:call-template> - </xsl:when> - <xsl:when test="$position = 'right'"> - <xsl:call-template name="gentext"> - <xsl:with-param name="key" select="'Next'"/> - </xsl:call-template> - </xsl:when> - </xsl:choose> - </a> - <xsl:if test="$use.title"> - <br/> - <xsl:choose> - <xsl:when test="$target = 'title-page'"> - <xsl:call-template name="gentext.template"> - <xsl:with-param name="context" select="'title'"/> - <xsl:with-param name="name" select="'bookinfo'"/> - </xsl:call-template> - </xsl:when> - <xsl:when test="$target = 'toc'"> - <xsl:call-template name="gentext"> - <xsl:with-param name="key" select="'Contents'"/> - </xsl:call-template> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="yelp:get-title-text($target)"/> - </xsl:otherwise> - </xsl:choose> - </xsl:if> - </xsl:if> - </td> -</xsl:template> - -<xsl:template name="yelp.navbar"> - <xsl:param name="node" select="."/> - <xsl:param name="prev" select="yelp:get-prev($node)"/> - <xsl:param name="next" select="yelp:get-next($node)"/> - <xsl:param name="up" select="false()"/> - <xsl:param name="use.title" select="false()"/> - - <xsl:if test="$yelp_generate_navbar"> - <table width="100%"><tr> - <xsl:call-template name="yelp.navbar.cell"> - <xsl:with-param name="target" select="$prev"/> - <xsl:with-param name="use.title" select="$use.title"/> - <xsl:with-param name="position" select="'left'"/> - </xsl:call-template> - <xsl:if test="$up"> - <td align="center" width="20%"><a accesskey="u"> - <xsl:attribute name="href"> - <xsl:call-template name="yelp.toc.ref"/> - </xsl:attribute> - <xsl:call-template name="gentext"> - <xsl:with-param name="key" select="'Contents'"/> +<xsl:include href="db2html.xsl"/> + +<xsl:template match="/"> + <xsl:variable name="node" select="*"/> + <html> + <head> + <title> + <xsl:apply-templates select="$node" mode="title.text.mode"/> + </title> + <style type="text/css"> + <xsl:call-template name="html.css"> + <xsl:with-param name="node" select="$node"/> </xsl:call-template> - </a></td> - </xsl:if> - <xsl:call-template name="yelp.navbar.cell"> - <xsl:with-param name="target" select="$next"/> - <xsl:with-param name="use.title" select="$use.title"/> - <xsl:with-param name="position" select="'right'"/> - </xsl:call-template> - </tr></table> - </xsl:if> -</xsl:template> + </style> + <xsl:call-template name="html.head"> + <xsl:with-param name="node" select="$node"/> + </xsl:call-template> + </head> + <body> + <xsl:call-template name="html.body.attributes"> + <xsl:with-param name="node" select="$node"/> + </xsl:call-template> + <xsl:call-template name="html.body.top"> + <xsl:with-param name="node" select="$node"/> + </xsl:call-template> -<xsl:template name="yelp.navbar.top"> - <xsl:param name="node" select="."/> - <xsl:param name="prev" select="yelp:get-prev($node)"/> - <xsl:param name="next" select="yelp:get-next($node)"/> - <xsl:param name="up" select="false()"/> + <xsl:comment> End of header </xsl:comment> + <xsl:apply-templates select="book | article" mode="chunk.mode"/> + <xsl:comment> Start of footer </xsl:comment> - <xsl:if test="$yelp_generate_navbar"> - <xsl:call-template name="yelp.navbar"> - <xsl:with-param name="node" select="$node"/> - <xsl:with-param name="prev" select="$prev"/> - <xsl:with-param name="next" select="$next"/> - <xsl:with-param name="up" select="$up"/> - <xsl:with-param name="use.title" select="false()"/> - </xsl:call-template> - <hr/> - </xsl:if> + <xsl:call-template name="html.body.bottom"> + <xsl:with-param name="node" select="$node"/> + </xsl:call-template> + </body> + </html> </xsl:template> -<xsl:template name="yelp.navbar.bottom"> +<xsl:template name="chunk"> <xsl:param name="node" select="."/> - <xsl:param name="prev" select="yelp:get-prev($node)"/> - <xsl:param name="next" select="yelp:get-next($node)"/> - <xsl:param name="up" select="true()"/> + <xsl:param name="info" select="false()"/> + <xsl:param name="divisions" select="false()"/> + <xsl:param name="id"> + <xsl:choose> + <xsl:when test="$node = /*"> + <xsl:text>toc</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="$node/@id"/> + </xsl:otherwise> + </xsl:choose> + </xsl:param> - <xsl:if test="$yelp_generate_navbar"> - <hr class="bottom"/> - <xsl:call-template name="yelp.navbar"> + <xsl:comment> Start of chunk: [<xsl:value-of select="$id"/>] </xsl:comment> + <xsl:call-template name="html"> <xsl:with-param name="node" select="$node"/> - <xsl:with-param name="prev" select="$prev"/> - <xsl:with-param name="next" select="$next"/> - <xsl:with-param name="up" select="$up"/> - <xsl:with-param name="use.title" select="true()"/> + <xsl:with-param name="leaf" select=" + count($node/ancestor::*[&is-division;]) >= $chunk_depth"/> </xsl:call-template> - </xsl:if> -</xsl:template> - -<!-- ======================================================================= --> - -<xsl:template name="yelp.title"> - <xsl:choose> - <xsl:when test="yelp:get-title(.)"> - <xsl:apply-templates select="yelp:get-title(.)" mode="titlepage.mode"/> - </xsl:when> - <xsl:when test="yelp:get-title-text(.)"> - <h2 class="title"> - <a><xsl:attribute name="name"> - <xsl:call-template name="href.target"/> - </xsl:attribute></a> - <xsl:value-of select="yelp:get-title-text(.)"/> - </h2> - </xsl:when> - </xsl:choose> -</xsl:template> - -<xsl:template name="yelp.chunk"> - <xsl:param name="node" select="."/> - <xsl:param name="id" select="$node/@id"/> - <xsl:param name="content"> - <xsl:apply-templates select="$node"/> - </xsl:param> - - <xsl:choose> - <xsl:when test="$yelp_chunk_method = 'yelp'"> - <xsl:comment> Start of chunk: [<xsl:value-of select="$id"/>] </xsl:comment> - <xsl:copy-of select="$content"/> - <xsl:comment> End of chunk </xsl:comment> - </xsl:when> - <xsl:when test="$yelp_chunk_method = 'exslt'"> - <xsl:variable name="filename"> - <xsl:choose> - <xsl:when test="$id = 'title-page'"> - <xsl:call-template name="yelp.titlepage.ref"/> - </xsl:when> - <xsl:when test="$id = 'toc'"> - <xsl:call-template name="yelp.toc.ref"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="$id"/> - <xsl:text>.html</xsl:text> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - <exsl:document href="{$filename}"> - <html> - <head> - <xsl:call-template name="head.content"> - <xsl:with-param name="node" select="$node"/> - </xsl:call-template> - <xsl:call-template name="user.head.content"> - <xsl:with-param name="node" select="$node"/> - </xsl:call-template> - </head> - <body> - <xsl:call-template name="body.attributes"/> - <xsl:call-template name="user.header.content"> - <xsl:with-param name="node" select="$node"/> - </xsl:call-template> - <xsl:copy-of select="$content"/> - <xsl:call-template name="user.footer.content"> - <xsl:with-param name="node" select="$node"/> - </xsl:call-template> - </body> - </html> - </exsl:document> - </xsl:when> - </xsl:choose> -</xsl:template> + <xsl:comment> End of chunk </xsl:comment> -<xsl:template name="yelp.titlepage.chunk"> - <xsl:variable name="info" select=" - self::article/articleinfo | self::appendix/appendixinfo | - self::chapter/chapterinfo | self::preface/prefaceinfo | - self::sect1/sect1info | self::sect2/sect2info | - self::sect3/sect3info | self::sect4/sect4info | - self::sect5/sect5info | self::section/sectioninfo | - self::set/setinfo | self::book/bookinfo | - self::part/partinfo | self::reference/referenceinfo | - self::glossary/glossaryinfo | self::index/indexinfo | - self::refentry/refentryinfo | self::simplesect/simplesectinfo | - self::bibliography/bibliographyinfo"/> - <xsl:if test="$info"> - <xsl:call-template name="yelp.chunk"> - <xsl:with-param name="id" select="'title-page'"/> - <xsl:with-param name="node" select="$info"/> - <xsl:with-param name="content"> - <xsl:call-template name="yelp.navbar.top"> - <xsl:with-param name="prev" select="false()"/> - <xsl:with-param name="next" select="'toc'"/> - </xsl:call-template> - <xsl:choose> - <xsl:when test="self::article/articleinfo"> - <xsl:call-template name="article.titlepage"/> - </xsl:when> - <xsl:when test="self::appendix/appendixinfo"> - <xsl:call-template name="appendix.titlepage"/> - </xsl:when> - <xsl:when test="self::chapter/chapterinfo"> - <xsl:call-template name="chapter.titlepage"/> - </xsl:when> - <xsl:when test="self::preface/prefaceinfo"> - <xsl:call-template name="preface.titlepage"/> - </xsl:when> - <xsl:when test="self::sect1/sect1info"> - <xsl:call-template name="sect1.titlepage"/> - </xsl:when> - <xsl:when test="self::sect2/sect2info"> - <xsl:call-template name="sect2.titlepage"/> - </xsl:when> - <xsl:when test="self::sect3/sect3info"> - <xsl:call-template name="sect3.titlepage"/> - </xsl:when> - <xsl:when test="self::sect4/sect4info"> - <xsl:call-template name="sect4.titlepage"/> - </xsl:when> - <xsl:when test="self::sect5/sect5info"> - <xsl:call-template name="sect5.titlepage"/> - </xsl:when> - <xsl:when test="self::section/sectioninfo"> - <xsl:call-template name="section.titlepage"/> - </xsl:when> - <xsl:when test="self::set/setinfo"> - <xsl:call-template name="set.titlepage"/> - </xsl:when> - <xsl:when test="self::book/bookinfo"> - <xsl:call-template name="book.titlepage"/> - </xsl:when> - <xsl:when test="self::part/partinfo"> - <xsl:call-template name="part.titlepage"/> - </xsl:when> - <xsl:when test="self::reference/referenceinfo"> - <xsl:call-template name="reference.titlepage"/> - </xsl:when> - <xsl:when test="self::glossary/glossaryinfo"> - <xsl:call-template name="glossary.titlepage"/> - </xsl:when> - <xsl:when test="self::index/indexinfo"> - <xsl:call-template name="index.titlepage"/> - </xsl:when> - <xsl:when test="self::bibliography/bibliographyinfo"> - <xsl:call-template name="bibliography.titlepage"/> - </xsl:when> - <xsl:when test="self::refentry/refentryinfo"> - <xsl:call-template name="refentry.titlepage"/> - </xsl:when> - <xsl:when test="self::simplesect/simplesectinfo"> - <xsl:call-template name="simplesect.titlepage"/> - </xsl:when> - <xsl:otherwise> - <xsl:message> - <xsl:text>Could not construct a titlepage for </xsl:text> - <xsl:value-of select="local-name(.)"/> - <xsl:text>.</xsl:text> - </xsl:message> - </xsl:otherwise> - </xsl:choose> - <xsl:call-template name="yelp.navbar.bottom"> - <xsl:with-param name="prev" select="false()"/> - <xsl:with-param name="next" select="'toc'"/> - <xsl:with-param name="up" select="false()"/> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> + <xsl:if test="$generate_titlepage and $info and ($node = /*)"> + <xsl:apply-templates select="$info" mode="chunk.mode"/> </xsl:if> -</xsl:template> -<xsl:template name="yelp.component.chunk"> - <xsl:param name="depth" select="0"/> - <xsl:variable name="prev" select="yelp:get-prev(.)"/> - <xsl:variable name="next" select="yelp:get-next(.)"/> - - <xsl:if test="($depth != 0) or ($yelp_max_chunk_depth = 0)"> - <xsl:call-template name="yelp.chunk"> - <xsl:with-param name="id" select="@id"/> - <xsl:with-param name="node" select="."/> - <xsl:with-param name="content"> - <xsl:call-template name="yelp.navbar.top"> - <xsl:with-param name="node" select="."/> - <xsl:with-param name="prev" select="$prev"/> - <xsl:with-param name="next" select="$next"/> - </xsl:call-template> - <div class="{local-name(.)}"> - <xsl:call-template name="yelp.title"/> - <xsl:apply-templates select="yelp:get-content(.)"/> - <!-- Don't make TOC for part and reference, because nwalsh's - stylesheets automatically stick one in for partintro. --> - <xsl:if test="not(self::part | self::reference)"> - <xsl:choose> - <xsl:when test="($depth < $yelp_max_chunk_depth) - and (count(yelp:get-divisions(.)) > 0)"> - <div class="toc"> - <p><b> - <xsl:call-template name="gentext"> - <xsl:with-param name="key">TableofContents</xsl:with-param> - </xsl:call-template> - </b></p> - <dl> - <xsl:apply-templates select="yelp:get-divisions(.)" mode="toc"/> - </dl> - </div> - </xsl:when> - <xsl:otherwise> - <xsl:apply-templates select="yelp:get-divisions(.)"/> - </xsl:otherwise> - </xsl:choose> - </xsl:if> - </div> - <xsl:call-template name="yelp.navbar.bottom"> - <xsl:with-param name="node" select="."/> - <xsl:with-param name="prev" select="$prev"/> - <xsl:with-param name="next" select="$next"/> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> + <xsl:if test="count($node/ancestor::*[&is-division;]) < $chunk_depth"> + <xsl:apply-templates select="$divisions" mode="chunk.mode"/> </xsl:if> - - <xsl:if test="($depth < $yelp_max_chunk_depth) - and (count(yelp:get-divisions(.)) > 0)"> - <xsl:for-each select="yelp:get-divisions(.)"> - <xsl:call-template name="yelp.component.chunk"> - <xsl:with-param name="depth" select="$depth + 1"/> - </xsl:call-template> - </xsl:for-each> - </xsl:if> -</xsl:template> - -<xsl:template match="/*"> - <xsl:call-template name="yelp.root"/> </xsl:template> -<xsl:template name="yelp.root"> - <xsl:variable name="next" select="yelp:get-next(.)"/> - - <xsl:comment> End of header </xsl:comment> - - <xsl:call-template name="yelp.titlepage.chunk"/> - - <xsl:call-template name="yelp.chunk"> - <xsl:with-param name="id" select="'toc'"/> - <xsl:with-param name="node" select="."/> - <xsl:with-param name="content"> - <xsl:call-template name="yelp.navbar.top"> - <xsl:with-param name="node" select="."/> - <xsl:with-param name="prev" select="'title-page'"/> - <xsl:with-param name="next" select="$next"/> - </xsl:call-template> - <xsl:call-template name="yelp.title"/> - <p class="about"><a> - <xsl:attribute name="href"> - <xsl:call-template name="yelp.titlepage.ref"/> - </xsl:attribute> - <xsl:call-template name="gentext.template"> - <xsl:with-param name="context" select="'title'"/> - <xsl:with-param name="name" select="'bookinfo'"/> - </xsl:call-template> - </a></p> - <xsl:apply-templates select="yelp:get-content(.)"/> - <div class="toc"> - <p><b> - <xsl:call-template name="gentext"> - <xsl:with-param name="key">TableofContents</xsl:with-param> - </xsl:call-template> - </b></p> - <dl> - <xsl:apply-templates select="yelp:get-divisions(.)" mode="toc"/> - </dl> - </div> - <xsl:call-template name="yelp.navbar.bottom"> - <xsl:with-param name="node" select="."/> - <xsl:with-param name="prev" select="'title-page'"/> - <xsl:with-param name="next" select="$next"/> - <xsl:with-param name="up" select="false()"/> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - - <xsl:for-each select="yelp:get-divisions(.)"> - <xsl:call-template name="yelp.component.chunk"> - <xsl:with-param name="depth" select="1"/> - </xsl:call-template> - </xsl:for-each> - - <xsl:comment> Start of footer </xsl:comment> +<xsl:template name="html"> + <xsl:param name="node" select="."/> + <xsl:param name="leaf" select="true()"/> + <xsl:variable name="prevlink"> + <xsl:apply-templates select="$node" mode="navbar.prev.link.mode"/> + </xsl:variable> + <xsl:variable name="nextlink"> + <xsl:apply-templates select="$node" mode="navbar.next.link.mode"/> + </xsl:variable> + + <div> + <table width="100%" cellpadding="0" cellspacing="0"> + <tr width="100%"> + <td width="50%" style="text-align: left;"> + <xsl:copy-of select="$prevlink"/> + </td> + <td width="50%" style="text-align: right;"> + <xsl:copy-of select="$nextlink"/> + </td> + </tr> + </table> + <hr/> + + <xsl:apply-templates select="$node"> + <xsl:with-param name="depth" select="0"/> + <xsl:with-param name="leaf" select="$leaf"/> + </xsl:apply-templates> + + <hr/> + <table width="100%" cellpadding="0" cellspacing="0"> + <tr width="100%"> + <td width="50%" style="text-align: left;"> + <xsl:copy-of select="$prevlink"/> + </td> + <td width="50%" style="text-align: right;"> + <xsl:copy-of select="$nextlink"/> + </td> + </tr> + </table> + </div> +</xsl:template> + +<xsl:template name="xref.target"> + <xsl:param name="linkend" select="@linkend"/> + <xsl:param name="target" select="id($linkend)"/> + <xsl:variable name="chunk_id"> + <xsl:apply-templates select="$target" mode="chunk.id.mode"/> + </xsl:variable> + <xsl:text>ghelp:</xsl:text> + <xsl:value-of select="$doc_name"/> + <xsl:text>?</xsl:text> + <xsl:value-of select="$chunk_id"/> </xsl:template> </xsl:stylesheet> |