فهرست منبع

Доработки конвертирования из буфера обмена

Book Pauk 5 سال پیش
والد
کامیت
a6bdccd4ef

+ 1 - 1
client/components/Reader/LoaderPage/PasteTextPage/PasteTextPage.vue

@@ -70,7 +70,7 @@ class PasteTextPage extends Vue {
     }
     }
 
 
     loadBuffer() {
     loadBuffer() {
-        this.$emit('load-buffer', {buffer: `<cut-title>${this.bookTitle}</cut-title>${this.$refs.textArea.value}`});
+        this.$emit('load-buffer', {buffer: `<buffer><cut-title>${utils.escapeXml(this.bookTitle)}</cut-title>${this.$refs.textArea.value}</buffer>`});
         this.close();
         this.close();
     }
     }
 
 

+ 9 - 0
client/share/utils.js

@@ -193,4 +193,13 @@ export function parseQuery(str) {
                 query[first] = [query[first], second]; 
                 query[first] = [query[first], second]; 
     }
     }
     return query;
     return query;
+}
+
+export function escapeXml(str) {
+    return str.replace(/&/g, '&amp;')
+        .replace(/</g, '&lt;')
+        .replace(/>/g, '&gt;')
+        .replace(/"/g, '&quot;')
+        .replace(/'/g, '&apos;')
+    ;
 }
 }

+ 6 - 0
server/core/Reader/BookConverter/ConvertHtml.js

@@ -6,6 +6,7 @@ class ConvertHtml extends ConvertBase {
     check(data, opts) {
     check(data, opts) {
         const {dataType} = opts;
         const {dataType} = opts;
 
 
+        //html?
         if (dataType && (dataType.ext == 'html' || dataType.ext == 'xml')) 
         if (dataType && (dataType.ext == 'html' || dataType.ext == 'xml')) 
             return {isText: false};
             return {isText: false};
 
 
@@ -14,6 +15,11 @@ class ConvertHtml extends ConvertBase {
             return {isText: true};
             return {isText: true};
         }
         }
 
 
+        //из буфера обмена?
+        if (data.toString().indexOf('<buffer>') == 0) {
+            return {isText: false};
+        }
+
         return false;
         return false;
     }
     }