Skip to content

Latest commit

 

History

History
382 lines (220 loc) · 9.87 KB

CHANGELOG.md

File metadata and controls

382 lines (220 loc) · 9.87 KB

Change Log

  • Fix test compilation under Xcode 12.5 (issue #43)
  • Updated HTML5Lib-Tests submodule (082a4be)
  • Updated parser and tokenizer for latest spec changes to pass test suite
  • Updated project for Xcode 12.5

Release on 2020.07.16

Breaking Change

  • Swift package version updated to 5.1

Release on 2019.08.20

Added

  • HTMLTreeVisitor that walks the DOM in tree order
  • New HTML serialization implementation based on visitor pattern

Fixes

  • HTML serialization for deeply nested DOM trees (issue #33)
  • Occasional Internal Consistency exceptions when deallocating node iterator (issue #36)

Released on 2019.03.28

Breaking Change

  • Introduce prefix for NSString and NSCharacterSet categories to prevent collision with existing code (issue #35)

Released on 2018.07.16

Fixes

  • Parser would handle foreign attributes incorrectly (issue #30)

Released on 2018.05.01

Fixes

  • gt(n), lt(n) and eq(n) selectors would select wrong elements for the zero-index (issue #25)

Released on 2018.03.21

Fixes

  • HTMLElement clone would return an immutable dictionary for attributes (issue #20)
    • Fixed by @CRivlaldo in PR #24
  • HTMLNodeFilterBlock would behave differently on simulator and device (issue #22)
    • Fixed by @CRivlaldo in PR #23

Released on 2017.11.6

Fixes

  • HTMLText serialization (issue #16)
  • HTMLElement attribute value serialization (issue #17)

Released on 2017.10.13

Hotfix

  • Fixed documentation comments
    • Should fix CocoaDocs generation and percentage

Released on 2017.10.12

Added

Updated

  • Project for Xcode 9
  • Travis config for iOS 11.0, macOS 10.13, tvOS 11.0 and watchOS 4.0
  • Updated HTML5Lib-Tests submodule (cbafeba)

Released on 2017.05.02

Added

  • Memory consumption improvements (issue #10)
    • Allocate childNodes collection in HTMLNode only when inserting child nodes
    • Replace NSStringFromSelector calls with constants in HTMLNode validations
    • Improve reverseObjectEnumerator usage while parsing HTML
    • Rewrite internal logic of the HTMLStackOfOpenElements to prevent excessive allocations

Released on 2017.04.19

Fixed

  • Xcode 8.3 issue with modulemaps
    • Temporary workaround (renamed modulemap file)
  • Memory Leaks in CSSInputStream

Added

  • Minor memory consumption improvements
    • Collections for child nodes or attributes of HTML Nodes or Elements are allocated lazily
    • Underyling data string of CharacterData is allocated on first access
    • Autorelease pool for the main HTMLTokenizer loop

Released on 2017.04.2

Fixed

  • Testing with Swift 3.1
    • Fixed by @tali in PR #8

Deprecated

  • HTMLRange initializers with typo
    • initWithDowcument:startContainer:startOffset:endContainer:endOffset:

Released on 2017.03.6

Fixed

  • Compilation for Swift 3.1
    • Fixed by @tali in PR #6

Released on 2017.02.26

Fixed

  • Retain cycles in HTMLNodeIterator (issue #4)
  • Retain cycles in HTMLRange (issue #5)
  • The layout of HTMLKit tests module for Swift Package Manager

Released on 2017.02.20

Hotifx

  • Set INSTALL_PATH and DYLIB_INSTALL_NAME_BASE to @rpath for macOS target
    • This fixes embedding HTMLKit in a Cocoa application

Released on 2017.02.11

Spec Change

Updated

  • Updated HTML5Lib-Tests submodule (13f1805)

Released on 2017.01.14

Added

  • DOM Ranges implementation (spec)
  • HTMLChatacterData as base class for HTMLText & HTMLComment
    • HTMLText and HTMLComment no longer extend HTMLNode directly
  • splitText implementation for HTMLText nodes
  • index property for HTMLNode
  • cloneNodeDeep method for HTMLNode

Deprecated

  • appendString method in HTMLText in favor of appendData from the supperclass HTMLCharacterData

Released on 2016.09.28

Added

  • Jazzy configuration file
  • Example HTMLKit project

Updated

  • Project for Xcode 8
  • Playground syntax for Swift 3
  • Travis config for iOS 10.0, macOS 10.12, tvOS 10.0 and watchOS 3.0
  • Deployment targets to macOS 10.9, iOS 9.0, tvOS 9.0 and watchOS 2.0

Fixed

  • Nullability annotation in CSSSelectorParser class
  • Missing lightweight generics in HTMLParser, HTMLNode & HTMLElement

Released on 2016.09.03

Added

  • Swift Package Manager support

Released on 2016.07.16

This release passes all tokenizer and tree construction html5lib-tests as of 2016.07.16

Added

  • watchOS and tvOS targets
  • Updated HTML5Lib-Tests submodule (c305da7)

Released on 2016.05.18

This release passes all tokenizer and tree construction html5lib-tests as of 2016.05.18

Added

  • Handling for <menu> and <menuitem>
  • Changelog

Changed

  • Updated adoption agency algorithm according to the latest specification, see:
  • <isindex> is completely removed from the spec now, therefore it is dropped from the implementation
  • Tokenizer and Tree-Construction tests are now generated dynamically
  • Test failures are collected by a XCTestObservation for better reporting

Fixed

  • Parser now checks the qualified name instead of the local name when handling elements in the MathML and SVG namespaces

Released on 2016.01.29

Added

  • Travis-CI integration.
  • CocoaPods spec.

Changed

  • Warnings are treated as errors.

Fixed

  • Warnings related to format specifier and loss of precision due to NS(U)-integer usage.
  • Replaced @returns with @return throughout the documentation to play nicely with Jazzy.
  • Some README examples used Swift syntax.

Released on 2015.12.23

This is the first public release of HTMLKit.

Added

  • iOS & OSX Frameworks.
  • Source code documentation.
  • CSS Selectors extension (analogous to jQuery selectors).
  • DOMTokenList for malipulating HTMLElements attributes as a list, e.g. class.
  • Handling for <ruby> elements in the Parser implementation.
    • Updated HTML5Lib-Tests submodule (56c435f)
  • Xcode Playground with Swift documentation.

Removed

  • Unused namespaces.
  • Historical node types.

Fixed

  • lt, gt & eq CSS Selectors method declarations.

Released on 2015.11.29

Added

  • CSS3 Selectors support.
  • Nullability annotations.
  • HTMLNode properties for previous and next sibling elements.
  • HTMLNode methods for accessing child elements (analogous to child nodes).
  • NSCharacterSet category for HTML-related character sets.

Fixed

  • InputStreaReader's reconsume-logic that is required by the CSS Parser.

Released on 2015.06.06

Added

  • HTMLDocument methods to access root, head & body elements.
  • innerHTML implementation for the HTMLElement.
  • HTMLNode methods to append, prepend, check containment and descendancy of nodes.
  • HTMLNode methods to enumerate child nodes.
  • Implementations for NodeIterator and NodeFilter
  • Implementation for TreeWalker
  • Validation for DOM manipulations.
  • Tests for the DOM implementation.

Changed

  • type property renamed to nodeType in HTMLNode.
  • firstChildNode and lastChildNode renamed to firtChild and lastChild in HTMLNode.

Removed

  • baseURI proeprty from HTMLNode
  • HTMLNodeTreeEnumerator is superseded by the HTMLNodeIterator.

Released on 2015.04.20

Added

  • Initial release.
  • Initial DOM implementation.
  • Tokenizer and Parser pass all HTML5Lib tokenizer and tree construction tests except for <ruby> elements.