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(
|
for f in self.get_files(
|
||||||
os.path.join(self.path, static_path), extensions=False):
|
os.path.join(self.path, static_path), extensions=False):
|
||||||
f_rel = os.path.relpath(f, self.path)
|
f_rel = os.path.relpath(f, self.path)
|
||||||
|
content, metadata = read_file(
|
||||||
|
f, fmt='static', settings=self.settings)
|
||||||
# TODO remove this hardcoded 'static' subdirectory
|
# TODO remove this hardcoded 'static' subdirectory
|
||||||
dest = os.path.join('static', f_rel)
|
metadata['save_as'] = os.path.join('static', f_rel)
|
||||||
url = pelican.utils.path_to_url(dest)
|
metadata['url'] = pelican.utils.path_to_url(metadata['save_as'])
|
||||||
sc = Static(
|
sc = Static(
|
||||||
content=None,
|
content=None,
|
||||||
metadata={
|
metadata=metadata,
|
||||||
'save_as': dest,
|
|
||||||
'url': url,
|
|
||||||
},
|
|
||||||
settings=self.settings,
|
settings=self.settings,
|
||||||
source_path=f_rel)
|
source_path=f_rel)
|
||||||
self.staticfiles.append(sc)
|
self.staticfiles.append(sc)
|
||||||
self.add_source_path(sc)
|
self.add_source_path(sc)
|
||||||
# same thing for FILES_TO_COPY
|
# same thing for FILES_TO_COPY
|
||||||
for src, dest in self.settings['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(
|
sc = Static(
|
||||||
content=None,
|
content=None,
|
||||||
metadata={'save_as': dest},
|
metadata={'save_as': dest},
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,7 @@ METADATA_PROCESSORS = {
|
||||||
|
|
||||||
class Reader(object):
|
class Reader(object):
|
||||||
enabled = True
|
enabled = True
|
||||||
|
file_extensions = ['static']
|
||||||
extensions = None
|
extensions = None
|
||||||
|
|
||||||
def __init__(self, settings):
|
def __init__(self, settings):
|
||||||
|
|
@ -54,6 +55,12 @@ class Reader(object):
|
||||||
return METADATA_PROCESSORS[name](value, self.settings)
|
return METADATA_PROCESSORS[name](value, self.settings)
|
||||||
return value
|
return value
|
||||||
|
|
||||||
|
def read(self, source_path):
|
||||||
|
"No-op parser"
|
||||||
|
content = None
|
||||||
|
metadata = {}
|
||||||
|
return content, metadata
|
||||||
|
|
||||||
|
|
||||||
class _FieldBodyTranslator(HTMLTranslator):
|
class _FieldBodyTranslator(HTMLTranslator):
|
||||||
|
|
||||||
|
|
@ -311,7 +318,7 @@ class AsciiDocReader(Reader):
|
||||||
|
|
||||||
EXTENSIONS = {}
|
EXTENSIONS = {}
|
||||||
|
|
||||||
for cls in Reader.__subclasses__():
|
for cls in [Reader] + Reader.__subclasses__():
|
||||||
for ext in cls.file_extensions:
|
for ext in cls.file_extensions:
|
||||||
EXTENSIONS[ext] = cls
|
EXTENSIONS[ext] = cls
|
||||||
|
|
||||||
|
|
@ -340,7 +347,7 @@ def read_file(path, fmt=None, settings=None):
|
||||||
metadata.update(reader_metadata)
|
metadata.update(reader_metadata)
|
||||||
|
|
||||||
# eventually filter the content with typogrify if asked so
|
# 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
|
from typogrify.filters import typogrify
|
||||||
content = typogrify(content)
|
content = typogrify(content)
|
||||||
metadata['title'] = typogrify(metadata['title'])
|
metadata['title'] = typogrify(metadata['title'])
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue