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; }