From: Łukasz Rekucki Date: Mon, 21 Sep 2009 11:57:10 +0000 (+0200) Subject: Autokorekta: inteligentne wstawianie tagow, usuwanie spacji po i przed iterpunkcją. X-Git-Url: https://git.mdrn.pl/redakcja.git/commitdiff_plain/215ee372b0f2ae4d99e5f73d8aea89ac8b9062c2?ds=inline;hp=--cc Autokorekta: inteligentne wstawianie tagow, usuwanie spacji po i przed iterpunkcją. --- 215ee372b0f2ae4d99e5f73d8aea89ac8b9062c2 diff --git a/apps/toolbar/fixtures/przyciski.xml b/apps/toolbar/fixtures/przyciski.xml index f359d669..737ef313 100755 --- a/apps/toolbar/fixtures/przyciski.xml +++ b/apps/toolbar/fixtures/przyciski.xml @@ -148,7 +148,7 @@ Podstawowa basic_correction - [["fulltextregexp", {"exprs": [["\ufeff", ""], ["$[\\s]*\\d+[\\s]*^", ""], ["-\\s*^", ""], ["\\,\\.\\.|\\.\\,\\.|\\.\\.\\,", "..."]]}], ["lineregexp", {"exprs": [["^\\s+|\\s+$", ""], ["\\s+", " "], ["(,,)\\s+|\\s+(\")", "$1"], ["(\\d)[\u2014-](\\d)", "$1--$2"], ["\u2014", "---"], ["<(/?)P([aert])", "<$1p$2"], ["([^\\.])(\\s*)</p", "$1.$2</p"]]}]] + [["fulltextregexp", {"exprs": [["\ufeff", ""], ["$[\\s]*\\d+[\\s]*^", ""], ["-\\s*^", ""], ["\\,\\.\\.|\\.\\,\\.|\\.\\.\\,", "..."]]}], ["lineregexp", {"exprs": [["^\\s+|\\s+$", ""], ["\\s+", " "], ["(,,)\\s+|\\s+(\")", "$1"], ["(\\d)[\u2014-](\\d)", "$1--$2"], ["\u2014", "---"], ["<(/?)P([aert])", "<$1p$2"], ["([^\\.])(\\s*)</p", "$1.$2</p"], ["([,\\.:;!\\?])([^\\s\\\\])", "$1 $2"], ["([^\\s])\\s+([,\\.:;!\\?])", "$1$2"]]}]] macro @@ -990,7 +990,7 @@ Zamień dywiz zamien_dywiz - {"exprs": [["(\\s)-(\\s)", "$1---$2"], ["^(\\s*)-(\\s)", "$1---$2"], ["(\\s)-(\\s*)$", "$1---$2"], ["(\\d)[\u2014-](\\d)", "$1--$2"], ["\u2014", "---"]]} + {"exprs": [["(\\s)-(\\s)", "$1---$2"], ["^(\\s*)-(\\s)", "$1---$2"], ["(\\s)-(\\s*)$", "$1---$2"], ["(\\d)[\u2014\u2013\u2010-](\\d)", "$1--$2"], ["\u2014\u2013\u2010", "---"]]} lineregexp @@ -1015,39 +1015,45 @@ var texteditor = panel.texteditor; - var text = texteditor.selection(); - -var out = '<'+params.tag; - +var start_tag = '<'+params.tag; for (var attr in params.attrs) { - - out += ' '+attr+'="' + params.attrs[attr] + '"'; - + start_tag += ' '+attr+'="' + params.attrs[attr] + '"'; }; +start_tag += '>'; +var end_tag = '</'+params.tag+'>'; -out += '>'; - -out += text; - -out += '</' + params.tag + '>'; - - +// tokenize +var output = '' +var token = '' +for(var index=0; index < text.length; index++) +{ + if (text[index].match(/\s/)) { // whitespace + token += text[index]; + } + else { // character + output += token; + if(output == token) output += start_tag; + token = '' + output += text[index]; + } +} -texteditor.replaceSelection(out); +if( output[output.length-1] == '\\' ) { + output = output.substr(0, output.length-1) + end_tag + '\\'; +} else { + output += end_tag; +} +output += token; +texteditor.replaceSelection(output); if (text.length == 0) { - var pos = texteditor.cursorPosition(); - texteditor.selectLines(pos.line, pos.character + params.tag.length + 2); - } - - panel.fireEvent('contentChanged');