Open main menu
Home
Random
Donate
Recent changes
Special pages
Community portal
Preferences
About Stockhub
Disclaimers
Search
User menu
Talk
Contributions
Create account
Log in
Editing
Module:DecodeEncode/doc
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Module rating |general}} <!-- Please place categories where indicated at the bottom of this page and interwikis at Wikidata (see [[Wikipedia:Wikidata]]) --> Implements Lua functions [[:mw:Extension:Scribunto/Lua_reference_manual#mw.text.decode|mw.text.decode]], [[:mw:Extension:Scribunto/Lua_reference_manual#mw.text.encode|mw.text.encode]] in a module. :<code><nowiki>{{#invoke:decodeEncode|decode|s=Source&nbsp;text}}</nowiki></code> → <code><nowiki>Source text</nowiki></code> See [[List of XML and HTML character entity references]]. == Decode ({{mono|1=&copy;}} → ©) == : '''Note 2021-09-26: Possible bug: Decoding <code>&ThinSpace;</code> works, but <code>&thinsp;</code> doesn't.''' :Decodes [[List of XML and HTML character entity references|Named Entities]] ''from'' entity name ''into'' a regular (unicode) character: :<code>&copy;</code> → <code>©</code> :<code>&gt;</code> → <code>></code> All welldefined named entities are decoded ([https://html.spec.whatwg.org/multipage/named-characters.html#named-character-references HTML Named character references], formally: as defined in the [https://www.php.net/get_html_translation_table PHP table]). :A regular, rendered sentence: ::"At 100 °F, & with a "burning" sun above, we , we ⁄walked⁄." :In code: ::"<code>At 100&nbsp;&deg;F, & with a &quot;burning&quot; sun above, we &frasl;walked&frasl;.</code>" -- wikitext :Processing: :<code><nowiki>{{#invoke:decodeEncode|decode|s=At 100 °F, & with a "burning" sun above, we ⁄walked⁄.}}</nowiki></code> → ::<code>{{#invoke:decodeEncode|decode|s=At 100 °F, & with a "burning" sun above, we ⁄walked⁄.}}</code> -- In code: straight characters, no named entities. :Renders, again: ::"At 100 °F, & with a "burning" sun above, we ⁄walked⁄." ===Decode a reduced set only=== By setting {{para|subset_only|true}}, only these five entity names are decoded: '&lt;', '&gt;', '&amp;', '&quot;', '&nbsp;' (that is, into '<', '>', '&', '"', ' '). :'''Note''': There is a difference with the relevant Lua parameter. (This only concerns your task if you also work directly with the Lua mw.text.decode function). Lua documentation defines parameter {{para|decodeNamedEntities}}, having this effect: when ''omitted or false'', only the reduced set of entities is recognized and decoded. This use of 'false' is ''inverted'' in using {{para|subset_only}}: {{para|decodeNamedEntities|false}} = {{para|subset_only|true}}. :Also, this module ignores the "omitted" logic: {{para|subset_only}} should be set explicitly to 'true' to be effective. == Encode (© → {{mono|1=&copy;}}) == :Function <code>encode</code> encodes some entity-named characters into that name (for example: <code>&</code> → <code>&amp;</code>). Regular sentence: :"At >100 °F, & with a "burning" sun above, we walked. ©" In code: :"<code><nowiki>At >100 °F, & with a "burning" sun above, we walked. ©</nowiki></code>" Encode: :<code><nowiki>{{#invoke:decodeEncode|encode|s=At >100 °F, & with a "burning" sun above, we walked. ©|charset=&<>{{!}}°"'&©}}</nowiki></code> :→ :<code><nowiki>At &gt;100 &#176;F, &amp; with a &quot;burning&quot; sun above, we walked. &#169;</nowiki></code><!-- used Special:ExpandTemplate --> :Renders as: :"At >100 °F, & with a "burning" sun above, we walked. ©" ===character set to encode=== Per Lua documentation, only a small set of characters is processed. The characterset can be set (expanded) by using {{para|charset}}. :Example: {{para|charset|<nowiki><>" \'&</nowiki>}} (the default), {{para|charset|<nowiki><>°"'&©{{!}}</nowiki>}}; characters not in the default will be replaced by their decimal entity: <code>©</code> → <code>&#169;</code> <small>(hexadecimal number, not decimal nor named &copy;)</small> ==Template== '''NOTE: 2021-09-13: The encode function with user-supplied charset is now used productively in {{tl|R/superscript}} and {{tl|R/ref}}. Before implementing breaking changes here, these templates need to be adjusted accordingly!''' ==See also== * [[:mw:Extension:Scribunto/Lua_reference_manual#mw.text.decode|mw.text.decode]] * [[:mw:Extension:Scribunto/Lua_reference_manual#mw.text.encode|mw.text.encode]] {{Navbox wikitext-handling templates}} * [[:Module:Urldecode]] <includeonly>{{sandbox other|| <!-- Categories below this line, please; interwikis at Wikidata --> [[Category:Wikitext processing templates]] [[Category:Modules that manipulate strings]] }}</includeonly>
Summary:
Please note that all contributions to Stockhub may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Stockhub:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:Module rating
(
edit
)
Template:Mono
(
edit
)
Template:Navbox wikitext-handling templates
(
edit
)
Template:Para
(
edit
)
Template:Tl
(
edit
)
Module:DecodeEncode
(
edit
)