mirror of
https://github.com/getpelican/pelican.git
synced 2025-10-15 20:28:56 +02:00
Add a signal to give access to the dict of Reader classes.
This commit is contained in:
parent
cfe72c2736
commit
85ea737a98
2 changed files with 12 additions and 5 deletions
|
|
@ -34,6 +34,7 @@ try:
|
||||||
except ImportError:
|
except ImportError:
|
||||||
from HTMLParser import HTMLParser
|
from HTMLParser import HTMLParser
|
||||||
|
|
||||||
|
from pelican import signals
|
||||||
from pelican.contents import Page, Category, Tag, Author
|
from pelican.contents import Page, Category, Tag, Author
|
||||||
from pelican.utils import get_date, pelican_open
|
from pelican.utils import get_date, pelican_open
|
||||||
|
|
||||||
|
|
@ -348,16 +349,18 @@ class Readers(object):
|
||||||
def __init__(self, settings=None):
|
def __init__(self, settings=None):
|
||||||
self.settings = settings or {}
|
self.settings = settings or {}
|
||||||
self.readers = {}
|
self.readers = {}
|
||||||
|
self.reader_classes = {}
|
||||||
|
|
||||||
extensions = {}
|
|
||||||
for cls in [BaseReader] + BaseReader.__subclasses__():
|
for cls in [BaseReader] + BaseReader.__subclasses__():
|
||||||
for ext in cls.file_extensions:
|
for ext in cls.file_extensions:
|
||||||
extensions[ext] = cls
|
self.reader_classes[ext] = cls
|
||||||
|
|
||||||
if self.settings['READERS']:
|
if self.settings['READERS']:
|
||||||
extensions.update(self.settings['READERS'])
|
self.reader_classes.update(self.settings['READERS'])
|
||||||
|
|
||||||
for fmt, reader_class in extensions.items():
|
signals.readers_init.send(self)
|
||||||
|
|
||||||
|
for fmt, reader_class in self.reader_classes.items():
|
||||||
if not reader_class:
|
if not reader_class:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
|
@ -484,7 +487,7 @@ def path_metadata(full_path, source_path, settings=None):
|
||||||
metadata['date'] = datetime.datetime.fromtimestamp(
|
metadata['date'] = datetime.datetime.fromtimestamp(
|
||||||
os.stat(full_path).st_ctime)
|
os.stat(full_path).st_ctime)
|
||||||
metadata.update(settings.get('EXTRA_PATH_METADATA', {}).get(
|
metadata.update(settings.get('EXTRA_PATH_METADATA', {}).get(
|
||||||
source_path, {}))
|
source_path, {}))
|
||||||
return metadata
|
return metadata
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,10 @@ initialized = signal('pelican_initialized')
|
||||||
get_generators = signal('get_generators')
|
get_generators = signal('get_generators')
|
||||||
finalized = signal('pelican_finalized')
|
finalized = signal('pelican_finalized')
|
||||||
|
|
||||||
|
# Reader-level signals
|
||||||
|
|
||||||
|
readers_init = signal('readers_init')
|
||||||
|
|
||||||
# Generator-level signals
|
# Generator-level signals
|
||||||
|
|
||||||
generator_init = signal('generator_init')
|
generator_init = signal('generator_init')
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue