Hi folks,

My name is Bruno Melo, I'm a computer engineering student at University of
Pernambuco, Brazil. I've been doing research in the field of Machine
Learning/Information Retrieval since 2005 and work (at university) with
Python since 2006.

I'm very interested in develop the Documentation Production System proposed
in [1] as part of GSoC and/or as a developer even without Google help...

Let's talk about the project...

# What? #

Develop a system to make the creation and maintenance of technical
documentations (books, framework documentation, etc) easier and more fun...
Maintain a large collection of text and *correct* code examples isn't a
trivial task. This project proposes a tool which can take working tested
code from a external resource and include it inline with text [1], keep
synchronized, and with references to others elements (API documentation,
Trac, etc). These features can make refactoring possible, and consequently,
the maintenance task easier.

# How? #

This system can be developed with many features, here I list some of them...

*1) Extend Sphinx [2] to work like Idiopidae [3]*

Example:

(from http://docs.turbogears.org/1.0/ValidateDecorator)

When not using forms, the story gets a bit more complex. Basically, you need
to specify which validator goes with which argument using the
validatorskeyword argument. Here's a simple example:

@include "code/example3.py" "Root Class"

*will produce something like:*

When not using forms, the story gets a bit more complex. Basically, you need
to specify which validator goes with which argument using the
validatorskeyword argument. Here's a simple example:

class Root:
    @expose(template="gs.templates.welcome")
    @validate(validators={"value": validators.Int()})
    def index(self, value=0, tg_errors=None):
        if tg_errors:
          # handle the error however you want!
        return dict(newvalue=value*2)


%% ../code/example3.py %%

import turbogears
from turbogears import validators, expose, validate
class Root:
    @expose(template="gs.templates.welcome")
    @validate(validators={"value": validators.Int()})
    def index(self, value=0, tg_errors=None):
        if tg_errors:
          # handle the error however you want!
        return dict(newvalue=value*2)

%%

*2) Links between elements.*
In the above example the word *validators* could make a cross-reference to
the API documentation.

*3) Annotate elements in the text to make reference to elements at code
example.*
Example:
Using the same code above, but with the preceding text a quite different:

... will return a dict with @["/code/example3.py" "index"] *newvalue* @ ...

At build time if doesn't exist anything called *newvalue* at *index* method
in class *Root *an error occurs. *Refactoring*

*4) Generate HTML, PDF, and LaTeX output
5) Commenter system or integration with Trac*

# Why? #

I think that this project will be useful for both sides of a documentation
system (users [developers] and producers [book/documentation writers]):

For users:
- read good quality documentation
- read a *true* hypertext documentation
- what more??

For producers:
- documentation production more fun
- ease maintenance
- what more??


# Further reading #
http://compoundthinking.com/blog/index.php/2008/03/11/how-to-write-a-better-book-or-just-better-docs/*very
good!*
http://compoundthinking.com/blog/index.php/2008/03/21/documentation-tools/

# References #
[1] http://docs.turbogears.org/GSoC/Ideas2008#id11
[2] http://sphinx.pocoo.org/
[3] http://www.zedshaw.com/projects/zapps/idiopidae.html
[4] http://apydia.ematia.de/

What do you think?? feedbacks are welcome...

Best Regards,
-- 
bruno j. m. melo
http://brunojm.googlepages.com
>> brunojm <at> gmail.com <<

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/turbogears?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to