blob: 02169c672bbcea3fa4dd445c250171f271f59846 [file] [log] [blame]
def createFigureList(input)
figures = [] ;
input.each {
| line |
case line
when /Fig (\d*)(<.*$)/
puts "Found Figure: #{$1}"
figures << $1.to_i
when /Fig.[^\s]/
puts "WARNING: No space after figure reference: " + line ;
end
}
return figures ;
end
def createMap(figures)
map = Hash.new ;
(1..figures.length).each {
| i |
map[figures[i-1]] = i;
}
return map ;
end
def replace(input, map, output)
replacedReferences = []
input.each {
| line |
output.write line.gsub(/(:?Fig(:?\.)?) (\d*)/) {
| s |
replacedReferences << $3.to_i if $2 == "." ;
"Fig#{$2} #{map[$3.to_i]}"
}
}
unreplacedReferences = map.keys.sort ;
unreplacedReferences.delete_if { | ref | replacedReferences.include?(ref) }
puts "Unreplaced References: "
puts unreplacedReferences ;
end
input = File.open("article.html")
figures = createFigureList(input) ;
map = createMap(figures)
map.keys.sort.each { |k| puts "#{k} => #{map[k]}" }
$stdout.sync = true
#puts "Replace (y/n)?" ;
#gets.chomp
input.rewind
replace(input, map, File.new("article_replaced.html", "w")) ;