I'm working on documenting the Roller plugin system, comparing it to similar systems (e.g. Wordpress and Confluence) and coming up with some proposals for improvements.
As part of that work, I've come up with a list of the plugin types supported by Roller 4.0:
- Page Model Plugin (Interface: PageModel)
Allows you to make new objects available to Roller page templates, providing a way to display external data in the blog pages and feeds generated by Roller.
- Weblog Editor UI Plugin (Interface:
WeblogEntryEditor)
Plugin your own Rich Text or other type of editor into the New/Edit Entry page in the Roller web UI. Roller comes with two such plugins: a plain-text editor and a rich-text editor based on Xinha.
- Weblog Entry Plugin (Interface:
WeblogEntryPlugin)
Allows you to transform weblog entry content at the time it is displayed in a weblog page or a feed. Once you've installed your entry plugin, blog authors can enable and disable it on a per entry basis. For example, if you've got the Wiki Plugin installed then bloggers can choose to blog using wiki syntax and the plugin will transform the wiki syntax to HTML on display.
- Weblog Entry Comment Plugin (Interface:
WeblogEntryCommentPlugin)
Allows you to transform comment content at the time it is displayed in a weblog page or feed. By default, Roller uses a link-markup plugin to turn URLs into clickable links, an auto-format plugin to add paragraph breaks and a safe-subset plugin to strip out all but the safest HTML tags. You can add new comment formatter plugins or replace the existing ones.
- Comment Authenticator Plugin (Interface:
CommentAuthenticator)
Plugin your own comment authenticator to replace the math-question test used in most Roller blogs. Allows you to add some additional HTML to the comment form and some server-side logic for authenticating comment posts. You could add a CAPTCHA test this way, but I'm not sure there's enough pluggability to support OpenID authentication.
- Comment Validator Plugin (Interface:
CommentValidator)
Allows you to add additional comment spam filters to Roller. Your filter can examine each comment posted and report to Roller whether it appears to be spam or not. Roller includes an Akismet validator, a too-many-links validator and a trackback validator.
- Renderer Plugin (Interfaces:
RendererFactory and
Renderer)
Allow you to plugin a renderer for a specific template language name. Roller's stock templates and theme all use the Velocity template language, but by plugging in your own renderer you can author templates in whatever JVM based language you wish. For example, plugins exist for authoring Roller templates in JavaScript, JRuby and Groovy Server Pages (GSP) languages.
- Request Mapper Plugin (Interface:
RequestMapper)
Allows you to plugin to Roller's URL structure and request handling system, like adding a Servlet but not requiring you to edit web.xml.
- Cache system Plugin (Interfaces:
CacheFactory and
Cache)
Plugin your own cache system to replace or augment Roller's in-memory cache system. For example, you might want to plugin memcached as your distributed page/feed cache as Sun does for blogs.sun.com.
- Repeatable Task (Classes to extend:
RollerTask or
RollerTaskWithLeasing)
Roller runs a number of tasks behind the scenes and you can add your own tasks and configure when they start and how often they run. There's also a lease-system for working in a distributed environment.
UPDATE: The Advanced Roller presentation from ApacheCon EU 2008 covers many of the different types of plugins above and gives examples, configuration tips, etc.
Posted by Eduardo Pelegri-Llopart on October 17, 2007 at 12:47 PM EDT #
Posted by Dave Johnson on October 18, 2007 at 02:09 AM EDT #
Posted by Thorleif Wiik on October 18, 2007 at 07:07 PM EDT #
What features would you want from a Google Analytics plugin? Would it simply help folks add the correct HTML/JS code to blog pages or is there something else it could do?
- DavePosted by Dave Johnson on October 19, 2007 at 12:31 AM EDT #
to use Google Analytics, you've to add a tracking code to each web page. To track downloads (pdf, etc.) and external links, there's also a JavaScript Onclick Action.
It would be cool, to have something similiar like the wordpress plugins on the net. That's more easy for users than modify templates.
http://www.semiologic.com/software/marketing/google-analytics/
http://www.google.com/support/googleanalytics/bin/answer.py?answer=55488&topic=11126
Posted by Thorleif Wiik on October 21, 2007 at 11:50 AM EDT #
Posted by Maruti on April 17, 2008 at 05:20 AM EDT #
Posted by khalid on July 16, 2008 at 11:01 PM EDT #
Posted by Sarwar Bhuiyan on December 04, 2008 at 02:15 PM EST #