summaryrefslogtreecommitdiff
path: root/mediawiki-uri-escape
diff options
context:
space:
mode:
authorJonas Smedegaard <dr@jones.dk>2014-12-30 01:50:08 +0100
committerJonas Smedegaard <dr@jones.dk>2014-12-30 01:50:08 +0100
commit6f98b4dfb2b80e3eb3072dd3f140351581746db2 (patch)
tree3504d7481f617648637af7e3209bb32f45e605c0 /mediawiki-uri-escape
parent5b493a9bf8356bce9472256a3a2a16c3b7ab2643 (diff)
Move mediawiki tweaks to separate scripts.
Diffstat (limited to 'mediawiki-uri-escape')
-rwxr-xr-xmediawiki-uri-escape24
1 files changed, 24 insertions, 0 deletions
diff --git a/mediawiki-uri-escape b/mediawiki-uri-escape
new file mode 100755
index 0000000..40dd10c
--- /dev/null
+++ b/mediawiki-uri-escape
@@ -0,0 +1,24 @@
+#!/usr/bin/perl
+
+# work around modest URL parsing <https://github.com/jgm/pandoc/issues/1838>
+
+use warnings;
+use strict;
+
+use Path::Tiny;
+use Regexp::Common qw(net);
+use URI::Escape;
+
+my $infile = shift;
+my $outfile = shift || $infile;
+
+$_ = path($infile)->slurp_utf8;
+
+my $uri_path = qr!https?://$RE{net}{domain}{-nospace}(?::\d+)?\K(/\S*?)!;
+my $uri_end = qr!(?=[.,;]?[\s<\"\|}])!;
+
+s|\b$uri_path$uri_end|uri_escape(uri_unescape($1), "^A-Za-z0-9/\.")|eg;
+
+path($outfile)->spew_utf8($_);
+
+1;