Skip to content

Proposal document and advertise sphinx API #16

Description

@akhmerov

Link to the documentation you'd like to improve

https://sphinx-design.readthedocs.io/en/latest/get_started.html#

What to improve

First of all, sphinx-design is beautiful, thanks @chrisjsewell the team for implementing this!

TL;DR: I propose to better expose the internal API of sphinx-design and encourage users implement their own semantic directives based on the sphinx-design components.

Looking at the sphinx-design rst API, I notice that it mainly implements high-level tools for implementing components. If the documentation authors use these directly, the markup of the documentation mixes the presentation with the semantics. By comparison, most if not all sphinx directives have a clear semantic meaning.

I imagine that most sites won't use the entirety of the options, but will find a few specific configurations that work for them, for example a simple self-check question could look like something along these lines:

:::{dropdown} {fas}`unverified` Check yourself: what is $d \exp x/dx$?
:animate: fade-in-slide-down
:color: info
It's $\exp x$!
:::

At the same time, the documentation author would probably rather want to write something like

:::{question} Check yourself: what is $d \exp x/dx$?
It's $\exp x$!
:::

This is straightforward to implement, and it doesn't require any reorganization from sphinx-design itself, but:

  • Not all authors will come up with the idea, rather than having overly verbose and error-prone sources
  • Without the sphinx API documented, the task requires a source dive.

Therefore I propose to have this use case in mind, and along with the markup corresponding to the directives and roles to document the corresponding nodes, potentially also providing a tutorial for implementing semantic components of one's own.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions