topical media & game development
actionscript-book-WikiEditor-com-example-programmingas3-wikiEditor-WikiParser.ax
actionscript-book-WikiEditor-com-example-programmingas3-wikiEditor-WikiParser.ax
[swf]
flex
package //com.example.programmingas3.wikiEditor
{
Used to define the main functionality of the @ax-actionscript-book-WikiEditor-com-example-programmingas3-wikiEditor-WikiParser application:
- Provides a sample wiki string.
- Uses regular expressions to convert a Wiki string into HTML text.
public class @ax-actionscript-book-WikiEditor-com-example-programmingas3-wikiEditor-WikiParser {
The string that contains the wiki text.
public var wikiData:String;
The constructor function, which initializes the wiki text with new sample data.
public function @ax-actionscript-book-WikiEditor-com-example-programmingas3-wikiEditor-WikiParser() {
wikiData = setWikiData();
}
Returns sample wiki data.
private function setWikiData():String {
var str:String = "'''Test wiki data'''\n" +
"\n" +
"This is a test. This is ''only'' a test.\n" +
"Basic rules:\n" +
"* 3 single quote marks indicates '''bold'''.\n" +
"* 2 single quote marks indicates ''italics''.\n" +
"* An asterisk creates a bulleted list item.\n" +
"* Use blank lines as paragraph separators.\n" +
"\n" +
"You can convert a dollar value like this: $9.95.\n" +
"\n" +
"Here's a URL to convert: http://www.adobe.com.\n" +
"\n" +
"Here's an e-mail address to convert: mailto:bob@example.com.";
return str;
}
Converts a wiki string to HTML text.
public function parseWikiString (wikiString:String):String {
var result:String = parseBold(wikiString);
result = parseItalic(result);
result = linesToParagraphs(result);
result = parseBullets(result);
return result;
}
Replaces a bold pattern in a wiki string with the
HTML equivalent. For example '''foo''' becomes
<b>foo</b>.
private function parseBold(input:String):String {
var pattern:RegExp = /'''(.*?)'''/g;
return input.replace(pattern, "<b>$1</b>");
}
Replaces an italic pattern in a wiki string with the
HTML equivalent. For example ''foo'' becomes
<i>foo</i>.
private function parseItalic(input:String):String {
var pattern:RegExp = /''(.*?)''/g;
return input.replace(pattern, "<i>$1</i>");
}
Replaces a bold pattern in a wiki string with the
HTML equivalent. For example the following line:
* foo
Becomes this:
<li>foo</li>
private function parseBullets(input:String):String {
var pattern:RegExp = /^\*(.*)/gm;
return input.replace(pattern, "<li>$1</li>");
}
Replaces a newline in a wiki string with the
<p> HTML tag.
private function linesToParagraphs(input:String):String {
Strips out empty lines, which match /^
var pattern:RegExp = /^/gm;
var result:String = input.replace(pattern, "");
Adds <p> tags around all remaining lines.
However, not those that begin with an asterisk,
which are considered <li> items.
pattern = /^([^*].*)
(C) Æliens
27/08/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.