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 {
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 {
$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);