pub struct Markdown { /* private fields */ }Expand description
A rendered Markdown document. Mirrors rich.markdown.Markdown.
Implementations§
Source§impl Markdown
impl Markdown
Sourcepub fn new(source: &str) -> Self
pub fn new(source: &str) -> Self
Parse CommonMark source into renderable blocks.
Hyperlinks are on, matching rich.markdown.Markdown(hyperlinks=True).
The CLI wants them off — see hyperlinks.
Sourcepub fn hyperlinks(self, hyperlinks: bool) -> Self
pub fn hyperlinks(self, hyperlinks: bool) -> Self
Choose how a [text](url) is rendered. Port of
rich.markdown.Markdown(hyperlinks=…), default true.
true— the text becomes an OSC 8 hyperlink pointing at the URL.false— the URL is written out after the text, astext (https://example.com).
The distinction is not cosmetic. An OSC 8 escape is only emitted when
the console has a colour system, so with hyperlinks on a piped or
NO_COLOR render drops every destination with nothing left to recover
it from. That is why upstream’s rich-cli passes hyperlinks=False
by default and puts the OSC 8 form behind its opt-in -y/--hyperlinks
flag; a CLI built on this crate should do the same:
let opt_in = false; // set by `-y/--hyperlinks`
let md = Markdown::new("A [link](https://example.com).").hyperlinks(opt_in);Sourcepub fn justify(self, justify: Justify) -> Self
pub fn justify(self, justify: Justify) -> Self
Justify every paragraph. Port of Markdown(justify=…); by default
paragraphs are left-justified. Headings keep their own alignment.
Sourcepub fn style(self, style: Style) -> Self
pub fn style(self, style: Style) -> Self
The root style every run of text is drawn in. Port of
Markdown(style=…), default "none".
Sourcepub fn code_theme(self, theme: impl Into<String>) -> Self
pub fn code_theme(self, theme: impl Into<String>) -> Self
The theme for code blocks. Port of Markdown(code_theme=…). Names are
syntect theme names, not Pygments styles (see DIVERGENCES #18).
Sourcepub fn inline_code_lexer(self, lexer: impl Into<String>) -> Self
pub fn inline_code_lexer(self, lexer: impl Into<String>) -> Self
Highlight inline code as lexer. Port of Markdown(inline_code_lexer=…);
by default inline code is not highlighted.
Sourcepub fn inline_code_theme(self, theme: impl Into<String>) -> Self
pub fn inline_code_theme(self, theme: impl Into<String>) -> Self
The theme for highlighted inline code. Port of
Markdown(inline_code_theme=…), defaulting to the code theme.
Trait Implementations§
Source§impl Renderable for Markdown
impl Renderable for Markdown
fn rich_render( &self, console: &Console, options: &ConsoleOptions, ) -> Vec<Segment>
Source§fn measure(&self, _console: &Console, options: &ConsoleOptions) -> Measurement
fn measure(&self, _console: &Console, options: &ConsoleOptions) -> Measurement
(minimum, maximum) cell width this renderable wants. The default
assumes the renderable fills the available width (e.g. Panel, Table);
Text overrides it with its content width so the top-level print path can
shrink to fit. Port of __rich_measure__ / Measurement.get.Source§fn fit_to_measurement(&self) -> bool
fn fit_to_measurement(&self) -> bool
Console::print shrinks this renderable to its
measured width. Upstream renders every top-level renderable at the full
console width, so the default is false; an extension may opt in.