NAME

Pandoc::Selector - Pandoc document selector language

SYNOPSIS

my $selector = Pandoc::Selector->new('Code.perl|CodeBlock.perl');

# check whether an element matches
$selector->match($element);

# use as element method
$element->match('Code.perl|CodeBlock.perl')

DESCRIPTION

Pandoc::Selector provides a language to select elements of a Pandoc document. It borrows ideas from CSS Selectors, XPath and similar languages.

The language is being developed together with this implementation.

EXAMPLES

Header#main
Code.perl
Code.perl.raw
:inline

SELECTOR GRAMMAR

Whitespace between parts of the syntax is optional and not included in the following grammar. A Selector is a list of one or more expression lists separated by pipes (|). For instance the selector Subscript|Superscript selects both Subscript elements and Superscript elements.

Selector        ::= ExpressionList ( '|' ExpressionList )*

An expression list is a list of one or more expressions:

ExpressionList  ::= Expression ( Expression )*

An expression is any of name expression, id expression, class expression, and type expression.

Expression      ::= NameExpression
                    | IdExpression
                    | ClassExpression
                    | TypeExpression

NameExpression  ::= Name

Name            ::= [A-Za-z]+

IdExpression    ::= '#' [\p{L}\p{N}_-]+

ClassExpression ::= '.' [\p{L}\p{N}_-]+

TypeExpression  ::= ':' Name

SEE ALSO

See example filter select to select parts of a document.