summaryrefslogtreecommitdiff
path: root/doc/reference/crossreference.rb
blob: 9f7c303504028d253d764d687183779d2ce9cdb3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
d = Dir.glob("xml/*.xml")

ids = []

# collect symbols 
d.each do |file|
  f = File.new(file)
  buf = f.read
  ids << buf.scan(/.*id="(.*)".*/)
end
ids = ids.flatten

#resolve symbols
d.each do |file|
  f = File.new(file,"r+")
  buf = f.read
  p file
  ids.each do |id|
    if "xml/"+id+".xml" == file
      next
    end
    re = Regexp.compile('([^"\w\d])('+id+')([^"\w\d])')
    buf.gsub!(re, '\1<link linkend="\2">\2</link>\3')
    buf.gsub!(/(<\/link>)+/, '\1')
    buf.gsub!(/(<link[^>]*>)+/, '\1')
  end
  f.rewind
  f.write buf
  f.rewind
end