From 8f3c2b0b275c03824d0ce018b42e91061ff61639 Mon Sep 17 00:00:00 2001 From: Dougal Matthews Date: Wed, 1 Oct 2014 21:51:13 +0100 Subject: [PATCH 1/3] Support multiple template directories theme_dir is now a list which contains the user provided directory if given plus the packaged theme directory. Fixes #129 --- mkdocs/build.py | 3 ++- mkdocs/config.py | 10 +++++++--- mkdocs/serve.py | 3 ++- 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/mkdocs/build.py b/mkdocs/build.py index b0430e33..3869eb31 100644 --- a/mkdocs/build.py +++ b/mkdocs/build.py @@ -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) diff --git a/mkdocs/config.py b/mkdocs/config.py index 40781e65..c50aae7e 100644 --- a/mkdocs/config.py +++ b/mkdocs/config.py @@ -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() diff --git a/mkdocs/serve.py b/mkdocs/serve.py index 55ebf6f9..a98d05bb 100644 --- a/mkdocs/serve.py +++ b/mkdocs/serve.py @@ -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() From 3ac7ae00bc2aaece3433869d21206502feb3c3b8 Mon Sep 17 00:00:00 2001 From: Dougal Matthews Date: Thu, 9 Oct 2014 08:12:03 +0100 Subject: [PATCH 2/3] Improve the tox coverage output --- tox.ini | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tox.ini b/tox.ini index e5fc5ab7..26ba72d0 100644 --- a/tox.ini +++ b/tox.ini @@ -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] From 45e0def4b0016b99c3bc8bb35703d77030b52784 Mon Sep 17 00:00:00 2001 From: Dougal Matthews Date: Sat, 11 Oct 2014 12:13:00 +0100 Subject: [PATCH 3/3] Updated notes --- docs/about/release-notes.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/about/release-notes.md b/docs/about/release-notes.md index 084225eb..ab7f7c42 100644 --- a/docs/about/release-notes.md +++ b/docs/about/release-notes.md @@ -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