Text::Hatena - Perl extension for formatting text with Hatena Style.
use Text::Hatena; my $html = Text::Hatena->parse($text);
Text::Hatena parses text with Hatena Style and generates html string. Hatena Style is a set of text syntax which is originally used in Hatena Diary (http://d.hatena.ne.jp/).
You can get html string from simple text with syntax like Wiki.
- Incompatibility at version 0.20
All codes were rewritten at version 0.20 and some functions were removed. API for parsing text were changed too. Please be careful to upgrade your Text::Hatena to version 0.20+.
Here are common methods of Text::Hatena.
my $html = $parser->parse($text);
parses text and returns html string.
Text::Hatena supports some simple markup language, which is similar to the Wiki format.
Basically each line becomes a paragraph. If you want to force a newline in a paragraph, you can use a line break markup of HTML.
Text::Hatena treats a blank line as the end of a block. A blank line after a paragraph does not affect the output. Two blank lines are translated into a line break, three blank lines are translated into two line breaks and so on.
To stop generating paragraphs automatically, start a line with >< (greater-than sign and less-than sign). The first > (greater-than sign) will be omitted. If you end a line with ><, it will stop. The last < (less-than sign) will be omitted.
><div class="foo">A div block without paragraph.</div>< ><form action="foo.cgi" method="put"> To insert a from, write as you see here. <input type="text" name="a" /> <input type="submit" /> </form><
To create a section headline, start a line with a star followed by an anchor, a star, some tags of categories and a section title.
*A line with a star becomes section headline
More stars mean deeper levels of headlines. You can use up to three stars for headlines.
**Start a line with two stars to create a 4th level headline ***Start a line with three stars to create a 5th level headline.
- Lists and Tables
Text::Hatena supports ordered and unordered lists. Start every line with a minus (-) for unordered lists or a plus (+) for ordered ones. More marks mean deeper levels. You can show the end of the lists by a blank line.
-Start a line with minuses to create an unordered list item. +Start a line with pluses to create an ordered list item. ++They can be nested.
Text::Hatena supports definition lists. Start every line with a colon followed by a term, a colon, and a description.
You can create tables by using a simple syntax. Table rows have to start and end with a vertical bar (|). Separete every cell with a vertical bar (|). To turn cells into headers, begin them with a star.
To make a blockquote, enclose line(s) with >> (double greater-than sign) and << (double less-than sign). Marks should be placed in separate lines; don't start quoting line(s) with >> or end them with <<. Blockquotes may be nested.
>> To make a blockquote, enclose line(s) with >> (double greater-than sign) and << (double less-than sign). <<
- Preformatted texts
To make a preformatted text, enclose line(s) with >| (a greater-than sign followed by a vertical bar) and |< (a vertical var followed by a less-than sign).
Every >| should be placed in separate lines; don't start preformatted line(s) with >|. But some preformatted texts may be closed by |< after the last lines without separating lines.
>| To make a preformatted text, enclose line(s) with >| (a greater-than sign followed by a vertical bar) and |< (a vertical var followed by a less-than sign). |<
This also works well.
>| To make a preformatted text, enclose line(s) with >| (a greater-than sign followed by a vertical bar) and |< (a vertical var followed by a less-than sign).|<
To encode special characters into HTML entities, use >|| and ||< for >| and |<. The characters to be replaced are less-than signs (<), greater-than signs (>), double quotes ("), and ampersands (&).
>|| To encode special characters into HTML entities, use >|| and ||< for >| and |<. ||<
Junya Kondo, <firstname.lastname@example.org>
COPYRIGHT AND LICENSE
Copyright (C) Hatena Inc. All Rights Reserved.
This library is free software; you may redistribute it and/or modify it under the same terms as Perl itself.