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 31 32 33 34 35 36 37 38 39
|
targets = {}
quit = False
def missing_reference(app, env, node, contnode):
global quit
if quit:
return
reftarget = node.attributes['reftarget']
reftype = node.attributes['reftype']
refdoc = node.attributes['refdoc']
rawsource = node.rawsource
if reftype == 'paramref':
return
target = rawsource
if target in targets:
return
print "\n%s" % refdoc
print "Reftarget: %s" % rawsource
correction = raw_input("? ")
correction = correction.strip()
if correction == ".":
correction = ":%s:`.%s`" % (reftype, reftarget)
elif correction == 'q':
quit = True
else:
targets[target] = correction
def write_corrections(app, exception):
print "#!/bin/sh\n\n"
for targ, corr in targets.items():
if not corr:
continue
print """find lib/ -print -type f -name "*.py" -exec sed -i '' 's/%s/%s/g' {} \;""" % (targ, corr)
print """find doc/build/ -print -type f -name "*.rst" -exec sed -i '' 's/%s/%s/g' {} \;""" % (targ, corr)
def setup(app):
app.connect('missing-reference', missing_reference)
app.connect('build-finished', write_corrections)
|