// Code block (4 spaces padded) 'use strict'; module.exports = function code(state, startLine, endLine/*, silent*/) { var nextLine, last, token, emptyLines = 0; if (state.sCount[startLine] - state.blkIndent < 4) { return false; } last = nextLine = startLine + 1; while (nextLine < endLine) { if (state.isEmpty(nextLine)) { emptyLines++; // workaround for lists: 2 blank lines should terminate indented // code block, but not fenced code block if (emptyLines >= 2 && state.parentType === 'list') { break; } nextLine++; continue; } emptyLines = 0; if (state.sCount[nextLine] - state.blkIndent >= 4) { nextLine++; 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; };