summaryrefslogtreecommitdiff
path: root/src/index.rb
diff options
context:
space:
mode:
authorBenjamin Ragheb <ben@benzado.com>2022-11-05 13:14:19 -0400
committerBenjamin Ragheb <ben@benzado.com>2022-11-05 13:14:19 -0400
commit3c014cde4c3b533c045e6440fb509243582a3ac9 (patch)
tree8370dbca28b20977cfd8e4b58d00469c9d7f85ed /src/index.rb
parentf27dc560ad3e66f99d6ccabc7d51ddf3c329354c (diff)
Accomodate titles in newer GNU make versions
@lshprung identified that newer versions of GNU make docs have titles with a suffix of "(GNU make)" instead of a prefix of "GNU make:". This change extracts any HTML title, and then removes either prefix or suffix, if found.
Diffstat (limited to 'src/index.rb')
-rwxr-xr-xsrc/index.rb7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/index.rb b/src/index.rb
index ec861a5..da58535 100755
--- a/src/index.rb
+++ b/src/index.rb
@@ -9,7 +9,7 @@ INSERT_SQL = %Q[
INSERT INTO searchIndex(name, type, path) VALUES ('%s','%s','%s');
]
-PATTERN = %r[<title>GNU make: (.+)</title>]
+PATTERN = %r[<title>(.+)</title>]
def quote(s)
s.gsub(/&amp;/, '&').gsub(/'/, "\\'")
@@ -19,7 +19,10 @@ ARGV.each do |arg|
Pathname.glob(arg) do |path|
match = path.each_line.lazy.map { |line| PATTERN.match(line) }.find { |m| m }
if match
- printf INSERT_SQL, quote(match[1]), 'Guide', path.basename
+ title = match[1]
+ title.delete_prefix!('GNU make: ') # older docs
+ title.delete_suffix!(' (GNU make)') # newer docs
+ printf INSERT_SQL, quote(title), 'Guide', path.basename
else
$stderr.puts "#{path}: no title found"
end