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)