Sphinx hat jetzt eine %code% Direktive für Literal Includes:
Sie könnten die sphinx-Anweisung LiteralInclude in sphinx / directivities / code.py
installierenDies gibt zum Beispiel eine neue Zeilenbetonungsoption in der literalinclude-Anweisung, die Sie folgendermaßen verwenden können:
%Vor%wo Line-emphasis eine Startlinie ist, Endzeile relativ zum eingeschlossenen Code, erste Zeile ist 1.
Mit sphinx 0.6.5 unter pypi.python.org/pypi/Sphinx/0.6.5 als Basis ist ein quicky-gepatchtes code.py vorhanden: Ссылка
Beachten Sie, dass das Folgende äquivalent wäre:
Mit der Standard-Sphinx (so ziemlich das, was S.Lott vorgeschlagen hat):
%Vor%... und benutze die gepatchte Sphinx:
%Vor%Es kann also nicht genau sein, wonach Sie suchen. Der Patch erstellt einen neuen Knoten für jeden markierten oder nicht markierten Abschnitt des Codes. Jedes von diesen wird von Sphinx als ein getrenntes & lt; div & gt; und & lt; vor & gt; Sektion. Um darüber hinaus zu gehen, möchten Sie vielleicht ein Stylesheet erstellen, das die Zeilen mit Betonung besser herauszieht. Weitere Hacks müssen möglicherweise tief in die Eingeweide von Sphinx und Pygments gehen, um einen nahtlos hervorgehobenen Stil direkt dort erzeugen zu lassen: nicht trivial.
/ HTH
In einigen Sphinx-Dokumenten schreibe ich Code-Beispiele aus einer Zusatzdatei wie folgt:
%Vor%Dieses spezielle Dokument ist ein Tutorial, in dem die Klassen Schritt für Schritt aufgebaut werden. Ich möchte die gesamte Klasse oder eine einzelne Methode einbeziehen und nur die für diesen Abschnitt interessanten Zeilen hervorheben. Auf diese Weise bleibt der Kontext erhalten, aber die interessanten Teile sind auf einen Blick ersichtlich. Im Moment habe ich mich nur auf Zeilennummern im Text bezogen, was in Ordnung ist, aber alles andere als ideal.
Wenn ich mir die Dokumente und den Code für Sphinx und Segmente anschaue, finde ich keinen offensichtlichen Weg, dies zu tun. Ich bin nicht dagegen, sie zu flicken oder etwas in %code% zu tun, aber ich fragte mich, ob jemand das gelöst hat.