1#!/usr/bin/env perl 2use strict; 3use warnings; 4 5use Text::Trac (); 6use Getopt::Long qw(GetOptions); 7use Path::Tiny qw(path); 8 9my ($infile, $outfile); 10my $url = ''; 11my $class; 12my $span; 13my $id; 14my $force; 15 16GetOptions( 17 'infile=s' => \$infile, 18 'outfile=s' => \$outfile, 19 'url=s' => \$url, 20 'class' => \$class, 21 'span' => \$span, 22 'id' => \$id, 23 'force' => \$force, 24) or usage(); 25usage() if not $infile or not $outfile; 26die "Infile '$infile' does not exist.\n" if not -e $infile; 27die "Outfile '$outfile' already exists.\n" if -e $outfile and not $force; 28 29main(); 30exit; 31 32 33sub main { 34 my $parser = Text::Trac->new( 35 trac_url => $url, 36 class => $class, 37 span => $span, 38 id => $id, 39 # disable_links => [ qw( changeset ticket ) ], 40 ); 41 $parser->parse( path($infile)->slurp_utf8 ); 42 path($outfile)->spew_utf8( $parser->html ); 43} 44 45 46sub usage { 47 print <<"END_USAGE"; 48Usage: $0 49 --infile filename (File in Trac wiki format) 50 --outfile filename (The html file to generate) 51 52 --url http://... () 53 --class Include class="" in the HTML tags. 54 --span Include <span></span> 55 --id Include id="" in the HTML tags. 56 --force Overwrite exisiting html file. 57END_USAGE 58 exit; 59} 60 61