Jericho HTML Parser Changelog

What's new in Jericho HTML Parser 3.4

Jan 26, 2016
  • Added Apache License as an option for licensing.
  • Added Config.CurrentCharacterReferenceEncodingBehaviour parameter.
  • Performance improvements in name and attribute based searches after full sequential parse.
  • Performance improvement in CharacterReference.decode methods.
  • Added LoggerProvider.getSourceLogger() for better performance of highly concurrent applications.
  • Performance improvement in StreamedSource by avoiding exception at end of stream.
  • Compiling to target Java 1.7 instead of Java 1.5. (source code is however still compatible with Java 1.6)
  • Removed all raw type references from source code.
  • Improved documentation of TagType.isValidPosition to include mention of potential problems with Microsoft downlevel-revealed conditional comment tags.
  • INPUT elements missing a name attribute no longer result in an error message being logged.
  • INPUT elements with type attribute values of date, datetime, datetime-local, month, time, week, number, range, email, url, search, tel, and color are now recognised as text controls without warnings appearing in the log.
  • HTMLSanitiser.stripInvalidMarkup sample now removes content from tags, not just the tags.
  • Upgraded to the following logger APIs: slf4j-api-1.7.12, log4j-2.4.1
  • Bug Fixes:
  • [62] Fixed GC performance problem in StreamedSource.
  • [71] Renderer.setHRLineLength(0) doesn't completely disable rendering of HR element.
  • [72] Fixed performance problem in Attributes.
  • [80] Fixed position discarded exception in StreamedSource.
  • [81] Limited left margin in Renderer based on MaxLineLength.
  • Little-endian BOM encoding detection broken.
  • HTML5 elements with forbidden end tags weren't present in HTMLElements.getEndTagForbiddenElementNames()
  • CHANGES THAT COULD AFFECT THE BEHAVIOUR OF EXISTING PROGRAMS:
  • Changed default character reference encoding behaviour. (see Config.DEFAULT_CHARACTER_REFERENCE_ENCODING_BEHAVIOUR)
  • Changed the the ordering of OutputSegments for more intuitive behaviour, but still backward compatible with the old API contract.

New in Jericho HTML Parser 3.3 (Sep 2, 2013)

  • Bug Fixes:
  • CharacterReference.decode() does not decode entities containing digits ½ ¼ ¾ ¹ ² ³ ∴
  • SourceCompactor does not respect TEXTAREA
  • Renderer output incorrect when constructed with an Element object.
  • Renderer output of font decoration on block boundaries incorrect.
  • Segment.getAllStartTags(name) and Segment.getFirstElement(name) do not work if the argument contains upper case characters.
  • The end delimiter of a common server tag inside an escaped server tag is falsely recognised as the end delimiter of the escaped tag.
  • Segment.getStyleURISegments() now includes style element content as well as style attribute values.
  • Segment.getURIAttributes() now includes the archive attributes of object and applet elements.
  • Comments no longer recognised inside script elements during full sequential parse. Previously they were recognised for compatibility with major browsers but modern browser behaviour has changed.
  • Changed the log level of all parsing errors from INFO to ERROR, and the log level of the Source.fullSequentialParse() advisory message from WARN to INFO. The previous levels gave the advisory message a higher severity than the parsing errors, preventing logging systems from hiding the advisory message while showing parsing errors. Character encoding warnings remain unchanged at WARN level.
  • Changed the behaviour of the Renderer.renderHyperlinkURL(StartTag) method so that relative URLs are not rendered.
  • Changed the behaviour of the Renderer so that hyperlink element content is not rendered if it is the same as the hyperlink URL, ignoring any http:// prefix or / suffix.
  • EndTag.tidy() now removes whitespace before the closing bracket.
  • Added:
  • Added Source(File) constructor.
  • Added OutputDocument.getSegment() method.
  • Added OutputDocument.remove(int begin, int end) method.
  • Added Renderer.setHRLineLength() method.
  • Added RenderToText.jsp webapp sample.
  • Added Segment.getRowColumnVector() method.
  • Encoding detection now ignores common encodings specified in meta tags that have a code unit size incompatible with the preliminary encoding.
  • Upgraded to the following logger APIs: slf4j-api-1.7.2, log4j-1.2.17