changeset 5693:80b423fb1efe octave-forge

Allow the manual to be generated
author hauberg
date Fri, 29 May 2009 08:24:57 +0000
parents 31301bd91095
children 38708a4d861b
files extra/generate_html/inst/generate_html_manual.m extra/generate_html/inst/generate_package_html.m extra/generate_html/inst/get_html_options.m
diffstat 3 files changed, 93 insertions(+), 80 deletions(-) [+]
line wrap: on
line diff
--- a/extra/generate_html/inst/generate_html_manual.m	Fri May 29 07:19:26 2009 +0000
+++ b/extra/generate_html/inst/generate_html_manual.m	Fri May 29 08:24:57 2009 +0000
@@ -114,6 +114,9 @@
   
   ## Generate the documentation
   root = get_root (outdir, full_fun_dir);
+  options.include_package_list_item = false;
+  options.include_package_page = false;
+      options.include_overview = false;
   for k = 1:length (index)
     if (!isempty (index {k}))
       printf ("Chapter: %s\n", index {k}.name); fflush (stdout);
--- a/extra/generate_html/inst/generate_package_html.m	Fri May 29 07:19:26 2009 +0000
+++ b/extra/generate_html/inst/generate_package_html.m	Fri May 29 08:24:57 2009 +0000
@@ -82,10 +82,6 @@
     mkdir (outdir);
   endif
 
-  if (!exist (fullfile (outdir, packname), "dir"))
-    mkdir (fullfile (outdir, packname));
-  endif
-
   [local_fundir, fundir] = mk_function_dir (outdir, options);
   
   ## If options is a string, call get_html_options
@@ -134,61 +130,66 @@
   #########################
   ## Write overview file ##
   #########################
-  overview_filename = get_overview_filename (options, desc.name);
+  if (isfield (options, "include_overview") && options.include_overview)
+    overview_filename = get_overview_filename (options, desc.name);
+
+    if (!exist (fullfile (outdir, packname), "dir"))
+      mkdir (fullfile (outdir, packname));
+    endif
+
+    fid = fopen (fullfile (outdir, packname, overview_filename), "w");
+    if (fid < 0)
+      error ("generate_package_html: couldn't open overview file for writing");
+    endif
+  
+    [header, title, footer] = get_overview_header_title_and_footer (options, desc.name, "../");
+
+    fprintf (fid, "%s\n", header);  
+    fprintf (fid, "<h2 class=\"tbdesc\">%s</h2>\n\n", desc.name);
 
-  fid = fopen (fullfile (outdir, packname, overview_filename), "w");
-  if (fid < 0)
-    error ("generate_package_html: couldn't open overview file for writing");
+    fprintf (fid, "  <div class=\"package_description\">\n");
+    fprintf (fid, "    %s\n", desc.description);
+    fprintf (fid, "  </div>\n\n");
+  
+    fprintf (fid, "  <ul>\n");
+    for k = 1:num_categories
+      category = desc.provides {k}.category;
+      fprintf (fid, "    <li><a href=\"#%s\">%s</a></li>\n", anchors {k}, category);
+    endfor
+    fprintf (fid, "  </ul>\n\n");
+  
+    ## Generate function list by category
+    for k = 1:num_categories
+      F = desc.provides {k}.functions;
+      category = desc.provides {k}.category;
+      fprintf (fid, "  <h3 class=\"category\"><a name=\"%s\">%s</a></h3>\n\n",
+               anchors {k}, category);
+  
+      ## For each function in category
+      for l = 1:length (F)
+        fun = F {l};
+        if (implemented {k}{l})
+          link = sprintf ("../%s/%s.html", local_fundir, fun);
+          fprintf (fid, "    <div class=\"func\"><b><a href=\"%s\">%s</a></b></div>\n",
+                   link, fun);
+          fprintf (fid, "    <div class=\"ftext\">%s</div>\n\n",
+                   get_first_help_sentence (fun, 200));
+        else
+          fprintf (fid, "    <div class=\"func\"><b>%s</b></div>\n", fun);
+          fprintf (fid, "    <div class=\"ftext\">Not implemented.</div>\n\n");
+        endif
+      endfor
+    endfor
+  
+    fprintf (fid, "\n%s\n", footer);
+    fclose (fid);
   endif
   
-  [header, title, footer] = get_overview_header_title_and_footer (options, desc.name, "../");
-
-  fprintf (fid, "%s\n", header);  
-  fprintf (fid, "<h2 class=\"tbdesc\">%s</h2>\n\n", desc.name);
-
-  fprintf (fid, "  <div class=\"package_description\">\n");
-  fprintf (fid, "    %s\n", desc.description);
-  fprintf (fid, "  </div>\n\n");
-  
-  fprintf (fid, "  <ul>\n");
-  for k = 1:num_categories
-    category = desc.provides {k}.category;
-    fprintf (fid, "    <li><a href=\"#%s\">%s</a></li>\n", anchors {k}, category);
-  endfor
-  fprintf (fid, "  </ul>\n\n");
-  
-  ## Generate function list by category
-  for k = 1:num_categories
-    F = desc.provides {k}.functions;
-    category = desc.provides {k}.category;
-    fprintf (fid, "  <h3 class=\"category\"><a name=\"%s\">%s</a></h3>\n\n",
-             anchors {k}, category);
-  
-    ## For each function in category
-    for l = 1:length (F)
-      fun = F {l};
-      if (implemented {k}{l})
-        link = sprintf ("../%s/%s.html", local_fundir, fun);
-        fprintf (fid, "    <div class=\"func\"><b><a href=\"%s\">%s</a></b></div>\n",
-                 link, fun);
-        fprintf (fid, "    <div class=\"ftext\">%s</div>\n\n",
-                 get_first_help_sentence (fun, 200));
-      else
-        fprintf (fid, "    <div class=\"func\"><b>%s</b></div>\n", fun);
-        fprintf (fid, "    <div class=\"ftext\">Not implemented.</div>\n\n");
-      endif
-    endfor
-  endfor
-  
-  fprintf (fid, "\n%s\n", footer);
-  fclose (fid);
-
   #####################################################
   ## Write short description for forge overview page ##
   #####################################################
   
-  if (options.include_package_list_item)
-
+  if (isfield (options, "include_package_list_item") && options.include_package_list_item)
     pkg_list_item_filename = get_pkg_list_item_filename (desc.name, outdir, section);
 
     text = strrep (options.package_list_item, "%name", desc.name);
@@ -203,46 +204,51 @@
     else
       error ("generate_package_html: unable to open file %s.", pkg_list_item_filename);
     endif
-
   endif
 
 
   ######################
   ## Write index file ##
   ######################
-  index_filename = "index.html";
+  if (isfield (options, "include_package_page") && options.include_package_page)
+    index_filename = "index.html";
 
-  fid = fopen (fullfile (outdir, packname, index_filename), "w");
-  if (fid < 0)
-    error ("generate_package_html: couldn't open index file for writing");
-  endif
+    if (!exist (fullfile (outdir, packname), "dir"))
+      mkdir (fullfile (outdir, packname));
+    endif
+
+    fid = fopen (fullfile (outdir, packname, index_filename), "w");
+    if (fid < 0)
+      error ("generate_package_html: couldn't open index file for writing");
+    endif
   
-  [header, title, footer] = get_index_header_title_and_footer (options, desc.name, "../");
-
-  fprintf (fid, "%s\n", header); 
-  fprintf (fid, "<h2 class=\"tbdesc\">%s</h2>\n\n", desc.name);
-  fprintf (fid, "<table id=\"main_package_table\">\n");
-  fprintf (fid, "<tr><td>Package Name:</td><td>%s</td></tr>\n", desc.name);
-  if (isfield (desc, "version"))
-    fprintf (fid, "<tr><td>Package Version:</td><td>%s</td></tr>\n", desc.version);
-  endif
+    [header, title, footer] = get_index_header_title_and_footer (options, desc.name, "../");
 
-  if (isfield (options, "download_link"))
-    link = strrep (options.download_link, "%name", desc.name);
-    link = strrep (link, "%version", desc.version);
-    fprintf (fid, "<tr><td colspan=\"2\"><img src=\"../download.png\" alt=\"Download\"/>");
-    fprintf (fid, "<a href=\"%s\">Download this package</a></td></tr>\n", link);
-  endif
+    fprintf (fid, "%s\n", header); 
+    fprintf (fid, "<h2 class=\"tbdesc\">%s</h2>\n\n", desc.name);
+    fprintf (fid, "<table id=\"main_package_table\">\n");
+    fprintf (fid, "<tr><td>Package Name:</td><td>%s</td></tr>\n", desc.name);
+    if (isfield (desc, "version"))
+      fprintf (fid, "<tr><td>Package Version:</td><td>%s</td></tr>\n", desc.version);
+    endif
 
-  fprintf (fid, "<tr><td colspan=\"2\"><img src=\"../doc.png\" alt=\"Function Reference\"/>");
-  fprintf (fid, "<a href=\"%s\">Read package function reference</a></td></tr>\n", overview_filename);
+    if (isfield (options, "download_link"))
+      link = strrep (options.download_link, "%name", desc.name);
+      link = strrep (link, "%version", desc.version);
+      fprintf (fid, "<tr><td colspan=\"2\"><img src=\"../download.png\" alt=\"Download\"/>");
+      fprintf (fid, "<a href=\"%s\">Download this package</a></td></tr>\n", link);
+    endif
 
-  fprintf (fid, "</table>\n");
+    fprintf (fid, "<tr><td colspan=\"2\"><img src=\"../doc.png\" alt=\"Function Reference\"/>");
+    fprintf (fid, "<a href=\"%s\">Read package function reference</a></td></tr>\n", overview_filename);
+
+    fprintf (fid, "</table>\n");
   
-  fprintf (fid, "<div id=\"description_box\">\n");
-  fprintf (fid, "%s\n</div>\n", desc.description);
+    fprintf (fid, "<div id=\"description_box\">\n");
+    fprintf (fid, "%s\n</div>\n", desc.description);
 
-  fprintf (fid, "\n%s\n", footer);
-  fclose (fid);
+    fprintf (fid, "\n%s\n", footer);
+    fclose (fid);
+  endif
 endfunction
 
--- a/extra/generate_html/inst/get_html_options.m	Fri May 29 07:19:26 2009 +0000
+++ b/extra/generate_html/inst/get_html_options.m	Fri May 29 08:24:57 2009 +0000
@@ -122,6 +122,7 @@
       options.include_demos = true;
       
       ## Options for overview page
+      options.include_overview = true;
       #options.overview_header = strrep (strrep (hh, "%date", date ()), "%body_command", "");
       options.manual_body_cmd = 'onload="javascript:fix_top_menu (); javascript:manual_menu ();"';
     
@@ -140,11 +141,13 @@
 
       ## Options for index package
       options.download_link = "http://downloads.sourceforge.net/octave/%name-%version.tar.gz?download";
+      options.include_package_page = true;
       
     case "octave"
       options.header = "__HEADER__(`%title')";
       options.footer = "__OCTAVE_TRAILER__";
       options.title  = "Function Reference: %name";
+      options.include_overview = true;
 
     case "docbrowser"
       ## Basic HTML header
@@ -172,6 +175,7 @@
       options.include_demos = true;
           
       ## Options for overview page
+      options.include_overview = true;
       options.overview_header = strrep (hh, "%css", sprintf ("../%s", css));
       options.overview_title = "Overview: %name";