""" 代码 HTML 构建模块 - 生成带有行号和高亮的代码 HTML """ import html from code_highlighting import highlight_python_line def build_code_html(code: str, line_numbers: dict) -> str: """ 构建带有交互式标记的代码 HTML 用于在演示中突出显示关键代码行和标记 """ lines = code.splitlines() rendered = ['
'] marker_t = "__TOK_T__" marker_k = "__TOK_K__" marker_v = "__TOK_V__" for index, line in enumerate(lines, start=1): line_with_markers = line if index == line_numbers["LINE_TRY"]: line_with_markers = line_with_markers.replace("kkk[j:j+w]", marker_k, 1) line_with_markers = line_with_markers.replace("t", marker_t, 1) if index == line_numbers["LINE_ASSIGN"]: line_with_markers = line_with_markers.replace("vvv[j+w]", marker_v, 1) highlighted = highlight_python_line(line_with_markers) highlighted = highlighted.replace( marker_t, 't' ) highlighted = highlighted.replace( marker_k, 'kkk[j:j+w]' ) highlighted = highlighted.replace( marker_v, 'vvv[j+w]' ) rendered.append( '
' '{line}' '{text}' "
".format(line=index, text=highlighted) ) rendered.append("
") return "\n".join(rendered)