diff --git a/src/calibre/ebooks/metadata/book/render.py b/src/calibre/ebooks/metadata/book/render.py index eea0970ced..947462ff1d 100644 --- a/src/calibre/ebooks/metadata/book/render.py +++ b/src/calibre/ebooks/metadata/book/render.py @@ -92,13 +92,25 @@ def mi_to_html(mi, field_list=None, default_author_link=None, use_roman_numbers= u'%s%s'%( name, rating_font, u'\u2605'*int(val)))) - elif metadata['datatype'] == 'composite' and \ - metadata['display'].get('contains_html', False): + elif metadata['datatype'] == 'composite': val = getattr(mi, field) if val: val = force_unicode(val) - ans.append((field, - row % (name, comments_to_html(val)))) + if metadata['display'].get('contains_html', False): + ans.append((field, row % (name, comments_to_html(val)))) + else: + if not metadata['is_multiple']: + val = '%s' % ( + search_href(field, val), + _('Click to see books with {0}: {1}').format(metadata['name'], a(val)), p(val)) + else: + all_vals = [v.strip() + for v in val.split(metadata['is_multiple']['list_to_ui']) if v.strip()] + links = ['%s' % ( + search_href(field, x), _('Click to see books with {0}: {1}').format( + metadata['name'], a(x)), p(x)) for x in all_vals] + val = metadata['is_multiple']['list_to_ui'].join(links) + ans.append((field, row % (name, val))) elif field == 'path': if mi.path: path = force_unicode(mi.path, filesystem_encoding)