private String generateOutput( JAMWikiLexer lexer, String tagName, String tocText, String tagText, int level, String raw, Object... args) throws ParserException { lexer .peekTag() .getTagContent() .append(this.updateToc(lexer.getParserInput(), tagName, tocText, level)); int nextSection = lexer.getParserInput().getTableOfContents().size(); String tagType = "h" + level; lexer.pushTag(tagType, this.generateTagOpen(raw, args)); lexer .peekTag() .getTagContent() .append(this.buildSectionEditLink(lexer.getParserInput(), nextSection)); String parsedTocText = this.processTocText( lexer.getParserInput(), lexer.getParserOutput(), tagText, lexer.getMode()); lexer .peekTag() .getTagContent() .append("<span id=\"") .append(tagName) .append("\">") .append(parsedTocText) .append("</span>"); lexer.popTag(tagType); return ""; }