PyLucid plugins are small django apps (before v0.9 the plugins are special PyLucid classes).

PyLucid used many small plugins for the most parts of the generated html page.
The Philosophy is: Keep the PyLucid core small and use if possible plugins. Every part of the cms page is a plugin. e.g.: The main menu, the search engine, the Sitemap...

More information about the plugin API can you found here: http://www.pylucid.org/permalink/134/new-v09-plugin-api

A Plugin can be used in two different ways: inline and via a _command url:

inline method

The inline method used the django template engine. You can insert a Plugin with the lucidTag. tag would be replaces with the "plugin output".

These tags can be exists in the global template (e.g. the main menu) or in the cms page content (e.g. the sitemap).

e.g. include a external RSS feed into the page:

1
{% lucidTag rss url="http url" title="a feed" %}

You get a list of all existing lucidTags by clicking on tag list (Button on a edit page form).

PluginPage

Bigger plugins can be inserted into the page tree. You must create a PluginPage

Use the menu point PyLucid admin menu -> create content -> new plugin page. You will get a list of all existing plugins.

context middleware

A PyLucid special plugin API is the context middleware. These kinds of plugin must be used, if the output should be changesable in the render process. e.g. the blog plugin append a breadcrumb link if you are on a blog detail page.

The context middleware is not a django template tag. It's a PyLucid own thing. The Syntax is like a HTML comment:

1
<!-- ContextMiddleware PluginName -->

plugin documentation pages

Here you can find information about the plugins witch shipped with the PyLucid packages: