From Code to Community: Sponsoring The Perl and Raku Conference 2025 Learn more

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.