mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-12-24 18:53:51 +08:00
122 lines
4.6 KiB
HTML
122 lines
4.6 KiB
HTML
{% 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" 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>
|
|
{%- 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>
|
|
{% endblock %}
|