diff --git a/src/calibre/library/catalog.py b/src/calibre/library/catalog.py index 98cc4b7ecd..5cda9baa8c 100644 --- a/src/calibre/library/catalog.py +++ b/src/calibre/library/catalog.py @@ -1531,10 +1531,23 @@ class EPUB_MOBI(CatalogPlugin): self.opts.header_note_source_field, index_is_id=True) if notes: - if field_md['datatype'] == 'text' and isinstance(notes,list): - notes = ' · '.join(notes) + if field_md['datatype'] == 'text': + if isinstance(notes,list): + notes = ' · '.join(notes) elif field_md['datatype'] == 'datetime': notes = format_date(notes,'dd MMM yyyy') + elif field_md['datatype'] == 'composite': + m = re.match(r'\[(.+)\]$', notes) + if m is not None: + # Sniff for special pseudo-list string "[]" + bracketed_content = m.group(1) + if ',' in bracketed_content: + # Recast the comma-separated items as a list + items = bracketed_content.split(',') + items = [i.strip() for i in items] + notes = ' · '.join(items) + else: + notes = bracketed_content this_title['notes'] = {'source':field_md['name'], 'content':notes}