xeps/xep-0245.xml

85 lines
4.3 KiB
XML
Raw Normal View History

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE xep SYSTEM 'xep.dtd' [
<!ENTITY % ents SYSTEM 'xep.ent'>
%ents;
]>
<?xml-stylesheet type='text/xsl' href='xep.xsl'?>
<xep>
<header>
<title>The /me Command</title>
<abstract>This specification defines recommended handling of the /me command in XMPP instant messaging clients.</abstract>
&LEGALNOTICE;
<number>0245</number>
<status>Proposed</status>
<type>Historical</type>
<sig>Standards</sig>
<approver>Council</approver>
<dependencies>
<spec>XMPP Core</spec>
<spec>XMPP IM</spec>
</dependencies>
<supersedes/>
<supersededby/>
<shortname>NOT_YET_ASSIGNED</shortname>
&stpeter;
<revision>
<version>0.1</version>
<date>2008-06-18</date>
<initials>psa</initials>
<remark><p>Initial published version.</p></remark>
</revision>
<revision>
<version>0.0.1</version>
<date>2008-06-09</date>
<initials>psa</initials>
<remark><p>First draft.</p></remark>
</revision>
</header>
<section1 topic='Introduction' anchor='intro'>
<p>Many Jabber/XMPP instant messaging clients provide special processing and presentation of the string "/me " at the beginning of a message body. This specification describes the recommended handling of this "command".</p>
</section1>
<section1 topic='Recommended Handling' anchor='handling'>
<p>The /me command <note>The string "/me " is usually pronounced "slash-me".</note> is a text string that enables a human user to type an action phrase and have it be presented in a special way within an instant messaging client. The text string is followed by a verb or verb phrase, such as "/me laughs" or "/me is logging off now". This command does not result in the generation of any XMPP protocol. Instead, the command is sent as-is (e.g., &lt;body&gt;/me laughs&lt;/body&gt;) and the receiving client performs string-matching on the first four characters of the data included in the &BODY; element to determine if the message begins with the string "/me ". If the client finds a match, the receiving client will show the message in a special format. It is RECOMMENDED for the client to show the user name, nickname, or handle <note>On the difference between user names, nicknames, and handles, see &xep0165; and &xep0172;.</note> of the sender followed by the verb phrase in italicized text, prepended by the "*" character.</p>
<p>For example, imagine that the Greek god Atlas is in a chatroom with the other gods and types the following text in his IM client:</p>
<example caption="A Command"><![CDATA[
/me shrugs in disgust
]]></example>
<p>That text will be sent to all the occupants in the chatroom as follows:</p>
<example caption="XMPP Stanza"><![CDATA[
<message from='olympians@chat.gods.lit/Atlas'
to='olympians@chat.gods.lit'
type='groupchat'>
<body>/me shrugs in disgust</body>
</message>
]]></example>
<p>Each recipient's client would then show the message with some special formatting, such as:</p>
<example caption="Presented Message">
<span style='margin-left: 5%; font-style: italic;'>* Atlas shrugs in disgust</span>
</example>
<p>If the receiving client does not find a match on the string "/me " in the first four characters of the message body, it SHOULD NOT present the text in a special way. For example, the following message bodies do not match:</p>
<example caption="Some Non-Commands"><![CDATA[
<body>/meshrugs in disgust</body>
<body>/me's disgusted</body>
<body> /me shrugs in disgust</body>
<body>"/me shrugs in disgust"</body>
<body>Why did Atlas say "/me shrugs in disgust"?</body>
]]></example>
</section1>
<section1 topic='Accessibility Considerations' anchor='access'>
<p>This specification describes the /me command in terms of visual presentation. A client that presents messages aurally MAY modify its presentation of /me commands and SHOULD at a minimum transform the string "/me " into the user name, nickname, or handle of the sender.</p>
</section1>
<section1 topic='Security Considerations' anchor='security'>
<p>There are no security concerns related to use of the /me command.</p>
</section1>
<section1 topic='IANA Considerations' anchor='iana'>
<p>This document requires no interaction with &IANA;.</p>
</section1>
<section1 topic='XMPP Registrar Considerations' anchor='registrar'>
<p>This document requires no interaction with the &REGISTRAR;.</p>
</section1>
</xep>