Raku Land

Pod::TreeWalker

zef:raku-community-modules

Actions Status

NAME

Pod::TreeWalker - Walk a Pod tree and generate an event for each node

SYNOPSIS

use Pod::TreeWalker;

my $to-html = Pod::To::HTML.new(...);
Pod::TreeWalker.new( :listener($to-html) ).walk-pod($=pod);

DESCRIPTION

This class provides an API for walking a pod tree (as provided by $=pod). Each node in the tree will trigger one or more events. These events cause methods to be called on a listener object that you provide. This lets you do something with a Pod document without having to know much about the underlying tree structure of Pod.

METHODS

new

my $walker = Pod::TreeWalker.new( :listener($object) )

The constructor expects a single named argument :listener. This object must implement the Pod::TreeWalker::Listener API.

walk-pod

$walker.walk-pod($pod);

This method walks through a pod tree starting with the top node in $pod. You can provide either an array of pod nodes (as stored in $=pod) or a single top-level node (such as $=pod[0]).

text-content-of

say $walker.text-contents-of($pod)

Given a Pod::Block of any sort, this method recursively descends the blocks contents and returns the concatenation of all the plain text that it finds.

AUTHOR

Dave Rolsky

COPYRIGHT AND LICENSE

Copyright 2015 - 2018 Dave Rolsky

Copyright 2019 - 2022 Raku Community

This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.