def execute(self): if self.json_data['citation_items']: citations = [self.parse_citation(item) for item in self.json_data['citation_items']] elif self.json_data['citations']: citations = [] for cit in self.json_data['citations']: cit = cit[0] citation_items = [self.parse_citation_item(cititem) for cititem in cit['citationItems']] citation = Citation(citation_items) citation.key = cit['citationID'] citation.note_index = cit['properties']['noteIndex'] citations.append(citation) elif self.json_data['bibentries']: citation_items = [self.parse_citation_item({'id': entry}) for entry in self.json_data['bibentries'][-1]] citations = [Citation(citation_items)] else: citation_items = [self.parse_citation_item({'id': ref}) for ref in self.references] citations = [Citation(citation_items)] for citation in citations: self.bibliography.register(citation) if self.style.has_bibliography(): self.bibliography.sort() results = [] do_nothing = lambda x: None # callback passed to cite() if self.json_data['mode'] == 'citation': if self.json_data['citations']: for i, citation in enumerate(citations): if i == len(citations) - 1: dots_or_other = '>>' else: dots_or_other = '..' results.append('{}[{}] '.format(dots_or_other, i) + self.bibliography.cite(citation, do_nothing)) else: for citation in citations: results.append(self.bibliography.cite(citation, do_nothing)) elif self.json_data['mode'] in ('bibliography', 'bibliography-nosort'): results.append(self.bib_prefix) for entry in self.bibliography.bibliography(): text = self.item_prefix + str(entry) + self.item_suffix results.append(text) results.append(self.bib_suffix) return results
def parse_citation(self, citation_data): citation_items = [] for item in citation_data: citation_item = self.parse_citation_item(item) citation_items.append(citation_item) return Citation(citation_items)
def execute(self): if self.data['citation_items']: citations = [ self.parse_citation(item) for item in self.data['citation_items'] ] elif self.data['citations']: citations = [] for cit in self.data['citations']: cit = cit[0] citation_items = [ self.parse_citation_item(cititem) for cititem in cit['citationItems'] ] citation = Citation(citation_items) citation.key = cit['citationID'] citation.note_index = cit['properties']['noteIndex'] citations.append(citation) elif self.data['bibentries']: citation_items = [ self.parse_citation_item({'id': entry}) for entry in self.data['bibentries'][-1] ] citations = [Citation(citation_items)] else: citation_items = [ self.parse_citation_item({'id': ref}) for ref in self.references ] citations = [Citation(citation_items)] for citation in citations: self.bibliography.register(citation) if self.style.has_bibliography(): self.bibliography.sort() results = [] do_nothing = lambda x: None # callback passed to cite() if self.data['mode'] == 'citation': if self.data['citations']: for i, citation in enumerate(citations): if i == len(citations) - 1: dots_or_other = '>>' else: dots_or_other = '..' results.append( '{}[{}] '.format(dots_or_other, i) + self.bibliography.cite(citation, do_nothing)) else: for citation in citations: results.append(self.bibliography.cite( citation, do_nothing)) elif self.data['mode'] in ('bibliography', 'bibliography-nosort'): results.append(self.bib_prefix) for entry in self.bibliography.bibliography(): text = self.item_prefix + str(entry) + self.item_suffix results.append(text) results.append(self.bib_suffix) return results