2016-07-15 21 views
1

Beitrag Python Sphinx referencing long names zur Verfügung gestellt eine Antwort, die sehr nahe war, was ich in Bezug auf Substitutionsrichtlinien für lange Klassennamen suchte.Python Sphinx/Rest Substitution für lange Namen zu definieren Substitutionsregel in der gleichen Quelldatei

In dem Beispiel, das bereitgestellt wird, befindet sich die Definition für Ersetzungsregel jedoch in demselben Pydoc-Block. Ich habe gehofft, so etwas zu tun:

"""define all rst links/substitutions used in this file 
.. |ReallyLongExampleClassName| replace:: :class:`.ReallyLongExampleClassName` 
.. |AnotherExampleClassName| replace:: :class:`.AnotherExampleClassName` 
""" 

# more code 
# more code 


def exampleFunction(): 
    '''Here is an example docstring referencing another 
    |ReallyLongExampleClassName| 

    # define function 

Da jede Datei in Frage spezifisch ist, die Verwendung des rst_epilog nicht sehr gut verlaufen. Ist das überhaupt möglich?

Antwort

0

Sie können dies mit der Variablen in Ihrer conf.py Datei tun. Dies wird gerade von rst_epilog genommen:

rst_epilog

Eine Reihe von reStructuredText, die am Ende jeder Quelldatei aufgenommen werden, die gelesen wird. Dies ist der richtige Ort, um Substitutionen hinzuzufügen, die in jeder Datei verfügbar sein sollten. Ein Beispiel:

rst_epilog = """ 
.. |psf| replace:: Python Software Foundation 
""" 

Aber Sie sagen, dass rst_epilog nicht eine gute Passform für Ihren Anwendungsfall ist. Vielleicht ist die erste include directive ein besserer Ansatz? Sie können Ihre häufig verwendeten Ersetzungen in ein einziges Dokument einfügen und in die Dokumente einfügen, in denen Sie sie verwenden müssen.

+0

Da es in jeder Quelldatei eine große Eindeutigkeit gibt, was die benötigten Links betrifft, funktioniert der rst_epilog in unserem Fall nicht so gut. Auch unsere pydoc Generation Arbeit wird hinter den Kulissen getan. Die Mitwirkenden an unserem lib-Set müssen sich nicht viel darum kümmern, wie es gemacht wird, sie müssen nur ihre pydocs entsprechend formatieren. Dies ist im Geiste der Versuch, die Dinge für sie einfach zu halten, und als solche, stellen wir keine der pydoc Config zu den Standard-Beitragszahler. – marco

+0

Vielleicht ist die erste Include-Richtlinie eine bessere Wahl. Ich habe meine Antwort mit diesem Vorschlag aktualisiert. – Phil

+0

Danke, ich habe mir das angesehen, aber das bedeutet, dass der Benutzer zusätzliche Dateien zur Unterstützung der Dokumentation hinzufügen muss. Ich hatte gehofft, dass ich in irgendeiner Form in der ersten Reihe bin, aber das ist vielleicht nicht möglich. – marco