mirror of
https://github.com/getpelican/pelican.git
synced 2025-10-15 20:28:56 +02:00
Add {PAGE,ARTICLE}_PATHS to {ARTICLE,PAGE}_EXCLUDES automatically
This makes it easier for someone to change PAGE_PATHS without the need to change ARTICLE_EXCLUDES accordingly.
This commit is contained in:
parent
21882fd4a0
commit
6aa0e4346d
3 changed files with 22 additions and 5 deletions
|
|
@ -112,9 +112,11 @@ Setting name (followed by default value, if any)
|
|||
and content path is not specified via an argument to the ``pelican``
|
||||
command, Pelican will use the current working directory.
|
||||
``PAGE_PATHS = ['pages']`` A list of directories to look at for pages, relative to ``PATH``.
|
||||
``PAGE_EXCLUDES = ()`` A list of directories to exclude when looking for pages.
|
||||
``PAGE_EXCLUDES = []`` A list of directories to exclude when looking for pages in addition
|
||||
to ``ARTICLE_PATHS``.
|
||||
``ARTICLE_PATHS = ['']`` A list of directories to look at for articles, relative to ``PATH``.
|
||||
``ARTICLE_EXCLUDES = ('pages',)`` A list of directories to exclude when looking for articles.
|
||||
``ARTICLE_EXCLUDES = []`` A list of directories to exclude when looking for articles in addition
|
||||
to ``PAGE_PATHS``.
|
||||
``OUTPUT_SOURCES = False`` Set to True if you want to copy the articles and pages in their
|
||||
original format (e.g. Markdown or reStructuredText) to the
|
||||
specified ``OUTPUT_PATH``.
|
||||
|
|
|
|||
|
|
@ -30,9 +30,9 @@ DEFAULT_THEME = os.path.join(os.path.dirname(os.path.abspath(__file__)),
|
|||
DEFAULT_CONFIG = {
|
||||
'PATH': os.curdir,
|
||||
'ARTICLE_PATHS': [''],
|
||||
'ARTICLE_EXCLUDES': ('pages',),
|
||||
'ARTICLE_EXCLUDES': [],
|
||||
'PAGE_PATHS': ['pages'],
|
||||
'PAGE_EXCLUDES': (),
|
||||
'PAGE_EXCLUDES': [],
|
||||
'THEME': DEFAULT_THEME,
|
||||
'OUTPUT_PATH': 'output',
|
||||
'READERS': {},
|
||||
|
|
@ -348,6 +348,18 @@ def configure_settings(settings):
|
|||
% PATH_KEY)
|
||||
settings[PATH_KEY] = DEFAULT_CONFIG[PATH_KEY]
|
||||
|
||||
# Add {PAGE,ARTICLE}_PATHS to {ARTICLE,PAGE}_EXCLUDES
|
||||
mutually_exclusive = ('ARTICLE', 'PAGE')
|
||||
for type_1, type_2 in [mutually_exclusive, mutually_exclusive[::-1]]:
|
||||
try:
|
||||
includes = settings[type_1 + '_PATHS']
|
||||
excludes = settings[type_2 + '_EXCLUDES']
|
||||
for path in includes:
|
||||
if path not in excludes:
|
||||
excludes.append(path)
|
||||
except KeyError:
|
||||
continue # setting not specified, nothing to do
|
||||
|
||||
for old, new, doc in [
|
||||
('LESS_GENERATOR', 'the Webassets plugin', None),
|
||||
('FILES_TO_COPY', 'STATIC_PATHS and EXTRA_PATH_METADATA',
|
||||
|
|
|
|||
|
|
@ -43,7 +43,10 @@ class TestSettingsConfiguration(unittest.TestCase):
|
|||
# Providing no file should return the default values.
|
||||
settings = read_settings(None)
|
||||
expected = copy.deepcopy(DEFAULT_CONFIG)
|
||||
expected['FEED_DOMAIN'] = '' # Added by configure settings
|
||||
# Added by configure settings
|
||||
expected['FEED_DOMAIN'] = ''
|
||||
expected['ARTICLE_EXCLUDES'] = ['pages']
|
||||
expected['PAGE_EXCLUDES'] = ['']
|
||||
self.maxDiff = None
|
||||
self.assertDictEqual(settings, expected)
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue