INNER CODE UNIT · Python
BloqueCodigo
Hainrixz/whatsapp-agentkit · scripts/audit.py:191
class BloqueCodigo:
lenguaje: str
codigo: str
linea_apertura: int # linea (1-based) donde esta la ``` de apertura
linea_inicio: int # linea (1-based) de la primera linea de codigo
ABRE_FENCE = re.compile(r"^(?P<indent>\s*)```(?P<lang>[A-Za-z0-9_+-]*)\s*$")
CIERRA_FENCE = re.compile(r"^\s*```\s*$")
def extraer_bloques(markdown: str, lenguaje: str) -> list[BloqueCodigo]:
"""
Extrae los bloques ```<lenguaje> de un markdown, conservando el numero de
linea REAL dentro del archivo (no la linea relativa al bloque).
Maneja fences indentados (los que estan dentro de una lista numerada) y
les quita la indentacion comun para que el contenido compile igual.