X-Git-Url: https://git.exim.org/exim-website.git/blobdiff_plain/094ad1c7b1db0e5132cf77098532a01079799795..de2fd2d4a4953f5ae02420a4bbbc217388e3a691:/script/gen diff --git a/script/gen b/script/gen index 84657e7..e0627f3 100755 --- a/script/gen +++ b/script/gen @@ -131,7 +131,7 @@ sub do_doc { my ( $type, $xml_path ) = @_; ## Read and validate the XML file - my $xml = XML::LibXML->new()->parse_file($xml_path) or die $!; + my $xml = XML::LibXML->new(expand_entities => 1)->parse_file($xml_path) or die $!; ## Get the version number my $version = do { @@ -335,8 +335,34 @@ sub build_indexes { my $primary = $node->findvalue('child::primary'); my $first = ( $primary =~ /^[A-Za-z]/ ) ? uc( substr( $primary, 0, 1 ) ) : ''; # first letter or marker my $secondary = $node->findvalue('child::secondary') || ''; + my $see = $node->findvalue('child::see'); + my $see_also = $node->findvalue('child::seealso'); + next unless ( $primary || $secondary ); # skip blank entries for now... + + if ( $see ) { + # not perfect; the whole line ends up bold + if ( $secondary ) { + $secondary .= ' see ' . $see; + } else { + $primary .= ' see ' . $see; + } + } elsif ( $see_also ) { + if ( $secondary ) { + $secondary .= ' see also ' . $see_also; + } else { + $primary .= ' see also ' . $see_also; + } + } + $index_hash->{$role}{$first}{$primary}{$secondary} ||= []; + next if ( $see || $see_also ); + +# JGH 2022/07/01 +# The $current_id being pushed here is presumably the section, given where the +# hyperlink end up pointing to. For bug 2889 we'd like to have something more +# precise; tha presumably requires an anchor at the indexed point? + push @{ $index_hash->{$role}{$first}{$primary}{$secondary} }, $current_id; } else { @@ -419,7 +445,7 @@ sub transform { $xml->documentElement()->appendTextChild( 'old_versions', $_ ) foreach old_docs_versions(); ## Parse the ".xsl" file as XML - my $xsl = XML::LibXML->new()->parse_file($xsl_path) or die $!; + my $xsl = XML::LibXML->new(expand_entities => 1)->parse_file($xsl_path) or die $!; ## Generate a stylesheet from the ".xsl" XML. my $stylesheet = XML::LibXSLT->new()->parse_stylesheet($xsl);