126 def HTML(self, **options) -> str:
127 """Rendered HTML, additional options are accepted, for more details have
128 a look at HtmlFormatter_.
130 .. _HtmlFormatter: https://pygments.org/docs/formatters/#HtmlFormatter
135 code_block_start: int = 0
136 code_block_end: int |
None =
None
137 code_block: list[str] = []
138 html_code_blocks: list[str] = []
140 def _render(**kwargs):
142 (
"linenos",
"inline"),
143 (
"linenostart", code_block_start),
144 (
"cssclass",
"code-highlight"),
145 (
"hl_lines", [hl - code_block_start + 1
for hl
in self.
hl_lines]),
147 kwargs[k] = kwargs.get(k, default)
151 kwargs[
"wrapcode"] = kwargs.get(
"wrapcode",
True)
153 html_code_blocks.append(
155 "\n".join(code_block),
157 HtmlFormatter(**kwargs),
161 for line_no, code_line
in self.
codelines:
162 if code_block_end
is None:
164 code_block_start = line_no
166 if code_block_end
is not None and code_block_end + 1 != line_no:
171 code_block = [code_line]
172 code_block_start = line_no
173 code_block_end = line_no
177 code_block.append(code_line)
178 code_block_end = line_no
182 return "\n".join(html_code_blocks)