| """Code block (4 spaces padded).""" |
| import logging |
| from .state_block import StateBlock |
| |
| LOGGER = logging.getLogger(__name__) |
| |
| |
| def code(state: StateBlock, startLine: int, endLine: int, silent: bool = False): |
| |
| LOGGER.debug("entering code: %s, %s, %s, %s", state, startLine, endLine, silent) |
| |
| if state.sCount[startLine] - state.blkIndent < 4: |
| return False |
| |
| last = nextLine = startLine + 1 |
| |
| while nextLine < endLine: |
| if state.isEmpty(nextLine): |
| nextLine += 1 |
| continue |
| |
| if state.sCount[nextLine] - state.blkIndent >= 4: |
| nextLine += 1 |
| last = nextLine |
| continue |
| |
| break |
| |
| state.line = last |
| |
| token = state.push("code_block", "code", 0) |
| token.content = state.getLines(startLine, last, 4 + state.blkIndent, True) |
| token.map = [startLine, state.line] |
| |
| return True |