diff --git a/xep-0457.xml b/xep-0457.xml new file mode 100644 index 00000000..eb47e81f --- /dev/null +++ b/xep-0457.xml @@ -0,0 +1,162 @@ + + +%ents; +]> + + +
+ Message Fancying + This specification defines a Unicode-formatted fancy text syntax for use in instant messages. + &LEGALNOTICE; + 0457 + Active + Humorous + None + Editor + + XMPP Core + XMPP IM + + + XEP-0071 + XEP-0393 + XEP-0394 + + + fancying + + Georg + Lukas + georg@op-co.de + georg@yax.im + + + 1.0.0 + 2021-04-01 + XEP Editor (jsc) + Initial published version. + + + 0.0.1 + 2021-04-01 + gl +

First draft.

+
+
+ +

+ XMPP-based Instant Messages has suffered from a lack of proper message + styling mechanisms. After abandoning &xep0071; for its horrible security + track record, &xep0393; and &xep0394; were proposed as replacements, but + neither was able to gain sufficient traction to become the default styling + mechanism. +

+

+ This specification fills the gap by formally specifying the Unicode-based + formatting that is currently fancied on Social Media and micro-blogging as + an XMPP standard for Instant Messaging. As XMPP is based on UTF-8, messages + formatted with this mechanism are immediately visible on all receiving + clients. Simple third-party tools can be used for writing messages until + this specification is integrated into the IM message input boxes. +

+
+ +

This specification relies on Unicode features introduced in the 3.1 + specification. As XMPP implementations are required to support Unicode 3.2 + for StringPrep during SASL authentication, no new requirements arise.

+
+ + + + + +

To format a string as Preformatted Text, the individual code-points need + to be converted to their integer representation, then increased by + 0x1D62F (capital letters) or 0x1D629 (lowercase letters) + and then converted back to characters.

+
Preformatted text → ð™ŋ𝚛𝚎𝚏𝚘𝚛𝚖𝚊𝚝𝚝𝚎𝚍 ðšðšŽðšĄðš
+
+ +

To format a string with Emphasis, the individual code-points need + to be converted to their integer representation, then increased by + 0x1D3F3 (capital letters) or 0x1D3ED (lowercase letters) + and then converted back to characters.

+
Emphasis → ðļ𝑚𝑝ℎ𝑎𝑠𝑖𝑠
+
+ +

To format a string with Strong Emphasis, the individual code-points need + to be converted to their integer representation, then increased by + 0x1D3BF (capital letters) or 0x1D3B9 (lowercase letters) + and then converted back to characters.

+
Strong Emphasis → 𝐒𝐭ðŦðĻ𝐧𝐠 𝐄ðĶðĐðĄðšðŽðĒ𝐎
+
+ +

To format a string with Very Very Strong Emphasis, the individual code-points need + to be converted to their integer representation, then increased by + 0x1D427 (capital letters) or 0x1D421 (lowercase letters) + and then converted back to characters.

+
Very Strong Emphasis → ð‘―ð’†ð’“ð’š 𝑚𝒕𝒓𝒐𝒏𝒈 𝑎𝒎𝒑𝒉𝒂𝒔𝒊𝒔
+
+ +

To format a string as struck through, each code-point needs to be + extended with a U-0336 COMBINING LONG STROKE OVERLAY postfix.

+
Strike through → SĖķtĖķrĖķiĖķkĖķeĖķ ĖķtĖķhĖķrĖķoĖķuĖķgĖķhĖķ
+
+
+ +

Some clients will use a serif-less font instead of a serif font to display + instant messages, or even allow the user to choose an arbitrary font. The + formatting defined in this document assumes the use of serif fonts, however. + If a formatted text is to be displayed in a context that is not supposed to + render serifs, the displaying implementation MUST add 0x1D4 to the + respective integer representations of the fancy code-points. +

+

On the wire, the serif representation always MUST be used.

+

Determining whether a given display font is serif or sans-serif is out of + scope of this specification.

+
+ +

𝞜ðžļ𝞰ðžŪ

+
+ +

ðŸ‡ģðŸ‡īðŸ‡ģ🇊

+
+ +

The rendering of fonts is a complex task performed in the most inner guts + of the operating system. Over the last decades, various exploits have been + discovered in all major operating systems. Unfortunately, fixing those + issues is far beyond the abilities of a simple XMPP client.

+
+ +

+ This document requires no interaction with &IANA;. +

+
+ +

None.

+
+
diff --git a/xep.ent b/xep.ent index 042a05a0..2ebddc42 100644 --- a/xep.ent +++ b/xep.ent @@ -1621,3 +1621,4 @@ IANA Service Location Protocol, Version 2 (SLPv2) Templates OMEMO Media sharing (XEP-0454) XEP-0454: OMEMO Media sharing <https://xmpp.org/extensions/xep-0454.html>." > Service Outage Status (XEP-0455) XEP-0455: Service Outage Status <https://xmpp.org/extensions/xep-0455.html>." > Content Rating Labels (XEP-0456) XEP-0456: Content Rating Labels <https://xmpp.org/extensions/xep-0456.html>." > +Message Fancying (XEP-0457) XEP-0457: Message Fancying <https://xmpp.org/extensions/xep-0457.html>." >