diff --git a/core/modules/utils/utils.js b/core/modules/utils/utils.js index f3167fdfa..ecae23ec8 100644 --- a/core/modules/utils/utils.js +++ b/core/modules/utils/utils.js @@ -515,6 +515,15 @@ exports.htmlEncode = function(s) { } }; +// Converts like htmlEncode, but forgets the double quote for brevity +exports.htmlTextEncode = function(s) { + if(s) { + return s.toString().replace(/&/mg,"&").replace(//mg,">"); + } else { + return ""; + } +}; + // Converts all HTML entities to their character equivalents exports.entityDecode = function(s) { var converter = String.fromCodePoint || String.fromCharCode, diff --git a/core/modules/widgets/view.js b/core/modules/widgets/view.js index 30da34147..fed369771 100755 --- a/core/modules/widgets/view.js +++ b/core/modules/widgets/view.js @@ -65,6 +65,9 @@ ViewWidget.prototype.execute = function() { case "htmlencoded": this.text = this.getValueAsHtmlEncoded(); break; + case "htmltextencoded": + this.text = this.getValueAsHtmlTextEncoded(); + break; case "urlencoded": this.text = this.getValueAsUrlEncoded(); break; @@ -160,6 +163,10 @@ ViewWidget.prototype.getValueAsHtmlEncoded = function() { return $tw.utils.htmlEncode(this.getValueAsText()); }; +ViewWidget.prototype.getValueAsHtmlTextEncoded = function() { + return $tw.utils.htmlTextEncode(this.getValueAsText()); +}; + ViewWidget.prototype.getValueAsUrlEncoded = function() { return encodeURIComponent(this.getValueAsText()); }; diff --git a/core/templates/html-div-tiddler.tid b/core/templates/html-div-tiddler.tid index 6e3001cf5..640fe766b 100644 --- a/core/templates/html-div-tiddler.tid +++ b/core/templates/html-div-tiddler.tid @@ -5,5 +5,5 @@ title: $:/core/templates/html-div-tiddler This template is used for saving tiddlers as an HTML DIV tag with attributes representing the tiddler fields. -->`
`<$view field="text" format="htmlencoded" />`+
`<$view field="text" format="htmltextencoded" />`
`<$view field="text" format="htmlencoded" />`+
`<$view field="text" format="htmltextencoded" />`