mirror of
https://github.com/mkdocs/mkdocs.git
synced 2026-03-27 09:58:31 +07:00
Merge pull request #92 from ericholscher/master
Detect absolute URL’s in the extra_* path.
This commit is contained in:
@@ -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'],
|
||||
|
||||
@@ -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):
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
<link href="{{ base_url }}/css/font-awesome-4.0.3.css" rel="stylesheet">
|
||||
<link href="{{ base_url }}/css/prettify-1.0.css" rel="stylesheet">
|
||||
<link href="{{ base_url }}/css/base.css" rel="stylesheet">
|
||||
{% for path in extra_css %}<link href="{{ base_url }}/{{ path }}" rel="stylesheet">{% endfor %}
|
||||
{% for path in extra_css %}<link href="{{ path }}" rel="stylesheet">{% endfor %}
|
||||
|
||||
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!--[if lt IE 9]>
|
||||
@@ -60,6 +60,6 @@
|
||||
<script src="{{ base_url }}/js/bootstrap-3.0.3.min.js"></script>
|
||||
<script src="{{ base_url }}/js/prettify-1.0.min.js"></script>
|
||||
<script src="{{ base_url }}/js/base.js"></script>
|
||||
{% for path in extra_javascript %}<script src="{{ base_url }}/{{ path }}"></script>{% endfor %}
|
||||
{% for path in extra_javascript %}<script src="{{ path }}"></script>{% endfor %}
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -11,13 +11,12 @@
|
||||
|
||||
<link rel="stylesheet" href="{{ base_url }}/css/theme.css" type="text/css" />
|
||||
{% for path in extra_css %}
|
||||
<link href="{{ base_url }}/{{ path }}" rel="stylesheet">
|
||||
<link href="{{ path }}" rel="stylesheet">
|
||||
{% endfor %}
|
||||
|
||||
<script type="text/javascript" src="{{ base_url }}/js/theme.js"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js"></script>
|
||||
{% for path in extra_javascript %}
|
||||
<script src="{{ base_url }}/{{ path }}"></script>
|
||||
<script src="{{ path }}"></script>
|
||||
{% endfor %}
|
||||
|
||||
<style>
|
||||
|
||||
@@ -10,6 +10,8 @@ and structure of the site and pages in the site.
|
||||
import os
|
||||
import shutil
|
||||
|
||||
from mkdocs.compat import urlparse
|
||||
|
||||
|
||||
def copy_file(source_path, output_path):
|
||||
"""
|
||||
@@ -128,3 +130,19 @@ def is_html_file(path):
|
||||
'.html',
|
||||
'.htm',
|
||||
]
|
||||
|
||||
|
||||
def create_media_urls(nav, url_list):
|
||||
"""
|
||||
Return a list of URLs that have been processed correctly for inclusion in a page.
|
||||
"""
|
||||
final_urls = []
|
||||
for url in url_list:
|
||||
# Allow links to fully qualified URL's
|
||||
parsed = urlparse(url)
|
||||
if parsed.netloc:
|
||||
final_urls.append(url)
|
||||
else:
|
||||
relative_url = '%s/%s' % (nav.url_context.make_relative('/'), url)
|
||||
final_urls.append(relative_url)
|
||||
return final_urls
|
||||
|
||||
Reference in New Issue
Block a user