12 my $out_dir = 'output';
13 my $map_file = 'hhmap';
15 binmode(STDOUT
, ":utf8");
18 'indent=s' => \
$indent,
19 'out-dir=s' => \
$out_dir,
20 'map-file=s' => \
$map_file,
26 my ($tagname, $attr, $offset_end, $column) = @_;
28 if ($tagname =~ /\Asect[0-9]\Z/i) {
31 while (my ($k, $v) = each %$attr) {
35 push @list, [$offset_end, $column, $attr{id
}];
42 open MAP
, '>:utf8', "$map_file";
44 foreach my $file (<*.xml
>) {
45 open FH
, "<:utf8", $file;
46 my $xml = do { local $/; <FH
>; };
51 my $p = HTML
::Parser
->new(
53 start_h
=> [\
&start
, "tagname, attr, offset_end, column"],
61 open FH
, '>:utf8', "$out_dir/$file";
63 foreach my $sect (@list) {
64 my ($offset, $column, $name) = @
$sect;
65 print FH
substr($xml, $last, ($offset - $last));
66 print FH
"\n" . (' ' x
($column + $indent)) . "<?dbhh topicname=\"$name\" topicid=\"$id\"?>\n";
67 print MAP
"$id\t$name\n";
72 print FH
substr($xml, $last);
78 # vi: set autoindent shiftwidth=4 tabstop=8 softtabstop=4 expandtab: