Skip to content
Create a gist now

Instantly share code, notes, and snippets.

@azatoth / secret
Created May 3, 2011

Script to convert inline defined references in wikitext to list defined references, are pretty brute force and might not work on all pages :)
use v5.10;
use File::Slurp;
use List::Util qw(max);
use strict;
my $data = read_file($ARGV[0]);
my $c=0;
my %l;
if( my @names = ($data =~ m/ref-(\d+)/g) ) {
$c = max(@names);
my ($body,$tail)=split/(?:==References==)/i, $data;
sub unnamed_ref {
my $ref=shift;
my $n="ref-".(++$c);
$l{$n}="<ref name=\"$n\">$ref</ref>";
"<ref name=\"$n\"/>";
sub named_ref{
my $ref=shift;
my $n=shift;$l{$n}="<ref name=\"$n\">$ref</ref>";
"<ref name=\"$n\"/>";
sub reflist{
my $p=shift;
sub references{
$body=~s{<ref name="(\S*?)">(.*?)</ref>}{named_ref($2, $1)}sge;
print $body.$tail;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.