From 16fb4b5a9a79f95df17f10ba62e9f44d21cf89b5 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Fri, 13 Apr 2018 14:55:27 +0100 Subject: [PATCH] docs/gen-html-index: Make HTML::TreeBuilder::XPath optional again 7782db9260d4 "docs/gen-html-index: Extract titles from HTML documents" requires HTML::TreeBuilder::XPath. This is sadly not as widely available as I had hoped. Work around this problem by making the use of this module optional: instead of `use'ing at the toplevel, we `require' it in the eval. If it's not present, then the title is simply not extracted and the filename is used as before, which is tolerable. Also add some debugging. Reported-by: Doug Goldstein Signed-off-by: Ian Jackson Reviewed-by: Doug Goldstein Tested-by: Doug Goldstein --- docs/gen-html-index | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/gen-html-index b/docs/gen-html-index index 8258e2bf22..4fad6db974 100644 --- a/docs/gen-html-index +++ b/docs/gen-html-index @@ -10,7 +10,6 @@ use warnings; use Getopt::Long; use IO::File; use File::Basename; -use HTML::TreeBuilder::XPath; Getopt::Long::Configure('bundling'); @@ -21,8 +20,10 @@ our @dirs; our %index; our $outdir; +our $debug; -GetOptions("i=s" => sub { read_index(@_);} ) +GetOptions("i=s" => sub { read_index(@_);}, + "D" => \$debug) or die; ($outdir,@docs) = @ARGV; @@ -68,6 +69,7 @@ sub make_linktext ($) { my $from_html; eval { + require HTML::TreeBuilder::XPath; my $tree = new HTML::TreeBuilder::XPath; my $f = "$outdir/$l.html"; open F, '<', $f or die "$l $f $!"; @@ -75,6 +77,7 @@ sub make_linktext ($) { close F; $from_html = $tree->findvalue("/html/head/title"); }; + print "$l: get title: $@" if $@ && $debug; return $from_html if $from_html; return basename($l); -- 2.30.2