Mercurial > piecrust2
diff piecrust/sources/mixins.py @ 711:ab5c6a8ae90a
bake: Replace hard-coded taxonomy support with "generator" system.
* Taxonomies are now implemented one or more `TaxonomyGenerator`s.
* A `BlogArchivesGenerator` stub is there but non-functional.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Thu, 26 May 2016 19:52:47 -0700 |
parents | 32c7c2d219d2 |
children | 4850f8c21b6e |
line wrap: on
line diff
--- a/piecrust/sources/mixins.py Thu May 26 19:46:28 2016 -0700 +++ b/piecrust/sources/mixins.py Thu May 26 19:52:47 2016 -0700 @@ -23,33 +23,31 @@ return self.source.getPages() -class SourceFactoryWithoutTaxonomiesIterator(object): +class SourceFactoryWithoutGeneratorsIterator(object): def __init__(self, source): self.source = source - self._taxonomy_pages = None + self._generator_pages = None # See comment above. self.it = None def __iter__(self): - self._cacheTaxonomyPages() + self._cacheGeneratorPages() for p in self.source.getPages(): - if p.rel_path in self._taxonomy_pages: + if p.rel_path in self._generator_pages: continue yield p - def _cacheTaxonomyPages(self): - if self._taxonomy_pages is not None: + def _cacheGeneratorPages(self): + if self._generator_pages is not None: return app = self.source.app - self._taxonomy_pages = set() + self._generator_pages = set() for src in app.sources: - for tax in app.taxonomies: - ref_spec = src.getTaxonomyPageRef(tax.name) - page_ref = PageRef(app, ref_spec) - for sn, rp in page_ref.possible_split_ref_specs: + for gen in app.generators: + for sn, rp in gen.page_ref.possible_split_ref_specs: if sn == self.source.name: - self._taxonomy_pages.add(rp) + self._generator_pages.add(rp) class DateSortIterator(object): @@ -82,9 +80,9 @@ return self.config['items_per_page'] def getSourceIterator(self): - if self.config.get('iteration_includes_taxonomies', False): + if self.config.get('iteration_includes_generator_pages', False): return SourceFactoryIterator(self) - return SourceFactoryWithoutTaxonomiesIterator(self) + return SourceFactoryWithoutGeneratorsIterator(self) def getSorterIterator(self, it): return DateSortIterator(it)