On Sep 2, 2011, at 3:29 PM, Irakli Gozalishvili wrote:

> 
> https://github.com/Gozala/doc 
> 

I want to second Brendan on the coolness of this.  It really is a JavaScript 
derived solution rather than simply copying what somebody else did for some 
other language.

I have a couple of thoughts  to throw in.

The documentation description doesn't need to be a single structured string.  
It could also be something like:

   function sum(x, y) {
doc: {
      name: "sum";
      parameters: {
            x: "first value to sum"; expected: "Number";
            y: "second value to sum"; expected: "Number";
      }
      returns: "Number";
      description: "Compute the sum of two numbers";
      docUrl: "http://maysite.com/myapp/designDoc.html#sum";;
}
      
return x + y;
   }

This doc blocks looks something like an object literal but is really composed 
of  nested labelled blocks and statements.  However, it would be pretty easy to 
translate such a structure into a JSON object structure.

Whether a string or a structured labeled block is used, if we hope for multiple 
tools and IDEs to support it then somebody needs to propose and promote a 
specific documentation schema.

Oliver is correct that you can't depend upon Function.prototype.toString 
actually reproduce such a structure, but it is a pretty good fallback source 
for a runtime tool to try when it can't find the documentation anywhere else.

Earlier in this thread I was stressing that it is desirable to make it 
impossible for application logic to have dependencies upon such metadata. This 
approach satisfies that requirement.  In fact, if this convention was 
established I would expect minimizers to strip out any such documentation.

Given that you can't depend upon the documentation to be in the actual 
downloaded source code runtime tools need a convention for finding the 
documentation.  I suggest above that  such a documentation block could easily 
be translated into JSON.  Such a convention might be something like that given 
a executed file located at "http:somepath/foo.js" or "http:somepath/foo.min.js" 
the file "http:somepath/foo.js.doc.json" contains the documentation objects for 
the file.  Of source, someone needs to write a documentation extractor to 
produce such files.

Allen


_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to