Chilipp/autodocsumm

[FEATURE] Explicit summary directive alignment

vepain opened this issue · 6 comments

Now behaviour

When autosummary is used as a directive and not as a directive option, the alignment of the table is centered.

Example

- For :data:`OrT` type:

.. autosummary::

    FORWARD_INT
    REVERSE_INT
    ORIENT_REV
    FWDOR_REVOR


- For :data:`IndOrT` type:

.. autosummary::

    IND
    OR

gives Capture d’écran de 2022-11-08 18-24-29

Asked feature

Is it possible to left-align the table, for example, with an option under autosummary directive please?

Versions

  • python 3.9.5
  • sphinx 5.3.0
  • autodocsumm 0.2.9
  • furo 2022.9.29

Thank you for your work!

hey @vepain! thanks for your input! I am not sure about this. Wouldn't this be something that is configured by the sphinx template that you use? you could add some custom css, here is an example: https://docs.readthedocs.io/en/stable/guides/adding-custom-css.html

Thank you @Chilipp for your answer!

It seems that only a few customisations are allowed by furo theme (see https://pradyunsg.me/furo/customisation/).

Moreover, it seems that tables are centered by default by Sphinx, and I can't find a way to align local table not by default (see sphinx-doc/sphinx#4550)
In the html source file, the tables produced by .. autosummary:: directive are under the following class:

<table class="autosummary longtable docutils align-default">
...
</table>

Here the align-default key seems to be the issue.

Why not allow for one .. autosummary:: directive detail the table alignment like this?

.. autosummary::

    :alig: left
    
    ...

that would produce something like this:

<table class="autosummary longtable docutils align-left">
...
</table>

I don't have enough CSS and HTML knowledge, so perhaps I miss some points.
The idea is not to change the align-default (that will change all the alignment globally).
And even though I wanted to do this, I can't find in Sphinx doc a way to change the default table alignment.

Thank you for your help!

Sorry for the second message,

I find https://docutils.sourceforge.io/docs/ref/rst/directives.html#tables where the directive .. table:: has the option :align: left (e.g.)

Why not get inspired of that for the table generation of .. autosummary:: directive?

the problem here @vepain is that the .. autosummary directive that is used here does not come from the autodocsumm extension. it is coming from the builtin sphinx extension autosummary. autodocsumm is just using this directive. So if you want to change anything on the underlying autosummary directive, you'd need to head over to the main sphinx repo at https://github.com/sphinx-doc/sphinx/ and open an issue there. When this option is implemented, in autosummary, we can add an additional option here

my suggestion would have been to add a custom css file

html_css_files = [
    'css/custom.css',
]

and then in custom.css have something like

table.autosummary {
    /** add some alignment css here **/
}

My bad, I confused your extension with the sphinx builtin.
Thank you for your help, I will write an issue at the right place...
Have a nice day!