- 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
- Swift package version updated to 5.1
Release on 2019.08.20
HTMLTreeVisitor
that walks the DOM in tree order- New HTML serialization implementation based on visitor pattern
- HTML serialization for deeply nested DOM trees (issue #33)
- Occasional Internal Consistency exceptions when deallocating node iterator (issue #36)
Released on 2019.03.28
- Introduce prefix for
NSString
andNSCharacterSet
categories to prevent collision with existing code (issue #35)
Released on 2018.07.16
- Parser would handle foreign attributes incorrectly (issue #30)
Released on 2018.05.01
gt(n)
,lt(n)
andeq(n)
selectors would select wrong elements for the zero-index (issue #25)
Released on 2018.03.21
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
HTMLText
serialization (issue #16)HTMLElement
attribute value serialization (issue #17)
Released on 2017.10.13
- Fixed documentation comments
- Should fix CocoaDocs generation and percentage
Released on 2017.10.12
- Standarized tokenizer error codes:
- 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
- Memory consumption improvements (issue #10)
- Allocate
childNodes
collection inHTMLNode
only when inserting child nodes - Replace
NSStringFromSelector
calls with constants inHTMLNode
validations - Improve
reverseObjectEnumerator
usage while parsing HTML - Rewrite internal logic of the
HTMLStackOfOpenElements
to prevent excessive allocations
- Allocate
Released on 2017.04.19
- Xcode 8.3 issue with modulemaps
- Temporary workaround (renamed modulemap file)
- Memory Leaks in
CSSInputStream
- 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
- Testing with Swift 3.1
- Fixed by @tali in PR #8
HTMLRange
initializers with typoinitWithDowcument:startContainer:startOffset:endContainer:endOffset:
Released on 2017.03.6
- Compilation for Swift 3.1
- Fixed by @tali in PR #6
Released on 2017.02.26
- 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
- Set
INSTALL_PATH
andDYLIB_INSTALL_NAME_BASE
to@rpath
for macOS target- This fixes embedding
HTMLKit
in a Cocoa application
- This fixes embedding
Released on 2017.02.11
- Make
<menuitem>
parse like an unkonwn element. See:
- Updated HTML5Lib-Tests submodule (13f1805)
Released on 2017.01.14
DOM Ranges
implementation (spec)HTMLChatacterData
as base class forHTMLText
&HTMLComment
HTMLText
andHTMLComment
no longer extendHTMLNode
directly
splitText
implementation forHTMLText
nodesindex
property forHTMLNode
cloneNodeDeep
method forHTMLNode
appendString
method inHTMLText
in favor ofappendData
from the supperclassHTMLCharacterData
Released on 2016.09.28
- Jazzy configuration file
- Example HTMLKit project
- 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
- Nullability annotation in
CSSSelectorParser
class - Missing lightweight generics in
HTMLParser
,HTMLNode
&HTMLElement
Released on 2016.09.03
Swift Package Manager
support
Released on 2016.07.16
This release passes all tokenizer and tree construction html5lib-tests as of 2016.07.16
watchOS
andtvOS
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
- Handling for
<menu>
and<menuitem>
- Changelog
- Updated adoption agency algorithm according to the latest specification, see:
<isindex>
is completely removed from the spec now, therefore it is dropped from the implementationTokenizer
andTree-Construction
tests are now generated dynamically- Test failures are collected by a
XCTestObservation
for better reporting
- Parser now checks the qualified name instead of the local name when handling elements in the
MathML
andSVG
namespaces
Released on 2016.01.29
- Travis-CI integration.
- CocoaPods spec.
- Warnings are treated as errors.
- 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
.
iOS
&OSX
Frameworks.- Source code documentation.
- CSS Selectors extension (analogous to jQuery selectors).
DOMTokenList
for malipulatingHTMLElements
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.
- Unused namespaces.
- Historical node types.
lt
,gt
&eq
CSS Selectors method declarations.
Released on 2015.11.29
- 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.
InputStreaReader
's reconsume-logic that is required by the CSS Parser.
Released on 2015.06.06
HTMLDocument
methods to accessroot
,head
&body
elements.innerHTML
implementation for theHTMLElement
.HTMLNode
methods to append, prepend, check containment and descendancy of nodes.HTMLNode
methods to enumerate child nodes.- Implementations for
NodeIterator
andNodeFilter
- Implementation for
TreeWalker
- Validation for DOM manipulations.
- Tests for the DOM implementation.
type
property renamed tonodeType
inHTMLNode
.firstChildNode
andlastChildNode
renamed tofirtChild
andlastChild
inHTMLNode
.
baseURI
proeprty fromHTMLNode
HTMLNodeTreeEnumerator
is superseded by theHTMLNodeIterator
.
Released on 2015.04.20
- Initial release.
- Initial DOM implementation.
- Tokenizer and Parser pass all HTML5Lib tokenizer and tree construction tests except for
<ruby>
elements.