I've got the following in conf.py
:
def setup(app):
app.add_config_value('base_url','http://localhost:2000', True)
How do I get this into my .rst files? I wrote this:
:base_url:/my_app/api/application/
But it only prints :base_url:
instead of the actual URL.
How do I get the actual config value to be emitted?
The default configuration file is called sphinx. conf , usually located in /etc/sphinxsearch (Debian/Ubuntu), /etc/sphinx/sphinx. conf.
The configuration directory must contain a file named conf.py . This file (containing Python code) is called the “build configuration file” and contains (almost) all configuration needed to customize Sphinx input and output behavior.
Ah hah!
Take a look at the sphinx.ext.extlinks module.
So I have code in my conf.py that does this:
extlinks = {'api_url' : (settings.BASE_URL + '%s', settings.BASE_URL)}
And in my .rst file, I have this:
:api_url:`/myapp/api/application/`
which produces the nicely formatted link as such:
http://localhost:8000/myapp/api/application/
For the substitution of links extlinks is fine, for including arbitrary config values as asked in your question you can use rst_epilog for substitutions (or rst_prolog for text, that should be added on top of your .rst files):
In your conf.py:
my_config_value = 42
rst_epilog = '.. |my_conf_val| replace:: %d' % my_config_value
In your .rst source:
My config value is |my_conf_val|!
In your output:
My config value is 42!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With