@Override public void addLine(ParserState state, BasedSequence line) { content.add(line, state.getIndent()); }
@Override public void addLine(ParserState state, BasedSequence line) { content.add(line, state.getIndent()); }
@Override public void addLine(ParserState state, BasedSequence line) { content.add(line, state.getIndent()); }
@Override public void addLine(ParserState state, BasedSequence line) { content.add(line, state.getIndent()); }
@Override public void addLine(ParserState state, BasedSequence line) { content.add(line, state.getIndent()); }
@Override public void addLine(ParserState state, BasedSequence line) { content.add(line, state.getIndent()); }
@Override public void addLine(ParserState state, BasedSequence line) { content.add(line, state.getIndent()); }
@Override public void addLine(ParserState state, BasedSequence line) { content.add(line, state.getIndent()); }
@Override public void addLine(ParserState state, BasedSequence line) { content.add(line, state.getIndent()); }
@Override public void addLine(ParserState state, BasedSequence line) { content.add(line, state.getIndent()); }
@Override public void addLine(ParserState state, BasedSequence line) { content.add(line, state.getIndent()); }
@Override public void addLine(ParserState state, BasedSequence line) { content.add(line, state.getIndent()); }
@Override public void addLine(ParserState state, BasedSequence line) { content.add(line, state.getIndent()); }
static boolean isMarker(ParserState state, int index) { CharSequence line = state.getLine(); return state.getIndent() < state.getParsing().CODE_BLOCK_INDENT && index < line.length() && line.charAt(index) == '|'; }
@Override public void addLine(ParserState state, BasedSequence line) { if (nextIsSeparatorLine) { nextIsSeparatorLine = false; separatorLine = line; separatorLineNumber = content.getLineCount(); } content.add(line, state.getIndent()); }
@Override public void addLine(ParserState state, BasedSequence line) { if (deepParser != null) { if (content.getLineCount() > 0) { // not the first line, which is already parsed deepParser.parseHtmlChunk(line, false, myHtmlBlockDeepParseNonBlock, false); } } else { if (closingPattern != null && closingPattern.matcher(line).find()) { finished = true; } } content.add(line, state.getIndent()); }
@Override public BlockContinue tryContinue(ParserState state) { if (state.getIndent() >= state.getParsing().CODE_BLOCK_INDENT) { return BlockContinue.atColumn(state.getColumn() + state.getParsing().CODE_BLOCK_INDENT); } else if (state.isBlank()) { return BlockContinue.atIndex(state.getNextNonSpaceIndex()); } else { return BlockContinue.none(); } }
@Override public BlockStart tryStart(ParserState state, MatchedBlockParser matchedBlockParser) { if (state.getIndent() >= 4 || matchedBlockParser.getBlockParser().isParagraphParser() && !options.relaxedStart) { return BlockStart.none(); } BasedSequence line = state.getLine(); final BasedSequence input = line.subSequence(state.getNextNonSpaceIndex(), line.length()); if (PATTERN.matcher(input).matches()) { return BlockStart.of(new ThematicBreakParser(line.subSequence(state.getIndex()))).atIndex(line.length()); } else { return BlockStart.none(); } } }
@Override public BlockStart tryStart(ParserState state, MatchedBlockParser matchedBlockParser) { // An indented code block cannot interrupt a paragraph. if (state.getIndent() >= state.getParsing().CODE_BLOCK_INDENT && !state.isBlank() && !(state.getActiveBlockParser().getBlock() instanceof Paragraph)) { return BlockStart.of(new IndentedCodeBlockParser(state.getProperties())).atColumn(state.getColumn() + state.getParsing().CODE_BLOCK_INDENT); } else { return BlockStart.none(); } } }
public BlockStart tryStart(ParserState state, MatchedBlockParser matchedBlockParser) { int nextNonSpace = state.getNextNonSpaceIndex(); if (isMarker(state, nextNonSpace) && !endsWithMarker(state.getLine())) { int newColumn = state.getColumn() + state.getIndent() + 1; // optional following space or tab if (Parsing.isSpaceOrTab(state.getLine(), nextNonSpace + 1)) { newColumn++; } return BlockStart.of(new AsideBlockParser(state.getProperties(), state.getLine().subSequence(nextNonSpace, nextNonSpace + 1))).atColumn(newColumn); } else { return BlockStart.none(); } } }