private void html() { if (!finalPass) return; LOG.debug("parse: html"); String text = scan.getToken(); if (text.length() == 0) { return; } // If we detect it is all whitespace, we need to keep it for later // If it is not whitespace, we need to flush any whitespace we do have boolean contentIsWhitespace = !Pattern.compile("\\S").matcher(text).find(); if (!contentIsWhitespace && currentlyBufferingWhitespace) { flushBufferedWhiteSpace(); } else { currentlyBufferingWhitespace = contentIsWhitespace; } // We need to know if the last content output was not whitespace, for tag safety checks previousContentWasNonWhitespace = !contentIsWhitespace; if (currentlyBufferingWhitespace) { whitespaceBuffer.append(text); } else { appendHtmlPart(text); } }
// Write out any whitespace we saved between tags private void flushBufferedWhiteSpace() { if (currentlyBufferingWhitespace) { appendHtmlPart(null); } currentlyBufferingWhitespace = false; }