[gtk-doc] devhelp: allow to link to struct members



commit 769da0942546fa9af8a3ca68b71399bbe6a77afc
Author: Stefan Sauer <ensonic users sf net>
Date:   Sun Aug 16 22:39:38 2015 +0200

    devhelp: allow to link to struct members
    
    Extract links to struct members and add them to the index. Add a new member type
    to the devhelp index.

 devhelp2.xsd   |    1 +
 devhelp2.xsl   |   11 +++++++++--
 gtkdoc-mkdb.in |    2 +-
 3 files changed, 11 insertions(+), 3 deletions(-)
---
diff --git a/devhelp2.xsd b/devhelp2.xsd
index fc001a1..a0b96dc 100644
--- a/devhelp2.xsd
+++ b/devhelp2.xsd
@@ -26,6 +26,7 @@ xsltproc -o devhelp2.xsd.html $HOME/download/xs3p-1.1.3/xs3p.xsl devhelp2.xsd
       <xsd:enumeration value="enum"/>
       <xsd:enumeration value="function"/>
       <xsd:enumeration value="macro"/>
+      <xsd:enumeration value="member"/>
       <xsd:enumeration value="property"/>
       <xsd:enumeration value="signal"/>
       <xsd:enumeration value="struct"/>
diff --git a/devhelp2.xsl b/devhelp2.xsl
index db7e2a0..37c235a 100644
--- a/devhelp2.xsl
+++ b/devhelp2.xsl
@@ -66,6 +66,8 @@
                              mode="generate.devhelp2.index.mode"/>
         <xsl:apply-templates select="$gtkdoc.refsect2/refsect3[ 
role='enum_members']/informaltable/tgroup/tbody/row[ role='constant']"
                              mode="generate.devhelp2.index.mode"/>
+        <xsl:apply-templates select="$gtkdoc.refsect2/refsect3[ 
role='struct_members']/informaltable/tgroup/tbody/row[ role='member']"
+                             mode="generate.devhelp2.index.mode"/>
       </functions>
     </book>
   </xsl:template>
@@ -97,8 +99,13 @@
   </xsl:template>
 
   <xsl:template match="*" mode="generate.devhelp2.index.mode">
-    <xsl:variable name="title" select="title|term/literal|entry[ role='enum_member_name']/para"/>
-    <xsl:variable name="anchor" select="title/anchor|entry[ role='enum_member_name']/para"/>
+    <xsl:variable name="title" select="title|
+                                       term/literal|
+                                       entry[ role='enum_member_name']/para|
+                                       entry[ role='struct_member_name']/para/structfield/@id"/>
+    <xsl:variable name="anchor" select="title/anchor|
+                                        entry[ role='enum_member_name']/para|
+                                        entry[ role='struct_member_name']/para/structfield"/>
     <xsl:variable name="type" select="@role"/>
     <xsl:variable name="condition" select="@condition"/>
     <xsl:variable name="target">
diff --git a/gtkdoc-mkdb.in b/gtkdoc-mkdb.in
index e181dcc..c52e738 100755
--- a/gtkdoc-mkdb.in
+++ b/gtkdoc-mkdb.in
@@ -1727,7 +1727,7 @@ EOF
             my $field_descr = $field_descrs{$field_name};
             my $param_annotations = "";
 
-            $desc .= "<row><entry role=\"struct_member_name\"><para>$text</para></entry>\n";
+            $desc .= "<row role=\"member\"><entry role=\"struct_member_name\"><para>$text</para></entry>\n";
             if (defined $field_descr) {
                 ($field_descr,$param_annotations) = &ExpandAnnotation($symbol, $field_descr);
                 $field_descr = &ConvertMarkDown($symbol, $field_descr);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]