Make the entries in the link_to_map unique

This commit is contained in:
Kovid Goyal 2017-10-13 10:55:30 +05:30
parent 41bc26645a
commit d8529b0262
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -354,7 +354,7 @@ class Container(ContainerBase):
a.set('href', 'javascript:void(0)') a.set('href', 'javascript:void(0)')
parts = decode_url(href.split('|')[1]) parts = decode_url(href.split('|')[1])
lname, lfrag = parts[0], parts[1] lname, lfrag = parts[0], parts[1]
ltm.setdefault(lname, {}).setdefault(lfrag or '', []).append(name) ltm.setdefault(lname, {}).setdefault(lfrag or '', set()).add(name)
a.set('data-' + link_uid, json.dumps({'name':lname, 'frag':lfrag}, ensure_ascii=False)) a.set('data-' + link_uid, json.dumps({'name':lname, 'frag':lfrag}, ensure_ascii=False))
else: else:
a.set('target', '_blank') a.set('target', '_blank')
@ -367,6 +367,10 @@ class Container(ContainerBase):
for elem in xlink_xpath(self.parsed(name)): for elem in xlink_xpath(self.parsed(name)):
elem.set(xlink, link_replacer(name, elem.get(xlink))) elem.set(xlink, link_replacer(name, elem.get(xlink)))
for name, amap in ltm.iteritems():
for k, v in tuple(amap.iteritems()):
amap[k] = tuple(v) # needed for JSON serialization
tuple(map(self.dirty, changed)) tuple(map(self.dirty, changed))
def serialize_item(self, name): def serialize_item(self, name):