Crate roffman[−][src]
Expand description
roffman - create ROFF man pages in rust with ease!
Example usage
use roffman::{Roff, RoffNode, Roffable, SectionNumber, SynopsisOpt};
let roff = Roff::new("roffman", SectionNumber::Miscellaneous)
.date("August 2021")
.section(
"BASIC USAGE",
[
RoffNode::paragraph([
"This is how you create a basic paragraph using roffman.",
]),
RoffNode::indented_paragraph(
[
"This line should be slightly indented to the ".roff(),
"right.".roff().bold(),
],
Some(4),
),
RoffNode::synopsis(
"roffman-command",
[
"This is the description of this command. It will be displayed right next to".roff(),
" it".roff().italic()
] ,
[
SynopsisOpt::new("--opt").description(["some simple opt"]),
SynopsisOpt::new("--opt-with-arg").argument("ARG").description(["opt with an argument"]),
SynopsisOpt::new("--bold")
]),
RoffNode::paragraph(["Example:".roff().bold()]),
RoffNode::example([
r#"
impl Roffable for u8 {
fn roff(&self) -> RoffText {
self.to_string().roff()
}
}"#,
]),
RoffNode::url("GitHub", "https://github.com/vv9k/roffman"),
RoffNode::text("\nvv9k"),
RoffNode::trademark_sign(),
],
);
let rendered = roff.to_string().unwrap();
let output = r#".TH roffman 7 "August 2021"
.SH "BASIC USAGE"
.P
This is how you create a basic paragraph using roffman\.
.IP "" 4
This line should be slightly indented to the \fBright\.\fR
.SY roffman\-command
This is the description of this command\. It will be displayed right next to \fIit\fR
.OP \-\-opt
some simple opt
.OP \-\-opt\-with\-arg ARG
opt with an argument
.OP \-\-bold
.YS
.P
\fBExample:\fR
.EX
impl Roffable for u8 {
fn roff(&self) \-> RoffText {
self\.to_string()\.roff()
}
}
.EE
.UR https://github\.com/vv9k/roffman
GitHub
.UE
vv9k\*(Tm
"#;
assert_eq!(rendered.trim(), output.trim());which will look something like this:
roffman(7) Miscellaneous Information Manual roffman(7)
BASIC USAGE
This is how you create a basic paragraph using roffman.
This line should be slightly indented to the right.
roffman-command This is the description of this command. It will be displayed right next to it
[--opt] some simple opt
[--opt-with-arg ARG] opt with an argument
[--bold]
Example:
impl Roffable for u8 {
fn roff(&self) -> RoffText {
self.to_string().roff()
}
}
GitHub ⟨https://github.com/vv9k/roffman⟩
vv9k™
August 2021 roffman(7)Structs
Represents a ROFF document that can be rendered and displayed
with tools like man.
Base struct used to create ROFFs.
Wrapper type for styled text in ROFF.
A single section of the ROFF document.
An option used by the RoffNode::synopsis block.
Enums
Style that can be applied to RoffText
An error type returned by the functions used in this crate.
Defines the section to which the given ROFF belongs.