App-Basis-ConvertText2
view release on metacpan or search on metacpan
lib/App/Basis/ConvertText2/Plugin/Text.pm view on Meta::CPAN
=head1 NAME
App::Basis::ConvertText2::Plugin::Text
=head1 SYNOPSIS
Handle a few simple text code blocks
my $obj = App::Basis::ConvertText2::Plugin::Text->new() ;
my $content = "" ;
my $params = { } ;
# new page
my $out = $obj->process( 'page', $content, $params) ;
# yamlasjson
$content = "list:
- array: [1,2,3,7]
channel: BBC3
date: 2013-10-20
time: 20:30
- array: [1,2,3,9]
channel: BBC4
date: 2013-11-20
time: 21:00
" ;
$out = $obj->process( 'yamlasjson', $content, $params) ;
# table
$content = "row1,entry 1,cell2
row2,cell1, entry 2
" ;
$out = $obj->process( 'table', $content, $params) ;
# version
$content = "0.1 2014-04-12
* removed ConvertFile.pm
* using Path::Tiny rather than other things
* changed to use pandoc fences ~~~~{.tag} rather than xml format <tag>
0.006 2014-04-10
* first release to github" ;
$out = $obj->process( 'table', $content, $params) ;
$content = "BBC | http://bbc.co.uk
DocumentReference | #docreference
27escape | https://github.com/27escape" ;
$out = $obj->process( 'table', $content, $params) ;
=head1 DESCRIPTION
Various simple text transformations
=cut
# ----------------------------------------------------------------------------
package App::Basis::ConvertText2::Plugin::Text;
$App::Basis::ConvertText2::Plugin::Text::VERSION = '0.4';
use 5.10.0;
use strict;
use warnings;
use YAML qw(Load);
use JSON;
use Moo;
use App::Basis::ConvertText2::Support;
use namespace::clean;
has handles => (
is => 'ro',
init_arg => undef,
default => sub { [qw{yamlasjson table version page links}] }
);
# ----------------------------------------------------------------------------
=item yamlasjson
Convert a YAML block into a JSON block
parameters
=cut
sub yamlasjson {
my $self = shift;
my ( $tag, $content, $params, $cachedir ) = @_;
# make sure we have an extra linefeed at the end to make sure
# YAML is correct
$content .= "\n\n" ;
$content =~ s/~~~~{\.yaml}//gsm;
$content =~ s/~~~~//gsm;
my $data = Load($content);
return "\n~~~~{.json}\n" . to_json( $data, { utf8 => 1, pretty => 1 } ) . "\n~~~~\n\n";
}
# ----------------------------------------------------------------------------
sub _split_csv_data {
my ( $data, $separator ) = @_;
my @d = ();
$separator ||= ',';
( run in 2.207 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )