Merge pull request #145 from d0ugal/template-override

Support multiple template directories
This commit is contained in:
Dougal Matthews
2014-10-10 15:37:09 +01:00
5 changed files with 19 additions and 7 deletions

View File

@@ -20,6 +20,10 @@ You can determine your currently installed version using `pip freeze`:
`mardown_extensions`. (#74)
* Added `mkdocs json` command to output your rendered
documentation as json files. (#128)
* Support multiple theme directories to allow replacement of
individual templates rather than copying the full theme. (#129)
* Bugfix: Fix issue rendering the table of contents with some
configs. (#146)
* Bugfix: Fix path for embeded images in sub pages. (#138)
* Bugfix: Fix `use_directory_urls` config behaviour. (#63)
* Bugfix: Add support for `extra_javascript` and `extra_css` in

View File

@@ -217,6 +217,7 @@ def build(config, live_server=False, dump_json=False):
if dump_json:
build_pages(config, dump_json=True)
else:
utils.copy_media_files(config['theme_dir'], config['site_dir'])
for theme_dir in config['theme_dir']:
utils.copy_media_files(theme_dir, config['site_dir'])
utils.copy_media_files(config['docs_dir'], config['site_dir'])
build_pages(config)

View File

@@ -117,9 +117,13 @@ def validate_config(user_config):
if config['extra_javascript'] is None:
config['extra_javascript'] = extra_javascript
if config['theme_dir'] is None:
package_dir = os.path.dirname(__file__)
config['theme_dir'] = os.path.join(package_dir, 'themes', config['theme'])
package_dir = os.path.dirname(__file__)
theme_dir = [os.path.join(package_dir, 'themes', config['theme'])]
if config['theme_dir'] is not None:
theme_dir.insert(0, config['theme_dir'])
config['theme_dir'] = theme_dir
if config['repo_url'] is not None and config['repo_name'] is None:
repo_host = urlparse(config['repo_url']).netloc.lower()

View File

@@ -86,7 +86,8 @@ def serve(config, options=None):
config_event_handler = ConfigEventHandler(options)
observer = observers.Observer()
observer.schedule(event_handler, config['docs_dir'], recursive=True)
observer.schedule(event_handler, config['theme_dir'], recursive=True)
for theme_dir in config['theme_dir']:
observer.schedule(event_handler, theme_dir, recursive=True)
observer.schedule(config_event_handler, '.')
observer.start()

View File

@@ -9,13 +9,15 @@ commands=
{envbindir}/nosetests --with-coverage --cover-package mkdocs --cover-html --cover-html-dir {envtmpdir}/coverage mkdocs/test.py
[testenv:docs]
usedevelop = True
commands=
{envbindir}/coverage run --source {envsitepackagesdir}/mkdocs {envbindir}/mkdocs build
{envbindir}/coverage run --source {toxinidir}/mkdocs {envbindir}/mkdocs build
coverage report -m
[testenv:json]
usedevelop = True
commands=
{envbindir}/coverage run --source {envsitepackagesdir}/mkdocs {envbindir}/mkdocs json
{envbindir}/coverage run --source {toxinidir}/mkdocs {envbindir}/mkdocs json
coverage report -m
[testenv:flake8]