mirror of
https://github.com/getpelican/pelican.git
synced 2025-10-15 20:28:56 +02:00
Replace settings.get(key) with settings[key] for default settings
If a setting exists in DEFAULT_CONFIG, assume it will be there (instead of checking and/or providing a local default). The earlier code was split between the two idioms, which was confusing.
This commit is contained in:
parent
c8e7d95b34
commit
8ff34e6c5d
8 changed files with 35 additions and 38 deletions
|
|
@ -154,7 +154,7 @@ class Pelican(object):
|
|||
|
||||
context = self.settings.copy()
|
||||
context['filenames'] = {} # share the dict between all the generators
|
||||
context['localsiteurl'] = self.settings.get('SITEURL') # share
|
||||
context['localsiteurl'] = self.settings['SITEURL'] # share
|
||||
generators = [
|
||||
cls(
|
||||
context,
|
||||
|
|
@ -309,7 +309,7 @@ def get_instance(args):
|
|||
|
||||
settings = read_settings(config_file, override=get_config(args))
|
||||
|
||||
cls = settings.get('PELICAN_CLASS')
|
||||
cls = settings['PELICAN_CLASS']
|
||||
if isinstance(cls, six.string_types):
|
||||
module, cls_name = cls.rsplit('.', 1)
|
||||
module = __import__(module)
|
||||
|
|
|
|||
|
|
@ -51,7 +51,7 @@ class Content(object):
|
|||
self._context = context
|
||||
self.translations = []
|
||||
|
||||
local_metadata = dict(settings.get('DEFAULT_METADATA', ()))
|
||||
local_metadata = dict(settings['DEFAULT_METADATA'])
|
||||
local_metadata.update(metadata)
|
||||
|
||||
# set metadata as attributes
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ class Generator(object):
|
|||
self._templates_path = []
|
||||
self._templates_path.append(os.path.expanduser(
|
||||
os.path.join(self.theme, 'templates')))
|
||||
self._templates_path += self.settings.get('EXTRA_TEMPLATES_PATHS', [])
|
||||
self._templates_path += self.settings['EXTRA_TEMPLATES_PATHS']
|
||||
|
||||
theme_path = os.path.dirname(os.path.abspath(__file__))
|
||||
|
||||
|
|
@ -60,7 +60,7 @@ class Generator(object):
|
|||
simple_loader, # implicit inheritance
|
||||
PrefixLoader({'!simple': simple_loader}) # explicit one
|
||||
]),
|
||||
extensions=self.settings.get('JINJA_EXTENSIONS', []),
|
||||
extensions=self.settings['JINJA_EXTENSIONS'],
|
||||
)
|
||||
|
||||
logger.debug('template list: {0}'.format(self.env.list_templates()))
|
||||
|
|
@ -69,7 +69,7 @@ class Generator(object):
|
|||
self.env.filters.update({'strftime': DateFormatter()})
|
||||
|
||||
# get custom Jinja filters from user settings
|
||||
custom_filters = self.settings.get('JINJA_FILTERS', {})
|
||||
custom_filters = self.settings['JINJA_FILTERS']
|
||||
self.env.filters.update(custom_filters)
|
||||
|
||||
signals.generator_init.send(self)
|
||||
|
|
@ -163,7 +163,7 @@ class TemplatePagesGenerator(Generator):
|
|||
self.env.loader.loaders.insert(0, _FileLoader(source, self.path))
|
||||
try:
|
||||
template = self.env.get_template(source)
|
||||
rurls = self.settings.get('RELATIVE_URLS')
|
||||
rurls = self.settings['RELATIVE_URLS']
|
||||
writer.write_file(dest, template, self.context, rurls)
|
||||
finally:
|
||||
del self.env.loader.loaders[0]
|
||||
|
|
@ -283,9 +283,9 @@ class ArticlesGenerator(Generator):
|
|||
dates=archive, blog=True)
|
||||
|
||||
period_save_as = {
|
||||
'year' : self.settings.get('YEAR_ARCHIVE_SAVE_AS'),
|
||||
'month': self.settings.get('MONTH_ARCHIVE_SAVE_AS'),
|
||||
'day' : self.settings.get('DAY_ARCHIVE_SAVE_AS')
|
||||
'year' : self.settings['YEAR_ARCHIVE_SAVE_AS'],
|
||||
'month': self.settings['MONTH_ARCHIVE_SAVE_AS'],
|
||||
'day' : self.settings['DAY_ARCHIVE_SAVE_AS'],
|
||||
}
|
||||
|
||||
period_date_key = {
|
||||
|
|
@ -302,8 +302,8 @@ class ArticlesGenerator(Generator):
|
|||
|
||||
def generate_direct_templates(self, write):
|
||||
"""Generate direct templates pages"""
|
||||
PAGINATED_TEMPLATES = self.settings.get('PAGINATED_DIRECT_TEMPLATES')
|
||||
for template in self.settings.get('DIRECT_TEMPLATES'):
|
||||
PAGINATED_TEMPLATES = self.settings['PAGINATED_DIRECT_TEMPLATES']
|
||||
for template in self.settings['DIRECT_TEMPLATES']:
|
||||
paginated = {}
|
||||
if template in PAGINATED_TEMPLATES:
|
||||
paginated = {'articles': self.articles, 'dates': self.dates}
|
||||
|
|
@ -358,7 +358,7 @@ class ArticlesGenerator(Generator):
|
|||
def generate_pages(self, writer):
|
||||
"""Generate the pages on the disk"""
|
||||
write = partial(writer.write_file,
|
||||
relative_urls=self.settings.get('RELATIVE_URLS'))
|
||||
relative_urls=self.settings['RELATIVE_URLS'])
|
||||
|
||||
# to minimize the number of relative path stuff modification
|
||||
# in writer, articles pass first
|
||||
|
|
@ -546,7 +546,7 @@ class PagesGenerator(Generator):
|
|||
self.hidden_translations, self.hidden_pages):
|
||||
writer.write_file(page.save_as, self.get_template(page.template),
|
||||
self.context, page=page,
|
||||
relative_urls=self.settings.get('RELATIVE_URLS'))
|
||||
relative_urls=self.settings['RELATIVE_URLS'])
|
||||
|
||||
|
||||
class StaticGenerator(Generator):
|
||||
|
|
@ -613,14 +613,8 @@ class PdfGenerator(Generator):
|
|||
super(PdfGenerator, self).__init__(*args, **kwargs)
|
||||
try:
|
||||
from rst2pdf.createpdf import RstToPdf
|
||||
if 'PDF_STYLE_PATH' in self.settings.keys():
|
||||
pdf_style_path = os.path.join(self.settings['PDF_STYLE_PATH'])
|
||||
else:
|
||||
pdf_style_path = ''
|
||||
|
||||
if 'PDF_STYLE' in self.settings.keys():
|
||||
pdf_style = self.settings.get('PDF_STYLE', 'twelvepoint')
|
||||
|
||||
pdf_style_path = os.path.join(self.settings['PDF_STYLE_PATH'])
|
||||
pdf_style = self.settings['PDF_STYLE']
|
||||
self.pdfcreator = RstToPdf(breakside=0,
|
||||
stylesheets=[pdf_style],
|
||||
style_path=[pdf_style_path])
|
||||
|
|
|
|||
|
|
@ -157,12 +157,10 @@ class RstReader(Reader):
|
|||
class MarkdownReader(Reader):
|
||||
enabled = bool(Markdown)
|
||||
file_extensions = ['md', 'markdown', 'mkd', 'mdown']
|
||||
default_extensions = ['codehilite(css_class=highlight)', 'extra']
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(MarkdownReader, self).__init__(*args, **kwargs)
|
||||
self.extensions = self.settings.get('MD_EXTENSIONS',
|
||||
self.default_extensions)
|
||||
self.extensions = self.settings['MD_EXTENSIONS']
|
||||
self.extensions.append('meta')
|
||||
self._md = Markdown(extensions=self.extensions)
|
||||
|
||||
|
|
@ -309,7 +307,7 @@ class AsciiDocReader(Reader):
|
|||
content = StringIO()
|
||||
ad = AsciiDocAPI()
|
||||
|
||||
options = self.settings.get('ASCIIDOC_OPTIONS', [])
|
||||
options = self.settings['ASCIIDOC_OPTIONS']
|
||||
if isinstance(options, (str, unicode)):
|
||||
options = [m.strip() for m in options.split(',')]
|
||||
options = self.default_options + options
|
||||
|
|
@ -362,7 +360,7 @@ def read_file(path, fmt=None, settings=None):
|
|||
metadata.update(reader_metadata)
|
||||
|
||||
# eventually filter the content with typogrify if asked so
|
||||
if content and settings and settings.get('TYPOGRIFY'):
|
||||
if content and settings and settings['TYPOGRIFY']:
|
||||
from typogrify.filters import typogrify
|
||||
content = typogrify(content)
|
||||
metadata['title'] = typogrify(metadata['title'])
|
||||
|
|
|
|||
|
|
@ -64,6 +64,8 @@ DEFAULT_CONFIG = {
|
|||
'PAGE_LANG_SAVE_AS': os.path.join('pages', '{slug}-{lang}.html'),
|
||||
'STATIC_URL': '{path}',
|
||||
'STATIC_SAVE_AS': '{path}',
|
||||
'PDF_STYLE_PATH': '',
|
||||
'PDF_STYLE': 'twelvepoint',
|
||||
'CATEGORY_URL': 'category/{slug}.html',
|
||||
'CATEGORY_SAVE_AS': os.path.join('category', '{slug}.html'),
|
||||
'TAG_URL': 'tag/{slug}.html',
|
||||
|
|
@ -83,7 +85,10 @@ DEFAULT_CONFIG = {
|
|||
'PELICAN_CLASS': 'pelican.Pelican',
|
||||
'DEFAULT_DATE_FORMAT': '%a %d %B %Y',
|
||||
'DATE_FORMATS': {},
|
||||
'ASCIIDOC_OPTIONS': [],
|
||||
'MD_EXTENSIONS': ['codehilite(css_class=highlight)', 'extra'],
|
||||
'JINJA_EXTENSIONS': [],
|
||||
'JINJA_FILTERS': {},
|
||||
'LOCALE': [], # defaults to user locale
|
||||
'DEFAULT_PAGINATION': False,
|
||||
'DEFAULT_ORPHANS': 0,
|
||||
|
|
|
|||
|
|
@ -53,16 +53,16 @@ class TestArticlesGenerator(unittest.TestCase):
|
|||
|
||||
def test_generate_feeds(self):
|
||||
settings = get_settings()
|
||||
generator = ArticlesGenerator(settings,
|
||||
{'FEED_ALL_ATOM': settings['FEED_ALL_ATOM']}, None,
|
||||
generator = ArticlesGenerator(settings, settings, None,
|
||||
settings['THEME'], None, settings['MARKUP'])
|
||||
writer = MagicMock()
|
||||
generator.generate_feeds(writer)
|
||||
writer.write_feed.assert_called_with([], settings,
|
||||
'feeds/all.atom.xml')
|
||||
|
||||
generator = ArticlesGenerator(settings, {'FEED_ALL_ATOM': None}, None,
|
||||
settings['THEME'], None, None)
|
||||
generator = ArticlesGenerator(
|
||||
settings, get_settings(FEED_ALL_ATOM=None), None,
|
||||
settings['THEME'], None, None)
|
||||
writer = MagicMock()
|
||||
generator.generate_feeds(writer)
|
||||
self.assertFalse(writer.write_feed.called)
|
||||
|
|
|
|||
|
|
@ -85,7 +85,7 @@ class RstReaderTest(ReaderTest):
|
|||
|
||||
def test_article_metadata_key_lowercase(self):
|
||||
# Keys of metadata should be lowercase.
|
||||
reader = readers.RstReader({})
|
||||
reader = readers.RstReader(settings=get_settings())
|
||||
content, metadata = reader.read(
|
||||
_path('article_with_uppercase_metadata.rst'))
|
||||
|
||||
|
|
@ -121,7 +121,7 @@ class MdReaderTest(ReaderTest):
|
|||
|
||||
@unittest.skipUnless(readers.Markdown, "markdown isn't installed")
|
||||
def test_article_with_metadata(self):
|
||||
reader = readers.MarkdownReader({})
|
||||
reader = readers.MarkdownReader(settings=get_settings())
|
||||
content, metadata = reader.read(
|
||||
_path('article_with_md_extension.md'))
|
||||
expected = {
|
||||
|
|
@ -150,7 +150,7 @@ class MdReaderTest(ReaderTest):
|
|||
|
||||
@unittest.skipUnless(readers.Markdown, "markdown isn't installed")
|
||||
def test_article_with_footnote(self):
|
||||
reader = readers.MarkdownReader({})
|
||||
reader = readers.MarkdownReader(settings=get_settings())
|
||||
content, metadata = reader.read(
|
||||
_path('article_with_markdown_and_footnote.md'))
|
||||
expected_content = (
|
||||
|
|
@ -186,7 +186,7 @@ class MdReaderTest(ReaderTest):
|
|||
|
||||
@unittest.skipUnless(readers.Markdown, "markdown isn't installed")
|
||||
def test_article_with_file_extensions(self):
|
||||
reader = readers.MarkdownReader({})
|
||||
reader = readers.MarkdownReader(settings=get_settings())
|
||||
# test to ensure the md file extension is being processed by the
|
||||
# correct reader
|
||||
content, metadata = reader.read(
|
||||
|
|
|
|||
|
|
@ -155,10 +155,10 @@ class Writer(object):
|
|||
for key in paginated.keys():
|
||||
object_list = paginated[key]
|
||||
|
||||
if self.settings.get('DEFAULT_PAGINATION'):
|
||||
if self.settings['DEFAULT_PAGINATION']:
|
||||
paginators[key] = Paginator(object_list,
|
||||
self.settings.get('DEFAULT_PAGINATION'),
|
||||
self.settings.get('DEFAULT_ORPHANS'))
|
||||
self.settings['DEFAULT_PAGINATION'],
|
||||
self.settings['DEFAULT_ORPHANS'])
|
||||
else:
|
||||
paginators[key] = Paginator(object_list, len(object_list))
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue