NAME String::Tagged::Markdown - parse and emit text with Markdown inline formatting SYNOPSIS use String::Tagged::Markdown; my $st = String::Tagged::Markdown->parse_markdown( $markdown ); # Conforms to the String::Tagged::Formatting API String::Tagged::Terminal->new_from_formatting( $st->as_formatting )->say_to_terminal; DESCRIPTION This subclass of String::Tagged handles text that contains inline markers to give formatting hints, in the style used by Markdown. For example, text wrapped in double-asterisks indicates it should be bold (as **bold**), or single-asterisks to indicate italics (as *italics*). This module does not provide a full Markdown parser, but it does handle enough of the simple inline markers that it could be used to handle Markdown-style formatting hints of small paragraphs of text. TAGS This module provides the following tags. bold, italic, strike, fixed Boolean values indicating bold, italics, strike-through or fixed-width. link String value indicating a link. The value itself is the link target. CONSTRUCTORS parse_markdown $st = String::Tagged::InlineFormatted->parse_markdown( $str ) Parses a text string containing Markdown-like formatting as described above. Recognises the following kinds of inline text markers: **bold** *italic* ~~strike~~ `fixed` [link](target) backslashes escape any special characters as \* In addition, within `fixed` width spans, the other formatting markers are not recognised and are interpreted literally. To include literal backticks inside a `fixed` width span, use multiple backticks and a space to surround the sequence. Any sequence of fewer backticks within the sequence is interpreted literally. A single space on each side immediately within the outer backticks will be stripped, if present. `` fixed width with `literal backticks` inside it `` new_from_formatting $st = String::Tagged::Markdown->new_from_formatting( $fmt, %args ) Returns a new instance by convertig String::Tagged::Formatting standard tags. The bold, italic and strike tags are preserved. monospace is renamed to fixed. Supports the following extra named arguments: convert_tags => HASH Optionally provides additional tag conversion callbacks, as defined by "clone" in String::Tagged. METHODS build_markdown $str = $st->build_markdown Returns a plain text string containing Markdown-like inline formatting markers to format the tags in the given instance. Uses the notation given in the "parse_markdown" method above. as_formatting $fmt = $st->as_formatting( %args ) Returns a new String::Tagged instance tagged with String::Tagged::Formatting standard tags. The bold, italic and strike tags are preserved, fixed is renamed to monospace. The link tag is currently not represented at all. Supports the following extra named arguments: convert_tags => HASH Optionally provides additional tag conversion callbacks, as defined by "clone" in String::Tagged. AUTHOR Paul Evans