Est-il possible de barrer du texte en Restructured Text ?
Quelque chose qui, par exemple, est rendu par une balise lorsqu'il est converti en HTML, comme : ~~ReSTructuredText~~
Est-il possible de barrer du texte en Restructured Text ?
Quelque chose qui, par exemple, est rendu par une balise lorsqu'il est converti en HTML, comme : ~~ReSTructuredText~~
Considérez que l'utilisateur peut avoir un contexte différent, donc il n'existe pas de solution unique qui conviendrait à tous.
Si vous l'utilisez uniquement sur un fichier. Par exemple, vous avez publié un projet simple sur PyPI, et vous avez probablement seulement un fichier README.rst. Voici ce que vous voulez peut-être.
.. |ss| raw:: html
.. |se| raw:: html
ligne unique
=============
|ss| abc\ |se|\defg
plusieurs lignes
=============
|ss|
ligne 1
ligne 2
|se|
789
vous pouvez le copier et le coller sur ce site web : https://livesphinx.herokuapp.com/
et vous verrez l'image suivante :
C'est simple, et vous pouvez directement voir l'aperçu dans certains IDE, par exemple, PyCharm.
ci-dessous est écrit pour les utilisateurs de Sphinx
Si vous êtes débutant de Sphinx. ( Je veux dire peut-être vous voulez utiliser Sphinx pour créer un document, mais Python ne vous est pas familier ) essayez comme suit :
# conf.py
from pathlib import Path
html_static_path = ['_static', ]
html_css_files = ['css/user.define.css'] # Si vous voulez contrôler lequel HTML doit le contenir, vous pouvez le mettre sur le HTML, ce qui ressemble beaucoup à la réponse de @Gregory Kuhn.
with open(Path(__file__).parent / Path('_static/css/user.define.rst'), 'r') as f:
user_define_role = f.read()
rst_prolog = '\n'.join([ user_define_role + '\n',]) # sera inclus au début de chaque fichier source lu.
# rst_epilog = '\n'.join([ user_define_role + '\n',]) # c'est bon si vous le mettez à la fin.
user.define.rst
.. role:: strike
user.define.css
.strike {text-decoration: line-through;}
Avec le rst_prolog
, Il peut ajouter automatiquement le rôle à chaque fichier rst, mais si vous modifiez le contenu (ce fichier contient un format que vous avez défini), vous devez reconstruire pour que le rendu soit correct.
Vous pouvez créer une extension pour y parvenir.
# conf.py
extensions = ['_ext.rst_roles', ]
html_static_path = ['_static', ]
html_css_files = ['css/user.define.css']
# rst_roles.py
from sphinx.application import Sphinx
from docutils.parsers.rst import roles
from docutils import nodes
from docutils.parsers.rst.states import Inliner
def strike_role(role, rawtext, text, lineno, inliner: Inliner, options={}, content=[]):
your_css_strike_name = 'strike'
return nodes.inline(rawtext, text, **dict(classes=[your_css_strike_name])), []
def setup(app: Sphinx):
roles.register_canonical_role('my-strike', strike_role) # usage: :my-strike:`content ...`
L'architecture complète :
à propos des règles, vous pouvez consulter ce lien rst-roles
Et je vous recommande fortement de consulter le docutils.parsers.rst.roles.py
.
Je ne sais pas pourquoi ma réponse rend quelqu'un mécontent puis me donne un vote négatif et j'espère que vous pouvez me dire pourquoi, de toute façon, j'ai mis à jour ma solution en espérant que vous allez comprendre.
Ceci est la réponse optimale, actuellement. La première solution "Un seul fichier." est vraiment optimale. C'est la seule solution qui fonctionne réellement pour le cas commun d'un fichier reST hébergé sur un site tiers non sous votre contrôle direct (par exemple, un README.rst
hébergé sur GitHub ou GitLab). Les haters vont détester, @Carson. Je ne prendrais pas les votes négatifs personnellement. Ils sont juste jaloux.
J'ai écrit une extension pour cela.
Il suffit d'pip install sphinxnotes-strike
et d'utiliser :
:strike:`text`
ou
:del:`text`
pour afficher le texte barré.
Pour plus d'informations : https://sphinx-notes.github.io/strike/
Depuis Docutils 0.17, l'écrivain HTML5 utilise si une valeur de classe correspondante est trouvée dans les éléments inline
, literal
, ou container
:
.. role:: del
:del:`Ce texte a été supprimé`, voici le reste du paragraphe.
.. container:: del
Ce paragraphe a été supprimé.
Les utilisateurs de Spinx peuvent envisager d'ajouter la définition du rôle à leur rst_prolog.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
Quand vous utilisez Sphinx, cela pourrait vous aider : stackoverflow.com/a/24932178/2923406