Nokogiri v1.12.0 Release Notes
Release Date: 2021-08-02 // over 2 years ago-
๐ Notable Addition: HTML5 Support (CRuby only)
๐ HTML5 support has been added (to CRuby only) by merging Nokogumbo into Nokogiri. The Nokogumbo public API has been preserved, so this functionality is available under the
Nokogiri::HTML5
namespace. [#2204]๐ Please note that HTML5 support is not available for JRuby in this version. However, we feel it is important to think about JRuby and we hope to work on this in the future. If you're interested in helping with HTML5 support on JRuby, please reach out to the maintainers by commenting on issue #2227.
๐ Many thanks to Sam Ruby, Steve Checkoway, and Craig Barnes for creating and maintaining Nokogumbo and supporting the Gumbo HTML5 parser. They're now Nokogiri core contributors with all the powers and privileges pertaining thereto. ๐
Notable Change:
Nokogiri::HTML4
module and namespace๐
Nokogiri::HTML
has been renamed toNokogiri::HTML4
, andNokogiri::HTML
is aliased to preserve backwards-compatibility.Nokogiri::HTML
andNokogiri::HTML4
parse methods still use libxml2's (or NekoHTML's) HTML4 parser in the v1.12 release series.Take special note that if you rely on the class name of an object in your code, objects will now report a class of
Nokogiri::HTML4::Foo
where they previously reportedNokogiri::HTML::Foo
. Instead of relying on the string returned byObject#class
, preferClass#===
orObject#is_a?
orObject#instance_of?
.๐ Future releases of Nokogiri may deprecate
HTML
methods or otherwise change this behavior, so please start usingHTML4
in place ofHTML
.โ Added
- [CRuby]
Nokogiri::VERSION_INFO["libxslt"]["datetime_enabled"]
is a new boolean value which describes whether libxslt (or, more properly, libexslt) has compiled-in datetime support. This generally going to betrue
, but some distros ship without this support (e.g., some mingw UCRT-based packages, see https://github.com/msys2/MINGW-packages/pull/8957). See #2272 for more details.
๐ Changed
- 0๏ธโฃ Introduce a new constant,
Nokogiri::XML::ParseOptions::DEFAULT_XSLT
, which adds the libxslt-preferred options ofNOENT | DTDLOAD | DTDATTR | NOCDATA
toParseOptions::DEFAULT_XML
. - ๐
Nokogiri.XSLT
parses stylesheets usingParseOptions::DEFAULT_XSLT
, which should make some edge-case XSL transformations match libxslt's default behavior. [#1940]
๐ Fixed
- ๐ [CRuby] Namespaced attributes are handled properly when their parent node is reparented into another document. Previously, the namespace may have gotten dropped. [#2228]
- ๐ [CRuby] Reparented nodes no longer inherit their parent's namespace. Previously, a node without a namespace was forced to adopt its parent's namespace. [#1712, #425]
๐ Improved
- ๐ฆ [CRuby] Speed up (slightly) the compile time of packaged libraries
libiconv
,libxml2
, andlibxslt
by using autoconf's--disable-dependency-tracking
option. ("ruby" platform gem only.)
๐ Deprecated
- ๐ Deprecating Nokogumbo's
Nokogiri::HTML5.get
. This method will be removed in a future version of Nokogiri.
Dependencies
- โฌ๏ธ [CRuby] Upgrade mini_portile2 dependency from
~> 2.5.0
to~> 2.6.1
. ("ruby" platform gem only.)
- [CRuby]