diff --git a/mkdocs/build.py b/mkdocs/build.py index 40985488..38d83e5b 100644 --- a/mkdocs/build.py +++ b/mkdocs/build.py @@ -103,6 +103,12 @@ def get_context(page, content, nav, toc, meta, config): else: site_favicon = None + if config['extra_javascript']: + config['extra_javascript'] = utils.create_media_urls(nav=nav, url_list=config['extra_javascript']) + + if config['extra_css']: + config['extra_css'] = utils.create_media_urls(nav=nav, url_list=config['extra_css']) + return { 'site_name': site_name, 'site_author': config['site_author'], diff --git a/mkdocs/test.py b/mkdocs/test.py index 27241ae8..f19348f8 100755 --- a/mkdocs/test.py +++ b/mkdocs/test.py @@ -105,6 +105,23 @@ class UtilsTests(unittest.TestCase): is_html = utils.is_html_file(path) self.assertEqual(is_html, expected_result) + def test_create_media_urls(self): + pages = [ + ('index.md', 'Home'), + ('about.md', 'About') + ] + expected_results = { + 'https://media.cdn.org/jquery.js': 'https://media.cdn.org/jquery.js', + 'http://media.cdn.org/jquery.js': 'http://media.cdn.org/jquery.js', + '//media.cdn.org/jquery.js': '//media.cdn.org/jquery.js', + 'media.cdn.org/jquery.js': './media.cdn.org/jquery.js', + 'local/file/jquery.js': './local/file/jquery.js', + } + site_navigation = nav.SiteNavigation(pages) + for path, expected_result in expected_results.items(): + urls = utils.create_media_urls(site_navigation, [path]) + self.assertEqual(urls[0], expected_result) + class TableOfContentsTests(unittest.TestCase): def markdown_to_toc(self, markdown_source): diff --git a/mkdocs/themes/mkdocs/base.html b/mkdocs/themes/mkdocs/base.html index 97902fe9..acaeb1cc 100644 --- a/mkdocs/themes/mkdocs/base.html +++ b/mkdocs/themes/mkdocs/base.html @@ -16,7 +16,7 @@ - {% for path in extra_css %}{% endfor %} + {% for path in extra_css %}{% endfor %}