- #!/usr/bin/perl
- use warnings;
- use strict;
- use Pandoc::Filter 0.05;
- use Pandoc::Elements;
- # FIXME: avoid eating content past tweaked headers
- pandoc_filter(
- \&frontmatter,
- \&mainmatter,
- \&backmatter,
- \&toc,
- );
- # FIXME: use Header (not latex RawBlock) - why does it hang?!?
- sub header {
- my $label = shift;
- # Header( 1, attributes {}, [ Str $label ], );
- RawBlock( 'latex', '\\chapter{'.$label.'}' );
- };
- sub frontmatter {
- my $self = shift;
- return [
- # RawBlock( 'latex', '\\frontmatter' ),
- RawBlock( 'latex',
- '{\\hypersetup{linkcolor=black}\\setcounter{tocdepth}{3}\\cleartorecto\\tableofcontents}'
- ),
- ]
- if ( $self->name eq 'Header' and $self->level == 1
- and stringify($self) =~ /^Table/ );
- return;
- }
- sub mainmatter {
- my $self = shift;
- return [
- RawBlock( 'latex', '\\mainmatter' ),
- header(stringify($self)),
- ]
- if ( $self->name eq 'Header' and $self->level == 1
- and stringify($self) =~ /^Scope/ );
- return;
- }
- sub backmatter {
- my $self = shift;
- return [
- RawBlock( 'latex', '\\backmatter' ),
- header('References'),
- ]
- if ( $self->name eq 'Header' and $self->level == 1
- and stringify($self) =~ /^Notes/ );
- return;
- }
- sub toc {
- my $self = shift;
- return []
- if ( $self->name eq 'Para' and stringify($self) =~ /__TOC__/ );
- return;
- }
|