NAME
Pod::To::Anything
AUTHOR
Patrick Spek p.spek@tyil.work
VERSION
0.0.0
Synopsis
use Pod::To::Anything;
use Pot::To::Anything::Subsets;
Description
A base class to easily build RakuFormerly known as Perl 6 Pod converters with.
Installation
Through zef
zef is the standard distribution manager for Raku. If you're using an end-user distribution like Rakudo Star, it will be installed for you by default.
zef
will install the latest available version from CPAN.
zef install Pod::To::Anything
Usage
You will need to include the two packages exposed by this module.
use Pod::To::Anything;
use Pot::To::Anything::Subsets;
Now you can make a new class that implements the Pod::To::Anything
role.
class Foo does Pod::To::Anything { }
You will need to implement all the supported Pod6 elements. Don't worry too much about missing one, as the compiler will complain about any you missed. For reference, you will need to implement the following methods.
multi method render (Pod::Block::Code:D $ --> Str) { … }
multi method render (Pod::Block::Declarator:D $ --> Str) { … }
multi method render (Pod::Block::Named::Author:D $ --> Str) { … }
multi method render (Pod::Block::Named::Name:D $ --> Str) { … }
multi method render (Pod::Block::Named::Subtitle:D $ --> Str) { … }
multi method render (Pod::Block::Named::Title:D $ --> Str) { … }
multi method render (Pod::Block::Named::Version:D $ --> Str) { … }
multi method render (Pod::Block::Named::Pod:D $ --> Str) { … }
multi method render (Pod::Block::Para:D $ --> Str) { … }
multi method render (Pod::Block::Table:D $ --> Str) { … }
multi method render (Pod::FormattingCode::B:D $ --> Str) { … }
multi method render (Pod::FormattingCode::C:D $ --> Str) { … }
multi method render (Pod::FormattingCode::E:D $ --> Str) { … }
multi method render (Pod::FormattingCode::I:D $ --> Str) { … }
multi method render (Pod::FormattingCode::K:D $ --> Str) { … }
multi method render (Pod::FormattingCode::L:D $ --> Str) { … }
multi method render (Pod::FormattingCode::N:D $ --> Str) { … }
multi method render (Pod::FormattingCode::P:D $ --> Str) { … }
multi method render (Pod::FormattingCode::R:D $ --> Str) { … }
multi method render (Pod::FormattingCode::T:D $ --> Str) { … }
multi method render (Pod::FormattingCode::U:D $ --> Str) { … }
multi method render (Pod::FormattingCode::V:D $ --> Str) { … }
multi method render (Pod::FormattingCode::X:D $ --> Str) { … }
multi method render (Pod::Heading:D $ --> Str) { … }
multi method render (Pod::Item:D $ --> Str) { … }
There are two convenience methods exposed by Pod::To::Anything
: .traverse
and .unpod
. The former will traverse all the Pod6 elements contained in a given Pod6 element. The latter will do almost the same, except it will turn everything into plain strings, losing all markup value from Pod6 elements.
Examples
Contributing
Reporting bugs or other feedback
Any bugs or other feedback can be sent to my email address. I generally try to respond to all mail within 24 hours.
Proposing code patches
Code patches can also be sent in through email. If you need help to send git patches through email, you may want to read up on git-send-email.io.
License
This module is distributed under the terms of the GNU AGPL, version 3.0.