| #!/usr/bin/env ruby |
| # |
| # Copyright (c) 2019 Baldur Karlsson |
| # |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| require 'pp' |
| require 'json' |
| |
| data = [] |
| |
| ARGV.each do |file| |
| |
| curdata = nil |
| extappendix = false |
| curext = "" |
| |
| File.readlines(file).each do |line| |
| |
| text = line.gsub(/<\/?[^>]*>/, "") |
| |
| # Special case - set up high quality results for given structs |
| if line =~ /div id="([vV][kK][^"]*)"/ then |
| id = $1 |
| |
| data << { :id => File.basename(file) + "#" + id, :title => id, :body => id } |
| end |
| |
| if line =~ /h[0-9]\s*id="([^"]*)"/ then |
| |
| id = $1 |
| |
| if curdata != nil then |
| data << curdata |
| end |
| |
| if text =~ /Appendix.*Extensions/ then |
| extappendix = true |
| end |
| |
| if extappendix and text =~ /^VK_.*/ then |
| curext = text |
| elsif curext != "" then |
| text = "#{curext.strip} - #{text}" |
| end |
| |
| curdata = { :id => File.basename(file) + "#" + id, :title => text, :body => "" } |
| elsif curdata != nil then |
| curdata[:body] += " " + text |
| end |
| |
| end |
| |
| if curdata != nil then |
| data << curdata |
| end |
| |
| end |
| |
| puts JSON.generate(data) |