def setUp(self): unittest.TestCase.setUp(self) curdir = os.path.dirname(os.path.abspath(__file__)) parser = BibtexParser() self.entries = \ parser.parse_file(os.path.join(curdir, 'testdata', 'bibtex.bib')).entries self.style = Style(os.path.join(curdir, 'styles'), 'apa')
def run(self): env = self.state.document.settings.env if not hasattr(env, 'bibtex_refs'): return [bibtex_bibliography()] # print dir(env) # print env.doc2path(env.docname) bibtex_refs = env.bibtex_refs env.bibtex_refs = [] entries = env.bibtex_entries style = Style(env.bibtex_style_dir, env.bibtex_style_name) list_node = nodes.enumerated_list() list_node['classes'].append('bibliography') for ref in bibtex_refs: if ref not in entries: raise self.warning("%s: reference not found." % ref) entry = entries[ref] rendered = style.render(pybtex_entry_to_dict(entry)) if not rendered: raise self.warning("%s: no template for entry type (%s)." % \ (ref, entry.type)) list_item = nodes.list_item() list_item['ids'].append(ref) list_item += nodes.raw(rendered, rendered, format="html") list_node += list_item bibliography = bibtex_bibliography() bibliography += list_node return [bibliography]