Sfinks, reStructuredText Pokaż / Ukryj fragmenty kodu
Dokumentowałem pakiet oprogramowania używając Sphinx i reStructuredText.
W moich dokumentach są długie fragmenty kodu. Chcę mieć możliwość ich ukrycia jako domyślnego, z małym przyciskiem "Pokaż/Ukryj", który je rozszerzy ( przykład).
Czy jest na to standardowy sposób?
4 answers
Myślę, że najprostszym sposobem na to byłoby stworzenie niestandardowego motywu Sphinx, w którym mówisz niektórym elementom html, aby miały tę funkcjonalność. Trochę JQuery by się przydało.
Jeśli jednak chcesz mieć możliwość określenia tego w znacznikach reStructuredText, musisz albo
- dostać takie coś zawarte w samym Sfinksie lub
- zaimplementuj go w rozszerzeniu Sphinx / docutils...a następnie stworzyć motyw Sfinksa, który wiedział o tym funkcjonalność.
To byłoby trochę więcej pracy, ale dałoby większą elastyczność.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-16 12:37:18
Nie potrzebujesz niestandardowego motywu. Użyj wbudowanej dyrektywy container
, która pozwala na dodanie niestandardowych klas css do bloków i nadpisanie motywu existing, aby dodać trochę javascript, aby dodać funkcję Pokaż/Ukryj.
To jest _templates/page.html
:
{% extends "!page.html" %}
{% set css_files = css_files + ["_static/custom.css"] %}
{% block footer %}
<script type="text/javascript">
$(document).ready(function() {
$(".toggle > *").hide();
$(".toggle .header").show();
$(".toggle .header").click(function() {
$(this).parent().children().not(".header").toggle(400);
$(this).parent().children(".header").toggleClass("open");
})
});
</script>
{% endblock %}
To jest _static/custom.css
:
.toggle .header {
display: block;
clear: both;
}
.toggle .header:after {
content: " ▼";
}
.toggle .header.open:after {
content: " ▲";
}
Teraz możesz pokazać / ukryć blok kodu.
.. container:: toggle
.. container:: header
**Show/Hide Code**
.. code-block:: xml
:linenos:
from plone import api
...
Używam tutaj czegoś bardzo podobnego do ćwiczeń: https://training.plone.org/5/mastering_plone/about_mastering.html#exercises
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-22 14:52:54
Motyw cloud sphinx ma własną dyrektywę html-toggle
, która zapewnia przełączalne sekcje. Cytuję z ich strony :
Możesz oznaczyć sekcje za pomocą
.. rst-class:: html-toggle
, co spowoduje, że sekcja będzie domyślnie zwinięta pod html, z łączem przełączającym "Pokaż sekcję"po prawej stronie tytułu.
Tutaj {[4] } znajduje się link do ich testowej strony demonstracyjnej.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-09-12 16:49:18
Istnieje bardzo uproszczone rozszerzenie zapewniające dokładnie tę funkcję: https://github.com/scopatz/hiddencode
To działa raczej dobrze dla mnie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-09-11 23:25:37