diff options
author | Martin Liska <mliska@suse.cz> | 2021-06-30 16:25:25 +0300 |
---|---|---|
committer | Martin Liska <mliska@suse.cz> | 2021-11-08 13:30:44 +0300 |
commit | faed8cb8dbacf1cfe3061dc6793f0a631f8e3792 (patch) | |
tree | 4996c1d60fefb68eb84243d90660d31811281849 /sphinx/writers | |
parent | 1f91a0f8bd33eeffe082e31300f94df2ee10454f (diff) |
texinfo: improve variable in :samp: directives
The following snippet:
Show :samp:`Samp with a {variable}.`
Ends in .info as:
Show ‘Samp with a `variable'.’
Which is suboptimal and @var{variable} should be rather used.
That results in ‘Samp with a VARIABLE.’.
Diffstat (limited to 'sphinx/writers')
-rw-r--r-- | sphinx/writers/texinfo.py | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/sphinx/writers/texinfo.py b/sphinx/writers/texinfo.py index 6df558323..3f98a882e 100644 --- a/sphinx/writers/texinfo.py +++ b/sphinx/writers/texinfo.py @@ -194,6 +194,7 @@ class TexinfoTranslator(SphinxTranslator): self.curfilestack: List[str] = [] self.footnotestack: List[Dict[str, List[Union[collected_footnote, bool]]]] = [] # NOQA self.in_footnote = 0 + self.in_samp = 0 self.handled_abbrs: Set[str] = set() self.colwidths: List[int] = None @@ -809,15 +810,23 @@ class TexinfoTranslator(SphinxTranslator): self.body.append('}') def visit_emphasis(self, node: Element) -> None: - self.body.append('@emph{') + element = 'emph' if not self.in_samp else 'var' + self.body.append('@%s{' % element) def depart_emphasis(self, node: Element) -> None: self.body.append('}') + def is_samp(self, node: Element) -> bool: + return 'samp' in node['classes'] + def visit_literal(self, node: Element) -> None: + if self.is_samp(node): + self.in_samp += 1 self.body.append('@code{') def depart_literal(self, node: Element) -> None: + if self.is_samp(node): + self.in_samp -= 1 self.body.append('}') def visit_superscript(self, node: Element) -> None: |