﻿#!/usr/bin/perl -w
use strict;
use warnings;
use utf8;
use open qw(:std :utf8);
use integer;


# Filter_4_01_pb.pl
# 2010-03-24
# Wolfgang Schmidle


# text input

my @text;
while(<>) { push @text, $_; }


# go through the text

my $n = 0;
my $nAlsText;

foreach (@text) {

	next unless /<pb/;

	# add attributes "n" and "file" in <pb>

	$n++;
	$nAlsText = "$n";
	if ($n < 1000) { $nAlsText = "0$nAlsText"; }
	if ($n < 100) { $nAlsText = "0$nAlsText"; }
	if ($n < 10) { $nAlsText = "0$nAlsText"; }
	
	s! n="\d+"!!;
	s! file="\d+"!!;
	
	if (s!>\[(.+?)\]!>!) { $nAlsText = $1; }
	
	s!<pb ([^>]+)/>!<pb $1 file="$nAlsText" n="$n"/>!g;
	s!<pb/>!<pb file="$nAlsText" n="$n"/>!g;

	
	# turn <rh> into an attribute of <pb> and remove styles in <rh>

	if (s!(<pb [^>]+)/><rh[^>]*>(.+)</rh>!$1 rhead=""/>!) {
		my $rhead = $2;
		$rhead =~ s!<[^>]+>!!g;
		s! rhead=""! rhead="$rhead"!;	
	}
}


# geänderten Text ausgeben

print @text;

# TO DO:
# wenn die <pb> neu numeriert werden, nachdem die Floats herausgezogen wurden:
# sollen dann die link-Namen der Figures etc. angepasst werden?
# Eventuell ist es einfacher, den raw text zu korrigieren und von vorne anzufangen?
