Skip to content

raku-community-modules/Pod-TreeWalker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Actions Status Actions Status Actions Status

NAME

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

SYNOPSIS

use Pod::TreeWalker;

my $L = My::Listener.new;
my $o = Pod::TreeWalker.new: :listener($L);
my @events = $o.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.

Note: Use distribution Pod::Load for an easy way to access the Pod from a file or a string.

METHODS

new

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

The constructor requires a single named argument :listener. This object must implement the Pod::TreeWalker::Listener API as demonstrated in file './t/lib/TestListener.rakumod'. See more details in Listener.md.

walk-pod

my @events = $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]). The @events list provides the details of each pod node encountered.

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 - 2025 Raku Community

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

Packages

No packages published

Contributors 7

Languages