Browse Source

Update ComponentTextNode escape

pull/4685/head
Artur Arseniev 4 years ago
parent
commit
4b1bd3b71f
  1. 10
      src/dom_components/model/ComponentTextNode.js
  2. 4
      src/utils/mixins.ts

10
src/dom_components/model/ComponentTextNode.js

@ -1,5 +1,5 @@
import Component from './Component';
import { escape } from 'utils/mixins';
import { escapeNodeContent } from 'utils/mixins';
export default class ComponentTextNode extends Component {
get defaults() {
@ -15,8 +15,12 @@ export default class ComponentTextNode extends Component {
toHTML() {
const parent = this.parent();
const cnt = this.get('content');
return parent && parent.is('script') ? cnt : escape(cnt);
const content = this.get('content');
return parent?.is('script') ? content : this.__escapeContent(content);
}
__escapeContent(content) {
return escapeNodeContent(content);
}
}

4
src/utils/mixins.ts

@ -194,6 +194,10 @@ export const escape = (str = '') => {
.replace(/`/g, '`');
};
export const escapeNodeContent = (str = '') => {
return `${str}`.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
};
export const deepMerge = (...args: Record<string, any>[]) => {
const target = { ...args[0] };

Loading…
Cancel
Save