article.html (html::article)
This page has two modes, single and thread, based on the URI (/id for single, /thread for thread).
There is one query parameter, fullhdr (true/false).
In all modes, the following template attributes are available:
- $uri.fullhdr.on$ (string) contains an URI to the same page with fullhdr=true
- $uri.fullhdr.off$ (string) contains an URI to the same page with fullhdr=false
- $article.full_header$ (empty string) is defined if fullhdr is true.
In the thread mode, the following additional template attributes are available:
- $article.subject$ (string) the Subject of the base message (undefined if reading is prohibited)
- $thread$ (sequence of structs) is the flattened sequence of messages in the thread, each containing the same attributes as are provided in the single mode
In the single mode (and in the values of $thread$, in thread mode), the following additional template attributes are available:
- $article.path$ (string) contains the URI to this page
- $article.followup.uri$ (string) contains the URI through which a followup may be initiated (undefined if following up to this message is prohibited)
- The following attributes are undefined if reading is prohibited:
- $article.from$ (string) the From of this message
- $article.subject$ (string) the Subject of this message
- $article.date$ (string) the Date of this message
- $article.header$ (sequence of structs) is undefined if fullhdr is false, and otherwise provides the following attributes in its elements:
- $field.name$ (string)
- $field.body$ (string)
- $article.xref$ (sequence of structs) lists the groups that the message is filed in:
- $xref.group$ (string) is the Netnews name of the group
- $xref.group.uri$ (string) is an URI to that group
- $article.thread.next$ (string) contains the URI of the next article in threaded order (undefined if no next article)
- $article.thread.prev$ (string) contains the URI of the previous article in threaded order (undefined if no previous article)
- $article.followups$ (sequence of structs) describes the immediate followups to this message:
- $article.from$ (string) is the From of the followup
- $article.subject$ (string) is the Subject of the followup
- $article.date$ (string) is the Date of the followup
- $article.path$ (string) is an URI to that followup
- $article.precursors$ (sequence of structs) describes the parentage of the message:
- the same attributes are provided as for followups, if the parent message is available
- $article.id$ (string) contains the Message-ID of the parent message (even if the message itself is unavailable)
- $article.body$ (a structured value) describes the body, its elements are one of the following
- $entity.text_plain$ (a sequence of various types) contains a description of the body as a text/plain entity; the elenents have the following types:
- some elements are structured values providing the attribute $start_quote$ (empty string); this indicates that at this position, a new level of quoting starts
- some elements are structured values providing the attribute $end_quote$ (empty string); this indicates that at this position, one level of quoting ends
- some elements are sequences of various types that represent paragraphs, as follows:
- some elements are structured values providing the attribute $line_separator$; this indicates that at this position, a hard line break should be inserted
- some elements are strings that contain (a part of) the text of the paragraph
- $entity.text_plain$ (a sequence of various types) contains a description of the body as a text/plain entity; the elenents have the following types:
