Files
davideisinger.com/bin/renumber
2023-07-06 22:07:06 -04:00

28 lines
426 B
Ruby
Executable File

#!/usr/bin/env ruby
filename = ARGV.last
unless filename
warn "Please supply a filename"
exit 1
end
content = File.read(filename)
refs = content.scan(/\[\d+\]:/)
unless refs == refs.uniq
warn "Error: duplicate refs detected"
exit
end
links = content.scan(/\[\d+\]/).uniq
links.zip(1..).each do |old_id, new_id|
content.gsub! old_id, "[$$#{new_id}]"
end
content.gsub!("$$", "")
File.write(filename, content)