---
name: "Markdent::Parser"
section: "3pm"
platform: "linux"
package: "libmarkdent-perl"
version: "0.40-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Markdent::Parser"
---

# Markdent::Parser(3pm)

A markdown parser

## NAME

Markdent::Parser - A markdown parser

## VERSION

version 0.40

## SYNOPSIS

```
  my $handler = Markdent::Handler::HTMLStream->new( ... );
  my $parser = Markdent::Parser->new(
      dialect => ...,
      handler => $handler,
  );
  $parser->parse( markdown => $markdown );
```

## DESCRIPTION

This class provides the primary interface for creating a parser. It ties a block and span parser together with a handler.

By default, it will parse the standard Markdown dialect, but you can provide alternate block or span parser classes.

## METHODS

This class provides the following methods:

### Markdent::Parser-\>new(...)

This method creates a new parser. It accepts the following parameters:

- •

  dialects =\> `$name` or \[ `$name1`, `$name2` \]

  You can use this to apply dialect roles to the standard parser class.

  If a dialect name does not contain a namespace separator (::), the constructor looks for roles named `"Markdent::Dialect::${dialect}::BlockParser"` and `"Markdent::Dialect::${dialect}::SpanParser"`.

  If a dialect name does contain a namespace separator, it is used a prefix - `$dialect::BlockParser` and `$dialect::SpanParser`.

  If any relevant roles are found, they will be used by the parser.

  It is okay if a given dialect only provides a block or span parser, but not both.

- •

  block\_parser\_class =\> `$class`

  This defaults to Markdent::Parser::BlockParser, but can be any class which implements the Markdent::Role::BlockParser role.

- •

  span\_parser\_class =\> `$class`

  This defaults to Markdent::Parser::SpanParser, but can be any class which implements the Markdent::Role::SpanParser role.

- •

  handler =\> `$handler`

  This can be any object which implements the Markdent::Role::Handler role. It is required.

### $parser-\>parse( markdown =\> $markdown )

This method parses the given document. The parsing will cause events to be fired which will be passed to the parser's handler.

## ROLES

This class does the Markdent::Role::EventsAsMethods and Markdent::Role::Handler roles.

## BUGS

See Markdent for bug reporting details.

Bugs may be submitted at \<https://github.com/houseabsolute/Markdent/issues\>.

I am also usually active on IRC as 'autarch' on `"irc://irc.perl.org"`.

## SOURCE

The source code repository for Markdent can be found at \<https://github.com/houseabsolute/Markdent\>.

## AUTHOR

Dave Rolsky \<autarch@urth.org\>

## COPYRIGHT AND LICENSE

This software is copyright (c) 2021 by Dave Rolsky.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

The full text of the license can be found in the *LICENSE* file included with this distribution.
