From 990f69cfca215788537a81fb35eaa3b151b57715 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mirek=20D=C5=82ugosz?= Date: Wed, 10 Feb 2021 12:47:44 +0100 Subject: [PATCH] [WIP] Read content selectively --- pelican/generators.py | 22 +++++++++++++++------- pelican/readers.py | 2 ++ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/pelican/generators.py b/pelican/generators.py index 63e20a0a..c5a98086 100644 --- a/pelican/generators.py +++ b/pelican/generators.py @@ -808,13 +808,21 @@ class StaticGenerator(Generator): if self._is_potential_source_path(f): continue - static = self.readers.read_file( - base_path=self.path, path=f, content_class=Static, - fmt='static', context=self.context, - preread_signal=signals.static_generator_preread, - preread_sender=self, - context_signal=signals.static_generator_context, - context_sender=self) + try: + static = self.readers.read_file( + base_path=self.path, path=f, content_class=Static, + fmt='static', context=self.context, + preread_signal=signals.static_generator_preread, + preread_sender=self, + context_signal=signals.static_generator_context, + context_sender=self) + except Exception as e: + logger.error( + 'Could not process %s\n%s', f, e, + exc_info=self.settings.get('DEBUG', False)) + self._add_failed_source_path(f, static=True) + continue + self.staticfiles.append(static) self.add_source_path(static, static=True) self._update_context(('staticfiles',)) diff --git a/pelican/readers.py b/pelican/readers.py index 15d09908..ed2d2660 100644 --- a/pelican/readers.py +++ b/pelican/readers.py @@ -537,6 +537,8 @@ class Readers(FileStampDataCacher): path = os.path.abspath(os.path.join(base_path, path)) source_path = posixize_path(os.path.relpath(path, base_path)) + if 'READ_SELECTED' in self.settings and self.settings['READ_SELECTED'] not in source_path: + raise ValueError(f"Skipping {source_path}") logger.debug( 'Read file %s -> %s', source_path, content_class.__name__)