NAME

EPublisher - Publish documents in new format

VERSION

version 1.27

SYNOPSIS

use EPublisher;

my $yaml     = './test.yml';
my @projects = qw(Test);

my $deploy   = EPublisher->new;
$deploy->config( $yaml );
$deploy->run( \@projects );

The correspondend YAML file:

---
Test:
  source:
    type: Module
    path: YAML::Tiny
  target:
    type: Text
    path: C:\anything\YAML_Tiny.txt

DESCRIPTION

This tool aims to simplify publishing of documents, mainly POD. To be extendable, it uses a simple plugin system. It uses YAML files for configuration (see YAML::Tiny) and many CPAN modules for this task.

You can write your own plugins for your favourite source format (see EPublisher::Source::Base) and/or a plugin for your favourite output format.

Sources

"Sources" are input sources of the POD. In this base package there are three source plugins:

  • Dir

    Get all *.pm and *.pod files in the given directory and its subdirectories. See EPublisher::Source::Plugin::Dir.

  • File

    The Pod will be extracted from the given file.

  • Module

    This tool will try to get the POD off the module (without loading the module).

EPublisher::Source::Base describes how you can write your own Source-Plugin.

Targets

"Targets" are output formats. Currently there are two formats supported, but other target plugins will follow.

  • Text

    converts POD to plain text.

EPublisher::Target::Base describes how you can write your own Target-Plugin.

METHODS

All methods available for EPublisher are described in the subsequent sections

new

config

run

projects

deploy

debug

PSEUDO PROTOCOL

There is a small "pseudo" protocol for the debug messages:

100 start running source
101 stop running source (success)
102 error

200 start running target plugin
201 stop running target plugin (success)
202 error
203 info from target plugin

PREREQUESITS

YAML::Tiny, Carp, File::Spec, File::Glob,

AUTHOR

Renee Baecker <module@renee-baecker.de>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2015 by Renee Baecker.

This is free software, licensed under:

The Artistic License 2.0 (GPL Compatible)