示例#1
0
文件: parser.py 项目: egh/zot4rst
 def _results2cites(self, pieces, cites=None, current_cite=None):
     if cites is None: cites = [None, CitationCluster([])]
     prefix = None
     for piece in pieces:
         if isinstance(piece, CiteParser.ShortCite):
             # actually 2 cites, first author-only, then suppress-author
             first = CitationInfo(citekey=piece.citekey,
                                  author_only=True)
             current_cite = CitationInfo(citekey=piece.citekey,
                                         suppress_author=True)
             cites[0] = CitationCluster([first])
             cites[1].citations.append(current_cite)
         elif isinstance(piece, CiteParser.CiteKey):
             current_cite = CitationInfo(citekey=piece.citekey,
                                         suppress_author=piece.suppress_author,
                                         prefix=prefix)
             cites[1].citations.append(current_cite)
         elif isinstance(piece, CiteParser.Prefix):
             prefix = piece.content
         elif isinstance(piece, CiteParser.Locator):
             current_cite.locator = piece.content
         elif isinstance(piece, CiteParser.Suffix):
             current_cite.suffix = piece.content
         elif isinstance(piece, CiteParser.ShortCiteExtra):
             self._results2cites(piece.content, cites, current_cite)
         elif isinstance(piece, CiteParser.FullCite):
             self._results2cites(piece.content, cites)
     return cites
示例#2
0
 def setUp(self):
     self.encoder = ZoteroJSONEncoder()
     self.citation = CitationInfo(citekey="foo")
     self.citation.id = "foo"
     citation2 = CitationInfo(citekey="bar")
     citation2.id = "bar"
     self.citation_cluster = CitationCluster([self.citation, citation2])