Plone 3 Products Development Cookbook
上QQ阅读APP看书,第一时间看更新

Discovering Zope/Plone APIs and docstrings with DocFinderTab

Although Zope and Plone documentation is really good, sometimes it's so comprehensive that we must read and browse lots of code before we get what we are looking for. DocFinderTab provides a great way of finding it.

How to do it…

  1. Add the Products.DocFinderTab line in the eggs parameter of [buildout] part:
    [buildout]
    
    ...
    
    # Add additional eggs here 
    eggs = 
        iw.debug 
     Products.DocFinderTab
    
  2. Build your instance again and launch it:
    ./bin/buildout
    ./bin/instance fg
    

Now you can navigate to your ZMI (Zope Management Interface) instance to see a new Doc tab. For instance, browse to the URL http://localhost:8080/plone/showDocumentation to get the documentation tab as shown in the following screenshot:

How to do it…

You can also do this with a particular document, folder, or tool of your site:

  • http://localhost:8080/plone/front-page/showDocumentation.
  • http://localhost:8080/plone/events/showDocumentation.
  • http://localhost:8080/plone/portal_catalog/showDocumentation.

How it works…

DocF inderTab is an introspection tool to expose Zope and Plone documentation from inside the ZMI.

The following paragraph explains how DocFinderTab works:

It analyses any Zope object inside a running Zope, determines which classes have been used in the object's makeup and provides information about their class level attributes: name, allowed roles, arguments, documentation strings. It provides (read only) access to source code of Python implemented classes and methods.

The excerpt was taken from Dieter Maurer's website (http://www.dieter.handshake.de). He's the creator of DocFinder, the Zope product used by DocFinderTab.

There's more…

More information on DocFinderTab is available at: http://plone.org/products/docfindertab.

To learn about how DocFinder works visit http://www.dieter.handshake.de/pyprojects/zope/DocFinder.html.

If you are interested in more Python introspection, then visit http://diveintopython.org/power_of_introspection/index.html.