Esta pode ser a base de tal conversor em python:
#!/usr/bin/python
import fileinput
import re
entryre = re.compile( "^%%% <([^>]+)>")
seealsore = re.compile( "see also > <([^>]+)>")
def pnode(nodename, nodeblock):
print "<" + nodename + ">"
print nodeblock
print "</" + nodename + ">"
block = ""
entry = ""
for line in fileinput.input():
match = re.match( entryre, line)
if match:
if entry:
pnode(entry, block)
block = ""
entry = ""
entry = match.group(1)
else:
match = re.match( seealsore, line)
line = re.sub( seealsore, r'<seealso></seealso>', line)
block += line
pnode(entry, block)
Ele lê qualquer arquivo (stdin é sugerido) e grava stdout. Apenas envolva a saída entre uma cabeça xml e cauda. Se as entradas contiverem espaços em branco, isso deve ser feito com cuidado. Além disso, se os blocos contiverem substrings semelhantes a tags (""), será necessária uma conversão adicional.
No entanto, se você quiser apenas navegar pelas entradas, sugiro usar um simples html. Listas ou tabelas de definições serviriam muito bem a você. O código de conversão exigiria apenas pequenas alterações.