Search code examples
csspython-sphinxdirectiverestructuredtext

define mark up for generic sphinx admonitions with a specific title


I am using Sphinx to generate HTML documentation for a Python program.

I would like to use the generic admonition directive with a specific title and have it marked up in a way I can define, for example like content generated with the note directive, i.e., boxed, but with a different color (most Admonitions are not specially styled).

How do I best go about this?


Solution

  • If I understood your question correctly, you'd like to apply a custon CSS style to the admonition. You can do this with a :class: attibute.

    For example, the following

    .. admonition:: my title goes here
       :class: myOwnStyle
    
       this is the admonition text
    

    renders as

    <div class="myownstyle admonition">
      <p class="first admonition-title">my title goes here</p>
      <p class="last">this is the admonition text</p>
    </div>
    

    You then add your own style sheet. For example, by a custom layout.html in the _templates directory in your source directory:

    {% extends "!layout.html" %}
    {% set css_files = css_files + ["_static/customstyle.css"] %}
    

    Then you can play around with CSS styles in your style sheet using a selector for the myownstyle class