Render sidebar dynamically with js

This commit is contained in:
Rochet2
2021-05-27 00:26:09 +03:00
parent c97dd03d61
commit 9413bee27a
3 changed files with 21 additions and 3 deletions

View File

@@ -160,10 +160,14 @@ if __name__ == '__main__':
# Make a folder for the class.
os.mkdir('build/' + class_.name)
index_path = '{}/index.html'.format(class_.name)
sidebar_path = '{}/sidebar.js'.format(class_.name)
# Render the class's index page.
render('class.html', index_path, level=1, classes=classes, current_class=class_)
# Render the class's sidebar script.
render('sidebar.js', sidebar_path, level=1, classes=classes, current_class=class_)
# Render each method's page.
for method in class_.methods:
method_path = '{}/{}.html'.format(class_.name, method.name)

View File

@@ -23,9 +23,18 @@
{% block sidebar %}
<h2>{{ current_class.name }} Methods</h2>
{%- for method in current_class.methods %}
<a class="fn {{ 'current' if method == current_method }}" href="{{ root(current_class.name + '/' + method.name + '.html') }}">{{ method.name }}</a>
{%- endfor %}
<script src="sidebar.js"></script>
<script>
// Highlight current method by adding "current" class to it
var element = document.getElementById("{{ current_class.name + ':' + current_method.name }}");
if (element) {
var classname = "current";
arr = element.className.split(" ");
if (arr.indexOf(classname) == -1) {
element.className += " " + classname;
}
}
</script>
{% endblock %}

View File

@@ -0,0 +1,5 @@
document.write(`
{%- for method in current_class.methods %}
<a id="{{ current_class.name + ':' + method.name }}" class="fn" href="{{ root(current_class.name + '/' + method.name + '.html') }}">{{ method.name }}</a>
{%- endfor %}
`);