123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- .. _context:
- ============
- HTML Context
- ============
- The following variables and functions are exposed to the `Sphinx HTML builder context <sphinx_context_>`_ in all versions.
- ``Version`` Objects
- ===================
- All versions will be exposed to the HTML context as ``Version`` objects with the following attributes:
- .. attribute:: name
- The branch or tag name.
- .. attribute:: url
- The URL to the current page in this version.
- .. attribute:: version
- The value of the ``version`` variable in ``conf.py``.
- .. attribute:: release
- The value of the ``release`` variable in ``conf.py``.
- .. attribute:: is_released
- ``True`` if this version matches the :ref:`configured <configuration>` ``smv_released_pattern`` regular expression, else ``False``.
- Versions
- ========
- The most important variable is ``versions``, which can be used to iterate over all found (and whitelisted) versions.
- .. attribute:: versions
- An iterable that yields all ``Version`` objects.
- .. code-block:: jinja
- <h3>Versions</h3>
- <ul>
- {%- for item in versions %}
- <li><a href="{{ item.url }}">{{ item.name }}</a></li>
- {%- endfor %}
- </ul>
- .. attribute:: versions.branches
- You can use the ``branches`` property of the ``versions`` iterable to get the ``Version`` objects for all branches.
- .. code-block:: jinja
- <h3>Branches</h3>
- <ul>
- {%- for item in versions.branches %}
- <li><a href="{{ item.url }}">{{ item.name }}</a></li>
- {%- endfor %}
- </ul>
- .. attribute:: versions.tags
- You can use the ``tags`` property of the ``versions`` iterable to get the ``Version`` objects for all tags.
- .. code-block:: jinja
- <h3>Tags</h3>
- <ul>
- {%- for item in versions.tags %}
- <li><a href="{{ item.url }}">{{ item.name }}</a></li>
- {%- endfor %}
- </ul>
- .. attribute:: versions.releases
- You can use the ``releases`` property of the ``versions`` iterable to get all ``Version`` objects where the ``ìs_released`` attribute is ``True``.
- This is determined by the ``smv_released_pattern`` in the :ref:`Configuration <configuration>`.
- .. code-block:: jinja
- <h3>Releases</h3>
- <ul>
- {%- for item in versions.releases %}
- <li><a href="{{ item.url }}">{{ item.name }}</a></li>
- {%- endfor %}
- </ul>
- .. attribute:: versions.in_development
- You can use the ``in_development`` property of the ``versions`` iterable to get all ``Version`` objects where the ``ìs_released`` attribute is ``False``.
- This is determined by the ``smv_released_pattern`` in the :ref:`Configuration <configuration>`.
- .. code-block:: jinja
- <h3>In Development</h3>
- <ul>
- {%- for item in versions.in_development %}
- <li><a href="{{ item.url }}">{{ item.name }}</a></li>
- {%- endfor %}
- </ul>
- Functions
- =========
- Similar to Sphinx's `hasdoc() <sphinx_hasdoc_>`_ function.
- .. function:: vhasdoc(other_version)
- This function is Similar to Sphinx's `hasdoc() <sphinx_hasdoc_>`_ function.
- It takes ``other_version`` as string and returns ``True`` if the current document exists in another version.
- .. code-block:: jinja
- {% if vhasdoc('master') %}
- This page is available in <a href="../master/index.html">master</a>.
- {% endif %}
- .. function:: vpathto(other_version)
- This function is Similar to Sphinx's `pathto() <sphinx_pathto_>`_ function.
- It takes ``other_version`` as string and returns the relative URL to the current page in the other version.
- If the current page does not exist in that version, the relative URL to its `master_doc <sphinx_master_doc_>`_ is returned instead.
- .. code-block:: jinja
- {% if vhasdoc('master') %}
- This page is also available in <a href="{{ vpathto('master') }}">master</a>.
- {% else %}
- Go to <a href="{{ vpathto('master') }}">master</a> for the latest docs.
- {% endif %}
- Other Variables
- ===============
- .. attribute:: current_version
- A ``Version`` object for of the current version being built.
- .. code-block:: jinja
- <h3>Current Version: {{ current_version.name }}</h3>
- .. attribute:: latest_version
- A ``Version`` object of the latest released version being built.
- .. code-block:: jinja
- <h3>Latest Version: {{ latest_version.name }}</h3>
- .. _sphinx_context: http://www.sphinx-doc.org/en/stable/config.html?highlight=context#confval-html_context
- .. _sphinx_master_doc: http://www.sphinx-doc.org/en/stable/config.html?highlight=context#confval-master_doc
- .. _sphinx_hasdoc: http://www.sphinx-doc.org/en/stable/templating.html#hasdoc
- .. _sphinx_pathto: http://www.sphinx-doc.org/en/stable/templating.html#pathto
|