Allowed additional languages in API documentation

This commit is contained in:
Georg Baumann 2017-07-07 21:11:12 +02:00 committed by Carlton Gibson
parent 78367ba102
commit 28e8fe4c16
8 changed files with 23 additions and 15 deletions

View File

@ -11,8 +11,11 @@ def get_docs_view(
title=None, description=None, schema_url=None, public=True, title=None, description=None, schema_url=None, public=True,
patterns=None, generator_class=SchemaGenerator, patterns=None, generator_class=SchemaGenerator,
authentication_classes=api_settings.DEFAULT_AUTHENTICATION_CLASSES, authentication_classes=api_settings.DEFAULT_AUTHENTICATION_CLASSES,
permission_classes=api_settings.DEFAULT_PERMISSION_CLASSES): permission_classes=api_settings.DEFAULT_PERMISSION_CLASSES,
renderer_classes = [DocumentationRenderer, CoreJSONRenderer] renderer_classes=None):
if renderer_classes is None:
renderer_classes = [DocumentationRenderer, CoreJSONRenderer]
return get_schema_view( return get_schema_view(
title=title, title=title,
@ -51,7 +54,8 @@ def include_docs_urls(
title=None, description=None, schema_url=None, public=True, title=None, description=None, schema_url=None, public=True,
patterns=None, generator_class=SchemaGenerator, patterns=None, generator_class=SchemaGenerator,
authentication_classes=api_settings.DEFAULT_AUTHENTICATION_CLASSES, authentication_classes=api_settings.DEFAULT_AUTHENTICATION_CLASSES,
permission_classes=api_settings.DEFAULT_PERMISSION_CLASSES): permission_classes=api_settings.DEFAULT_PERMISSION_CLASSES,
renderer_classes=None):
docs_view = get_docs_view( docs_view = get_docs_view(
title=title, title=title,
description=description, description=description,
@ -60,6 +64,7 @@ def include_docs_urls(
patterns=patterns, patterns=patterns,
generator_class=generator_class, generator_class=generator_class,
authentication_classes=authentication_classes, authentication_classes=authentication_classes,
renderer_classes=renderer_classes,
permission_classes=permission_classes, permission_classes=permission_classes,
) )
schema_js_view = get_schemajs_view( schema_js_view = get_schemajs_view(

View File

@ -830,6 +830,8 @@ class DocumentationRenderer(BaseRenderer):
return { return {
'document': data, 'document': data,
'langs': self.languages, 'langs': self.languages,
'lang_htmls': ["rest_framework/docs/langs/%s.html" % l for l in self.languages],
'lang_intro_htmls': ["rest_framework/docs/langs/%s-intro.html" % l for l in self.languages],
'code_style': pygments_css(self.code_style), 'code_style': pygments_css(self.code_style),
'request': request 'request': request
} }

View File

@ -8,9 +8,9 @@
{% endif %} {% endif %}
</div> </div>
<div class="col-md-6 intro-code"> <div class="col-md-6 intro-code">
{% if 'shell' in langs %}{% include "rest_framework/docs/langs/shell-intro.html" %}{% endif %} {% for html in lang_intro_htmls %}
{% if 'python' in langs %}{% include "rest_framework/docs/langs/python-intro.html" %}{% endif %} {% include html %}
{% if 'javascript' in langs %}{% include "rest_framework/docs/langs/javascript-intro.html" %}{% endif %} {% endfor %}
</div> </div>
</div> </div>
{% if document|data %} {% if document|data %}

View File

@ -51,6 +51,7 @@
$('#auth-control').children().removeClass('active'); $('#auth-control').children().removeClass('active');
$('#auth-control').find("[data-auth='session']").closest('li').addClass('active'); $('#auth-control').find("[data-auth='session']").closest('li').addClass('active');
{% endif %} {% endif %}
$('pre.highlight').filter('[data-language="{{ langs | first }}"]').removeClass('hide');
</script> </script>
</body> </body>
</html> </html>

View File

@ -1,3 +1,3 @@
{% load rest_framework %} {% load rest_framework %}
<pre class="highlight shell" data-language="shell"><code>{% code bash %}# Install the command line client <pre class="highlight shell hide" data-language="shell"><code>{% code bash %}# Install the command line client
$ pip install coreapi-cli{% endcode %}</code></pre> $ pip install coreapi-cli{% endcode %}</code></pre>

View File

@ -1,5 +1,5 @@
{% load rest_framework %} {% load rest_framework %}
<pre class="highlight shell" data-language="shell"><code>{% code bash %}# Load the schema document <pre class="highlight shell hide" data-language="shell"><code>{% code bash %}# Load the schema document
$ coreapi get {{ document.url }}{% if schema_format %} --format {{ schema_format }}{% endif %} $ coreapi get {{ document.url }}{% if schema_format %} --format {{ schema_format }}{% endif %}
# Interact with the API endpoint # Interact with the API endpoint

View File

@ -93,9 +93,9 @@
</div> </div>
<div class="col-md-6 code-samples"> <div class="col-md-6 code-samples">
{% if 'shell' in langs %}{% include "rest_framework/docs/langs/shell.html" %}{% endif %} {% for html in lang_htmls %}
{% if 'python' in langs %}{% include "rest_framework/docs/langs/python.html" %}{% endif %} {% include html %}
{% if 'javascript' in langs %}{% include "rest_framework/docs/langs/javascript.html" %}{% endif %} {% endfor %}
</div> </div>
</div> </div>

View File

@ -31,12 +31,12 @@
</ul> </ul>
<li data-toggle="collapse" data-target="#language-control" class="collapsed"> <li data-toggle="collapse" data-target="#language-control" class="collapsed">
<a><i class="fa fa-code fa-lg"></i> Source Code</a> <span id="selected-language">shell</span> <a><i class="fa fa-code fa-lg"></i> Source Code</a> <span id="selected-language">{{ langs | first }}</span>
</li> </li>
<ul class="sub-menu collapse out" id="language-control"> <ul class="sub-menu collapse out" id="language-control">
<li class="active"><a href="#" data-language="shell">shell</a></li> {% for lang in langs %}
<li><a href="#" data-language="javascript">javascript</a></li> <li{% if loop.first %} class="active"{% endif %}><a href="#" data-language="{{ lang }}">{{ lang }}</a></li>
<li><a href="#" data-language="python">python</a></li> {% endfor %}
</ul> </ul>
</ul> </ul>