1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-06-30 01:03:16 +00:00

Do not escape double quotes in tiddler DIVs to save space (#5383)

* double quotes are no longer escaped in html bodies

* changed tiddlyweb's html-div-tiddler; documentation

French version still needs a translation though
This commit is contained in:
Cameron Fischer 2021-04-02 04:32:32 -04:00 committed by GitHub
parent 3b35411aba
commit ef6307a64e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 19 additions and 2 deletions

View File

@ -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,"&amp;").replace(/</mg,"&lt;").replace(/>/mg,"&gt;");
} else {
return "";
}
};
// Converts all HTML entities to their character equivalents // Converts all HTML entities to their character equivalents
exports.entityDecode = function(s) { exports.entityDecode = function(s) {
var converter = String.fromCodePoint || String.fromCharCode, var converter = String.fromCodePoint || String.fromCharCode,

View File

@ -65,6 +65,9 @@ ViewWidget.prototype.execute = function() {
case "htmlencoded": case "htmlencoded":
this.text = this.getValueAsHtmlEncoded(); this.text = this.getValueAsHtmlEncoded();
break; break;
case "htmltextencoded":
this.text = this.getValueAsHtmlTextEncoded();
break;
case "urlencoded": case "urlencoded":
this.text = this.getValueAsUrlEncoded(); this.text = this.getValueAsUrlEncoded();
break; break;
@ -160,6 +163,10 @@ ViewWidget.prototype.getValueAsHtmlEncoded = function() {
return $tw.utils.htmlEncode(this.getValueAsText()); return $tw.utils.htmlEncode(this.getValueAsText());
}; };
ViewWidget.prototype.getValueAsHtmlTextEncoded = function() {
return $tw.utils.htmlTextEncode(this.getValueAsText());
};
ViewWidget.prototype.getValueAsUrlEncoded = function() { ViewWidget.prototype.getValueAsUrlEncoded = function() {
return encodeURIComponent(this.getValueAsText()); return encodeURIComponent(this.getValueAsText());
}; };

View File

@ -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. This template is used for saving tiddlers as an HTML DIV tag with attributes representing the tiddler fields.
-->`<div`<$fields template=' $name$="$encoded_value$"'></$fields>`> -->`<div`<$fields template=' $name$="$encoded_value$"'></$fields>`>
<pre>`<$view field="text" format="htmlencoded" />`</pre> <pre>`<$view field="text" format="htmltextencoded" />`</pre>
</div>` </div>`

View File

@ -29,6 +29,7 @@ The following formats can be specified in the `format` attribute:
|!Format |!Description | |!Format |!Description |
|''text'' |Plain text (default) | |''text'' |Plain text (default) |
|''htmlencoded'' |The field is displayed with HTML encoding | |''htmlencoded'' |The field is displayed with HTML encoding |
|''htmltextencoded'' |The field is displayed with HTML encoding, only double quotes (") are not escaped. This creates a more compact htmlencoding appropriate for html text content, but //not// for attributes. |
|''urlencoded'' |The field is displayed with URL encoding | |''urlencoded'' |The field is displayed with URL encoding |
|''doubleurlencoded'' |The field is displayed with double URL encoding | |''doubleurlencoded'' |The field is displayed with double URL encoding |
|''htmlwikified'' |The field is wikified according to the mode attribute and the resulting HTML returned as plain text (ie HTML elements will appear in plain text) | |''htmlwikified'' |The field is wikified according to the mode attribute and the resulting HTML returned as plain text (ie HTML elements will appear in plain text) |

View File

@ -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. This version includes the tiddler changecount as the field `revision`. This template is used for saving tiddlers as an HTML DIV tag with attributes representing the tiddler fields. This version includes the tiddler changecount as the field `revision`.
-->`<div`<$fields exclude='text revision bag' template=' $name$="$encoded_value$"'></$fields>` revision="`<<changecount>>`" bag="default"> -->`<div`<$fields exclude='text revision bag' template=' $name$="$encoded_value$"'></$fields>` revision="`<<changecount>>`" bag="default">
<pre>`<$view field="text" format="htmlencoded" />`</pre> <pre>`<$view field="text" format="htmltextencoded" />`</pre>
</div>` </div>`