diff --git a/client/components/Reader/LoaderPage/PasteTextPage/PasteTextPage.vue b/client/components/Reader/LoaderPage/PasteTextPage/PasteTextPage.vue
index d255d935..f3383f16 100644
--- a/client/components/Reader/LoaderPage/PasteTextPage/PasteTextPage.vue
+++ b/client/components/Reader/LoaderPage/PasteTextPage/PasteTextPage.vue
@@ -70,7 +70,7 @@ class PasteTextPage extends Vue {
}
loadBuffer() {
- this.$emit('load-buffer', {buffer: `${this.bookTitle}${this.$refs.textArea.value}`});
+ this.$emit('load-buffer', {buffer: `${utils.escapeXml(this.bookTitle)}${this.$refs.textArea.value}`});
this.close();
}
diff --git a/client/share/utils.js b/client/share/utils.js
index 1d0357da..a171a42f 100644
--- a/client/share/utils.js
+++ b/client/share/utils.js
@@ -193,4 +193,13 @@ export function parseQuery(str) {
query[first] = [query[first], second];
}
return query;
+}
+
+export function escapeXml(str) {
+ return str.replace(/&/g, '&')
+ .replace(//g, '>')
+ .replace(/"/g, '"')
+ .replace(/'/g, ''')
+ ;
}
\ No newline at end of file
diff --git a/server/core/Reader/BookConverter/ConvertHtml.js b/server/core/Reader/BookConverter/ConvertHtml.js
index 4131436f..8df01185 100644
--- a/server/core/Reader/BookConverter/ConvertHtml.js
+++ b/server/core/Reader/BookConverter/ConvertHtml.js
@@ -6,6 +6,7 @@ class ConvertHtml extends ConvertBase {
check(data, opts) {
const {dataType} = opts;
+ //html?
if (dataType && (dataType.ext == 'html' || dataType.ext == 'xml'))
return {isText: false};
@@ -14,6 +15,11 @@ class ConvertHtml extends ConvertBase {
return {isText: true};
}
+ //из буфера обмена?
+ if (data.toString().indexOf('') == 0) {
+ return {isText: false};
+ }
+
return false;
}