def italic(data): return words(sep='')['*', data, '*']
def format_names(role): return words()[names(role, sep=', ', sep2=' and ', last_sep=', and ')]
def brackets(data): return words(sep='')['(', data, ')']
def bold(data): return words(sep='')['**', data, '**']
return words(sep='')['*', data, '*'] def format_names(role): return words()[names(role, sep=', ', sep2=' and ', last_sep=', and ')] formats = { 'article': words(sep='')[ '\n - | ', words(sep=' ')[ format_names('author'), brackets(field('year'))], ',', '\n | ', bold(field('title')), ',', '\n | ', sentence(sep=', ')[ italic(field('journal')), optional[words(sep=' ')[ field('volume'), optional[brackets(field('number'))]]], optional[field('pages')], ], optional['\n | ', field('url')] ], 'book': words(sep='')[ '\n - | ', words(sep=' ')[ format_names('author'), brackets(field('year'))], ',', '\n | ', bold(field('title')), ',', '\n | ', sentence(sep=', ')[
def italic(data): return words(sep='')['*', data, '*'] def format_names(role): return words()[names(role, sep=', ', sep2=' and ', last_sep=', and ')] formats = { 'article': words(sep='')['\n | ', words(sep=' ')[format_names('author'), brackets(field('year'))], ',', '\n | ', bold(field('title')), ',', '\n | ', sentence(sep=', ')[italic(field('journal')), optional[words( sep=' ')[field('volume'), optional[brackets(field('number'))]]], optional[field('pages')], ], optional['\n | ', field('url')]], 'book': words(sep='') ['\n | ', words(sep=' ')[format_names('author'), brackets(field('year'))], ',', '\n | ', bold(field('title')), ',', '\n | ', sentence(sep=', ')[optional[field('edition')], optional[field('series')], optional[field('edition')], optional[words( sep=' ')['vol.', field('volume'), optional[brackets(field('number'))]]],
def format_btitle(self, e, which_field, as_sentence=True): formatted_title = tag('em')[field(which_field)] if as_sentence: return sentence["In", formatted_title, self.date] else: return words(sep=', ')[formatted_title, self.date]