Frage

In diesem REST -Beispiel, das von Sphinx gerendert werden soll, | yaco_url | wird nicht ersetzt, weil es in einem Code-Block ist:

.. |yaco_url| replace:: http://yaco.es/

You can use wget to download it:

.. code-block:: console

    $ wget |yaco_url|package.tar.gz

Ich frage mich, ob es einen Weg gibt, den Ersatz von | yaco_url | zu erzwingen Vor dem Rendern des Codeblocks.

War es hilfreich?

Lösung

Verwenden Sie die Anweisung "Parsed-Literal".

.. parsed-literal::

    ./home/user/somecommand-|version|

Quelle: https://groups.google.com/forum/?fromGroups=#!topic/Sphinx-dev/abzauicfo_8:

Andere Tipps

Fand eine bessere Lösung (meiner Meinung nach), die in anderen Richtlinien wie verwendet werden kann :samp: und könnte für zukünftige Leser nützlich sein.

config.py:

def ultimateReplace(app, docname, source):
    result = source[0]
    for key in app.config.ultimate_replacements:
        result = result.replace(key, app.config.ultimate_replacements[key])
    source[0] = result

ultimate_replacements = {
    "{TEST}" : "replaced"
}

def setup(app):
   app.add_config_value('ultimate_replacements', {}, True)
   app.connect('source-read', ultimateReplace)

Und diese Art von Markup:

.. http:get:: testing/replacement/{TEST}

Erzeugt richtig wie:

testing/replacement/replaced

Beachten Sie, dass, wenn dies verwendet wird, um ein Argument in der zu ersetzen :samp: Richtlinie, eine Doppelklammer { ist erforderlich.

:samp:`func({{TEST}})`.

Quelle: https://github.com/sphinx-doc/spinx/issues/4054

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top