Source code for xanadu_sphinx_theme.directives.related_demo
"""This module implements the ``related-demo`` reST directive."""
from inspect import cleandoc
from docutils import nodes
from docutils.parsers.rst import Directive
TEMPLATE = cleandoc(
"""
<script type="text/javascript">
var related_tutorials = [{urls}];
var related_tutorials_titles = {link_text};
</script>
"""
)
[docs]class RelatedDemoDirective(Directive):
"""Creates a related demo and adds it to the sidebar."""
required_arguments = 0
optional_arguments = 0
final_argument_whitespace = False
has_content = True
add_index = False
[docs] def run(self):
urls = [f'"{u.split(" ")[0]}.html"' for u in list(self.content)]
link_text = [" ".join(u.split(" ")[1:]) for u in list(self.content)]
urls = ", ".join(urls)
html = TEMPLATE.format(urls=urls, link_text=link_text)
return [nodes.raw(text=html, format="html")]
_modules/xanadu_sphinx_theme/directives/related_demo
Download Python script
Download Notebook
View on GitHub