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

[Xen-API] [PATCH] [ocamldoc] Links to source code on module pages


  • To: xen-api <xen-api@xxxxxxxxxxxxxxxxxxx>
  • From: Rob Hoes <rob.hoes@xxxxxxxxxx>
  • Date: Wed, 13 Jan 2010 15:59:34 +0000
  • Delivery-date: Wed, 13 Jan 2010 08:00:17 -0800
  • List-id: Discussion of API issues surrounding Xen <xen-api.lists.xensource.com>

# HG changeset patch
# User Rob Hoes <rob.hoes@xxxxxxxxxx>
[ocamldoc] Links to source code on module pages

Signed-off-by: Rob Hoes <rob.hoes@xxxxxxxxxx>

diff -r 22784973b624 ocaml/doc/ocamldoc.js
--- a/ocaml/doc/ocamldoc.js     Wed Jan 13 12:13:48 2010 +0000
+++ b/ocaml/doc/ocamldoc.js     Wed Jan 13 15:56:30 2010 +0000
@@ -19,10 +19,12 @@
 var component = getQuerystring('c');
 
 var components = executables.concat(libraries).concat(packages);
-var component_modules = {}
-var component_stats = {}
-var component_deps = {}
+var component_modules = {};
+var component_stats = {};
+var component_deps = {};
 
+var root = '/bind/myrepos/';
+var code_url = 'http://xenbits.xen.org/xapi/';
 
 // function from 
http://www.bloggingdeveloper.com/post/JavaScript-QueryString-ParseGet-QueryString-with-Client-Side-JavaScript.aspx
 function getQuerystring(key, default_)
@@ -452,12 +454,30 @@
                        '&m=' + module_chain.slice(0,i+1).join('.') + '">' + 
                        module_chain[i] + '</a>';
        html += chain.join('.') + '</h1>\n';
-       html += '<div class="defined">Defined in ' +  mod.file + ' (' + 
component + ')</div>';
+
        html += '<div class="description">';
        if (mod.info.description != undefined)
                html += mod.info.description + '</div>';
        else
                html += '<span class="empty">to be completed!</span></div>';
+
+       html += '<div class="defined"><table class="field-table">';
+       html += '<tr><td><b>Component</b>:</td><td><a href="?c=' + component + 
'">' + component + '</td><td>&nbsp;</td></tr>';
+       r = new RegExp(root + '([^\|]*)\|\d*');
+       if (mod.location.interface != 'unknown') {
+               if_file = r.exec(mod.location.interface)[1];
+               x = /([\.\-\w]*)\/([^\|]*)/.exec(if_file);
+               url = code_url + x[1] + '?raw-file/tip/' + x[2];
+               html += '<tr><td><b>Interface file:</b></td><td><a href="' + 
url + '" target="_blank">' + if_file + '</a></td></tr>';
+       }
+       if (mod.location.implementation != 'unknown') {
+               im_file = r.exec(mod.location.implementation)[1];
+               x = /([\.\-\w]*)\/([^\|]*)/.exec(im_file);
+               url = code_url + x[1] + '?raw-file/tip/' + x[2];
+               html += '<tr><td><b>Implementation file:</b></td><td><a href="' 
+ url + '" target="_blank">' + im_file + '</a></td></tr>';
+       }
+       html += '</table></div>';
+
        set_content(html);
        
        if (mod.module_structure != undefined)
diff -r 22784973b624 ocaml/doc/odoc_json.ml
--- a/ocaml/doc/odoc_json.ml    Wed Jan 13 12:13:48 2010 +0000
+++ b/ocaml/doc/odoc_json.ml    Wed Jan 13 15:56:30 2010 +0000
@@ -132,18 +132,21 @@
   
 let escape_json s =
   let len = String.length s in
-  let buf = Buffer.create len in
-  for i = 0 to len - 1 do
-    match s.[i] with
-    | '\"' -> Buffer.add_string buf "\\\""
-    | '\\' -> Buffer.add_string buf "\\\\"
-    | '\b' -> Buffer.add_string buf "\\b"
-    | '\n' -> Buffer.add_string buf "\\n"
-    | '\r' -> Buffer.add_string buf "\\r"
-    | '\t' -> Buffer.add_string buf "\\t"
-    | c -> Buffer.add_char buf c
-  done;
-  Buffer.contents buf
+  if len > 0 then begin
+         let buf = Buffer.create len in
+         for i = 0 to len - 1 do
+               match s.[i] with
+               | '\"' -> Buffer.add_string buf "\\\""
+               | '\\' -> Buffer.add_string buf "\\\\"
+               | '\b' -> Buffer.add_string buf "\\b"
+               | '\n' -> Buffer.add_string buf "\\n"
+               | '\r' -> Buffer.add_string buf "\\r"
+               | '\t' -> Buffer.add_string buf "\\t"
+               | c -> Buffer.add_char buf c
+         done;
+         Buffer.contents buf
+  end
+  else ""
   
 type json =
 | Object of (string * json) list
diff -r 22784973b624 ocaml/doc/style.css
--- a/ocaml/doc/style.css       Wed Jan 13 12:13:48 2010 +0000
+++ b/ocaml/doc/style.css       Wed Jan 13 15:56:30 2010 +0000
@@ -187,8 +187,9 @@
 }
 
 .defined {
-       font-style: italic;
        margin: 1em 0;
+       padding: 0 .5em;
+       background-color: #ffcc66;
 }
 
 .description {

Attachment: doc-code
Description: Text document

_______________________________________________
xen-api mailing list
xen-api@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/mailman/listinfo/xen-api

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.