One of the very first Movable Type plugins ever created was a simple text filter. Text filters are used to transform the plain text input by a user into the entry and page editing interfaces, or through a commenting form into some other format. This first plugin called “Convert Line Breaks” made it possible for someone to enter the follow text into Movable Type:
Last night I had a great time with some friends. We went to a restaurant and then a movie.
To the following:
Last night I had a great time with some friends.<br /> <br /> We went to a restaurant and then a movie.
The added break tags (
<br />) helps preserve the formatting of the original text without requiring the user to know HTML.
Movable Type ships with several built in text filters, including:
- Convert line breaks
Each of these text filters converts the text written in an alternate markup into the corresponding HTML syntax. However, there are many other possible uses for a text transformation plugin including one that may auto-correct spelling, automatically link certain words to specific websites, etc.
Note: The text entered by the user is stored in the database in its original form. The transformation occurs at the time the entry is published only.
To register a text filter, use the following code sample:
name: Example Plugin for Movable Type id: Example description: This plugin is an example plugin for Movable Type. version: 1.0 text_filters: mytransform: label: My Text Transform handler: $Example::Example::Plugin::mytransform condition: $Example::Example::Plugin::mytransform_when
There are a number of properties for a text filter that can used when registering the text filter with Movable Type. These options are:
label - the display name of the text filter as it will appear in the Movable Type user interface
handler - a reference to a subroutine responsible for handling the transformation
condition - in the event that the text filter should only be applied under specific conditions, one can identify a reference to a subroutine that will return true if the filter can be applied, and false otherwise.