Bring that RFC lingo to your everyday documents.
A Typst package that makes it easy to use the exact keywords, boilerplate, and definitions provided by BCP 14, RFC2119, and RFC8174. See the end of this README for an example of the output.
In the future, this package may include other RFC-related patterns which are applicable to a wide variety of everyday documents.
Usage
Import the package in your Typst document:
#import "@preview/rfc-vibe:0.1.0": *
Keywords
Use the keywords according to these examples:
#must // renders as: MUST
#must-not // renders as: MUST NOT
#required // renders as: REQUIRED
#shall // renders as: SHALL
#shall-not // renders as: SHALL NOT
#should // renders as: SHOULD
#should-not // renders as: SHOULD NOT
#recommended // renders as: RECOMMENDED
#not-recommended // renders as: NOT RECOMMENDED
#may // renders as: MAY
#optional // renders as: OPTIONAL
For the rare situation when you want the keywords included in quotation marks, use the -quoted
versions:
#must-quoted // renders as: "MUST"
#must-not-quoted // renders as: "MUST NOT"
#required-quoted // renders as: "REQUIRED"
#shall-quoted // renders as: "SHALL"
#shall-not-quoted // renders as: "SHALL NOT"
#should-quoted // renders as: "SHOULD"
#should-not-quoted // renders as: "SHOULD NOT"
#recommended-quoted // renders as: "RECOMMENDED"
#not-recommended-quoted // renders as: "NOT RECOMMENDED"
#may-quoted // renders as: "MAY"
#optional-quoted // renders as: "OPTIONAL"
Boilerplate
According to RFC8174, authors who follow these guidelines should incorporate a specific phrase near the beginning of their document. Include this boilerplate text with:
#rfc-keyword-boilerplate
This will render as:
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD",
"SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when,
and only when, they appear in all capitals, as shown here.
Definitions
Although not required (and maybe discouraged), you can include definitions of individual keywords in your document:
#rfc-keyword-must-definition
#rfc-keyword-must-not-definition
#rfc-keyword-should-definition
#rfc-keyword-should-not-definition
#rfc-keyword-may-definition
Or include all keyword definitions at once with:
#rfc-keyword-definitions
Example Output
License
This project is licensed under the MIT License. See the LICENSE file for details.