update librarian
[redakcja.git] / redakcja / static / js / wiki / xslt.js
index 1327fc6..cc71b28 100644 (file)
@@ -59,12 +59,15 @@ function withThemes(code_block, onError)
 
 
 function xml2html(options) {
 
 
 function xml2html(options) {
+    ALIEN_REGEX = /([^a-zA-Z0-9ąćęłńóśźżĄĆĘŁŃÓŚŹŻ\s<>«»\\*_!,:;?&%."'=#()\/-]+)/g;
+
     withStylesheets(function() {
         var xml = options.xml.replace(/\/(\s+)/g, '<br />$1');
     withStylesheets(function() {
         var xml = options.xml.replace(/\/(\s+)/g, '<br />$1');
-        xml = xml.replace(/([^a-zA-Z0-9ąćęłńóśźżĄĆĘŁŃÓŚŹŻ\s<>«»\\*_!,:;?&%."'=#()\/-]+)/g, '<alien>$1</alien>');
+//        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');
         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) {
         var error = $('parsererror', doc);
 
         if (error.length == 0) {
@@ -363,7 +366,7 @@ HTMLSerializer.prototype._serializeElement = function(node) {
                };
 
                self.result += ' ' + self._join(nsData.prefix, node.getAttribute('x-attr-name-'+this));
                };
 
                self.result += ' ' + self._join(nsData.prefix, node.getAttribute('x-attr-name-'+this));
-               self.result += '="'+node.getAttribute('x-attr-value-'+this) +'"';
+                self.result += '="'+node.getAttribute('x-attr-value-'+this).replace(/&/g, '&amp;').replace(/</g, '&lt;')+'"';
        });
 
        /* print new namespace declarations */
        });
 
        /* print new namespace declarations */