mirror of
https://github.com/getpelican/pelican.git
synced 2025-10-15 20:28:56 +02:00
Merge pull request #794 from wking/static-reader
Use the static format to read Static metadata
This commit is contained in:
commit
167128b1f2
2 changed files with 18 additions and 8 deletions
|
|
@ -563,21 +563,24 @@ class StaticGenerator(Generator):
|
|||
for f in self.get_files(
|
||||
os.path.join(self.path, static_path), extensions=False):
|
||||
f_rel = os.path.relpath(f, self.path)
|
||||
content, metadata = read_file(
|
||||
f, fmt='static', settings=self.settings)
|
||||
# TODO remove this hardcoded 'static' subdirectory
|
||||
dest = os.path.join('static', f_rel)
|
||||
url = pelican.utils.path_to_url(dest)
|
||||
metadata['save_as'] = os.path.join('static', f_rel)
|
||||
metadata['url'] = pelican.utils.path_to_url(metadata['save_as'])
|
||||
sc = Static(
|
||||
content=None,
|
||||
metadata={
|
||||
'save_as': dest,
|
||||
'url': url,
|
||||
},
|
||||
metadata=metadata,
|
||||
settings=self.settings,
|
||||
source_path=f_rel)
|
||||
self.staticfiles.append(sc)
|
||||
self.add_source_path(sc)
|
||||
# same thing for FILES_TO_COPY
|
||||
for src, dest in self.settings['FILES_TO_COPY']:
|
||||
content, metadata = read_file(
|
||||
src, fmt='static', settings=self.settings)
|
||||
metadata['save_as'] = dest
|
||||
metadata['url'] = pelican.utils.path_to_url(metadata['save_as'])
|
||||
sc = Static(
|
||||
content=None,
|
||||
metadata={'save_as': dest},
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ METADATA_PROCESSORS = {
|
|||
|
||||
class Reader(object):
|
||||
enabled = True
|
||||
file_extensions = ['static']
|
||||
extensions = None
|
||||
|
||||
def __init__(self, settings):
|
||||
|
|
@ -54,6 +55,12 @@ class Reader(object):
|
|||
return METADATA_PROCESSORS[name](value, self.settings)
|
||||
return value
|
||||
|
||||
def read(self, source_path):
|
||||
"No-op parser"
|
||||
content = None
|
||||
metadata = {}
|
||||
return content, metadata
|
||||
|
||||
|
||||
class _FieldBodyTranslator(HTMLTranslator):
|
||||
|
||||
|
|
@ -311,7 +318,7 @@ class AsciiDocReader(Reader):
|
|||
|
||||
EXTENSIONS = {}
|
||||
|
||||
for cls in Reader.__subclasses__():
|
||||
for cls in [Reader] + Reader.__subclasses__():
|
||||
for ext in cls.file_extensions:
|
||||
EXTENSIONS[ext] = cls
|
||||
|
||||
|
|
@ -340,7 +347,7 @@ def read_file(path, fmt=None, settings=None):
|
|||
metadata.update(reader_metadata)
|
||||
|
||||
# eventually filter the content with typogrify if asked so
|
||||
if settings and settings.get('TYPOGRIFY'):
|
||||
if content and settings and settings.get('TYPOGRIFY'):
|
||||
from typogrify.filters import typogrify
|
||||
content = typogrify(content)
|
||||
metadata['title'] = typogrify(metadata['title'])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue