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 = /^([^*].*)<p>$1</p>"); } } }
(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.