mirror of
https://github.com/moparisthebest/xeps
synced 2024-11-30 05:02:27 -05:00
166 lines
4.5 KiB
XML
166 lines
4.5 KiB
XML
|
<?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>Body Markup Hints</title>
|
||
|
<abstract>This document specifies hints about the markup language used in &BODY; elements.</abstract>
|
||
|
&LEGALNOTICE;
|
||
|
<number>xxxx</number>
|
||
|
<status>ProtoXEP</status>
|
||
|
<type>Standards Track</type>
|
||
|
<sig>Standards</sig>
|
||
|
<approver>Council</approver>
|
||
|
<dependencies>
|
||
|
<spec>XMPP Core</spec>
|
||
|
</dependencies>
|
||
|
<supersedes/>
|
||
|
<supersededby/>
|
||
|
<shortname>bmh</shortname>
|
||
|
&flow;
|
||
|
<revision>
|
||
|
<version>0.0.1</version>
|
||
|
<date>2017-10-14</date>
|
||
|
<initials>fs</initials>
|
||
|
<remark><p>First draft.</p></remark>
|
||
|
</revision>
|
||
|
</header>
|
||
|
|
||
|
<section1 topic='Introduction' anchor='intro'>
|
||
|
|
||
|
<p>This document specifies hints about the markup language used in &BODY; elements found in
|
||
|
&MESSAGE; stanzas. It also specifies a mechanism to discover support of various markup
|
||
|
dialects</p>
|
||
|
|
||
|
</section1>
|
||
|
|
||
|
<section1 topic="Markup Languages" anchor='languages'>
|
||
|
|
||
|
<p>This list is not comprehensive and not meant to be.</p>
|
||
|
|
||
|
<table caption="Defined Markup Languages">
|
||
|
<tr>
|
||
|
<th>Language Identifier</th>
|
||
|
<th>Name</th>
|
||
|
<th>Specification Link</th>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td>urn:xmpp:bmh:commonmark:0</td>
|
||
|
<td>CommonMark</td>
|
||
|
<td><link url='http://spec.commonmark.org/'>http://spec.commonmark.org/</link></td>
|
||
|
</tr>
|
||
|
<tr>
|
||
|
<td>urn:xmpp:bmh:rst:0</td>
|
||
|
<td>reStructuredText</td>
|
||
|
<td><link url='http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html'>http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html</link></td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<p>TODO: Shall we define your own subset of e.g. CommonMark, XMPPMark? :)</p>
|
||
|
|
||
|
</section1>
|
||
|
|
||
|
<section1 topic='Exchanging messages with markup formatted bodies' anchor='exchanging'>
|
||
|
|
||
|
<p>If the &BODY; element contains text which is "formatted" with a markup language, then the
|
||
|
sending client MAY adds a <body-markup-hint/> element qualified by the 'https://xmpp.org/extensions/bmh/0/'
|
||
|
namespace with the 'language' attribute set to the Language Identifier of the used markup
|
||
|
language.</p>
|
||
|
|
||
|
<example caption='A message stanza with a body markup hint'><![CDATA[
|
||
|
<message from='holden@rocinante.example.org' to='naomi@rocinante.example.org'>
|
||
|
<body>
|
||
|
1. Ingredients
|
||
|
|
||
|
- spaghetti
|
||
|
- marinara sauce
|
||
|
- salt
|
||
|
|
||
|
2. Cooking
|
||
|
|
||
|
Bring water to boil, add a pinch of salt and spaghetti. Cook until pasta is **tender**.
|
||
|
|
||
|
3. Serve
|
||
|
|
||
|
Drain the pasta on a plate. Add heated sauce.
|
||
|
|
||
|
> No man is lonely eating spaghetti; it requires so much attention.
|
||
|
|
||
|
*Bon appetit!*
|
||
|
</body>
|
||
|
<body-markup-hint xmlns='https://xmpp.org/extensions/bmh/0/'
|
||
|
language='urn:xmpp:bmh:commonmark:0'/>
|
||
|
</message>
|
||
|
]]></example>
|
||
|
|
||
|
</section1>
|
||
|
|
||
|
<section1 topic='Discovering Support' anchor='discovery'>
|
||
|
|
||
|
<p>It is RECOMMENDED that entities announce the supported body markup languages in its service
|
||
|
discovery information as specified in &xep0030;. Every markup language is announced as a
|
||
|
<feature/> element with the 'var' attribute set to the language identifier of the supported
|
||
|
language.</p>
|
||
|
|
||
|
<example caption='A service discovery information with the supported body markup languages'><![CDATA[
|
||
|
<iq from='julie@eros.example.org'
|
||
|
to='miller@rocinante.example.org'
|
||
|
id='info1'
|
||
|
type='result'>
|
||
|
<query xmlns='http://jabber.org/protocol/disco#info'>
|
||
|
...
|
||
|
<feature var='urn:xmpp:bmh:commonmark:0'/>
|
||
|
...
|
||
|
</query>
|
||
|
</iq>]]>
|
||
|
</example>
|
||
|
|
||
|
</section1>
|
||
|
|
||
|
<section1 topic='Business Rules' anchor='rules'>
|
||
|
|
||
|
<p>There MUST be only one <body-markup-hint/> per &MESSAGE; stanza, and it applies to all
|
||
|
&BODY; elements within the same stanza.</p>
|
||
|
|
||
|
</section1>
|
||
|
|
||
|
<section1 topic='Security Considerations' anchor='security'>
|
||
|
|
||
|
<p>TODO: Discuss.</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>TODO: Is it sensible to establish a registry for this?</p>
|
||
|
|
||
|
</section1>
|
||
|
|
||
|
<section1 topic='XML Schema' anchor='schema'>
|
||
|
|
||
|
<p>TODO: Add after the XEP leaves the 'experimental' state.</p>
|
||
|
|
||
|
</section1>
|
||
|
|
||
|
<section1 topic='Acknowledgements' anchor='acknowledgements'>
|
||
|
|
||
|
<p>Thanks to everyone who provided feedback.</p>
|
||
|
|
||
|
</section1>
|
||
|
|
||
|
</xep>
|
||
|
|
||
|
<!-- Local Variables: -->
|
||
|
<!-- fill-column: 100 -->
|
||
|
<!-- indent-tabs-mode: nil -->
|
||
|
<!-- End: -->
|