HTML Format for RFCsMozillajoe-ietf@cursive.netICANNpaul.hoffman@icann.orghtmlcssrfcIn order to meet the evolving needs of the Internet community, the
canonical format for RFCs is changing from a plain-text, ASCII-only format to an
XML format that will, in turn, be rendered into several
publication formats. This document defines the HTML format that will
be rendered for an RFC or Internet-Draft.As described in , the RFC
Series is changing. One of those changes includes the RFC Editor
publishing a non-canonical HTML version of RFCs.This document describes the HTML format that will be used as one of the
publication formats for the RFC Series. It defines a strict subset of
HTML appropriate for RFC Series documents. The visual layout of the
document will be defined through a cascading style sheet (CSS)
. The CSS will be included in the
HTML file but will be described in .The details (particularly any vocabularies) described in this document
are expected to change based on experience gained in implementing
the new publication toolsets. Revised documents will be published
capturing those changes as the toolsets are completed. Other implementers
must not expect those changes to remain backwards compatible with the
details described in this document.This section lists the design requirements used to create the HTML
format described in this document. These requirements build on those
found in . Many of these requirements are
naturally fulfilled by using the output of the preparation tool
.The HTML has to render correctly on a list of browser versions that
the RFC Editor will keep up to date outside of this document.The format will consist of a subset of HTML deemed to be widely
implemented by common browsers at the time the specification is
created, likely to continue to be widely implemented, and unlikely to
cause security issues. This will maximize the chances that future HTML
renderers (such as new web browsers) will continue to produce readable
text from the HTML format without the format needing to be changed
frequently.These requirements are expected to change in the future to reflect the
expectation that HTML rendering will be required for current versions of
browsers and platforms, while ideally continuing to render correctly on
recent versions of those browsers.The HTML documents from the RFC Editor or Internet-Drafts directory
may be re-rendered from the canonical XML format in
the future to ensure the ongoing readability of the documents. The
intent is that any re-rendering would be due to exceptional
circumstances rather than for minor annoyances.The HTML must display adequately in at least one text-based browser.
Some consumers of the RFC Series can only access the documents on
text-based terminals.The HTML document will be self-contained, without requiring external
files for images, CSS, JavaScript, or the like. This will allow
the HTML file to be moved over various non-HTTP transports (such as
email, FTP, and rsync) without breakage.JavaScript will be supported on a limited basis. It will not be
permitted to overwrite or change any text present in the rendered HTML.
It may, on a limited basis, add additional text that provides
post-publication metadata or pointers if warranted. All such text will
be clearly marked as additional.The HTML document will allow easy local override of the default CSS
formatting. This will allow users who have a different visual style
that they prefer to make RFCs display with that style without having to
alter the contents of the HTML document. This might also be valuable
for allowing people with specific accessibility needs to use a
customized CSS.HTML tags in documents will rarely have attributes whose only purpose
is to affect the rendered styling, and those will only be used if it
would not be possible to specify that styling in a CSS. No such attributes are known at this time.Both user-defined and auto-generated anchors must be supported and
linkable, with user-defined anchors appearing in an "id" attribute.
Auto-generated anchors will be generated for every heading, paragraph,
and so on, not just those that do not have user-defined anchors.
User-defined anchors may, and auto-generated anchors will, appear next to
paragraphs, figures, tables, blockquotes, and section titles.All sections, subsections, figures, and paragraphs should have stable
numbered link anchors. Additionally, anchors expressed in the source
XML should be exposed as anchors in the HTML output as well.The HTML must make it easy to separate sections along with all of their
subsections into separate files. This will make creating EPUB
documents easier in the future.The HTML produced for Internet-Drafts will differ from that produced
by the RFC Editor due to differences in the output from the prep tool.The abstract must be marked up or tagged in a way that popular search
engines will extract it as a summary.Normative information must be easily accessible to the following
consumers:
People with impaired vision, including those that use large fonts
and those that use screen readersPeople with difficulty distinguishing between colorsPeople who use devices with small screens, such as cell phonesSpecific instances where goals for accessibility are important in the
design choices of the format have been called out in the text.Note: designing for these consumers does not preclude the use of
features they cannot use, but it does require that key semantic data not
be lost when read using the tools and settings that are required by a given
constituency.The RFC Editor will periodically determine which version of the
HTML specification will be referenced for tools generating the
format defined in this document. The starting version will be that
defined in , commonly known as
"HTML5". Although the HTML specification mandates several of the syntax
and structure rules described in this document, they are called out here
for emphasis.The processor emitting HTML from the XML source will follow these
rules:The HTML output is encoded as UTF-8, as specified in
.The document is valid HTML.Double quotes (U+0022 QUOTATION MARK: ") are used to quote attribute
values unless the HTML specification forbids quoting a particular
attribute.Each logical line is terminated solely with a \n (U+000A: LINE
FEED), otherwise known as "Unix-style" line endings.Code points below (U+0020: SPACE) or character entity references
that generate them (e.g. 	), other than (U+000A: LINE FEED)
may not be used. Note: this rule explicitly forbids \t (U+0009:
CHARACTER TABULATION), \f (U+000C: FORM FEED), and \r (U+000D:
CARRIAGE RETURN) from appearing in the HTML output.Comments in the source XML, if any, will not be copied into
the HTML.The HTML output will be pretty-printed, using whatever
consistent rules are deemed best by the developers of the HTML
production tools.Note: none of these rules affect the rendered output of the HTML, but they
are intended to increase the chance that text comparison tools
(e.g., "diff") that operate on the HTML output are easier to write.This section lists items that are common across multiple parts of the HTML
document.HTML elements that are generated from XML elements that include
an "anchor" attribute will use the value of the "anchor" attribute
as the value of the "id" attribute of the corresponding HTML element.
The prep tool produces XML with "anchor" attributes in all elements that need them.
Some HTML constructs (such as
<section>) will use
multiple instances of these identifiers.Each paragraph, artwork, or sourcecode segment outside of a
<figure> or <table> element will be appended with a
space and a "pilcrow" (U+00B6: PILCROW SIGN), otherwise known as a
"paragraph sign". For the purposes of clarity in ASCII renderings
of this document, in this document pilcrows are rendered as
"¶". The pilcrow will be linked to the "id" attribute on the
XML entity to which it is associated using an <a> element of
class "pilcrow". For example:The pilcrow will normally be invisible unless the element it is
attached to is moused over. The pilcrow will be surrounded by a
link that points to the element it is attached to.Pilcrows are never included inside a <table> or
<figure> element, since the figure number or table number
serves as an adequate link target.Elements that might otherwise contain a pilcrow do not get marked
with a pilcrow if they contain one or more child elements that are
marked with a pilcrow. For example:The front matter of the HTML format contains processing information,
metadata of various types, and styling information that applies to the
document as a whole. This section describes HTML that is not
necessarily a direct transform from the XML format. For more details
on each of the tags that generate content in this section,
see .The DOCTYPE of the document is "html", which declares that the
document is compliant with HTML5. The document will start with
exactly this string:The root element of the document is <html>. This element
includes a "lang" attribute, whose value is a language tag, as discussed in ,
that describes the natural language of the document. The
language tag to be included is "en". The class of the <html>
element will be copied verbatim from the XML <rfc> element's
<front> element's <seriesInfo> element's "name"
attributes (separated by spaces; see ), allowing CSS to style RFCs and
Internet-Drafts differently from one another (if needed):
The root <html> will contain a <head> element that
contains the following elements, as needed.In order to be correctly processed by browsers that load the HTML
using a mechanism that does not provide a valid content-type
or charset (such as from a local file system using a "file:" URL),
the HTML <head> element contains a <meta> element,
whose "charset" attribute value is "utf-8":The contents of the <title> element from the XML source
will be placed inside an HTML <title> element in the
header.The following <meta> elements will be included:
author - one each for the each of the "fullname"s and "asciiFullname"s of
all of the <author>s from the <front> of the XML
sourcedescription - the <abstract> from the XML sourcegenerator - the name and version number of the software used
to create the HTMLkeywords - comma-separated <keyword>s from the XML
source
For example:
Note: the HTML <meta> tag does not contain a closing
slash.The <head> element contains a <link> tag, with "rel"
attribute of "alternate", "type" attribute of "application/rfc+xml",
and "href" attribute pointing to the prepared XML source that was
used to generate this document.The <head> element contains a <link> tag, with "rel"
attribute of "license" and "href" attribute pointing to the an
appropriate copyright license for the document.The <head> element contains an embedded CSS in a
<style> element. The styles in the style sheet are to be set
consistently between documents by the RFC Editor, according to the
best practices of the day.To ensure consistent formatting, individual style attributes should
not be used in the main portion of the document.Different readers of a specification will desire different
formatting when reading the HTML versions of RFCs. To facilitate
this, the <head> element also includes a <link> to a
style sheet in the same directory as the HTML file, named
"rfc-local.css". Any formatting in the linked style sheet will
override the formatting in the included style sheet. For example:Each <link> element from the XML source is copied into
the HTML header. Note: the HTML <link> element does not
include a closing slash.In order to simplify printing by HTML renderers that implement
, a hidden HTML
<table> tag of class "ears" is added at the beginning of the HTML <body>
tag, containing HTML <thead> and <tfoot> tags, each of
which contains an HTML <tr> tag, which contains three HTML
<td> tags with class "left", "center", and "right",
respectively.The <thead> corresponds to the top of the page, the
<tfoot> to the bottom. The string "[Page]" can be used
as a placeholder for the page number. In practice, this must
always be in the <tfoot>'s right <td>, and no control
of the formatting of the page number is implied.Information about the document as a whole will appear as the first child of the
HTML <body> element, embedded in an HTML <dl> element
with id="identifiers". The defined terms in the definition list
are "Workgroup:", "Series:", "Status:", "Published:", and "Author:"
or "Authors:" (as appropriate). For example:The table of contents will follow the boilerplate if the XML's <rfc>
element's "tocInclude" attribute has the value "true". An HTML <h2>
heading containing the text "Table of Contents" will be followed by a
<nav> element that contains a <ul> element for each depth
of the section hierarchy. Each section will be represented by a
<li> element containing links by the section number (from the "pn"
attribute) and by the name (from the "slugifiedName" attribute of the
<name> child element). Each <nav>, <ul>, and
<li> element will have the class "toc".For example:The main body of the HTML document is processed according to the rules in
.The back matter of the HTML document includes an index (if generated),
information about the authors, and further information about the
document itself.The index will be produced as dictated by the RFC Editor's Style
Guide if and only if the XML document's <rfc>
element has an "indexInclude" attribute with the value "true" and there
is one or more <iref> elements in the document.
The index section will start with an <h2> heading containing
the text "Index", followed by links to each of the lettered
portions of the index. Links are not generated for letters that
do not occur as the first letter of an index item.For example:The index letter is followed by a <ul> tag that contains an
<li> tag for each first letter represented in the index. This
<li> tag has the class "indexChar" and contains an <a>
tag with the id pointed to by the index letter as well as an
"href" attribute to itself. The <li> tag also includes a <ul> tag
that will contain the index items.For example:Each index item can have multiple <iref> elements to point to, all
with the same item attribute. Each index item is represented by an
<li> tag of class "indexItem" containing a <span> of class
"irefItem" for the item text and one of class "irefRefs" for the generated
references (if there is at least one reference to the item not having
a subitem). Each generated reference contains an <a> tag
containing the section number where the <iref> is found, with
an "href" attribute pointing to the "irefid" attribute of the <iref> element from the XML document. If the primary
attribute of the <iref> element has the value "true", the <a> element in the HTML document
will have the class "indexPrimary". Commas may be used to separate the
generated references.For example:If an index item has at least one subitem, the <li> of
that item will contain a <ul>, with one <li> for each
subitem, of class "indexSubItem". The format for each subitem is
similar to that used for items, except the class of the first <span>
tag is "irefSubItem".For example:At the end of the document, author information will be included
inside an HTML <section> element whose "id" attribute is
"author-addresses". The class names of the constituent HTML tags
have been chosen to match the class names in .The information for each author will be separated by an HTML
<hr> element with class "addr".A few bits of metadata about the document that are less
important to most readers are included after the author information.
These are gathered together into a <div> of class
"docInfo".The finalized time is copied from the <rfc> element's
"prepTime" attribute. The rendered time is the time that this
HTML was generated.For example:This section describes how each of the XML elements from
is rendered to HTML.
Many of the descriptions have examples to clarify how elements will be rendered.The abstract is rendered in a similar fashion to a <section> with anchor="abstract" and
<name>Abstract</name>, but without a section number.This element is used in the Authors' Addresses section.
It is rendered
as an HTML <address> tag of class "vcard". If none of the
descendant XML elements has an "ascii" attribute, the <address>
HTML tag includes the HTML rendering of each of the descendant
XML elements. Otherwise, the <address> HTML tag includes
an HTML <div> tag of class "ascii" (containing the HTML
rendering of the ASCII variants of each of the descendant XML
elements), an HTML <div> tag of class "alternative-contact",
(containing the text "Alternate contact information:"), and
an HTML <div> tag of class "non-ascii" (containing the HTML
rendering of the non-ASCII variants of each of the descendant XML
elements).
Note: the following example shows some ASCII equivalents that are
the same as their nominal equivalents for clarity; normally, the ASCII
equivalents would not be included for these cases.This element is rendered as the text ", " (a comma and a space)
followed by a <span> of class "annotation" at the end
of a <reference> element, the <span>
containing appropriately transformed elements from the children of
the <annotation> tag.Not currently rendered to HTML.Artwork can consist of either inline text or SVG. If the artwork is
not inside a <figure> element, a
pilcrow is included. Inside a
<figure> element, the figure title serves the purpose of the
pilcrow. If the "align" attribute has the value "right", the CSS class
"alignRight" will be added. If the "align" attribute has the value
"center", the CSS class "alignCenter" will be added.Text artwork is rendered inside an HTML <pre> element, which
is contained by a <div> element for consistency with SVG
artwork. Note that CDATA blocks are not a part of HTML,
so angle brackets and ampersands (i.e., <, >, and &) must be escaped as <, >,
and &, respectively.The <div> element will have CSS classes of "artwork",
"art-text", and "art-" prepended to the value of the <artwork>
element's "type" attribute, if it exists.SVG artwork will be included inline. The SVG is wrapped in a
<div> element with CSS classes "artwork" and "art-svg".If the SVG "artwork" element is a child of <figure> and the
artwork is specified as align="right", an
empty HTML <span> element is added directly after the
<svg> element, in order to get right alignment to work correctly
in HTML rendering engines that do not support the flex-box
model.Note: the "alt" attribute of <artwork> is not currently used
for SVG; instead, the <title> and <desc> tags are used
in the SVG.Other artwork will have a "src" attribute that uses the "data" URI scheme
defined in . Such artwork is rendered in an
HTML <img> element. Note: the HTML <img> element does
not have a closing slash.Note: such images are not yet allowed in RFCs
even though the format supports them. A limited set of "data:" mediatypes for artwork may be allowed in the
future.This element is rendered as an HTML <aside> element, with
all child content appropriately transformed.The <author> element is used in several places in the output.
Different rendering is used for each.As seen in the
at the beginning of the HTML, each document author is rendered
as an HTML <div> tag of class "author".Inside the <div class="author"> HTML tag, the author's
initials and surname (or the fullname, if it exists and the others
do not) will be rendered in an HTML <div>
tag of class "author-name". If the <author>
contains "asciiInitials" and "asciiSurname" attributes, or contains
as "asciiFullname" attribute, the author's name is rendered twice,
with the first being the non-ASCII version, wrapped in an HTML
<span> tag of class "non-ascii", followed by the ASCII
version wrapped in an HTML <span> tag of class "ascii",
wrapped in parentheses. If the <author> has a "role"
attribute of "editor", the <div class="author-name"> will
also contain the text ", " (comma, space), followed by an HTML
<span> tag of class "editor", which contains the text "Ed.".If the <author> element contains an
element, it is also rendered inside the <div class="author">
HTML tag. As seen in the Authors' Addresses section,
at the end of the HTML, each document author is rendered into an
HTML <address> element with the CSS class "vcard".The HTML <address> element will contain an HTML <div>
with CSS class "nameRole". That div will contain an HTML <span>
element with CSS class "fn" containing the value of the "fullname"
attribute of the <author> XML element and an HTML <span>
element with CSS class "role" containing the value of the "role"
attribute of the <author> XML element (if there is a role).
Parentheses will surround the <span class="role">, if it
exists.After the name, the
and
child elements of
the author are rendered inside the HTML <address> tag.When the <author> element, or any of its descendant elements,
has any attribute that starts with "ascii", all of the author
information is displayed twice. The first version is wrapped in
an HTML <div> tag with class "ascii"; this version prefers
the ASCII version of information, such as "asciiFullname", but falls
back on the non-ASCII version if the ASCII version doesn't exist.
The second version is wrapped in an HTML <div> tag with class
"non-ascii"; this version prefers the non-ASCII version of
information, such as "fullname", but falls back on the ASCII
version if the non-ASCII version does not exist. Between these
two HTML <div>s, a third <div> is inserted, with class
"alternative-contact", containing the text "Alternate contact
information:".In the output generated from a reference element, author tags are
rendered inside an HTML <span> element with CSS class
"refAuthor". See for
guidance on how author names are to appear.
If there is exactly one
child, render
that child in a similar way to a .
If there are more than one
children, render
as a whose name is
"References", containing a
for each child.After any sections,
render each child of
as an appendix.This element marks up words like MUST and SHOULD with an HTML
<span> element with the CSS class "bcp14".This element renders in a way similar to the HTML <blockquote>
element. If there is a "cite" attribute, it is copied
to the HTML "cite" attribute. If there is a "quoteFrom" attribute,
it is placed inside a <cite> element at the end of the quote,
with an <a> element surrounding it (if there is a "cite"
attribute), linking to the cited URL.If the <blockquote> does not contain another element that gets a
pilcrow, a pilcrow is added.Note that the "—" at the beginning of the <cite> element
should be a proper emdash, which is difficult to show in the
display of the current format.The Status of This Memo and the Copyright statement, together
commonly referred to as the document boilerplate, appear after the
Abstract. The children of the input <boilerplate> element
are treated in a similar fashion to unnumbered sections.
This element is directly rendered as its HTML counterpart. Note:
in HTML, <br> does not have a closing slash.This element is rendered as a <span> element with CSS
class "locality".This element is rendered as a <span> element with CSS
class "postal-code".This element is rendered as a <div> element with CSS
class "country-name".This element is rendered as a <span> element with CSS
class "cref". Any anchor is copied to the "id" attribute. If there is
a source given, it is contained inside the "cref" <span> element with another
<span> element of class "crefSource".This element is rendered as the HTML <time> element. If the
"year", "month", or "day" attribute is included on the XML element,
an appropriate "datetime" element will be generated in HTML.If this date is a child of the document's <front> element, it
gets the CSS class "published".If this date is inside a <reference> element, it gets the
CSS class "refDate".This element is directly rendered as its HTML counterpart.This element does not affect the HTML output, but it is used in the generation of the
,
,
, and
elements.This element is directly rendered as its HTML counterpart.If the hanging attribute is "false", add the "dlParallel" class, else
add the "dlHanging" class.If the spacing attribute is "compact", add the "dlCompact" class.This element is directly rendered as its HTML counterpart.This element is directly rendered as its HTML counterpart.This element is
rendered as an HTML <div> containing the string "Email:" and
an HTML <a> element with the "href" attribute set to the
equivalent "mailto:" URI, a CSS class of "email", and the contents set
to the email address. If this is the version of the address with
ASCII, the "ascii" attribute is preferred to the element text.This element is rendered as an HTML <a> element, with the "href"
attribute set to the value of the "target" attribute and the CSS
class of "eref".This element renders as the HTML <figure> element, containing
the artwork or sourcecode indicated and an HTML <figcaption>
element. The <figcaption> element will contain an <a> element
around the figure number. It will also
contain another <a> element with CSS class "selfRef" around the
figure name, if a name was given.See "Document Information" for information on this element.This element is rendered as an empty <> tag of class "iref", with
an "id" attribute consisting of the <iref> element's "irefid" attribute:Each <keyword> element renders its text into the <meta>
keywords in the document's header, separated by commas.This element is rendered as its HTML counterpart. However, if there
is no contained element that has a
pilcrow attached, a pilcrow
is added.This element is rendered as its HTML counterpart, in the HTML
header.This element does not add any direct output to HTML.This element is never rendered directly; it is only rendered when
considering a parent element, such as
,
,
, or
.This element is rendered like a
element, but without
a section number and with the CSS class of "note". If the
"removeInRFC" attribute is set to "yes", the generated <div> element
will also include the CSS class "rfcEditorRemove".The output created from an <ol> element depends upon the "style"
attribute.If the "spacing" attribute has the value "compact", a CSS class of
"olCompact" will be added.The group attribute is not copied; the input XML should have start
values added by a prep tool for all grouped <ol> elements.If the style attribute includes the character "%", the output is
a <dl> tag with the class "olPercent". Each contained <li> element
is emitted as a <dt>/<dd> pair, with the generated
label in the <dt> and the contents of the <li> in the
<dd>.For all other styles, an <ol> tag is emitted, with any
"style" attribute turned into the equivalent HTML attribute.This element is
rendered as an HTML <div> tag with CSS class "org".If the element contains the "ascii" attribute, the organization name
is rendered twice: once with the non-ASCII version wrapped in an
HTML <span> tag of class "non-ascii" and then as the ASCII version
wrapped in an HTML <span> tag of class "ascii" wrapped in
parentheses.This element is
rendered as an HTML <div> tag containing the string "Phone:" (wrapped
in a span), an HTML <a> tag with CSS class "tel" containing the
phone number (and an href with a corresponding "tel:" URI), and an
HTML <span> with CSS class "type" containing the string
"VOICE".This element renders as an HTML <div> with CSS class
"adr", unless it contains one or more <postalLine> child
elements; in which case, it renders as an HTML <pre> element with CSS
class "label".When there is no <postalLine> child, the following child
elements are rendered into the HTML:
Each <street> is renderedA <div> that includes:
The rendering of all <city> elementsA comma and a space: ", "The rendering of all <region> elementsWhitespaceThe rendering of all <code> elementsThe rendering of all <country> elementsThis element renders as the text contained by the element, followed
by a newline. However, the last <postalLine> in a given
<postal> element should not be followed by a newline. For example:Would be rendered as:This element renders as an HTML <span> with CSS class
"refContent".If the parent of this element is not a <referencegroup>, this
element will render as a <dt> <dd> pair with the
defined term being the reference "anchor" attribute surrounded by
square brackets and the definition including the correct set of
bibliographic information as specified by .
The <dt> element will have an "id" attribute of the reference
anchor.If the child of a <referencegroup>, this
element renders as a <div> of class "refInstance" whose
"id" attribute is the value of the <source> element's "anchor"
attribute.A <referencegroup> is translated into a <dt> <dd>
pair, with the defined term being the referencegroup "anchor"
attribute surrounded by square brackets, and the definition containing
the translated output of all of the child <reference>
elements.If there is at exactly one <references> element, a
section is added to the document, continuing with the next
section number after the last top-level <section> in
<middle>. The <name> element of the <references>
element is used as the section name.
If there is more than one <references> element, an HTML
<section> element is created to contain a subsection for
each of the <references>. The section number will be the next
section number after the last top-level <section> in
<middle>. The name of this section will
be "References", and its "id" attribute will be "n-references".This element is rendered as a <span> tag with CSS
class "region".This element is rendered as an HTML <a> tag with CSS class
"relref" and "href" attribute of the "derivedLink" attribute of the
element. Different values of the "displayFormat" attribute cause
the text inside that HTML <a> tag to change and cause extra
text to be generated. Some values of the "displayFormat"
attribute also cause another HTML <a> tag to be rendered
with CSS class "xref" and an "href" of "#" and the "target" attribute
(modified by any applicable <displayreference> XML element)
and text inside of the "target" attribute
(modified by any applicable <displayreference> XML element).
When used, this <a class='xref'> HTML tag is always surrounded
by square brackets, for example, "[<a class='xref' href='#foo'>foo</a>]".The output is an <a class='relref'> HTML tag, with
contents of "Section " and the value of the "section" attribute.
This is followed by the word "of" (surrounded by whitespace). This
is followed by the <a class='xref'> HTML tag (surrounded by
square brackets).For example, with an input of:The HTML generated will be:The output is an <a class='xref'> HTML tag (wrapped by
square brackets), followed by a comma (","), followed by
whitespace, followed by an <a class='relref'> HTML tag, with
contents of "Section " and the value of the "section"
attribute.For example, with an input of:The HTML generated will be:The output is an <a> element with "href" attribute whose value
is the value of the "target" attribute prepended by "#", and whose
content is the value of the "target" attribute; the entire element
is wrapped in square brackets. This is followed by whitespace.
This is followed by an <a> element whose "href" attribute is
the value of the "derivedLink" attribute and whose content is the
value of the "derivedRemoteContent" attribute; the entire element is
wrapped in parentheses.For example, if Section 2.3 of RFC 9999 has the title "Protocol
Overview", for an input of:The HTML generated will be:The output is an <a> element whose "href" attribute is
the value of the "derivedLink" attribute and whose content is the
value of the "derivedRemoteContent" attribute.For this input:The HTML generated will be:Various attributes of this element are represented in different parts of the HTML
document.This element is rendered as an HTML <section> element,
containing an appropriate level HTML heading element
(<h2>-<h6>). That heading element contains an <a>
element around the part number (pn), if applicable (for instance,
<abstract> does not get a section number). Another <a>
element is included with the section's name.This element is rendered in an HTML <span> element with CSS
name "seriesInfo".This element is rendered in an HTML <pre> element with a CSS class of
"sourcecode". Note that CDATA blocks do not work consistently in
HTML, so all <, >, and & must be escaped as <,
>, and &, respectively. If the input XML has a "type"
attribute, another CSS class of "lang-" and the type is added.If the sourcecode is not inside a <figure> element, a
pilcrow is included. Inside a
<figure> element, the figure title serves the purpose of the
pilcrow.This element renders as an HTML <div> element with CSS class
"street-address".This element is directly rendered as its HTML counterpart.This element is directly rendered as its HTML counterpart.This element is directly rendered as its HTML counterpart.This element is rendered as an HTML <p> element. A
pilcrow is included.This element is directly rendered as its HTML counterpart.This element is directly rendered as its HTML counterpart.This element is directly rendered as its HTML counterpart.This element is directly rendered as its HTML counterpart.This element is directly rendered as its HTML counterpart.This element is directly rendered as its HTML counterpart.The title of the document appears in a <title> element in the
<head> element, as described in .The title also appears in an <h1> element and follows directly
after the Document Information. The <h1> element has an "id"
attribute with value "title".Inside a reference, the title is rendered as an HTML <span>
tag with CSS class "refTitle". The text is surrounded by quotes
inside the <span>.This element is directly rendered as its HTML counterpart.This element is rendered as an HTML <code> element.This element is directly rendered as its HTML counterpart. If the
"spacing" attribute has the value "compact", a CSS class of "ulCompact"
will be added. If the "empty" attribute has the value "true", a CSS
class of "ulEmpty" will be added.This element is
rendered as an HTML <div> containing the string "URI:" and
an HTML <a> element with the "href" attribute set to the
linked URI, CSS class of "url" (note that the value is "url", not "uri" as one might expect), and the contents
set to the linked URI.This element does not add any direct output to HTML.This element is rendered as an HTML <a> element containing an
appropriate local link as the "href" attribute. The value of the
"href" attribute is taken from the "target" attribute,
prepended by "#". The <a> element generated will have
class "xref". The contents of the <a> element are
the value of the "derivedContent" attribute. If the "format"
attribute has the value "default", and the "target" attribute points
to a <reference> or <referencegroup> element, then
the generated <a> element is surrounded by square brackets
in the output.orThis element is rendered as part of the <artwork> element.
The "xmlns='http://www.w3.org/2000/svg'" namespace declaration should
be included, and the SVG should be serialized as well-formed XML,
even for tags that would otherwise not need closing in HTML5.Since RFCs are sometimes exchanged outside the normal Web sandboxing mechanism
(such as using the "rsync" program to a mirror site) then loaded from a local file, more care must be taken
with the HTML than is ordinary on the web. The "data" URL schemeUTF-8, a transformation format of ISO 10646Tags for Identifying LanguagesRFC Style GuideKey words for use in RFCs to Indicate Requirement LevelsCascading Style Sheets (CSS) Requirements for RFCsThe "xml2rfc" Version 3 VocabularyHTML5Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) SpecificationStyle GuideRFC EditorCSS Paged Media Module Level 3hCard 1.0RFC Series Format Requirements and Future Development"xml2rfc" Version 3 Preparation Tool DescriptionRFC Format FrameworkThe IAB members at the time this memo was approved were (in alphabetical order):
Jari ArkkoRalph DromsTed HardieJoe HildebrandRuss HousleyLee HowardErik NordmarkRobert SparksAndrew SullivanDave ThalerMartin ThomsonBrian TrammellSuzanne WoolfHeather Flanangan was an early coauthor of this document and helped its formation.
The authors gratefully acknowledge the contributions of: Patrick Linskey and the
members of the RFC Format Design Team (Nevil Brownlee (ISE), Tony Hansen,
Ted Lemon, Julian Reschke, Adam Roach, Alice Russo, Robert Sparks
(Tools Team liaison), and
Dave Thaler).