summaryrefslogtreecommitdiff
path: root/sphinx/quickstart.py
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2016-11-02 11:11:15 +0900
committerTakeshi KOMIYA <i.tkomiya@gmail.com>2016-11-02 11:11:15 +0900
commitae1f523d52cc42d4836e1408846d4b18434b1f3a (patch)
tree34ac6faccf35cc00b6e7766e3c5731430326d530 /sphinx/quickstart.py
parenta759e5eae78e7cca6beffe9313357f1dd8cd4338 (diff)
downloadsphinx-git-ae1f523d52cc42d4836e1408846d4b18434b1f3a.tar.gz
Add ``--extensions`` to ``sphinx-quickstart`` to support enable arbitary extensions from command line (ref: #2904)
Diffstat (limited to 'sphinx/quickstart.py')
-rw-r--r--sphinx/quickstart.py23
1 files changed, 15 insertions, 8 deletions
diff --git a/sphinx/quickstart.py b/sphinx/quickstart.py
index 61abbb092..00449b988 100644
--- a/sphinx/quickstart.py
+++ b/sphinx/quickstart.py
@@ -388,14 +388,11 @@ def generate(d, overwrite=True, silent=False, templatedir=None):
d['project_manpage'] = d['project_fn'].lower()
d['now'] = time.asctime()
d['project_underline'] = column_width(d['project']) * '='
- extensions = (',\n' + indent).join(
- repr('sphinx.ext.' + name)
- for name in EXTENSIONS
- if d.get('ext_' + name))
- if extensions:
- d['extensions'] = '\n' + indent + extensions + ',\n'
- else:
- d['extensions'] = extensions
+ d.setdefault('extensions', [])
+ for name in EXTENSIONS:
+ if d.get('ext_' + name):
+ d['extensions'].append('sphinx.ext.' + name)
+ d['extensions'] = (',\n' + indent).join(repr(name) for name in d['extensions'])
d['copyright'] = time.strftime('%Y') + ', ' + d['author']
d['author_texescaped'] = text_type(d['author']).\
translate(texescape.tex_escape_map)
@@ -581,6 +578,8 @@ def main(argv=sys.argv):
group.add_option('--ext-' + ext, action='store_true',
dest='ext_' + ext, default=False,
help='enable %s extension' % ext)
+ group.add_option('--extensions', metavar='EXTENSIONS', dest='extensions',
+ action='append', help='enable extensions')
group = parser.add_option_group('Makefile and Batchfile creation')
group.add_option('--makefile', action='store_true', dest='makefile',
@@ -659,6 +658,14 @@ def main(argv=sys.argv):
if isinstance(value, binary_type):
d[key] = term_decode(value)
+ # parse extensions list
+ d.setdefault('extensions', [])
+ for ext in d['extensions'][:]:
+ if ',' in ext:
+ d['extensions'].remove(ext)
+ for modname in ext.split(','):
+ d['extensions'].append(modname)
+
for variable in d.get('variables', []):
try:
name, value = variable.split('=')