{% extends "basic/layout.html" %} {# Remove broken "genindex" link - unfortunately this takes with it the acceptable "next" and "previous" links, but they're not super necessary. #} {% set rellinks = [] %} {% block rootrellink %} <li><img src="{{ pathto('_static/' + theme_root_icon, 1) }}" alt="" style="width: 80px; height: 80px; vertical-align: middle; margin-top: -1px"/></li> <li><a href="{{theme_root_url}}">{{theme_root_name}}</a>{{ reldelim1 }}</li> {% if theme_root_include_title %} <a href="{{ pathto('index') }}">{{ shorttitle }}</a>{{ reldelim1 }} {% endif %} {% endblock %} {%- macro searchbox() %} {# modified from sphinx/themes/basic/searchbox.html #} {%- if builder != "htmlhelp" %} <div class="inline-search" style="display: none" role="search"> <form class="inline-search" action="{{ pathto('search') }}" method="get"> <input placeholder="{{ _('Quick search') }}" type="text" name="q" /> <input type="submit" value="{{ _('Go') }}" /> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> <script type="text/javascript">$('.inline-search').show(0);</script> {%- endif %} {%- endmacro %} {% block header %}<div id="fmain">{% endblock %} {% block relbar1 %} {% if builder != 'qthelp' %} {{ relbar() }} {% endif %} {% endblock %} {% block relbar2 %} {% if builder != 'qthelp' %} {{ relbar() }} {% endif %} {% endblock %} {% block relbaritems %} {%- if pagename != "search" and builder != "singlehtml" and builder != "htmlhelp" %} <li class="right"> {{ searchbox() }} </li> {%- endif %} {# This is hidden by default, unhidden by our global shared script. #} <div id="old-docs-notice" style="display: none"> This documents an old version of fish. <a href="{{ pathto('../current/', 1) }}">See the latest release.</a> </div> {% endblock %} {# The sidebar goes into the *document* block, so it ends up in the document *div* so it doesn't go over the footer #} {% block document %}{{ sidebar() }}{{ super() }}{% endblock %} {% block sidebar2 %} {% endblock %} {% block extrahead %} <link rel="shortcut icon" type="image/png" href="{{ pathto('_static/' + theme_root_icon, 1) }}" /> {{ super() }} {% endblock %} {% block footer %} <div class="footer"> © {% trans %}Copyright{% endtrans %} {{ copyright|e }}. <br /> {%- if last_updated %} {% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %} {%- endif %} {% if theme_issues_url %}{% trans pathto_bugs=theme_issues_url %}<a href="{{ theme_issues_url }}">Found a bug</a>?{% endtrans %}{% endif %} <br /> {% trans sphinx_version=sphinx_version|e %}Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> {{ sphinx_version }}.{% endtrans %} </div> </div> <script type="text/javascript"> FISH_DOCS_VERSION = "{{ version }}"; function copy_to_clipboard(it) { // Find the pre tag we're interested in. var pre = it.target; while (pre.tagName != "PRE") pre = pre.parentNode; var txt = ""; // Cheesy: If we have a prompt, // we only copy prompted lines, // by splitting and matching and stuff if (pre.querySelector('span.gp')) { var texts= []; for (var line of pre.innerText.split('\n')) { if (line.match(/^>_?.*/)) { texts.push(line.replace(/^>_?/, "")); } } txt = texts.join("\n"); } else { // Even cheesier: If we don't have a prompt, we remove the button text from the end. var txt = pre.innerText.substring(0, pre.innerText.length - it.target.innerText.length).trim(); } navigator.clipboard.writeText(txt).then(function() { // Success - set the text to indicate it, // then set it back after 2 seconds. var span = pre.querySelector("button span"); if (span) { var oldText = span.innerText; span.innerText = "COPIED!"; setTimeout(function() { span.innerText = oldText; }, 2000); } }, function() { }); } (function () { // Add copy buttons to all the codeblocks. var codeblocks = document.querySelectorAll('div > pre'); var button = document.createElement('button'); var span = document.createElement('span'); span.innerText = "COPY"; button.appendChild(span); for (var i of codeblocks) { var newButton = button.cloneNode(true); newButton.addEventListener('click', copy_to_clipboard); i.appendChild(newButton); } })(); </script> <script defer type="text/javascript" src="/docs/shared/script.js"></script> {% endblock %}