X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=doclib%2Ffix-links.py;h=27ee4d5ea0eeda55a7f6b1e336244433cd29c7a5;hb=ae06fe86f16fdabb7ffb219d255444d2eb4f4f79;hp=440a33bc77d2ed5a0ca75e0e7a40731526954728;hpb=81447258e6ecc9b5d9434fa5a7d382684179c7ab;p=senf.git diff --git a/doclib/fix-links.py b/doclib/fix-links.py index 440a33b..27ee4d5 100644 --- a/doclib/fix-links.py +++ b/doclib/fix-links.py @@ -1,4 +1,30 @@ #!/usr/bin/python +# +# This tool will hack the doxygen generated documentation to fix link +# errors produced by doxygen. +# +# This works because most anchors doxygen generates are unique 32 char +# hash values. To speed up the operation, the tool will not check all +# the files itself but will let 'linklint' do the grunt +# work. fix-links.py reads the 'errorX.txt' and 'errorAX.txt' files +# generated by linklint. These files list links to missing files +# (errorX.html) and links to missing anchors +# (errorAX.html). fix-links.py works in the following way: +# +# - Build a complete index of all unique anchors found in any html +# file. The index will only include *unique* anchors. Anchors found +# multiple times are removed from the index +# +# - The index is extended to include all unique names of html files +# +# - Scn the linklint result and check the bad links against the +# index. If the file or anchor is found in the index, an accoringly +# corrected link is generated otherwise the link is removed. +# +# One additional twak is, that fix-links.py will successively remove +# initial 'g' charachters from anchors until the link is found in the +# index. Doxygen seems to create links with the wrong number of 'g' +# charachters in front sometimes. import sys,os.path,fnmatch, HTMLParser, getopt, re @@ -256,7 +282,7 @@ total, found, fixed, removed = fixer.stats() if verbose: sys.stderr.write("\nRemoved links:\n") for (anchor, label), files in removed.items(): - sys.stdout.write("%-36.36s %-48.48s %s\n" + sys.stderr.write("%-36.36s %-48.48s %s\n" % ( anchor, "(%s)" % label[:46], " ".join(files.keys())) )