From f89b78b463c108eed766a9ea7d930043e0a457d8 Mon Sep 17 00:00:00 2001 From: Jonas Smedegaard Date: Wed, 31 Dec 2014 17:35:06 +0100 Subject: Mark systematic issues (and compile LaTeX explicitly: Pandoc don't detect need for 3rd round). --- pandoc-todo | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100755 pandoc-todo (limited to 'pandoc-todo') diff --git a/pandoc-todo b/pandoc-todo new file mode 100755 index 0000000..784b8fa --- /dev/null +++ b/pandoc-todo @@ -0,0 +1,59 @@ +#!/usr/bin/perl + +# TODO: support multi-match within word +# TODO: support multi-word match +# TODO: always count and allow expressing which (default: all) +# TODO: parse regex+commeent as definition in external markdown TODO file. +# TODO: normal hyphenation within note (keep quote with word in "word") + +use warnings; +use strict; + +use feature qw(switch); +no if $] >= 5.018, warnings => "experimental::smartmatch"; + +use Pandoc::Filter 0.05; +use Pandoc::Elements; + +my $breakable_chars = qr/[\&\;\/\.\?\!\=]/; +my $hyphen_chars = qr/[\x{2010}-\x{2015}\x{2053}\x{2212}]/; +my $doublequote_chars = qr/[\x{00AB}\x{00BB}\x{201C}-\x{201F}\x{300C}-\x{300F}\x{301D}-\x{301F}\x{FE41}-\x{FE44}\x{FF02}\x{FF62}\x{FF63}]/; +my $singlequote_chars = qr/[\x{0060}\x{2018}\x{2019}\x{201A}\x{201B}\x{2039}\x{203A}\x{FF07}]/; +my $odd_singlequote_chars = qr/[\x{2019}]/; + +pandoc_filter( + \&todo, +); + +sub latex_encode { + my $s = shift; + $s =~ s/(?name eq 'Str' ); + given ($self->content) { + when (/^(-)$/) { + return mark_inside( '', $1, '', 'double dash?' ) }; + when ( /^(.*?)($hyphen_chars(?:.*$hyphen_chars)?)(.*?)$/ ) { + return mark_inside( $1, $2, $3, 'bad dash/hyphen' ) }; + when ( /^(.*?)($doublequote_chars(?:.*$doublequote_chars)?)(.*?)$/ ) { + return mark_inside( $1, $2, $3, 'bad quote' ) }; + when ( /^(.*?)($singlequote_chars(?:.*$singlequote_chars)?)(.*?)$/ ) { + return mark_inside( $1, $2, $3, 'Bad quote/apostrophe' ) }; + default { return }; + } +}; -- cgit v1.2.3