diff --git a/pygments/formatters/html.py b/pygments/formatters/html.py
index e49b88cd6f..de9aa13300 100644
--- a/pygments/formatters/html.py
+++ b/pygments/formatters/html.py
@@ -457,20 +457,20 @@ def _get_css_class(self, ttype):
return ''
def _get_css_classes(self, ttype):
- """Generate the opening tag for a given token type using CSS classes."""
+ """Return the CSS classes of this token type prefixed with the classprefix option."""
cls = self._get_css_class(ttype)
while ttype not in STANDARD_TYPES:
ttype = ttype.parent
cls = self._get_css_class(ttype) + ' ' + cls
- return cls and '' % cls or ''
+ return cls or ''
def _get_css_inline_styles(self, ttype):
- """Generate the opening tag for a given token type using inline CSS styles."""
+ """Return the inline CSS styles for this token type."""
cclass = self.ttype2class.get(ttype)
while cclass is None:
ttype = ttype.parent
cclass = self.ttype2class.get(ttype)
- return cclass and '' % self.class2style[cclass][0] or ''
+ return cclass or ''
def _create_stylesheet(self):
t2c = self.ttype2class = {Token: ''}
@@ -816,9 +816,12 @@ def _format_lines(self, tokensource):
cspan = self.span_element_openers[ttype]
except KeyError:
if nocls:
- cspan = self.span_element_openers[ttype] = self._get_css_inline_styles(ttype)
+ css_style = self._get_css_inline_styles(ttype)
+ cspan = css_style and '' % self.class2style[css_style][0] or ''
else:
- cspan = self.span_element_openers[ttype] = self._get_css_classes(ttype)
+ css_class = self._get_css_classes(ttype)
+ cspan = css_class and '' % css_class or ''
+ self.span_element_openers[ttype] = cspan
parts = self._translate_parts(value)