X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/9c5634fbc60d6e9dbb9f28d4cbbabd9822498646..9258b2e0b32269e543149412ae742ab1fe2f44a8:/redakcja/static/js/wiki/xslt.js diff --git a/redakcja/static/js/wiki/xslt.js b/redakcja/static/js/wiki/xslt.js index daa18f65..a97322a5 100644 --- a/redakcja/static/js/wiki/xslt.js +++ b/redakcja/static/js/wiki/xslt.js @@ -17,7 +17,7 @@ function withStylesheets(code_block, onError) if (!xml2htmlStylesheet) { $.blockUI({message: 'Ładowanie arkuszy stylów...'}); $.ajax({ - url: STATIC_URL + 'xsl/wl2html_client.xsl?20101123', + url: STATIC_URL + 'xsl/wl2html_client.xsl?20110520', dataType: 'xml', timeout: 10000, success: function(data) { @@ -40,7 +40,7 @@ function withThemes(code_block, onError) { if (typeof withThemes.canon == 'undefined') { $.ajax({ - url: '/themes', + url: '/editor/themes', dataType: 'text', success: function(data) { withThemes.canon = data.split('\n'); @@ -59,12 +59,15 @@ function withThemes(code_block, onError) function xml2html(options) { + ALIEN_REGEX = /([^a-zA-Z0-9ąćęłńóśźżĄĆĘŁŃÓŚŹŻ\s<>«»\\*_!,:;?&%."'=#()\/-]+)/g; + withStylesheets(function() { var xml = options.xml.replace(/\/(\s+)/g, '
$1'); - xml = xml.replace(/([^a-zA-Z0-9ąćęłńóśźżĄĆĘŁŃÓŚŹŻ\s<>«»\\*_!,:;?."'=#()\/-]+)/g, '$1'); +// xml = xml.replace(/([^a-zA-Z0-9ąćęłńóśźżĄĆĘŁŃÓŚŹŻ\s<>«»\\*_!,:;?&%."'=#()\/-]+)/g, '$1'); var parser = new DOMParser(); var serializer = new XMLSerializer(); var doc = parser.parseFromString(xml, 'text/xml'); + walk(doc.firstChild, wrapInTag(ALIEN_REGEX, 'alien')) var error = $('parsererror', doc); if (error.length == 0) { @@ -85,7 +88,7 @@ function xml2html(options) { source.text(''); options.error(error.text(), source_text); } else { - options.success(doc.firstChild); + options.success(doc.childNodes); withThemes(function(canonThemes) { if (canonThemes != null) { @@ -253,8 +256,13 @@ HTMLSerializer.prototype.serialize = function(rootElement, stripOuter) break; case TEXT_NODE: self.result += text_buffer; - text_buffer = token.node.nodeValue; + text_buffer = token.node.nodeValue.replace(/&/g, '&').replace(/'; + break; }; }; self.result += text_buffer; @@ -358,7 +366,9 @@ HTMLSerializer.prototype._serializeElement = function(node) { }; self.result += ' ' + self._join(nsData.prefix, node.getAttribute('x-attr-name-'+this)); - self.result += '="'+node.getAttribute('x-attr-value-'+this) +'"'; + var value = node.getAttribute('x-attr-value-'+this); + value = value.replace(/&/g, '&').replace(/