X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/bea8d1caad32069ceb8c68feea989fc551b7917d..f7b91d0fc5230f026f5e62fcb81122a495bacc2f:/redakcja/static/js/wiki/xslt.js?ds=sidebyside

diff --git a/redakcja/static/js/wiki/xslt.js b/redakcja/static/js/wiki/xslt.js
index f7dbbf63..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',
+        	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,11 +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, '<br />$1');
+//        xml = xml.replace(/([^a-zA-Z0-9ąćęłńóśźżĄĆĘŁŃÓŚŹŻ\s<>«»\\*_!,:;?&%."'=#()\/-]+)/g, '<alien>$1</alien>');
         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) {
@@ -84,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) {
@@ -252,10 +256,16 @@ 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, '&amp;').replace(/</g, '&lt;');
 				break;
+            case COMMENT_NODE:
+                self.result += text_buffer;
+                text_buffer = '';
+                self.result += '<!--' + token.node.nodeValue + '-->';
+                break;
 		};
 	};
+    self.result += text_buffer;
 
 	return this.result;
 }
@@ -356,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, '&amp;').replace(/</g, '&lt;');
+    		self.result += '="'+ value +'"';
     	});
 
     	/* print new namespace declarations */
@@ -383,4 +395,4 @@ function html2text(params) {
 	} catch(e) {
 		params.error("Nie udało się zserializować tekstu:" + e)
 	}
-}
\ No newline at end of file
+}