From: <rob...@us...> - 2012-01-17 20:27:07
|
Revision: 39539 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=39539&view=rev Author: robertplummer Date: 2012-01-17 20:26:58 +0000 (Tue, 17 Jan 2012) Log Message: ----------- [FIX] Some code cleanup to get working again, different scopes were causing problems. Modified Paths: -------------- trunk/lib/core/JisonParser/Wiki/Handler.js trunk/lib/core/JisonParser/Wiki/Parser.jison trunk/lib/core/JisonParser/Wiki/Parser.js trunk/lib/core/JisonParser/Wiki/Parser.php trunk/lib/core/JisonParser/Wiki/WikiParserTester.html Modified: trunk/lib/core/JisonParser/Wiki/Handler.js =================================================================== --- trunk/lib/core/JisonParser/Wiki/Handler.js 2012-01-17 19:32:23 UTC (rev 39538) +++ trunk/lib/core/JisonParser/Wiki/Handler.js 2012-01-17 20:26:58 UTC (rev 39539) @@ -1,24 +1,4 @@ -var parserlib = { - parse: function(val, errors) { - try { - function Lexer () {} - Lexer.prototype = WikiParser.lexer; - - function Parser () { - this.lexer = new Lexer(); - this.yy = {}; - } - Parser.prototype = WikiParser; - - var wikiParser = (new Parser); - - return wikiParser.parse(val); - } catch (e) { - if (errors) { - return e; - } - } - }, +Parser = $.extend({ plugin: function(plugin) { //needs a little ajax magic if (plugin) { @@ -27,7 +7,7 @@ if (window[wikiPluginName]) { var thisOutput = window[wikiPluginName](plugin.body); if (thisOutput) { - var newOutput = parserlib.parse(thisOutput); + var newOutput = JisonParser_Wiki_Handler.parse(thisOutput); return (newOutput ? newOutput : thisOutput); } @@ -92,7 +72,7 @@ strikethrough: function ($content) { return "<span style='text-decoration: line-through;'>" + $content + "</span>"; }, - table: function ($content) { + tableParser: function ($content) { var $tableContents = ''; var $rows = this.split('<br />', $content); for(var $i = 0; $i < this.size($rows); $i++) { @@ -172,7 +152,6 @@ $array.shift(); return $array; }, - // start state handlers stackPlugin: function ($yytext, $pluginStack) { var $pluginName = this.match(/^\{([A-Z]+)/, $yytext); var $pluginArgs = this.match(/[(].*?[)]/, $yytext); @@ -196,5 +175,27 @@ npState: function (npState, ifTrue, ifFalse) { return (npState ? ifTrue : ifFalse); } - //end state handlers +}, Parser); + +var JisonParser_Wiki_Handler = { + parse: function(val, errors) { + try { + function LexerClone () {} + LexerClone.prototype = Parser.lexer; + + function ParserClone () { + this.lexer = new LexerClone(); + this.yy = {}; + } + ParserClone.prototype = Parser; + + var thisParser = (new ParserClone); + + return thisParser.parse(val); + } catch (e) { + if (errors) { + return e; + } + } + } }; \ No newline at end of file Modified: trunk/lib/core/JisonParser/Wiki/Parser.jison =================================================================== --- trunk/lib/core/JisonParser/Wiki/Parser.jison 2012-01-17 19:32:23 UTC (rev 39538) +++ trunk/lib/core/JisonParser/Wiki/Parser.jison 2012-01-17 20:26:58 UTC (rev 39539) @@ -5,36 +5,20 @@ SMILE [a-z]+ %s - bold box - center - colortext - italic - header6 - header5 - header4 - header3 - header2 - header1 - link - strikethrough - table - titlebar - underscore - wikilink - + bold box center colortext italic header6 header5 header4 header3 header2 header1 link strikethrough table titlebar underscore wikilink %% "{"{INLINE_PLUGIN_ID}.*?"}" %{ - yytext = this.inlinePlugin(yytext); + yytext = Parser.inlinePlugin(yytext); return 'INLINE_PLUGIN'; %} "{"{PLUGIN_ID}"(".*?")}" %{ - yy.pluginStack = this.stackPlugin(yytext, yy.pluginStack); + yy.pluginStack = Parser.stackPlugin(yytext, yy.pluginStack); - if (this.size(yy.pluginStack) == 1) { + if (Parser.size(yy.pluginStack) == 1) { return 'PLUGIN_START'; } else { return 'CONTENT'; @@ -45,15 +29,15 @@ %{ if (yy.pluginStack) { if ( - this.size(yy.pluginStack) > 0 && - this.substring(yytext, 1, -1) == yy.pluginStack[this.size(yy.pluginStack) - 1].name + Parser.size(yy.pluginStack) > 0 && + Parser.substring(yytext, 1, -1) == yy.pluginStack[Parser.size(yy.pluginStack) - 1].name ) { - if (this.size(yy.pluginStack) == 1) { - yytext = yy.pluginStack[this.size(yy.pluginStack) - 1]; - yy.pluginStack = this.pop(yy.pluginStack); + if (Parser.size(yy.pluginStack) == 1) { + yytext = yy.pluginStack[Parser.size(yy.pluginStack) - 1]; + yy.pluginStack = Parser.pop(yy.pluginStack); return 'PLUGIN_END'; } else { - yy.pluginStack = this.pop(yy.pluginStack); + yy.pluginStack = Parser.pop(yy.pluginStack); return 'CONTENT'; } } @@ -63,7 +47,7 @@ ("~np~") %{ - yy.npStack = this.push(yy.npStack, true); + yy.npStack = Parser.push(yy.npStack, true); this.yy.npOn = true; return 'NP_START'; @@ -71,71 +55,71 @@ ("~/np~") %{ - this.yy.npStack = this.pop(yy.npStack); - if (this.size(yy.npStack) < 1) yy.npOn = false; + this.yy.npStack = Parser.pop(yy.npStack); + if (Parser.size(yy.npStack) < 1) yy.npOn = false; return 'NP_END'; %} "---" %{ - yytext = this.hr(); + yytext = Parser.hr(); return 'HORIZONTAL_BAR'; %} "(:"{SMILE}":)" %{ - yytext = this.substring(yytext, 2, -2); - yytext = this.smile(yytext); + yytext = Parser.substring(yytext, 2, -2); + yytext = Parser.smile(yytext); return 'SMILE'; %} "[[".*? %{ - yytext = this.substring(yytext, 2, -1); + yytext = Parser.substring(yytext, 2, -1); return 'CONTENT'; %} -<bold>[_][_] %{ this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'BOLD_END'); %} -[_][_] %{ this.begin('bold'); return this.npState(this.yy.npOn, 'CONTENT', 'BOLD_START'); %} -<box>[\^] %{ this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'BOX_END'); %} -[\^] %{ this.begin('box'); return this.npState(this.yy.npOn, 'CONTENT', 'BOX_START'); %} -<center>[:][:] %{ this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'CENTER_END'); %} -[:][:] %{ this.begin('center'); return this.npState(this.yy.npOn, 'CONTENT', 'CENTER_START'); %} -<colortext>[\~][\~] %{ this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'COLORTEXT_END'); %} -[\~][\~][#] %{ this.begin('colortext'); return this.npState(this.yy.npOn, 'CONTENT', 'COLORTEXT_START'); %} -<header6>[\n] %{ this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'HEADER6_END'); %} -[\n]("!!!!!!") %{ this.begin('header6'); return this.npState(this.yy.npOn, 'CONTENT', 'HEADER6_START'); %} -<header5>[\n] %{ this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'HEADER5_END'); %} -[\n]("!!!!!") %{ this.begin('header5'); return this.npState(this.yy.npOn, 'CONTENT', 'HEADER5_START'); %} -<header4>[\n] %{ this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'HEADER4_END'); %} -[\n]("!!!!") %{ this.begin('header4'); return this.npState(this.yy.npOn, 'CONTENT', 'HEADER4_START'); %} -<header3>[\n] %{ this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'HEADER3_END'); %} -[\n]("!!!") %{ this.begin('header3'); return this.npState(this.yy.npOn, 'CONTENT', 'HEADER3_START'); %} -<header2>[\n] %{ this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'HEADER2_END'); %} -[\n]("!!") %{ this.begin('header2'); return this.npState(this.yy.npOn, 'CONTENT', 'HEADER2_START'); %} -<header1>[\n] %{ this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'HEADER1_END'); %} -[\n]("!") %{ this.begin('header1'); return this.npState(this.yy.npOn, 'CONTENT', 'HEADER1_START'); %} -<italic>[']['] %{ this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'ITALIC_END'); %} -[']['] %{ this.begin('italic'); return this.npState(this.yy.npOn, 'CONTENT', 'ITALIC_START'); %} -<link>("]") %{ this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'LINK_END'); %} -("[") %{ this.begin('link'); return this.npState(this.yy.npOn, 'CONTENT', 'LINK_START'); %} -<strikethrough>[-][-] %{ this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'STRIKETHROUGH_END'); %} -[-][-] %{ this.begin('strikethrough'); return this.npState(this.yy.npOn, 'CONTENT', 'STRIKETHROUGH_START'); %} -<table>[|][|] %{ this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'TABLE_END'); %} -[|][|] %{ this.begin('table'); return this.npState(this.yy.npOn, 'CONTENT', 'TABLE_START'); %} -<titlebar>[=][-] %{ this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'TITLEBAR_END'); %} -[-][=] %{ this.begin('titlebar'); return this.npState(this.yy.npOn, 'CONTENT', 'TITLEBAR_START'); %} -<underscore>[=][=][=] %{ this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'UNDERSCORE_END'); %} -[=][=][=] %{ this.begin('underscore'); return this.npState(this.yy.npOn, 'CONTENT', 'UNDERSCORE_START'); %} -<wikilink>[)][)] %{ this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'WIKILINK_END'); %} -[(][(] %{ this.begin('wikilink'); return this.npState(this.yy.npOn, 'CONTENT', 'WIKILINK_START'); %} +<bold>[_][_] %{ this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'BOLD_END'); %} +[_][_] %{ this.begin('bold'); return Parser.npState(this.yy.npOn, 'CONTENT', 'BOLD_START'); %} +<box>[\^] %{ this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'BOX_END'); %} +[\^] %{ this.begin('box'); return Parser.npState(this.yy.npOn, 'CONTENT', 'BOX_START'); %} +<center>[:][:] %{ this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'CENTER_END'); %} +[:][:] %{ this.begin('center'); return Parser.npState(this.yy.npOn, 'CONTENT', 'CENTER_START'); %} +<colortext>[\~][\~] %{ this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'COLORTEXT_END'); %} +[\~][\~][#] %{ this.begin('colortext'); return Parser.npState(this.yy.npOn, 'CONTENT', 'COLORTEXT_START'); %} +<header6>[\n] %{ this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'HEADER6_END'); %} +[\n]("!!!!!!") %{ this.begin('header6'); return Parser.npState(this.yy.npOn, 'CONTENT', 'HEADER6_START'); %} +<header5>[\n] %{ this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'HEADER5_END'); %} +[\n]("!!!!!") %{ this.begin('header5'); return Parser.npState(this.yy.npOn, 'CONTENT', 'HEADER5_START'); %} +<header4>[\n] %{ this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'HEADER4_END'); %} +[\n]("!!!!") %{ this.begin('header4'); return Parser.npState(this.yy.npOn, 'CONTENT', 'HEADER4_START'); %} +<header3>[\n] %{ this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'HEADER3_END'); %} +[\n]("!!!") %{ this.begin('header3'); return Parser.npState(this.yy.npOn, 'CONTENT', 'HEADER3_START'); %} +<header2>[\n] %{ this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'HEADER2_END'); %} +[\n]("!!") %{ this.begin('header2'); return Parser.npState(this.yy.npOn, 'CONTENT', 'HEADER2_START'); %} +<header1>[\n] %{ this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'HEADER1_END'); %} +[\n]("!") %{ this.begin('header1'); return Parser.npState(this.yy.npOn, 'CONTENT', 'HEADER1_START'); %} +<italic>[']['] %{ this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'ITALIC_END'); %} +[']['] %{ this.begin('italic'); return Parser.npState(this.yy.npOn, 'CONTENT', 'ITALIC_START'); %} +<link>("]") %{ this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'LINK_END'); %} +("[") %{ this.begin('link'); return Parser.npState(this.yy.npOn, 'CONTENT', 'LINK_START'); %} +<strikethrough>[-][-] %{ this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'STRIKETHROUGH_END'); %} +[-][-] %{ this.begin('strikethrough'); return Parser.npState(this.yy.npOn, 'CONTENT', 'STRIKETHROUGH_START'); %} +<table>[|][|] %{ this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'TABLE_END'); %} +[|][|] %{ this.begin('table'); return Parser.npState(this.yy.npOn, 'CONTENT', 'TABLE_START'); %} +<titlebar>[=][-] %{ this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'TITLEBAR_END'); %} +[-][=] %{ this.begin('titlebar'); return Parser.npState(this.yy.npOn, 'CONTENT', 'TITLEBAR_START'); %} +<underscore>[=][=][=] %{ this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'UNDERSCORE_END'); %} +[=][=][=] %{ this.begin('underscore'); return Parser.npState(this.yy.npOn, 'CONTENT', 'UNDERSCORE_START'); %} +<wikilink>[)][)] %{ this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'WIKILINK_END'); %} +[(][(] %{ this.begin('wikilink'); return Parser.npState(this.yy.npOn, 'CONTENT', 'WIKILINK_START'); %} "<"(.|\n)*?">" return 'HTML' (.) return 'CONTENT' (\n) %{ - if (this.npState(this.yy.npOn, false, true) == true) { - yytext = this.formatContent(yytext); + if (Parser.npState(this.yy.npOn, false, true) == true) { + yytext = Parser.formatContent(yytext); } return 'CONTENT'; @@ -158,12 +142,12 @@ {$$ = $1;} | wiki_contents plugin { - $$ = this.join($1, $2);//js + $$ = Parser.join($1, $2);//js //php $$ = $this->join($1, $2); } | wiki_contents plugin contents { - $$ = this.join($1, $2, $3);//js + $$ = Parser.join($1, $2, $3);//js //php $$ = $this->join($1, $2, $3); } ; @@ -171,13 +155,13 @@ plugin : INLINE_PLUGIN { - $$ = this.plugin($1);//js + $$ = Parser.plugin($1);//js //php $$ = $this->plugin($1); } | PLUGIN_START wiki_contents PLUGIN_END { $3.body = $2;//js - $$ = this.plugin($3);//js + $$ = Parser.plugin($3);//js //php $3->body = $2; //php $$ = $this->plugin($3); } @@ -188,7 +172,7 @@ {$$ = $1;} | contents content { - $$ = this.join($1, $2);//js + $$ = Parser.join($1, $2);//js //php $$ = $this->join($1, $2); } ; @@ -198,7 +182,7 @@ {$$ = $1;} | HTML { - $$ = this.html($1);//js + $$ = Parser.html($1);//js //php $$ = $this->html($1); } | HORIZONTAL_BAR @@ -207,90 +191,90 @@ {$$ = $1;} | BOLD_START wiki_contents BOLD_END { - $$ = this.bold($2);//js + $$ = Parser.bold($2);//js //php $$ = $this->bold($2); } | BOX_START wiki_contents BOX_END { - $$ = this.box($2);//js + $$ = Parser.box($2);//js //php $$ = $this->box($2); } | CENTER_START wiki_contents CENTER_END { - $$ = this.center($2);//js + $$ = Parser.center($2);//js //php $$ = $this->center($2); } | COLORTEXT_START wiki_contents COLORTEXT_END { - $$ = this.colortext($2);//js + $$ = Parser.colortext($2);//js //php $$ = $this->colortext($2); } | ITALIC_START wiki_contents ITALIC_END { - $$ = this.italics($2);//js + $$ = Parser.italics($2);//js //php $$ = $this->italics($2); } | HEADER6_START wiki_contents HEADER6_END { - $$ = this.header6($2);//js + $$ = Parser.header6($2);//js //php $$ = $this->header6($2); } | HEADER5_START wiki_contents HEADER5_END { - $$ = this.header5($2);//js + $$ = Parser.header5($2);//js //php $$ = $this->header5($2); } | HEADER4_START wiki_contents HEADER4_END { - $$ = this.header4($2);//js + $$ = Parser.header4($2);//js //php $$ = $this->header4($2); } | HEADER3_START wiki_contents HEADER3_END { - $$ = this.header3($2);//js + $$ = Parser.header3($2);//js //php $$ = $this->header3($2); } | HEADER2_START wiki_contents HEADER2_END { - $$ = this.header2($2);//js + $$ = Parser.header2($2);//js //php $$ = $this->header2($2); } | HEADER1_START wiki_contents HEADER1_END { - $$ = this.header1($2);//js + $$ = Parser.header1($2);//js //php $$ = $this->header1($2); } | LINK_START wiki_contents LINK_END { - $$ = this.link($2);//js + $$ = Parser.link($2);//js //php $$ = $this->link($2); } | NP_START wiki_contents NP_END {$$ = $2;} | STRIKETHROUGH_START wiki_contents STRIKETHROUGH_END { - $$ = this.strikethrough($2);//js + $$ = Parser.strikethrough($2);//js //php $$ = $this->strikethrough($2); } | TABLE_START wiki_contents TABLE_END { - $$ = this.table($2);//js - //php $$ = $this->table($2); + $$ = Parser.tableParser($2);//js + //php $$ = $this->tableParser($2); } | TITLEBAR_START wiki_contents TITLEBAR_END { - $$ = this.titlebar($2);//js + $$ = Parser.titlebar($2);//js //php $$ = $this->titlebar($2); } | UNDERSCORE_START wiki_contents UNDERSCORE_END { - $$ = parser.underscore($2);//js + $$ = Parser.underscore($2);//js //php $$ = $this->underscore($2); } | WIKILINK_START wiki_contents WIKILINK_END { - $$ = parser.wikilink($2);//js + $$ = Parser.wikilink($2);//js //php $$ = $this->wikilink($2); } ; Modified: trunk/lib/core/JisonParser/Wiki/Parser.js =================================================================== --- trunk/lib/core/JisonParser/Wiki/Parser.js 2012-01-17 19:32:23 UTC (rev 39538) +++ trunk/lib/core/JisonParser/Wiki/Parser.js 2012-01-17 20:26:58 UTC (rev 39539) @@ -15,23 +15,23 @@ case 3:this.$ = $$[$0]; break; case 4: - this.$ = this.join($$[$0-1], $$[$0]);//js + this.$ = Parser.join($$[$0-1], $$[$0]);//js //php this.$ = this->join($$[$0-1], $$[$0]); break; case 5: - this.$ = this.join($$[$0-2], $$[$0-1], $$[$0]);//js + this.$ = Parser.join($$[$0-2], $$[$0-1], $$[$0]);//js //php this.$ = this->join($$[$0-2], $$[$0-1], $$[$0]); break; case 6: - this.$ = this.plugin($$[$0]);//js + this.$ = Parser.plugin($$[$0]);//js //php this.$ = this->plugin($$[$0]); break; case 7: $$[$0].body = $$[$0-1];//js - this.$ = this.plugin($$[$0]);//js + this.$ = Parser.plugin($$[$0]);//js //php $$[$0]->body = $$[$0-1]; //php this.$ = this->plugin($$[$0]); @@ -39,14 +39,14 @@ case 8:this.$ = $$[$0]; break; case 9: - this.$ = this.join($$[$0-1], $$[$0]);//js + this.$ = Parser.join($$[$0-1], $$[$0]);//js //php this.$ = this->join($$[$0-1], $$[$0]); break; case 10:this.$ = $$[$0]; break; case 11: - this.$ = this.html($$[$0]);//js + this.$ = Parser.html($$[$0]);//js //php this.$ = this->html($$[$0]); break; @@ -55,90 +55,90 @@ case 13:this.$ = $$[$0]; break; case 14: - this.$ = this.bold($$[$0-1]);//js + this.$ = Parser.bold($$[$0-1]);//js //php this.$ = this->bold($$[$0-1]); break; case 15: - this.$ = this.box($$[$0-1]);//js + this.$ = Parser.box($$[$0-1]);//js //php this.$ = this->box($$[$0-1]); break; case 16: - this.$ = this.center($$[$0-1]);//js + this.$ = Parser.center($$[$0-1]);//js //php this.$ = this->center($$[$0-1]); break; case 17: - this.$ = this.colortext($$[$0-1]);//js + this.$ = Parser.colortext($$[$0-1]);//js //php this.$ = this->colortext($$[$0-1]); break; case 18: - this.$ = this.italics($$[$0-1]);//js + this.$ = Parser.italics($$[$0-1]);//js //php this.$ = this->italics($$[$0-1]); break; case 19: - this.$ = this.header6($$[$0-1]);//js + this.$ = Parser.header6($$[$0-1]);//js //php this.$ = this->header6($$[$0-1]); break; case 20: - this.$ = this.header5($$[$0-1]);//js + this.$ = Parser.header5($$[$0-1]);//js //php this.$ = this->header5($$[$0-1]); break; case 21: - this.$ = this.header4($$[$0-1]);//js + this.$ = Parser.header4($$[$0-1]);//js //php this.$ = this->header4($$[$0-1]); break; case 22: - this.$ = this.header3($$[$0-1]);//js + this.$ = Parser.header3($$[$0-1]);//js //php this.$ = this->header3($$[$0-1]); break; case 23: - this.$ = this.header2($$[$0-1]);//js + this.$ = Parser.header2($$[$0-1]);//js //php this.$ = this->header2($$[$0-1]); break; case 24: - this.$ = this.header1($$[$0-1]);//js + this.$ = Parser.header1($$[$0-1]);//js //php this.$ = this->header1($$[$0-1]); break; case 25: - this.$ = this.link($$[$0-1]);//js + this.$ = Parser.link($$[$0-1]);//js //php this.$ = this->link($$[$0-1]); break; case 26:this.$ = $$[$0-1]; break; case 27: - this.$ = this.strikethrough($$[$0-1]);//js + this.$ = Parser.strikethrough($$[$0-1]);//js //php this.$ = this->strikethrough($$[$0-1]); break; case 28: - this.$ = this.table($$[$0-1]);//js - //php this.$ = this->table($$[$0-1]); + this.$ = Parser.tableParser($$[$0-1]);//js + //php this.$ = this->tableParser($$[$0-1]); break; case 29: - this.$ = this.titlebar($$[$0-1]);//js + this.$ = Parser.titlebar($$[$0-1]);//js //php this.$ = this->titlebar($$[$0-1]); break; case 30: - this.$ = parser.underscore($$[$0-1]);//js + this.$ = Parser.underscore($$[$0-1]);//js //php this.$ = this->underscore($$[$0-1]); break; case 31: - this.$ = parser.wikilink($$[$0-1]);//js + this.$ = Parser.wikilink($$[$0-1]);//js //php this.$ = this->wikilink($$[$0-1]); break; @@ -458,14 +458,14 @@ var YYSTATE=YY_START switch($avoiding_name_collisions) { case 0: - yy_.yytext = this.inlinePlugin(yy_.yytext); + yy_.yytext = Parser.inlinePlugin(yy_.yytext); return 8; break; case 1: - yy.pluginStack = this.stackPlugin(yy_.yytext, yy.pluginStack); + yy.pluginStack = Parser.stackPlugin(yy_.yytext, yy.pluginStack); - if (this.size(yy.pluginStack) == 1) { + if (Parser.size(yy.pluginStack) == 1) { return 9; } else { return 'CONTENT'; @@ -475,15 +475,15 @@ case 2: if (yy.pluginStack) { if ( - this.size(yy.pluginStack) > 0 && - this.substring(yy_.yytext, 1, -1) == yy.pluginStack[this.size(yy.pluginStack) - 1].name + Parser.size(yy.pluginStack) > 0 && + Parser.substring(yy_.yytext, 1, -1) == yy.pluginStack[Parser.size(yy.pluginStack) - 1].name ) { - if (this.size(yy.pluginStack) == 1) { - yy_.yytext = yy.pluginStack[this.size(yy.pluginStack) - 1]; - yy.pluginStack = this.pop(yy.pluginStack); + if (Parser.size(yy.pluginStack) == 1) { + yy_.yytext = yy.pluginStack[Parser.size(yy.pluginStack) - 1]; + yy.pluginStack = Parser.pop(yy.pluginStack); return 10; } else { - yy.pluginStack = this.pop(yy.pluginStack); + yy.pluginStack = Parser.pop(yy.pluginStack); return 'CONTENT'; } } @@ -492,109 +492,109 @@ break; case 3: - yy.npStack = this.push(yy.npStack, true); + yy.npStack = Parser.push(yy.npStack, true); this.yy.npOn = true; return 40; break; case 4: - this.yy.npStack = this.pop(yy.npStack); - if (this.size(yy.npStack) < 1) yy.npOn = false; + this.yy.npStack = Parser.pop(yy.npStack); + if (Parser.size(yy.npStack) < 1) yy.npOn = false; return 41; break; case 5: - yy_.yytext = this.hr(); + yy_.yytext = Parser.hr(); return 14; break; case 6: - yy_.yytext = this.substring(yy_.yytext, 2, -2); - yy_.yytext = this.smile(yy_.yytext); + yy_.yytext = Parser.substring(yy_.yytext, 2, -2); + yy_.yytext = Parser.smile(yy_.yytext); return 15; break; case 7: - yy_.yytext = this.substring(yy_.yytext, 2, -1); + yy_.yytext = Parser.substring(yy_.yytext, 2, -1); return 12; break; -case 8: this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'BOLD_END'); +case 8: this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'BOLD_END'); break; -case 9: this.begin('bold'); return this.npState(this.yy.npOn, 'CONTENT', 'BOLD_START'); +case 9: this.begin('bold'); return Parser.npState(this.yy.npOn, 'CONTENT', 'BOLD_START'); break; -case 10: this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'BOX_END'); +case 10: this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'BOX_END'); break; -case 11: this.begin('box'); return this.npState(this.yy.npOn, 'CONTENT', 'BOX_START'); +case 11: this.begin('box'); return Parser.npState(this.yy.npOn, 'CONTENT', 'BOX_START'); break; -case 12: this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'CENTER_END'); +case 12: this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'CENTER_END'); break; -case 13: this.begin('center'); return this.npState(this.yy.npOn, 'CONTENT', 'CENTER_START'); +case 13: this.begin('center'); return Parser.npState(this.yy.npOn, 'CONTENT', 'CENTER_START'); break; -case 14: this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'COLORTEXT_END'); +case 14: this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'COLORTEXT_END'); break; -case 15: this.begin('colortext'); return this.npState(this.yy.npOn, 'CONTENT', 'COLORTEXT_START'); +case 15: this.begin('colortext'); return Parser.npState(this.yy.npOn, 'CONTENT', 'COLORTEXT_START'); break; -case 16: this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'HEADER6_END'); +case 16: this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'HEADER6_END'); break; -case 17: this.begin('header6'); return this.npState(this.yy.npOn, 'CONTENT', 'HEADER6_START'); +case 17: this.begin('header6'); return Parser.npState(this.yy.npOn, 'CONTENT', 'HEADER6_START'); break; -case 18: this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'HEADER5_END'); +case 18: this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'HEADER5_END'); break; -case 19: this.begin('header5'); return this.npState(this.yy.npOn, 'CONTENT', 'HEADER5_START'); +case 19: this.begin('header5'); return Parser.npState(this.yy.npOn, 'CONTENT', 'HEADER5_START'); break; -case 20: this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'HEADER4_END'); +case 20: this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'HEADER4_END'); break; -case 21: this.begin('header4'); return this.npState(this.yy.npOn, 'CONTENT', 'HEADER4_START'); +case 21: this.begin('header4'); return Parser.npState(this.yy.npOn, 'CONTENT', 'HEADER4_START'); break; -case 22: this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'HEADER3_END'); +case 22: this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'HEADER3_END'); break; -case 23: this.begin('header3'); return this.npState(this.yy.npOn, 'CONTENT', 'HEADER3_START'); +case 23: this.begin('header3'); return Parser.npState(this.yy.npOn, 'CONTENT', 'HEADER3_START'); break; -case 24: this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'HEADER2_END'); +case 24: this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'HEADER2_END'); break; -case 25: this.begin('header2'); return this.npState(this.yy.npOn, 'CONTENT', 'HEADER2_START'); +case 25: this.begin('header2'); return Parser.npState(this.yy.npOn, 'CONTENT', 'HEADER2_START'); break; -case 26: this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'HEADER1_END'); +case 26: this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'HEADER1_END'); break; -case 27: this.begin('header1'); return this.npState(this.yy.npOn, 'CONTENT', 'HEADER1_START'); +case 27: this.begin('header1'); return Parser.npState(this.yy.npOn, 'CONTENT', 'HEADER1_START'); break; -case 28: this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'ITALIC_END'); +case 28: this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'ITALIC_END'); break; -case 29: this.begin('italic'); return this.npState(this.yy.npOn, 'CONTENT', 'ITALIC_START'); +case 29: this.begin('italic'); return Parser.npState(this.yy.npOn, 'CONTENT', 'ITALIC_START'); break; -case 30: this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'LINK_END'); +case 30: this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'LINK_END'); break; -case 31: this.begin('link'); return this.npState(this.yy.npOn, 'CONTENT', 'LINK_START'); +case 31: this.begin('link'); return Parser.npState(this.yy.npOn, 'CONTENT', 'LINK_START'); break; -case 32: this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'STRIKETHROUGH_END'); +case 32: this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'STRIKETHROUGH_END'); break; -case 33: this.begin('strikethrough'); return this.npState(this.yy.npOn, 'CONTENT', 'STRIKETHROUGH_START'); +case 33: this.begin('strikethrough'); return Parser.npState(this.yy.npOn, 'CONTENT', 'STRIKETHROUGH_START'); break; -case 34: this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'TABLE_END'); +case 34: this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'TABLE_END'); break; -case 35: this.begin('table'); return this.npState(this.yy.npOn, 'CONTENT', 'TABLE_START'); +case 35: this.begin('table'); return Parser.npState(this.yy.npOn, 'CONTENT', 'TABLE_START'); break; -case 36: this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'TITLEBAR_END'); +case 36: this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'TITLEBAR_END'); break; -case 37: this.begin('titlebar'); return this.npState(this.yy.npOn, 'CONTENT', 'TITLEBAR_START'); +case 37: this.begin('titlebar'); return Parser.npState(this.yy.npOn, 'CONTENT', 'TITLEBAR_START'); break; -case 38: this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'UNDERSCORE_END'); +case 38: this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'UNDERSCORE_END'); break; -case 39: this.begin('underscore'); return this.npState(this.yy.npOn, 'CONTENT', 'UNDERSCORE_START'); +case 39: this.begin('underscore'); return Parser.npState(this.yy.npOn, 'CONTENT', 'UNDERSCORE_START'); break; -case 40: this.popState(); return this.npState(this.yy.npOn, 'CONTENT', 'WIKILINK_END'); +case 40: this.popState(); return Parser.npState(this.yy.npOn, 'CONTENT', 'WIKILINK_END'); break; -case 41: this.begin('wikilink'); return this.npState(this.yy.npOn, 'CONTENT', 'WIKILINK_START'); +case 41: this.begin('wikilink'); return Parser.npState(this.yy.npOn, 'CONTENT', 'WIKILINK_START'); break; case 42:return 13 break; case 43:return 12 break; case 44: - if (this.npState(this.yy.npOn, false, true) == true) { - yy_.yytext = this.formatContent(yy_.yytext); + if (Parser.npState(this.yy.npOn, false, true) == true) { + yy_.yytext = Parser.formatContent(yy_.yytext); } return 12; @@ -605,7 +605,7 @@ } }; lexer.rules = [/^\{[a-z]+.*?\}/,/^\{[A-Z]+\(.*?\)\}/,/^\{[A-Z]+\}/,/^(~np~)/,/^(~\/np~)/,/^---/,/^\(:[a-z]+:\)/,/^\[\[.*?/,/^[_][_]/,/^[_][_]/,/^[\^]/,/^[\^]/,/^[:][:]/,/^[:][:]/,/^[\~][\~]/,/^[\~][\~][#]/,/^[\n]/,/^[\n](!!!!!!)/,/^[\n]/,/^[\n](!!!!!)/,/^[\n]/,/^[\n](!!!!)/,/^[\n]/,/^[\n](!!!)/,/^[\n]/,/^[\n](!!)/,/^[\n]/,/^[\n](!)/,/^['][']/,/^['][']/,/^(\])/,/^(\[)/,/^[-][-]/,/^[-][-]/,/^[|][|]/,/^[|][|]/,/^[=][-]/,/^[-][=]/,/^[=][=][=]/,/^[=][=][=]/,/^[)][)]/,/^[(][(]/,/^<(.|\n)*?>/,/^(.)/,/^(\n)/,/^$/]; -lexer.conditions = {"bold":{"rules":[0,1,2,3,4,5,6,7,8,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,42,43,44,45],"inclusive":true},"box":{"rules":[0,1,2,3,4,5,6,7,9,10,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,42,43,44,45],"inclusive":true},"INITIAL":{"rules":[0,1,2,3,4,5,6,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,42,43,44,45],"inclusive":true},"center":{"rules":[12]},"colortext":{"rules":[14]},"header6":{"rules":[16]},"header5":{"rules":[18]},"header4":{"rules":[20]},"header3":{"rules":[22]},"header2":{"rules":[24]},"header1":{"rules":[26]},"italic":{"rules":[28]},"link":{"rules":[30]},"strikethrough":{"rules":[32]},"table":{"rules":[34]},"titlebar":{"rules":[36]},"underscore":{"rules":[38]},"wikilink":{"rules":[40]}};return lexer;})() +lexer.conditions = {"bold":{"rules":[0,1,2,3,4,5,6,7,8,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,42,43,44,45],"inclusive":true},"box":{"rules":[0,1,2,3,4,5,6,7,9,10,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,42,43,44,45],"inclusive":true},"center":{"rules":[0,1,2,3,4,5,6,7,9,11,12,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,42,43,44,45],"inclusive":true},"colortext":{"rules":[0,1,2,3,4,5,6,7,9,11,13,14,15,17,19,21,23,25,27,29,31,33,35,37,39,41,42,43,44,45],"inclusive":true},"italic":{"rules":[0,1,2,3,4,5,6,7,9,11,13,15,17,19,21,23,25,27,28,29,31,33,35,37,39,41,42,43,44,45],"inclusive":true},"header6":{"rules":[0,1,2,3,4,5,6,7,9,11,13,15,16,17,19,21,23,25,27,29,31,33,35,37,39,41,42,43,44,45],"inclusive":true},"header5":{"rules":[0,1,2,3,4,5,6,7,9,11,13,15,17,18,19,21,23,25,27,29,31,33,35,37,39,41,42,43,44,45],"inclusive":true},"header4":{"rules":[0,1,2,3,4,5,6,7,9,11,13,15,17,19,20,21,23,25,27,29,31,33,35,37,39,41,42,43,44,45],"inclusive":true},"header3":{"rules":[0,1,2,3,4,5,6,7,9,11,13,15,17,19,21,22,23,25,27,29,31,33,35,37,39,41,42,43,44,45],"inclusive":true},"header2":{"rules":[0,1,2,3,4,5,6,7,9,11,13,15,17,19,21,23,24,25,27,29,31,33,35,37,39,41,42,43,44,45],"inclusive":true},"header1":{"rules":[0,1,2,3,4,5,6,7,9,11,13,15,17,19,21,23,25,26,27,29,31,33,35,37,39,41,42,43,44,45],"inclusive":true},"link":{"rules":[0,1,2,3,4,5,6,7,9,11,13,15,17,19,21,23,25,27,29,30,31,33,35,37,39,41,42,43,44,45],"inclusive":true},"strikethrough":{"rules":[0,1,2,3,4,5,6,7,9,11,13,15,17,19,21,23,25,27,29,31,32,33,35,37,39,41,42,43,44,45],"inclusive":true},"table":{"rules":[0,1,2,3,4,5,6,7,9,11,13,15,17,19,21,23,25,27,29,31,33,34,35,37,39,41,42,43,44,45],"inclusive":true},"titlebar":{"rules":[0,1,2,3,4,5,6,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,36,37,39,41,42,43,44,45],"inclusive":true},"underscore":{"rules":[0,1,2,3,4,5,6,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,38,39,41,42,43,44,45],"inclusive":true},"wikilink":{"rules":[0,1,2,3,4,5,6,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,40,41,42,43,44,45],"inclusive":true},"INITIAL":{"rules":[0,1,2,3,4,5,6,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,42,43,44,45],"inclusive":true}};return lexer;})() parser.lexer = lexer; return parser; })(); Modified: trunk/lib/core/JisonParser/Wiki/Parser.php =================================================================== --- trunk/lib/core/JisonParser/Wiki/Parser.php 2012-01-17 19:32:23 UTC (rev 39538) +++ trunk/lib/core/JisonParser/Wiki/Parser.php 2012-01-17 20:26:58 UTC (rev 39539) @@ -531,14 +531,14 @@ switch($avoiding_name_collisions) { case 0: - $yy_->yytext = this.inlinePlugin($yy_->yytext); + $yy_->yytext = Parser.inlinePlugin($yy_->yytext); return 8; break; case 1: - $yy->pluginStack = this.stackPlugin($yy_->yytext, $yy->pluginStack); + $yy->pluginStack = Parser.stackPlugin($yy_->yytext, $yy->pluginStack); - if (this.size($yy->pluginStack) == 1) { + if (Parser.size($yy->pluginStack) == 1) { return 9; } else { return 'CONTENT'; @@ -548,15 +548,15 @@ case 2: if ($yy->pluginStack) { if ( - this.size($yy->pluginStack) > 0 && - this.substring($yy_->yytext, 1, -1) == $yy->pluginStack[this.size($yy->pluginStack) - 1]->name + Parser.size($yy->pluginStack) > 0 && + Parser.substring($yy_->yytext, 1, -1) == $yy->pluginStack[Parser.size($yy->pluginStack) - 1]->name ) { - if (this.size($yy->pluginStack) == 1) { - $yy_->yytext = $yy->pluginStack[this.size($yy->pluginStack) - 1]; - $yy->pluginStack = this.pop($yy->pluginStack); + if (Parser.size($yy->pluginStack) == 1) { + $yy_->yytext = $yy->pluginStack[Parser.size($yy->pluginStack) - 1]; + $yy->pluginStack = Parser.pop($yy->pluginStack); return 10; } else { - $yy->pluginStack = this.pop($yy->pluginStack); + $yy->pluginStack = Parser.pop($yy->pluginStack); return 'CONTENT'; } } @@ -565,109 +565,109 @@ break; case 3: - $yy->npStack = this.push($yy->npStack, true); + $yy->npStack = Parser.push($yy->npStack, true); this.$yy->npOn = true; return 40; break; case 4: - this.$yy->npStack = this.pop($yy->npStack); - if (this.size($yy->npStack) < 1) $yy->npOn = false; + this.$yy->npStack = Parser.pop($yy->npStack); + if (Parser.size($yy->npStack) < 1) $yy->npOn = false; return 41; break; case 5: - $yy_->yytext = this.hr(); + $yy_->yytext = Parser.hr(); return 14; break; case 6: - $yy_->yytext = this.substring($yy_->yytext, 2, -2); - $yy_->yytext = this.smile($yy_->yytext); + $yy_->yytext = Parser.substring($yy_->yytext, 2, -2); + $yy_->yytext = Parser.smile($yy_->yytext); return 15; break; case 7: - $yy_->yytext = this.substring($yy_->yytext, 2, -1); + $yy_->yytext = Parser.substring($yy_->yytext, 2, -1); return 12; break; -case 8: this.popState(); return this.npState(this.$yy->npOn, 'CONTENT', 'BOLD_END'); +case 8: this.popState(); return Parser.npState(this.$yy->npOn, 'CONTENT', 'BOLD_END'); break; -case 9: this.begin('bold'); return this.npState(this.$yy->npOn, 'CONTENT', 'BOLD_START'); +case 9: this.begin('bold'); return Parser.npState(this.$yy->npOn, 'CONTENT', 'BOLD_START'); break; -case 10: this.popState(); return this.npState(this.$yy->npOn, 'CONTENT', 'BOX_END'); +case 10: this.popState(); return Parser.npState(this.$yy->npOn, 'CONTENT', 'BOX_END'); break; -case 11: this.begin('box'); return this.npState(this.$yy->npOn, 'CONTENT', 'BOX_START'); +case 11: this.begin('box'); return Parser.npState(this.$yy->npOn, 'CONTENT', 'BOX_START'); break; -case 12: this.popState(); return this.npState(this.$yy->npOn, 'CONTENT', 'CENTER_END'); +case 12: this.popState(); return Parser.npState(this.$yy->npOn, 'CONTENT', 'CENTER_END'); break; -case 13: this.begin('center'); return this.npState(this.$yy->npOn, 'CONTENT', 'CENTER_START'); +case 13: this.begin('center'); return Parser.npState(this.$yy->npOn, 'CONTENT', 'CENTER_START'); break; -case 14: this.popState(); return this.npState(this.$yy->npOn, 'CONTENT', 'COLORTEXT_END'); +case 14: this.popState(); return Parser.npState(this.$yy->npOn, 'CONTENT', 'COLORTEXT_END'); break; -case 15: this.begin('colortext'); return this.npState(this.$yy->npOn, 'CONTENT', 'COLORTEXT_START'); +case 15: this.begin('colortext'); return Parser.npState(this.$yy->npOn, 'CONTENT', 'COLORTEXT_START'); break; -case 16: this.popState(); return this.npState(this.$yy->npOn, 'CONTENT', 'HEADER6_END'); +case 16: this.popState(); return Parser.npState(this.$yy->npOn, 'CONTENT', 'HEADER6_END'); break; -case 17: this.begin('header6'); return this.npState(this.$yy->npOn, 'CONTENT', 'HEADER6_START'); +case 17: this.begin('header6'); return Parser.npState(this.$yy->npOn, 'CONTENT', 'HEADER6_START'); break; -case 18: this.popState(); return this.npState(this.$yy->npOn, 'CONTENT', 'HEADER5_END'); +case 18: this.popState(); return Parser.npState(this.$yy->npOn, 'CONTENT', 'HEADER5_END'); break; -case 19: this.begin('header5'); return this.npState(this.$yy->npOn, 'CONTENT', 'HEADER5_START'); +case 19: this.begin('header5'); return Parser.npState(this.$yy->npOn, 'CONTENT', 'HEADER5_START'); break; -case 20: this.popState(); return this.npState(this.$yy->npOn, 'CONTENT', 'HEADER4_END'); +case 20: this.popState(); return Parser.npState(this.$yy->npOn, 'CONTENT', 'HEADER4_END'); break; -case 21: this.begin('header4'); return this.npState(this.$yy->npOn, 'CONTENT', 'HEADER4_START'); +case 21: this.begin('header4'); return Parser.npState(this.$yy->npOn, 'CONTENT', 'HEADER4_START'); break; -case 22: this.popState(); return this.npState(this.$yy->npOn, 'CONTENT', 'HEADER3_END'); +case 22: this.popState(); return Parser.npState(this.$yy->npOn, 'CONTENT', 'HEADER3_END'); break; -case 23: this.begin('header3'); return this.npState(this.$yy->npOn, 'CONTENT', 'HEADER3_START'); +case 23: this.begin('header3'); return Parser.npState(this.$yy->npOn, 'CONTENT', 'HEADER3_START'); break; -case 24: this.popState(); return this.npState(this.$yy->npOn, 'CONTENT', 'HEADER2_END'); +case 24: this.popState(); return Parser.npState(this.$yy->npOn, 'CONTENT', 'HEADER2_END'); break; -case 25: this.begin('header2'); return this.npState(this.$yy->npOn, 'CONTENT', 'HEADER2_START'); +case 25: this.begin('header2'); return Parser.npState(this.$yy->npOn, 'CONTENT', 'HEADER2_START'); break; -case 26: this.popState(); return this.npState(this.$yy->npOn, 'CONTENT', 'HEADER1_END'); +case 26: this.popState(); return Parser.npState(this.$yy->npOn, 'CONTENT', 'HEADER1_END'); break; -case 27: this.begin('header1'); return this.npState(this.$yy->npOn, 'CONTENT', 'HEADER1_START'); +case 27: this.begin('header1'); return Parser.npState(this.$yy->npOn, 'CONTENT', 'HEADER1_START'); break; -case 28: this.popState(); return this.npState(this.$yy->npOn, 'CONTENT', 'ITALIC_END'); +case 28: this.popState(); return Parser.npState(this.$yy->npOn, 'CONTENT', 'ITALIC_END'); break; -case 29: this.begin('italic'); return this.npState(this.$yy->npOn, 'CONTENT', 'ITALIC_START'); +case 29: this.begin('italic'); return Parser.npState(this.$yy->npOn, 'CONTENT', 'ITALIC_START'); break; -case 30: this.popState(); return this.npState(this.$yy->npOn, 'CONTENT', 'LINK_END'); +case 30: this.popState(); return Parser.npState(this.$yy->npOn, 'CONTENT', 'LINK_END'); break; -case 31: this.begin('link'); return this.npState(this.$yy->npOn, 'CONTENT', 'LINK_START'); +case 31: this.begin('link'); return Parser.npState(this.$yy->npOn, 'CONTENT', 'LINK_START'); break; -case 32: this.popState(); return this.npState(this.$yy->npOn, 'CONTENT', 'STRIKETHROUGH_END'); +case 32: this.popState(); return Parser.npState(this.$yy->npOn, 'CONTENT', 'STRIKETHROUGH_END'); break; -case 33: this.begin('strikethrough'); return this.npState(this.$yy->npOn, 'CONTENT', 'STRIKETHROUGH_START'); +case 33: this.begin('strikethrough'); return Parser.npState(this.$yy->npOn, 'CONTENT', 'STRIKETHROUGH_START'); break; -case 34: this.popState(); return this.npState(this.$yy->npOn, 'CONTENT', 'TABLE_END'); +case 34: this.popState(); return Parser.npState(this.$yy->npOn, 'CONTENT', 'TABLE_END'); break; -case 35: this.begin('table'); return this.npState(this.$yy->npOn, 'CONTENT', 'TABLE_START'); +case 35: this.begin('table'); return Parser.npState(this.$yy->npOn, 'CONTENT', 'TABLE_START'); break; -case 36: this.popState(); return this.npState(this.$yy->npOn, 'CONTENT', 'TITLEBAR_END'); +case 36: this.popState(); return Parser.npState(this.$yy->npOn, 'CONTENT', 'TITLEBAR_END'); break; -case 37: this.begin('titlebar'); return this.npState(this.$yy->npOn, 'CONTENT', 'TITLEBAR_START'); +case 37: this.begin('titlebar'); return Parser.npState(this.$yy->npOn, 'CONTENT', 'TITLEBAR_START'); break; -case 38: this.popState(); return this.npState(this.$yy->npOn, 'CONTENT', 'UNDERSCORE_END'); +case 38: this.popState(); return Parser.npState(this.$yy->npOn, 'CONTENT', 'UNDERSCORE_END'); break; -case 39: this.begin('underscore'); return this.npState(this.$yy->npOn, 'CONTENT', 'UNDERSCORE_START'); +case 39: this.begin('underscore'); return Parser.npState(this.$yy->npOn, 'CONTENT', 'UNDERSCORE_START'); break; -case 40: this.popState(); return this.npState(this.$yy->npOn, 'CONTENT', 'WIKILINK_END'); +case 40: this.popState(); return Parser.npState(this.$yy->npOn, 'CONTENT', 'WIKILINK_END'); break; -case 41: this.begin('wikilink'); return this.npState(this.$yy->npOn, 'CONTENT', 'WIKILINK_START'); +case 41: this.begin('wikilink'); return Parser.npState(this.$yy->npOn, 'CONTENT', 'WIKILINK_START'); break; case 42:return 13; break; case 43:return 12; break; case 44: - if (this.npState(this.$yy->npOn, false, true) == true) { - $yy_->yytext = this.formatContent($yy_->yytext); + if (Parser.npState(this.$yy->npOn, false, true) == true) { + $yy_->yytext = Parser.formatContent($yy_->yytext); } return 12; @@ -681,5 +681,5 @@ var $rules = array("/^\\{[a-z]+.*?\\}/","/^\\{[A-Z]+\\(.*?\\)\\}/","/^\\{[A-Z]+\\}/","/^(~np~)/","/^(~\\/np~)/","/^---/","/^\\(:[a-z]+:\\)/","/^\\[\\[.*?/","/^[_][_]/","/^[_][_]/","/^[\\^]/","/^[\\^]/","/^[:][:]/","/^[:][:]/","/^[\\~][\\~]/","/^[\\~][\\~][#]/","/^[\\n]/","/^[\\n](!!!!!!)/","/^[\\n]/","/^[\\n](!!!!!)/","/^[\\n]/","/^[\\n](!!!!)/","/^[\\n]/","/^[\\n](!!!)/","/^[\\n]/","/^[\\n](!!)/","/^[\\n]/","/^[\\n](!)/","/^['][']/","/^['][']/","/^(\\])/","/^(\\[)/","/^[-][-]/","/^[-][-]/","/^[|][|]/","/^[|][|]/","/^[=][-]/","/^[-][=]/","/^[=][=][=]/","/^[=][=][=]/","/^[)][)]/","/^[(][(]/","/^<(.|\\n)*?>/","/^(.)/","/^(\\n)/","/^$/"); - var $conditions = array("bold"=>array("rules"=>array(0,1,2,3,4,5,6,7,8,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,42,43,44,45),"inclusive"=>true),"box"=>array("rules"=>array(0,1,2,3,4,5,6,7,9,10,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,42,43,44,45),"inclusive"=>true),"INITIAL"=>array("rules"=>array(0,1,2,3,4,5,6,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,42,43,44,45),"inclusive"=>true),"center"=>array("rules"=>array(12)),"colortext"=>array("rules"=>array(14)),"header6"=>array("rules"=>array(16)),"header5"=>array("rules"=>array(18)),"header4"=>array("rules"=>array(20)),"header3"=>array("rules"=>array(22)),"header2"=>array("rules"=>array(24)),"header1"=>array("rules"=>array(26)),"italic"=>array("rules"=>array(28)),"link"=>array("rules"=>array(30)),"strikethrough"=>array("rules"=>array(32)),"table"=>array("rules"=>array(34)),"titlebar"=>array("rules"=>array(36)),"underscore"=>array("rules"=>array(38)),"wikilink"=>array("rules"=>array(40))); + var $conditions = array("bold"=>array("rules"=>array(0,1,2,3,4,5,6,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,42,43,44,45),"inclusive"=>true),"box"=>array("rules"=>array(0,1,2,3,4,5,6,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,42,43,44,45),"inclusive"=>true),"INITIAL"=>array("rules"=>array(0,1,2,3,4,5,6,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,42,43,44,45),"inclusive"=>true)); } Modified: trunk/lib/core/JisonParser/Wiki/WikiParserTester.html =================================================================== --- trunk/lib/core/JisonParser/Wiki/WikiParserTester.html 2012-01-17 19:32:23 UTC (rev 39538) +++ trunk/lib/core/JisonParser/Wiki/WikiParserTester.html 2012-01-17 20:26:58 UTC (rev 39539) @@ -55,14 +55,14 @@ $(function(){ $('#runParser') .click(function() { - $('#output').html(parserlib.parse($('#wiki').val(), $('#errorsOn').is(':checked'))); + $('#output').html(JisonParser_Wiki_Handler.parse($('#wiki').val(), $('#errorsOn').is(':checked'))); }); $('#wiki') .change(function() { - $('#output').html(parserlib.parse($('#wiki').val(), $('#errorsOn').is(':checked'))); + $('#output').html(JisonParser_Wiki_Handler.parse($('#wiki').val(), $('#errorsOn').is(':checked'))); }) .keyup(function() { - $('#output').html(parserlib.parse($('#wiki').val(), $('#errorsOn').is(':checked'))); + $('#output').html(JisonParser_Wiki_Handler.parse($('#wiki').val(), $('#errorsOn').is(':checked'))); }) .change(); }); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rob...@us...> - 2012-06-01 21:43:52
|
Revision: 41717 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=41717&view=rev Author: robertplummer Date: 2012-06-01 21:43:45 +0000 (Fri, 01 Jun 2012) Log Message: ----------- [FIX] make parts of processor parse optionally, lists, plugins, nps Modified Paths: -------------- trunk/lib/core/JisonParser/Wiki/Handler.php trunk/lib/core/JisonParser/Wiki/PluginAjaxHandler.php Modified: trunk/lib/core/JisonParser/Wiki/Handler.php =================================================================== --- trunk/lib/core/JisonParser/Wiki/Handler.php 2012-06-01 21:15:48 UTC (rev 41716) +++ trunk/lib/core/JisonParser/Wiki/Handler.php 2012-06-01 21:43:45 UTC (rev 41717) @@ -8,11 +8,14 @@ class JisonParser_Wiki_Handler extends JisonParser_Wiki { var $parsing = false; - var $usePrePostHandlers = true; + var $parsePlugins = true; + var $parseNps = true; + var $parseLists = true; var $origPluginBody = array(); public static $hdrCount = 0; public static $spareParsers = array(); + static public $pluginPreKeys = array(); var $npOn = false; var $pluginStack = array(); @@ -117,16 +120,10 @@ if (empty(self::$option)) $this->setOption(); - if ($this->usePrePostHandlers == true) { - $this->preParse($input); - } - + $this->preParse($input); $result = parent::parse($input); + $this->postParse($result); - if ($this->usePrePostHandlers == true) { - $this->postParse($result); - } - $this->parsing = false; } @@ -135,31 +132,40 @@ function parsePlugin($input) { - $is_html = self::$option['is_html']; - $this->setOption(array('is_html'=> true)); - $result = $this->parse($input); - $this->setOption(array('is_html'=> $is_html)); - return $result; + if ($this->parsePlugins == true) { + $is_html = self::$option['is_html']; + $this->setOption(array('is_html'=> true)); + $result = $this->parse($input); + $this->setOption(array('is_html'=> $is_html)); + return $result; + } else { + return $input; + } } function preParse(&$input) { - $input = preg_replace_callback('/~np~(.|\n)*?~\/np~/', array(&$this, 'removeNpEntities'), $input); + if ($this->parseNps == true) { + $input = preg_replace_callback('/~np~(.|\n)*?~\/np~/', array(&$this, 'removeNpEntities'), $input); + } + $input = $this->protectSpecialChars($input); } function postParse(&$input) { - $lines = explode("\n", $input); + if ($this->parseLists == true) { + $lines = explode("\n", $input); - $ul = ''; - $listBeginnings = array(); - $listBeginnings = array(); - foreach($lines as &$line) { - $this->parseLists($line, $listBeginnings, $ul); - $this->addLineBreaks($line); + $ul = ''; + $listBeginnings = array(); + $listBeginnings = array(); + foreach($lines as &$line) { + $this->parseLists($line, $listBeginnings, $ul); + $this->addLineBreaks($line); + } + $input = implode("\n", $lines); } - $input = implode("\n", $lines); $this->restoreNpEntities($input); $this->restorePluginEntities($input); Modified: trunk/lib/core/JisonParser/Wiki/PluginAjaxHandler.php =================================================================== --- trunk/lib/core/JisonParser/Wiki/PluginAjaxHandler.php 2012-06-01 21:15:48 UTC (rev 41716) +++ trunk/lib/core/JisonParser/Wiki/PluginAjaxHandler.php 2012-06-01 21:43:45 UTC (rev 41717) @@ -9,7 +9,12 @@ { static public $pluginCount = 0; static public $plugins = array(); - var $usePrePostHandlers = false; + static public $pluginPreKeys = array(); + + var $parsePlugins = false; + var $parseNps = true; + var $parseLists = false; + var $inUse = false; function parse($data) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rob...@us...> - 2012-06-03 17:00:49
|
Revision: 41737 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=41737&view=rev Author: robertplummer Date: 2012-06-03 17:00:42 +0000 (Sun, 03 Jun 2012) Log Message: ----------- [FIX] Although np's need removed in order to divert their processing, plugins no longer need to, also removed un-needed require_once, unprotected ajax handler too Modified Paths: -------------- trunk/lib/core/JisonParser/Wiki/Handler.php trunk/lib/core/JisonParser/Wiki/PluginAjaxHandler.php Modified: trunk/lib/core/JisonParser/Wiki/Handler.php =================================================================== --- trunk/lib/core/JisonParser/Wiki/Handler.php 2012-06-03 16:40:31 UTC (rev 41736) +++ trunk/lib/core/JisonParser/Wiki/Handler.php 2012-06-03 17:00:42 UTC (rev 41737) @@ -173,7 +173,6 @@ } $this->restoreNpEntities($input); - $this->restorePluginEntities($input); $input = $this->unprotectSpecialChars($input, self::$option['is_html']); } @@ -233,7 +232,7 @@ $this->pluginEntries[$key] = $smarty->fetch('tiki-plugin_blocked.tpl'); } - return $key; + return $this->pluginEntries[$key]; } function stackPlugin($yytext) @@ -560,18 +559,6 @@ } } - function restorePluginEntities(&$input, $keep = false) - { - //use of array_reverse, jison is a reverse bottom-up parser, if it doesn't reverse jison doesn't restore the plugins in the right order, leaving the some nested keys as a result - foreach(array_reverse($this->pluginEntries) as $key => $entity) { - $input = str_replace($key, $entity, $input); - - if (!$keep) { - unset($this->pluginEntries[$key]); - } - } - } - function addLineBreaks(&$line) { $lineInLowerCase = TikiLib::strtolower($line); @@ -840,8 +827,6 @@ function header($content) { - include_once('lib/smarty_tiki/function.icon.php'); - $hNum = 1; $headerLength = strlen($content); for($i = 0; $i < $headerLength; $i++) { Modified: trunk/lib/core/JisonParser/Wiki/PluginAjaxHandler.php =================================================================== --- trunk/lib/core/JisonParser/Wiki/PluginAjaxHandler.php 2012-06-03 16:40:31 UTC (rev 41736) +++ trunk/lib/core/JisonParser/Wiki/PluginAjaxHandler.php 2012-06-03 17:00:42 UTC (rev 41737) @@ -35,7 +35,7 @@ { $key = '§' . md5('plugin:'.self::$pluginCount) . '§'; self::$pluginCount++; - self::$plugins[$key] = $pluginDetails['body']; + self::$plugins[$key] = $this->unprotectSpecialChars($pluginDetails['body'], true); return $this->parse( $pluginDetails['body'] ); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rob...@us...> - 2012-08-28 21:04:27
|
Revision: 42788 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=42788&view=rev Author: robertplummer Date: 2012-08-28 21:04:21 +0000 (Tue, 28 Aug 2012) Log Message: ----------- [ENH] Added a very simple hotword handler, mostly copied from the original Modified Paths: -------------- trunk/lib/core/JisonParser/Wiki/Handler.php Added Paths: ----------- trunk/lib/core/JisonParser/Wiki/HotWords.php Modified: trunk/lib/core/JisonParser/Wiki/Handler.php =================================================================== --- trunk/lib/core/JisonParser/Wiki/Handler.php 2012-08-28 20:40:11 UTC (rev 42787) +++ trunk/lib/core/JisonParser/Wiki/Handler.php 2012-08-28 21:04:21 UTC (rev 42788) @@ -34,6 +34,9 @@ /* autoLink parser */ public $autoLink; + /*hotWords parser */ + public $hotWords; + //This var is used in both protectSpecialChars and unprotectSpecialChars to simplify the html ouput process private $specialChars = array( '≤REAL_LT≥' => array( @@ -146,6 +149,10 @@ $this->Parser->autoLink = new JisonParser_Wiki_AutoLink(); } + if (isset($this->Parser->hotWords) == false) { + $this->Parser->hotWords = new JisonParser_Wiki_HotWords(); + } + parent::__construct(); } @@ -264,6 +271,8 @@ $this->Parser->autoLink->parse($input); + $this->Parser->hotWords->parse($input); + $input = rtrim(ltrim($input, "\n"), "\n"); //here we remove the fake line breaks added just before parse } Added: trunk/lib/core/JisonParser/Wiki/HotWords.php =================================================================== --- trunk/lib/core/JisonParser/Wiki/HotWords.php (rev 0) +++ trunk/lib/core/JisonParser/Wiki/HotWords.php 2012-08-28 21:04:21 UTC (rev 42788) @@ -0,0 +1,45 @@ +<?php +// (c) Copyright 2002-2012 by authors of the Tiki Wiki CMS Groupware Project +// +// All Rights Reserved. See copyright.txt for details and a complete list of authors. +// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details. +// $Id$ + +class JisonParser_Wiki_HotWords +{ + static public $hotWords = array(); + + function __construct() + { + global $tikilib; + if ( !empty(self::$hotWords) ) { + return self::$hotWords; + } + + $result = $tikilib->fetchAll("select * from tiki_hotwords", array()); + + foreach ($result as $row) { + self::$hotWords[$row["word"]] = $row["url"]; + } + } + + function parse(&$content) + { + global $prefs; + $hotw_nw = ($prefs['feature_hotwords_nw'] == 'y') ? "target='_blank'" : ''; + + // Replace Hotwords + if ($prefs['feature_hotwords'] == 'y') { + $sep = $prefs['feature_hotwords_sep']; + $sep = empty($sep)? " \n\t\r\,\;\(\)\.\:\[\]\{\}\!\?\"":"$sep"; + foreach (self::$hotWords as $word => &$url) { + // \b is a word boundary, \s is a space char + $pregword = preg_replace("/\//", "\/", $word); + + $content = preg_replace("/(=(\"|')[^\"']*[$sep'])$pregword([$sep][^\"']*(\"|'))/i", "$1:::::$word,:::::$3", $content); + $content = preg_replace("/([$sep']|^)$pregword($|[$sep])/i", "$1<a class=\"wiki\" href=\"$url\" $hotw_nw>$word</a>$2", $content); + $content = preg_replace("/:::::$pregword,:::::/i", "$word", $content); + } + } + } +} \ No newline at end of file Property changes on: trunk/lib/core/JisonParser/Wiki/HotWords.php ___________________________________________________________________ Added: svn:keywords + Id This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rob...@us...> - 2012-09-04 17:24:10
|
Revision: 42825 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=42825&view=rev Author: robertplummer Date: 2012-09-04 17:24:04 +0000 (Tue, 04 Sep 2012) Log Message: ----------- [ENH] Now that we have a line number from the parser, we no longer need to setup the list parser Modified Paths: -------------- trunk/lib/core/JisonParser/Wiki/Handler.php trunk/lib/core/JisonParser/Wiki/List.php Modified: trunk/lib/core/JisonParser/Wiki/Handler.php =================================================================== --- trunk/lib/core/JisonParser/Wiki/Handler.php 2012-09-04 17:23:02 UTC (rev 42824) +++ trunk/lib/core/JisonParser/Wiki/Handler.php 2012-09-04 17:24:04 UTC (rev 42825) @@ -254,8 +254,6 @@ $input = "\n" . $input . "\n"; //here we add 2 lines, so the parser doesn't have to do special things to track the first line and last, we remove these when we insert breaks $input = $this->protectSpecialChars($input); - - $this->Parser->list->setup($input); } function postParse(&$input) @@ -268,6 +266,7 @@ if (!empty($lists)) { foreach($lists as $key => &$list) { $input = str_replace($key, $list, $input); + unset($list); } } } @@ -553,7 +552,7 @@ $content = substr($content, ($level + $noiseLength)); - return $this->Parser->list->stack($level, $content, $type); + return $this->Parser->list->stack($this->yylineno, $level, $content, $type); } function hr() //--- Modified: trunk/lib/core/JisonParser/Wiki/List.php =================================================================== --- trunk/lib/core/JisonParser/Wiki/List.php 2012-09-04 17:23:02 UTC (rev 42824) +++ trunk/lib/core/JisonParser/Wiki/List.php 2012-09-04 17:24:04 UTC (rev 42825) @@ -7,62 +7,40 @@ class JisonParser_Wiki_List { - var $stacks = array(); + static $stacks = array(); var $index = 0; - var $lineTracking = array(); - var $setup = false; + var $lineNumberLast = 0; + var $id; + var $key; - public function setup($input = "") + private function id() { - if ($this->setup == true) return; - $this->setup = true; - - $totalLists = preg_match("/[\r\n][*#+-]/", $input, $matches); - - if ($totalLists < 1) { - return; - } - - $lines = explode("\n", $input); - $lastLine = 0; - - foreach($lines as $i => &$line) { - if ( - isset($line[0]) && - ( - $line[0] == "*" || - $line[0] == "#" || - $line[0] == "+" - ) - ) { - $this->lineTracking[] = $lastLine; - continue; - } - - $lastLine = $i; - } + return 'id' . microtime() * 1000000; } - public function stack($level, $content, $type = '*') + public function stack($lineNumber, $level, $content, $type = '*') { - $key = '§' . md5('list:' . $this->lineTracking[$this->index]) . '§'; - $returnKey = false; - if (isset($this->stacks[$key]) == false) { + + /*the line number is +2 rather than just 1 because we insert a \n at the end of the line after we detect the list item using unset, this is so we can detect the next line as well*/ + if ($lineNumber != ($this->lineNumberLast + 2) || $this->lineNumberLast == 0) { + $this->index++; + $this->id = $this->id(); + $this->key = '§' . md5('list(id:' . $this->id . ',index:' . $this->index . ')') . '§'; $returnKey = true; - $this->stacks[$key] = array(); + $this->stacks[$this->key] = array(); } if ($level == 1) { - $this->stacks[$key][] = array('content' => $content, 'type' => $type, 'children' => array()); + $this->stacks[$this->key][] = array('content' => $content, 'type' => $type, 'children' => array()); } else { - $this->addToStack($this->stacks[$key], 1, $level, $content, $type); + $this->addToStack($this->stacks[$this->key], 1, $level, $content, $type); } - $this->index++; + $this->lineNumberLast = $lineNumber; if ($returnKey == true) { - return $key; + return $this->key; } return ''; @@ -105,7 +83,7 @@ $style = ''; $html = ''; $listParentTagType = 'ul'; - $id = 'id' . microtime() * 1000000; + $id = $this->id(); foreach($stack as &$list){ $wrapInLi = true; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rob...@us...> - 2012-09-11 16:28:56
|
Revision: 42902 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=42902&view=rev Author: robertplummer Date: 2012-09-11 16:28:47 +0000 (Tue, 11 Sep 2012) Log Message: ----------- [FIX] " -- " doesn't need protection Modified Paths: -------------- trunk/lib/core/JisonParser/Wiki/Handler.php trunk/lib/core/JisonParser/Wiki/HtmlCharacter.php Modified: trunk/lib/core/JisonParser/Wiki/Handler.php =================================================================== --- trunk/lib/core/JisonParser/Wiki/Handler.php 2012-09-11 15:41:54 UTC (rev 42901) +++ trunk/lib/core/JisonParser/Wiki/Handler.php 2012-09-11 16:28:47 UTC (rev 42902) @@ -391,7 +391,7 @@ { //use of array_reverse, jison is a reverse bottom-up parser, if it doesn't reverse jison doesn't restore the plugins in the right order, leaving the some nested keys as a result foreach(array_reverse($this->pluginEntries) as $key => $entity) { - if ($this->Parser->option['stripplugins'] == true) { + if ($this->getOption('stripplugins') == true) { $input = str_replace($key, '', $input); } else { $input = str_replace($key, $entity, $input); Modified: trunk/lib/core/JisonParser/Wiki/HtmlCharacter.php =================================================================== --- trunk/lib/core/JisonParser/Wiki/HtmlCharacter.php 2012-09-11 15:41:54 UTC (rev 42901) +++ trunk/lib/core/JisonParser/Wiki/HtmlCharacter.php 2012-09-11 16:28:47 UTC (rev 42902) @@ -19,7 +19,6 @@ 'rsq' => array('exp' => '/~rsq~/i', 'output' => '’'), 'c' => array('exp' => '/~c~/i', 'output' => '©'), '--' => array('exp' => '/~--~/', 'output' => '—'), - ' -- ' => array('exp' => '/ -- /', 'output' => ' — '), 'lt' => array('exp' => '/~lt~/i', 'output' => '<'), 'gt' => array('exp' => '/~gt~/i', 'output' => '>'), 'rm' => array('exp' => '/[{]rm[}]/i','output' => '‏'), This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rob...@us...> - 2012-11-06 20:15:50
|
Revision: 43809 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=43809&view=rev Author: robertplummer Date: 2012-11-06 20:15:43 +0000 (Tue, 06 Nov 2012) Log Message: ----------- [NEW] Better implementation of html char handling [FIX] type names Modified Paths: -------------- trunk/lib/core/JisonParser/Wiki/Handler.php Removed Paths: ------------- trunk/lib/core/JisonParser/Wiki/HtmlCharacter.php Modified: trunk/lib/core/JisonParser/Wiki/Handler.php =================================================================== --- trunk/lib/core/JisonParser/Wiki/Handler.php 2012-11-06 20:14:41 UTC (rev 43808) +++ trunk/lib/core/JisonParser/Wiki/Handler.php 2012-11-06 20:15:43 UTC (rev 43809) @@ -71,9 +71,6 @@ /* dynamic var parser */ public $dynamicVar; - /* html character */ - public $htmlCharacter; - /* special character */ public $specialCharacter; @@ -219,10 +216,6 @@ $this->Parser->dynamicVar = new JisonParser_Wiki_DynamicVariables($this->Parser); } - if (isset($this->Parser->htmlCharacter) == false) { - $this->Parser->htmlCharacter = new JisonParser_Wiki_HtmlCharacter($this->Parser); - } - if (isset($this->specialCharacter) == false) { $this->specialCharacter = new JisonParser_Wiki_SpecialChar($this->Parser); } @@ -342,7 +335,6 @@ ini_set("pcre.recursion_limit", "524"); $this->Parser->list->reset(); - //$this->Parser->htmlCharacter->parse($input); } $this->totalPreParseLineCount = substr_count($input, "\n"); @@ -1026,7 +1018,7 @@ { $this->line++; $this->skipBr = true; - return $this->createWikiTag("hr", "hr", "", array(), "inline"); + return $this->createWikiTag("horizontalRow", "hr", "", array(), "inline"); } /** @@ -1099,7 +1091,7 @@ $content = substr($content, 1); } - return $this->createWikiTag("unline", "span", $content); + return $this->createWikiTag("unlink", "span", $content); } /** @@ -1179,7 +1171,13 @@ return $this->createWikiTag("doubleDash", "span", " — "); } - + /** + * syntax handler: characters + * + * @access public + * @param $content char handler, upper or lower case + * @return string output of char + */ function char($content) { if ($this->isContent() || $this->Parser->parseDepth > 1) return $content; Deleted: trunk/lib/core/JisonParser/Wiki/HtmlCharacter.php =================================================================== --- trunk/lib/core/JisonParser/Wiki/HtmlCharacter.php 2012-11-06 20:14:41 UTC (rev 43808) +++ trunk/lib/core/JisonParser/Wiki/HtmlCharacter.php 2012-11-06 20:15:43 UTC (rev 43809) @@ -1,40 +0,0 @@ -<?php -// (c) Copyright 2002-2012 by authors of the Tiki Wiki CMS Groupware Project -// -// All Rights Reserved. See copyright.txt for details and a complete list of authors. -// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details. -// $Id$ - -class JisonParser_Wiki_HtmlCharacter -{ - private $parser; - public $chars = array( - '&' => array('exp' => '/&/', 'output' => '&'), - 'bs' => array('exp' => '/~bs~/i', 'output' => '\'), - 'hs' => array('exp' => '/~hs~/i', 'output' => ' '), - 'amp' => array('exp' => '/~amp~/i', 'output' => '&'), - 'ldq' => array('exp' => '/~ldq~/i', 'output' => '“'), - 'rdq' => array('exp' => '/~rdq~/i', 'output' => '”'), - 'lsq' => array('exp' => '/~lsq~/i', 'output' => '‘'), - 'rsq' => array('exp' => '/~rsq~/i', 'output' => '’'), - 'c' => array('exp' => '/~c~/i', 'output' => '©'), - '--' => array('exp' => '/~--~/', 'output' => '—'), - 'lt' => array('exp' => '/~lt~/i', 'output' => '<'), - 'gt' => array('exp' => '/~gt~/i', 'output' => '>'), - 'rm' => array('exp' => '/[{]rm[}]/i','output' => '‏'), - // HTML numeric character entities - 'num' => array('exp' => '/~([0-9]+)~/','output' =>'&#$1;'), - ); - - function __construct(JisonParser_Wiki_Handler &$parser) - { - $this->parser = &$parser; - } - - function parse(&$content) - { - foreach ($this->chars as &$char) { - $content = preg_replace($char['exp'], $char['output'], $content); - } - } -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rob...@us...> - 2012-11-06 20:16:56
|
Revision: 43810 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=43810&view=rev Author: robertplummer Date: 2012-11-06 20:16:50 +0000 (Tue, 06 Nov 2012) Log Message: ----------- [ENH] Add in the parser, and a todo Modified Paths: -------------- trunk/lib/core/JisonParser/Wiki/AutoLink.php trunk/lib/core/JisonParser/Wiki/HotWords.php Modified: trunk/lib/core/JisonParser/Wiki/AutoLink.php =================================================================== --- trunk/lib/core/JisonParser/Wiki/AutoLink.php 2012-11-06 20:15:43 UTC (rev 43809) +++ trunk/lib/core/JisonParser/Wiki/AutoLink.php 2012-11-06 20:16:50 UTC (rev 43810) @@ -7,16 +7,20 @@ class JisonParser_Wiki_AutoLink { + public $parser; + private $icon = ''; private $attr = ''; private $rules = array( ); - function __construct() + function __construct(&$parser) { global $smarty, $prefs; + $this->parser = &$parser; + if ($prefs['popupLinks'] == 'y') $this->attr .= 'target="_blank" '; if ($prefs['feature_wiki_ext_icon'] == 'y') { @@ -28,7 +32,7 @@ } } - public function parse(&$text) + public function parse(&$text) //TODO: needs to be handled with wiki tag creator { global $tikilib, $prefs; Modified: trunk/lib/core/JisonParser/Wiki/HotWords.php =================================================================== --- trunk/lib/core/JisonParser/Wiki/HotWords.php 2012-11-06 20:15:43 UTC (rev 43809) +++ trunk/lib/core/JisonParser/Wiki/HotWords.php 2012-11-06 20:16:50 UTC (rev 43810) @@ -7,11 +7,15 @@ class JisonParser_Wiki_HotWords { + public $parser; static public $hotWords = array(); - function __construct() + function __construct(&$parser) { global $tikilib; + + $this->parser = &$parser; + if ( !empty(self::$hotWords) ) { return self::$hotWords; } @@ -23,7 +27,7 @@ } } - function parse(&$content) + function parse(&$content) //TODO: needs handled with wiki tag creator { global $prefs; $hotw_nw = ($prefs['feature_hotwords_nw'] == 'y') ? "target='_blank'" : ''; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |