Chilipp / autodocsumm

Extending your autodoc API docs with a summary
Apache License 2.0
48 stars 14 forks source link

[FEATURE] Explicit summary directive alignment #82

Closed vepain closed 1 year ago

vepain commented 1 year ago

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

Thank you for your work!

Chilipp commented 1 year ago

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

vepain commented 1 year ago

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 https://github.com/sphinx-doc/sphinx/issues/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!

vepain commented 1 year ago

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?

Chilipp commented 1 year ago

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

Chilipp commented 1 year ago

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 **/
}
vepain commented 1 year ago

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!