[gegl] docs: improve navigation of operation reference



commit 7d19ce21cd1c8cf216e51a1902c46b0ba1132119
Author: Øyvind Kolås <pippin gimp org>
Date:   Wed May 3 03:30:12 2017 +0200

    docs: improve navigation of operation reference

 tools/operations_html.c |   53 +++++++++++++++++++++++++++-------------------
 1 files changed, 31 insertions(+), 22 deletions(-)
---
diff --git a/tools/operations_html.c b/tools/operations_html.c
index 2930a1b..b9ee2f2 100644
--- a/tools/operations_html.c
+++ b/tools/operations_html.c
@@ -384,7 +384,7 @@ json_list_properties (GType type, GString *s, const gchar *opname)
 
 GHashTable *seen_categories = NULL;
 
-const gchar *css = "@import url(../gegl.css); .description{margin-bottom:1em;}";
+const gchar *css = "@import url(../gegl.css); .categories{ clear:right;text-align: justify; line-height: 
1.6em; float:right; padding-left: 1em; padding-bottom: 1em ;width: 14em; } .categories a, .category 
{color:black; background:#eef; padding: 0.1em; padding-left0.2em; padding-right: 0.2em; border: 1px solid 
gray;} .description{margin-bottom:1em;}";
 
 const gchar *html_pre = "<html><head><title>GEGL operation %s</title>\n"
                           "<style>%s%s</style></head><body>\n";
@@ -417,7 +417,7 @@ main (gint argc, gchar **argv)
       const char *description = gegl_operation_class_get_key (klass, "description");
 
       g_string_append_printf (s, html_pre, name, css, "");
-      g_string_append_printf (s, "<div class='operation'><h2 style='clear:both;'>%s <span 
style='font-size:60%%'>(%s)</span></h2>\n", title?title:name, name);
+      g_string_append_printf (s, "<div class='operation'><h2 style='clear:both;'>%s</h2>\n", 
title?title:name);
 
 
       {
@@ -434,22 +434,23 @@ main (gint argc, gchar **argv)
         xml_escape_string (s, description);
         g_string_append_printf (s, "</div>\n");
       }
-#if 0
-      if (klass->compat_name)
-        g_string_append_printf (s, ",'compat-op':'%s'\n", klass->compat_name);
 
-      if (klass->opencl_support)
-        g_string_append_printf (s, ",'opencl-support':'true'\n");
-
-      g_string_append_printf (s, ",'parent':'%s'\n", 
-          g_type_name (g_type_parent(G_OBJECT_CLASS_TYPE(klass))));
-#endif
 
+      g_string_append_printf (s, "<div style='margin-bottom:1em;'>", name);
       json_list_properties (G_OBJECT_CLASS_TYPE (klass), s, name);
+      g_string_append_printf (s, "</div>", name);
 
-      g_string_append_printf (s, "<dl>");
+      g_string_append_printf (s, "<b>name:</b>&nbsp%s<br/>", name);
       json_list_pads (G_OBJECT_CLASS_TYPE (klass), s, name);
 
+      g_string_append_printf (s, "<b>parent-class:</b>&nbsp;<a href='%s.html'>%s</a><br/>\n",
+        g_type_name (g_type_parent(G_OBJECT_CLASS_TYPE(klass))),
+        g_type_name (g_type_parent(G_OBJECT_CLASS_TYPE(klass)))
+        );
+      g_hash_table_insert (seen_categories, g_strdup (
+        g_type_name (g_type_parent(G_OBJECT_CLASS_TYPE(klass)))
+                              ), (void*)0xff);
+
       if (categoris)
       {
         const gchar *ptr = categoris;
@@ -467,14 +468,20 @@ main (gint argc, gchar **argv)
             if (*ptr==':')
               ptr++;
             {
-              g_string_append_printf (s, "<a href='cat-%s.html'>%s</a> ", category, category);
+              g_string_append_printf (s, "<a class='category' style='color:black' href='%s.html'>%s</a> ", 
category, category);
               g_hash_table_insert (seen_categories, g_strdup (category), (void*)0xff);
             }
           }
         g_string_append_printf (s, "<br/>\n");
       }
 
-      if(1){ // XXX: re-enable before push.. it takes a lot of time
+      if (klass->opencl_support)
+        g_string_append_printf (s, "<b>OpenCL</b><br/>\n");
+
+      if (klass->compat_name)
+        g_string_append_printf (s, "<b>compat-op:</b>&nbsp;%s<br/>\n", klass->compat_name);
+
+      if(0){ // XXX: re-enable before push.. it takes a lot of time
         gchar *commandline = g_strdup_printf (
             "sh -c \"(cd " TOP_SRCDIR ";cd ..;grep -r '\\\"%s\\\"' operations) | grep operations | grep -v 
'~:' | grep '\\\"name\\\"' | cut -f 1 -d ':'\"",
              name);
@@ -551,7 +558,8 @@ main (gint argc, gchar **argv)
       for (k = keys; k; k = k->next)
       {
          category = k->data;
-         g_string_append_printf (cs, "<a href='cat-%s.html'>%s</a> ", category, category);
+         if (!strstr (category, "Gegl"))
+         g_string_append_printf (cs, "<a href='%s.html'>%s</a> ", category, category);
       }
       g_string_append_printf (cs, "</div>");
 
@@ -563,7 +571,7 @@ all:
         if (category)
         {
           g_string_append_printf (s, html_pre, category, css, " body{max-width:98%;} ");
-          g_string_append_printf (s, "<h2 style='clear:both;'>%s</h2>\n", category);
+          g_string_append_printf (s, "<h2 style='clear:both;'>GEGL %s operations</h2>\n", category);
           g_string_append_printf (s, "%s", cs->str);
 
           for (iter=operations;iter;iter = g_list_next (iter))
@@ -591,7 +599,8 @@ all:
               found = 1;
           }
       }
-      if (found || !strcmp(category, "all"))
+      if (found || !strcmp(category, "all") ||
+        !strcmp(category, g_type_name (g_type_parent(G_OBJECT_CLASS_TYPE(klass))) ))
       {
         gchar *name_dup = g_strdup (name);
         gchar *colon = strchr (name_dup, ':');
@@ -618,7 +627,7 @@ all:
         g_string_append_printf (s, html_post);
 
       {
-        gchar *html_name = g_strdup_printf ("cat-%s.html", category);
+        gchar *html_name = g_strdup_printf ("%s.html", category);
         g_print ("%s\n", html_name);
         g_file_set_contents (html_name, s->str, -1, NULL);
         g_free (html_name);
@@ -647,7 +656,8 @@ all:
       for (k = keys; k; k = k->next)
       {
          category = k->data;
-         g_string_append_printf (cs, "<a href='cat-%s.html'>%s</a> ", category, category);
+         if (!strstr (category, "Gegl"))
+           g_string_append_printf (cs, "<a href='%s.html'>%s</a> ", category, category);
       }
       g_string_append_printf (cs, "</div>");
 
@@ -656,10 +666,9 @@ all:
         g_string_assign (s, "");
         {
           g_string_append_printf (s, html_pre, category, css, "");
-          g_string_append_printf (s, "<div style='margin-top:3em;'><a href='../index.html'><img 
src='../images/GEGL.png' alt='GEGL' style='height: 6.0em;float:left; padding-right:0.5em;'/></a><h2> All GEGL 
operations</h2><p>This part of the GEGL documentation contains a snapshot of reference rendering images and 
meta-data, useful for programming with GEGL as well as used by GIMP for automatically constructing property 
panels user interfaces.</p>");
-          g_string_append_printf (s, "<p style='clear:both;'>categories:</p>%s\n", cs->str);
+          g_string_append_printf (s, "<div style='margin-top:3em;'><a href='../index.html'><img 
src='../images/GEGL.png' alt='GEGL' style='height: 6.0em;float:left; padding-right:0.5em;'/></a><h2> All GEGL 
operations</h2><p>This part of the GEGL documentation contains a snapshot of reference rendering images and 
meta-data, useful for programming with GEGL as well as used by GIMP for automatically constructing property 
panels user interfaces. The tags in on the right lead to galleries of ops belonging to each category.</p>");
+          g_string_append_printf (s, "<p style='float:right;'>categories:</p>%s\n", cs->str);
 
-          g_string_append_printf (s, "<p>All operations:</p>\n");
           for (iter=operations;iter;iter = g_list_next (iter))
           {
             GeglOperationClass *klass = iter->data;


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