There was several issues here:
- `self.extensions` was adding 'meta' multiple times (ref #1058)
- `self.extensions` was keeping a reference to `self.settings['MD_EXTENSIONS']`,
so adding 'meta' to it.
- the `%s_EXTENSIONS` block coming after, it was overriding `self.extensions`
with `self.settings['EXTENSIONS']` (while it was a reference, it was working,
but ...). As this is currently used only for Mardown, the simplest solution is
to remove this, and let each reader manage its `_EXTENSIONS` setting.
If more than one path is defined in THEME_STATIC_PATHS, the theme's
static directory in output is deleted and replaced by the following
path's files.
Using `shutil.rmtree` to remove the entire destination tree if overwrite
is `True` assumes that we didn't want anything at all that was there. We
should recurse through the directory and their subdirs instead, leaving
things put there by the previous path where they were.
I lazily copied almost verbatim the solution for recursively copying a
diectory from http://stackoverflow.com/a/1994840.
The reason for this is patch is that without it, my plugin is broken! It
also makes my code a lot less crazy:
a83f066
`get_instance()` returns two values. Old code, instead of unpacking two
values in two variables, placed the tuple in a single variable
`pelican`.
Later in the same block when `pelican.run()` was called, it resulted in
error.
```
-> Modified: content, theme, settings. re-generating...
CRITICAL: ("'tuple' object has no attribute 'run'",)
CRITICAL: 'tuple' object has no attribute 'run'
Traceback (most recent call last):
File "/Users/talha/Repos/VirtualEnvs/pelican-dev/bin/pelican", line 8,
in <module>
load_entry_point('pelican==3.3', 'console_scripts', 'pelican')()
File
"/Users/talha/Repos/VirtualEnvs/pelican-dev/lib/python2.7/site-packages/pelican-3.3-py2.7.egg/pelican/__init__.py",
line 353, in main pelican.run()
```
Either the returned value should be unpacked properly or
`pelican[0].run` should be called.
The latest version of pip (1.4) no longer installs pre-release versions
(alpha, beta, etc.) by default. Because pytz uses an unorthodox version
number scheme, pip thinks it's a pre-release and skips it. This
change to setup.py should alleviate the problem until it is otherwise
resolved.