RFC 7763

The text/markdown Media Type

πŸ“… published March 2016, from ietf

Title Block πŸŽ€

Okay so this is RFC 7763, The text/markdown Media Type πŸ’–. It was written by S. Leonard from Penango, Inc. and published in March 2016 as part of the Internet Engineering Task Force (IETF) stream. Its category is Informational, which means it's published for information and isn't a standards track spec 🧚. It has ISSN 2070-1721. The title block doesn't list any documents that it obsoletes or updates, so there's nothing it replaces or changes 🌸.

Abstract ✨

This doc registers the text/markdown media type for use with Markdown, a family of plain-text formatting syntaxes that can optionally be converted into formal markup languages like HTML πŸ¦‹.

Status of This Memo πŸ’…

Bestie, this one is not an Internet Standards Track specification. It's published for informational purposes πŸ“š.

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG). Not every doc the IESG approves is a candidate for any level of Internet Standard, so check out Section 2 of RFC 5741 for that 🫢.

For the latest status, any errata, and how to send feedback, go to http://www.rfc-editor.org/info/rfc7763.

Copyright (c) 2016 IETF Trust and the persons identified as the document authors. All rights reserved.

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they're in effect on the date of publication. Please read these carefully, because they explain your rights and restrictions for this document πŸ“œ. Code Components pulled out of this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in the Simplified BSD License πŸ”₯.

Table of Contents πŸ“

1. Introduction  . . . . . . . . . . . . . . . . . . . . . . . . .  2
  1.1. This Is Markdown! Or: Markup and Its Discontents  . . . . .  2
  1.2. Markdown Is About Writing and Editing . . . . . . . . . . .  3
  1.3. Definitions . . . . . . . . . . . . . . . . . . . . . . . .  5
2. Markdown Media Type Registration Application  . . . . . . . . .  5
3. Fragment Identifiers  . . . . . . . . . . . . . . . . . . . . .  8
  3.1. Parameters  . . . . . . . . . . . . . . . . . . . . . . . .  8
4.  Content Disposition and preview-type . . . . . . . . . . . . .  9
5.  Example  . . . . . . . . . . . . . . . . . . . . . . . . . . .  9
6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 10
  6.1. Markdown Variants . . . . . . . . . . . . . . . . . . . . . 10
7. Security Considerations . . . . . . . . . . . . . . . . . . . . 13
8. References  . . . . . . . . . . . . . . . . . . . . . . . . . . 13
  8.1. Normative References  . . . . . . . . . . . . . . . . . . . 13
  8.2. Informative References  . . . . . . . . . . . . . . . . . . 14
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 15

1. Introduction πŸ¦‹

1.1. This Is Markdown! Or: Markup and Its Discontents πŸ’œ

Okay so, in computer systems, text gets stored and processed using a whole continuum of techniques 🧚. On one end you've got plain text, which is computer-encoded text made only of a sequence of code points from a given standard, with no other formatting or structural info [UNICODE]. On the other end is binary data, which computer systems store and process with bit-for-bit accuracy πŸ’». A lot of these standards include control characters that act as in-band signaling, so they cause effects other than adding a symbol (or grapheme) to the text ✨.

Markup gives you another way to encode that signaling info, by overloading certain graphic characters (see, e.g., [ISO646]) with extra meanings πŸŽ€. So markup languages let you annotate a document in a way that's syntactically distinct from the text, while keeping the annotations printable. Markup languages are (reasonably) well-specified and tend to follow (mostly) standardized syntax rules πŸ“. Examples of formal markup languages include Standard Generalized Markup Language (SGML), HTML, XML, and LaTeX. Standardized rules lead to interoperability between markup processors, but they also put skill requirements on new users, which makes markup languages less accessible to beginners 😭. These rules also make "validity" a thing: content that doesn't conform gets treated differently (it's rejected) than content that does πŸ™ˆ.

Lightweight markup languages are the opposite vibe. They use simple syntaxes and are designed to be easy for humans to type and understand with basic text editors πŸ“. Markdown, the subject of this document, started out as an /informal/ plain-text formatting syntaxes [MDSYNTAX] and a Perl script HTML/XHTML processor [MARKDOWN]. It was aimed at non-technical users with unspecialized tools, like plain-text email clients πŸ’Œ. [MDSYNTAX] flat-out rejects the idea of validity: there's no such thing as "invalid" Markdown πŸ™…. If the Markdown doesn't give the "right" output (meaning output the author wants, not output that follows some dictated system of rules), the expectation is that the author keeps experimenting, by changing the content or the processor, until they get what they want 🌈.

Since it was developed in 2004 [MARKDOWN], a bunch of web- and Internet-facing apps have put Markdown into their text-entry systems, often with custom extensions πŸ”₯. Markdown has basically become an Internet meme [INETMEME], because different communities keep running into it and adapting the syntax for their own use cases 🀭. Today it's a whole family of related plain-text formatting syntaxes and implementations. They're broadly compatible with humans [HUMANE], but they're meant to produce different kinds of output that push the limits of mutual intelligibility between software systems πŸ’….

So, to help identify and convey Markdown, this document defines a media type and parameters that show the Markdown author's intent for how to interpret the content 🫢. This registration takes a lot of inspiration from text/troff [RFC4263], which is a plain-text formatting syntax for typesetting built on tools from the 1960s ("RUNOFF") and the 1970s ("nroff", et al.). In that sense, Markdown is a kind of troff for modern computing πŸ¦‹. A companion doc [RFC7764] gives extra Markdown background, philosophy, local storage strategies, and variant registrations (including examples) πŸ“š.

1.2. Markdown Is About Writing and Editing ✍️

"HTML is a publishing format; Markdown is a writing format. Thus, Markdown's formatting syntax only addresses issues that can be conveyed in plain text." [MDSYNTAX]

Literally the main use case for text/markdown is the Markdown editor πŸ’–. It's an app that shows Markdown content (which looks like an email or any other piece of plain-text writing) right next to a published format. That way an author can see results instantly and tweak their input in real time πŸ‘‘. A lot of Markdown editors have gone with "split-screen view" (or "live preview") tech that looks like Figure 1 🌸.

+----------------------------------------------------------------------+
| File  Edit  (Cloud Stuff)  (Fork Me on GitHub)  Help                 |
+----------------------------------------------------------------------+
| [ such-and-such identifier ]                 [ useful statistics]    |
+----------------------------------++----------------------------------+
| (plain text, with                || (text/html, likely               |
|  syntax highlighting)            ||  rendered to screen)             |
|                                  ||                                  |
|# Introduction                    ||<h1>Introduction</h1>             |
|                                  ||                                  |
|## Markdown Is About Writing and  /|<h2>Markdown Is About Writing and |
/ Editing                          ||Editing</h2>                      |
|                                  ||                                  |
|> HTML is a *publishing* format;  ||<blockquote><p>HTML is a          |
|> Markdown is a *writing* format. || <em>publishing</em> format;      |
|> Thus, Markdown's formatting     || Markdown is a <em>writing</em>   |
|> syntax only addresses issues    || format. Thus, Markdown's         |
|> that can be conveyed in plain   <> formatting syntax only addresses |
|> text. [MDSYNTAX][]              || issues that can be conveyed in   |
|                                  || plain text. <a href="http://darin/
|The paradigmatic use case for     |/gfireball.net/projects/markdown/sy/
|`text/markdown` is the Markdown   |/ntax#html" title="Markdown: Syntax/
|editor: an application that       |/: HTML">MDSYNTAX</a>              |
|presents Markdown content         ||</p></blockquote>                 |
|...                               ||                                  |
|                                  ||<p>The paradigmatic use case for  |
|[MDSYNTAX]: http://daringfireball./| <code>text/markdown</code> is the|
/net/projects/markdown/syntax#html || Markdown editor: an application  |
|"Markdown: Syntax: HTML"          || that presents Markdown content   |
|                                  || ...</p>                          |
+----------------------------------++----------------------------------+

 LEGEND: "/" embedded in a vertical line represents a line-continuation
  marker, since a line break is not supposed to occur in that content.

          Figure 1: Markdown Split-Screen / Live Preview Editor

Implementations ought to produce and consume mutually intelligible and identifiable bits of Markdown, because that's how you get the best results πŸ™Œ. That way, users on different platforms can collaborate with whatever tools they like. Those tools can be desktop-based (MarkdownPad, MultiMarkdown Composer), browser-based (Dillinger, Markable), integrated widgets (Discourse, GitHub), general-purpose editors (emacs, vi), or plain old "Notepad" πŸ’». Also, implementations ought to have common ways to identify particular areas of Markdown content once the Markdown gets seriously big (like book chapters and Internet-Drafts, not just blog posts) πŸ“–. And so users can use Markdown in MIME-capable systems to share works in progress, not just finished products (for which full-blown markups, from text/html to application/pdf, are the right call), implementations ought to label that Markdown content with a common media type: text/markdown πŸŽ€. This registration makes it easier for these Markdown editors to interoperate by conveying the syntax of the particular Markdown variant and the output format the author wants πŸ¦‹.

1.3. Definitions πŸ“

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].

Since Markdown is a family of related formats with varying amounts of formal documentation and implementation, this specification uses the term "variant" to identify those formats 🧚.

2. Markdown Media Type Registration Application πŸ’–

okay bestie, this section is the official registration application for the text/markdown media type (see Section 5.6 of [RFC6838]) πŸ“ so let's go box by box ✨

Type name: text πŸŽ€

Subtype name: markdown πŸ¦‹

Required parameters:

  • charset: Per Section 4.2.1 of [RFC6838], charset is REQUIRED. πŸ’… There's no default value because neither [MDSYNTAX] nor a lot of popular implementations back when this was registered specify one either. [MDSYNTAX] clearly calls Markdown a "writing format," and its syntax rules work on characters (specifically, punctuation) rather than code points 🧚 Plenty of Markdown processors are perfectly happy working with the US-ASCII repertoire (specifically punctuation) and are totally unbothered by any other characters or codes 😭

Optional parameters:

  • variant: This is an optional identifier for the specific Markdown variant the author meant 🌸 It's a "hint" for the recipient. The recipient MAY interpret the Markdown as that variant, but they're not obligated to 🫢 If variant is left out, there's no hint at all, and the interpretation is totally up to the receiver and the context πŸ’œ The identifier is plain US-ASCII and case-insensitive. To keep things interoperable, identifiers can be registered in the registry defined in Section 6 ✨ If a receiver doesn't recognize the variant identifier, the receiver MAY present the identifier to a user so they know about it πŸ™ˆ
  • Other parameters: Other parameters MAY be included with the media type. The variant SHOULD define the semantics of those other parameters. The variant MAY also be registered under another media type, because this text/markdown registration doesn't rule out other registrations 🌈

Encoding considerations: Markdown content is plain-text content. Any octet sequence is valid as long as it matches the character codes of the charset parameter. See [RFC2046]. Markup characters in [MDSYNTAX] are limited to printable US-ASCII. Other variants can define markup characters outside that range, though, including control characters like NUL and characters encoded in multiple octets 🀯

Security considerations: This one is a whole vibe, so pay attention 🚨 Markdown interpreted as plain text is relatively harmless. A text editor only needs to display the text πŸ“ The editor SHOULD take care to handle control characters appropriately, and to limit the effect of the Markdown to the text-editing area itself. Malicious Unicode-based Markdown could, for example, sneakily change the directionality of the text πŸ’€ An editor for normal text would already take these control characters into consideration, though πŸ’…

Markdown interpreted as a precursor to other formats, such as HTML, carries all of the same security worries as those target formats 😱 HTML can contain instructions to run scripts, redirect the user to other web pages, download remote content, and upload personally identifiable information. Markdown can also contain islands of formal markup, such as HTML 🏝️ Those islands may be passed through as they are, transformed, or ignored (maybe because they're conditional or incompatible) when the Markdown gets processed. Since Markdown can have different interpretations depending on the tool and the environment, the better move is to analyze (and sanitize or block) the output markup, rather than trying to analyze the Markdown itself πŸ›‘οΈ this is the main character advice of the whole section, fr fr

Interoperability considerations: Markdown variations (some people say "innovations") are designed to be broadly compatible with humans ("humane"), but not necessarily with each other πŸ™ƒ So syntax in one Markdown derivative might get ignored or treated differently in another. The overall result is a general degradation of the output, and it gets worse the more variant-specific Markdown is used in the text πŸ“‰ If you want the output to reflect the author's intent, stick with the variant named in the variant parameter. In other words, receivers SHOULD only accept Markdown variants they explicitly know about, and senders SHOULD avoid variants the intended recipients aren't known to understand 🫢

Published specification: This specification; [MDSYNTAX].

Applications that use this media type: Markdown conversion tools, Markdown WYSIWYG (What You See is What You Get) editors, and plain-text editors and viewers πŸ–₯️ Markup processor targets use Markdown indirectly, like web browsers that show Markdown after it's been converted to HTML ✨

Fragment identifier considerations: See Section 3. πŸ¦‹

Additional information:

  • Magic number(s): None
  • File extension(s): .md, .markdown
  • Macintosh file type code(s): TEXT. The uniform type identifier (UTI) is "net.daringfireball.markdown", which conforms to "public.plain-text", and it is RECOMMENDED [MDUTI]. See [RFC7764] for other considerations 🍎

Person & email address to contact for further information: Sean Leonard <dev+ietf@seantek.com> πŸ“¬

Restrictions on usage: None. 🌸

Author/Change controller: Sean Leonard <dev+ietf@seantek.com>

Intended usage: COMMON

Provisional registration? No

Implementations SHOULD record the value of the variant parameter (and any other parameters the variant defines) along with the Markdown content when that content leaves the domain of formats that are Internet media type capable πŸ’Ύ Strategies for doing this are discussed in [RFC7764] 🧠

The Content-Disposition header (especially the preview-type parameter) can be used with Markdown content. See Section 4 πŸ’œ


3. Fragment Identifiers 🧚

[MARKDOWN] doesn't define any fragment identifiers, but some variants do, and lots of Markdown processor output (like HTML or PDF) has well-defined fragment identifiers 🌈 Which fragment identifiers are available for a given document is up to the variant πŸŽ€

When a fragment identifier is encoded in a URI, characters that fall outside the fragment production of [RFC3986] get percent-encoded. The default encoding (character set) of percent-encoded octets in URIs is the same as the Markdown content, which is identified by the charset parameter or by other contextual means 🫧 Fragment identifiers SHOULD be considered case-sensitive, which keeps things consistent with HTML πŸ”₯ Variants MAY override the guidance in this paragraph πŸ‘‘

At least the first equals sign "=" SHOULD be percent-encoded to prevent ambiguity, as described in the following section πŸ™ˆ

3.1. Parameters

Similar to application/pdf [RFC3778] and text/plain [RFC5147], this registration allows a parameter syntax for fragment identifiers πŸ’– The syntax is a parameter name, the equals sign "=" (which MUST NOT be percent-encoded), and a parameter value. When multiple parameters can show up in a fragment production, they SHALL be separated by the ampersand "&" (which MUST NOT be percent-encoded) ✨

The only parameter defined in this registration is "line," which means the same thing as in [RFC5147]. Counting is zero-based, so "#line=10" identifies the eleventh line of Markdown input πŸ¦‹ Implementers should take heed that different environments and character sets can have a wide range of code sequences for dividing lines 😭

Markdown variants are free to define additional parameters 🌸


4. Content Disposition and preview-type πŸŽ€

The Content-Disposition header [RFC2183] carries presentational information about a MIME entity, using a type and a set of parameters πŸ’… The parameter preview-type is defined here for Markdown content πŸ’œ

When present, preview-type indicates the Internet media type (and parameters) of the preview output the author wants from the processor πŸ‘€ Looking at the "paradigmatic use case" (basically collaborative Markdown editing) from Section 1.3, the preview-type parameter mostly affects the "right-hand" side of a Markdown editor 🧚 There's no default value. When it's absent, a Markdown user agent can render or display whatever it wants 🌈

The value of this parameter is an Internet media type with optional parameters. The syntax, including case-sensitivity considerations, is the same as what [RFC2045] specifies for the Content-Type header, with updates over time (e.g., [RFC2231] and [RFC6532]) πŸ“

Implementations SHOULD anticipate and support HTML (text/html) and XHTML (application/xhtml+xml) output, to the extent that a syntax targets those markup languages 🌐 These types ought to be suitable for most current purposes. But Markdown is increasingly part of workflows where HTML isn't the target output 🫢 Examples range from TeX, to PDF, to Outline Processor Markup Language (OPML), and even to entire e-books (e.g., [PANDOC]) πŸ“š

The reflexive media type text/markdown in this parameter value means the author does not want Markdown processing at all. In that case the receiver SHOULD present the Markdown source as is πŸ™…β€β™€οΈ

The preview-type parameter can be used for other types of content, but the precise semantics aren't defined here πŸ¦‹


5. Example πŸ“

Here's what Markdown looks like as an email attachment, and it's giving ✨

MIME-Version: 1.0
Content-Type: text/markdown; charset=UTF-8; variant=Original
Content-Disposition: attachment; filename=readme.md;
 preview-type="application/xhtml+xml"

Sample HTML 4 Markdown
=============

This is some sample Markdown. [Hooray!][foo]
(Remember that link identifiers are not case-sensitive.)
Bulleted Lists
-------

Here are some bulleted lists...

* One Potato
* Two Potato
* Three Potato

- One Tomato
- Two Tomato
- Three Tomato

More Information
-----------

[.markdown, .md](http://daringfireball.net/projects/markdown/)
has more information.

[fOo]: http://example.com/loc 'Will Not Work with Markdown.pl-1.0.1'

6. IANA Considerations πŸ‘‘

IANA has registered the media type text/markdown using the application provided in Section 2 of this document πŸŽ‰

IANA has also registered preview-type in the "Content Disposition Parameters" subregistry of the "Content Disposition Values and Parameters" registry 🌸 The registered description is: "Internet media type (and parameters) of the preview output desired from a processor by the author of the MIME content" πŸ’–

6.1. Markdown Variants πŸ¦‹

okay so IANA made a registry called "Markdown Variants" 🌸 I know, the name is a whole vibe. It was set up for the text/markdown media type, but it's meant for the whole community, so protocols and systems that don't use Internet media types at all can still label their Markdown with a shared variant identifier πŸ’… Every entry has to include this basic info:

   Identifier:             unique identifier for the variant
   Name:                   the commonly known name of the variant
   Description:            a prose description of the variant, including
                           how it differs from other variants such as
                           Original
   Additional Parameters*: additional Content-Type parameters
   Fragment Identifiers*:  additional fragment identifier syntaxes and
                           semantics
   References:             URIs or other references to documentation
   Contact Information:    whom to contact (email, URI, phone, address,
                           etc.)
   Expiration Date^:       when this provisional registration expires

   * (optional)
   ^ (if provisional)

While the variant parameter is "plain US-ASCII" (see registration template), the Identifier field (and by implication, all registered identifiers) SHALL conform to the ABNF [RFC5234]:

      ALPHA [*VCHAR (ALPHA / DIGIT)]

For style and compatibility reasons, the Identifier field SHOULD conform to the ABNF:

      ALPHA *( ["-" / "." / "_" / "~"] 1*(ALPHA / DIGIT) )

So basically, the identifier MUST start with a letter πŸ”€ and it MAY have punctuation in the middle, but never at the end: the last character MUST be alphanumeric ✨ That second version uses the same characters as the "unreserved" rule of [RFC3986], which is what makes it play nicely with other identification systems, like filenames πŸ“ Since the identifier MAY be displayed to a user (especially when the receiver doesn't recognize it), the identifier SHOULD be rationally related to the vernacular name of the variant 🧚 Make it make sense, bestie!

The Name, Description, Additional Parameters, Fragment Identifiers, References, and Contact Information fields SHALL be in a Unicode character set (e.g., UTF-8) 🌈

The registry includes the registration in Section 6.1.4 (Original Markdown). [RFC7764] includes additional registrations πŸ’œ


6.1.1. Reserved Identifiers 🚫

The registry has the following identifiers RESERVED, because they've caused a lot of drama in the Markdown community πŸ™ˆ Nobody is allowed to register them (or any case variation of them). These identifiers are not and cannot be registered:

  • Standard
  • Common
  • Markdown

The registry includes the following text in the note field:

The variant names Standard, Common, and Markdown are reserved and
cannot be registered.

6.1.2. Standard of Review πŸ“

Registrations are made on a First Come, First Served [RFC5226] basis by anyone with a need to interoperate 🫢 Documentation is required, but any level of documentation is sufficient, so neither Specification Required nor Expert Review are warranted. The checks in this section can be done automatically, which is very efficient of them ⭐

All references (including contact information) MUST be verified as functional at the time of the registration. No dead links allowed, periodt πŸ’€

As a special "escape valve", registrations can be updated with IETF Review [RFC5226]. All fields may be updated except the variant identifier, which is permanent: not even case may be changed πŸ”’

6.1.3. Provisional Registration ⏳

Any registrant may make a provisional registration to reserve a variant identifier πŸŽ€ Only the variant identifier and contact information fields are required; the rest are optional. Provisional registrations expire after three months, and after that the variant identifier may be reused πŸ“ To make a registration permanent, you just complete a permanent registration with the same identifier as the provisional one. Easy glow-up 🌸

6.1.4. Original Markdown πŸ‘‘

The registry includes this initial variant. A conforming implementation that processes the variant parameter MUST recognize this variant (although the processing behavior is not defined here) 😭

   Identifier: Original

   Name: Markdown
   Description:
      Gruber's original Markdown syntax.

   References:
      [MARKDOWN]
      [MDSYNTAX]

   Contact Information:
      (individual) John Gruber <http://daringfireball.net/>
                               <comments@daringfireball.net>

7. Security Considerations πŸ”

Okay, bestie, this one is serious. Go read the Security considerations entry in Section 2. No skipping it, no scrolling past it, it's the main plot. πŸ’€

8. References πŸ“š

8.1. Normative References

   [MARKDOWN] Gruber, J., "Daring Fireball: Markdown", December 2004,
              <http://daringfireball.net/projects/markdown/>.

   [MDSYNTAX] Gruber, J., "Daring Fireball: Markdown Syntax
              Documentation", December 2004,
              <http://daringfireball.net/projects/markdown/syntax>.

   [MDUTI]    Gruber, J., "Daring Fireball: Uniform Type Identifier for
              Markdown", August 2011,
              <http://daringfireball.net/linked/2011/08/05/
              markdown-uti>.

   [RFC2045]  Freed, N. and N. Borenstein, "Multipurpose Internet Mail
              Extensions (MIME) Part One: Format of Internet Message
              Bodies", RFC 2045, DOI 10.17487/RFC2045, November 1996,
              <http://www.rfc-editor.org/info/rfc2045>.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <http://www.rfc-editor.org/info/rfc2119>.

   [RFC2183]  Troost, R., Dorner, S., and K. Moore, Ed., "Communicating
              Presentation Information in Internet Messages: The
              Content-Disposition Header Field", RFC 2183,
              DOI 10.17487/RFC2183, August 1997,
              <http://www.rfc-editor.org/info/rfc2183>.

   [RFC2231]  Freed, N. and K. Moore, "MIME Parameter Value and Encoded
              Word Extensions: Character Sets, Languages, and
              Continuations", RFC 2231, DOI 10.17487/RFC2231, November
              1997, <http://www.rfc-editor.org/info/rfc2231>.

   [RFC3778]  Taft, E., Pravetz, J., Zilles, S., and L. Masinter, "The
              application/pdf Media Type", RFC 3778,
              DOI 10.17487/RFC3778, May 2004,
              <http://www.rfc-editor.org/info/rfc3778>.

   [RFC3986]  Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
              Resource Identifier (URI): Generic Syntax", STD 66,
              RFC 3986, DOI 10.17487/RFC3986, January 2005,
              <http://www.rfc-editor.org/info/rfc3986>.

   [RFC5147]  Wilde, E. and M. Duerst, "URI Fragment Identifiers for the
              text/plain Media Type", RFC 5147, DOI 10.17487/RFC5147,
              April 2008, <http://www.rfc-editor.org/info/rfc5147>.

   [RFC5226]  Narten, T. and H. Alvestrand, "Guidelines for Writing an
              IANA Considerations Section in RFCs", BCP 26, RFC 5226,
              DOI 10.17487/RFC5226, May 2008,
              <http://www.rfc-editor.org/info/rfc5226>.

   [RFC5234]  Crocker, D., Ed., and P. Overell, "Augmented BNF for
              Syntax Specifications: ABNF", STD 68, RFC 5234,
              DOI 10.17487/RFC5234, January 2008,
              <http://www.rfc-editor.org/info/rfc5234>.

   [RFC6532]  Yang, A., Steele, S., and N. Freed, "Internationalized
              Email Headers", RFC 6532, DOI 10.17487/RFC6532, February
              2012, <http://www.rfc-editor.org/info/rfc6532>.

   [RFC6838]  Freed, N., Klensin, J., and T. Hansen, "Media Type
              Specifications and Registration Procedures", BCP 13,
              RFC 6838, DOI 10.17487/RFC6838, January 2013,
              <http://www.rfc-editor.org/info/rfc6838>.

8.2. Informative References

   [HUMANE]   Atwood, J., "Is HTML a Humane Markup Language?", May 2008,
              <http://blog.codinghorror.com/
              is-html-a-humane-markup-language/>.

   [INETMEME] Solon, O., "Richard Dawkins on the internet's hijacking of
              the word 'meme'", June 2013,
              <http://www.wired.co.uk/news/archive/2013-06/20/
              richard-dawkins-memes>,
              <http://www.webcitation.org/6HzDGE9Go>.

   [ISO646]   International Organization for Standardization,
              "Information technology - ISO 7-bit coded character set
              for information interchange", ISO Standard 646, 1991.

   [PANDOC]   MacFarlane, J., "Pandoc", 2014,
              <http://johnmacfarlane.net/pandoc/>.

   [RFC2046]  Freed, N. and N. Borenstein, "Multipurpose Internet Mail
              Extensions (MIME) Part Two: Media Types", RFC 2046,
              DOI 10.17487/RFC2046, November 1996,
              <http://www.rfc-editor.org/info/rfc2046>.

   [RFC4263]  Lilly, B., "Media Subtype Registration for Media Type
              text/troff", RFC 4263, DOI 10.17487/RFC4263, January 2006,
              <http://www.rfc-editor.org/info/rfc4263>.

   [RFC7764]  Leonard, S., "Guidance on Markdown: Design Philosophies,
              Stability Strategies, and Select Registrations", RFC 7764,
              DOI 10.17487/RFC7764, March 2016,
              <http://www.rfc-editor.org/info/rfc7764>.

   [UNICODE]  The Unicode Consortium, "The Unicode Standard, Version
              8.0", (Mountain View, CA: The Unicode Consortium, 2015.
              ISBN 978-1-936213-10-8),
              <http://www.unicode.org/versions/Unicode8.0.0/>.

Author's Address πŸ’–

   Sean Leonard
   Penango, Inc.
   5900 Wilshire Boulevard
   21st Floor
   Los Angeles, CA  90036
   United States

   Email: dev+ietf@seantek.com
   URI:   http://www.penango.com/

That's the whole thing, bestie! 🌈✨ Thanks for sticking with me through all three parts 🫢

πŸ“¦ where this page comes from