Goal of project: Extend (or fork) autodoc such that it can create and run interactive documentation for any project.
Example for the take function: *take*function Usage: (take n coll) Returns a lazy sequence of the first n items in coll, or all items if there are fewer than n. *Example: * *<textarea> (take 10 (range 20))</textarea> <button> Eval!</button>* *Output: * *[0 1 2 3 4 5 6 7 8 9]* Added in Clojure version 1.0 And then the user could change the code in the browser, it would be sent off to the server, and the new user would get the answer back: *Example: <textarea> (take 5 (range 20))</textarea> <button> Eval!</button>* *Output: [0 1 2 3 4]* * * To make this work, autodoc would need to be extended in two major ways: 1. When generating the html, autodoc would look for metadata within each definition. If it found :examples within the data, then it would add in a number of <textarea> elements and eval buttons prefilled with the given examples. Example definition: (defn take "Returns a lazy sequence of the first n items in coll, or all items if there are fewer than n." {:added "1.0" :static true :examples ['(take 5 (range 10)),'(take 3 (drop 5 (range 1 11)))]} [n coll] (lazy-seq (when (pos? n) (when-let [s (seq coll)] (cons (first s) (take (dec n) (rest s))))))) 2. Have it ship with a webserver that runs something similar to tryclojure and has all of the routes set up for the documentation to work automagically. A very basic use of clojail. An interesting challenge would be finding a way to get outputs besides text to work (things like charts for incanter). Conceptually, this isn't too hard to imagine as a project. The main brunt of the work would be writing all of the examples for each project. Even then, there are a ton of examples on clojuredocs.org that are under the EPL license. Having interactive documentation would be pretty cool though. The only place I have seen it so far has been in Mathematica, and that was only after you bought the program. If people are interested in this being made, I'll be the first to volunteer as a student. Would people be interested in this as a project for GSOC? -Zack -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en