leptris 1.9.201.2-ppc64le-linux → 1.9.201.3-ppc64le-linux
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +24 -0
- data/lib/leptris/html.rb +45 -0
- data/lib/leptris/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 70325ce657c64594e9654f4f5be3dd3010e81a04e50bfbf20ce1852dfbf6aa6b
|
|
4
|
+
data.tar.gz: 53edf9998cf4dc5d4bb0edcf8005d3b5517407eee7b3750509b47fac3b5f14ce
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: d1f4c6a6c492b97715f8f6f357967e17965fae626d494f65262a17ce5ec927db95aad450192d0e4c5b924edf8b89172c39d3b45d37172d079746775855945f28
|
|
7
|
+
data.tar.gz: 63e02ea5957ae0fb5bfc418d473f3efa64d14fd39aba0576e1d888122e3786714dec4938ef3c7bbd471537e7d3a32a804ed6e3c582ed95d26207900fd8f664c3
|
data/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,30 @@ All notable changes to Leptris will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.9.201.3] - 2026-09-19
|
|
9
|
+
|
|
10
|
+
### Added — the HTML facade (Nokogiri-shaped entry points)
|
|
11
|
+
|
|
12
|
+
- **`Leptris::HTML` / `Leptris::HTML4` / `Leptris::HTML5`** —
|
|
13
|
+
top-level parse entry points over the one DOM. The engine has a
|
|
14
|
+
single DOM with multiple parser front-ends (an HTML document IS
|
|
15
|
+
a `Leptris::XML::Document`; every node/query/serializer face
|
|
16
|
+
applies), but that left HTML discoverable only as
|
|
17
|
+
`Leptris::XML.parse_html` — porters scanning for an `HTML`
|
|
18
|
+
module (the `Nokogiri::HTML5.parse` reflex) concluded the
|
|
19
|
+
binding had no HTML support. The facade fixes the shape:
|
|
20
|
+
`Leptris::HTML(html)` = the html4/Nokogiri-parity lane,
|
|
21
|
+
`Leptris::HTML5.parse` = the WHATWG engine, `HTML4.parse` =
|
|
22
|
+
the explicit parity lane. Pure delegates — no parallel class
|
|
23
|
+
hierarchy; identity and the whole XML surface carry over.
|
|
24
|
+
- Spec battery `spec/xml/html_facade_spec.rb`; `spec_helper` now
|
|
25
|
+
requires the public entry (`leptris`) rather than reaching into
|
|
26
|
+
`leptris/xml` — the suite exercises the gem's real bootstrap.
|
|
27
|
+
- Surfaced while pinning: **mutations on HTML-parsed documents
|
|
28
|
+
are lost on serialization** (both lanes, FFI and native —
|
|
29
|
+
engine-side). Filed as leptris/leptris#1220 with the
|
|
30
|
+
two-line repro; the facade spec pins the working half.
|
|
31
|
+
|
|
8
32
|
## [1.9.201.1] - 2026-09-19
|
|
9
33
|
|
|
10
34
|
### Changed — source-distribution doctrine
|
data/lib/leptris/html.rb
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# The HTML facade (issue: "no HTML support in Ruby" — a discoverability
|
|
4
|
+
# gap, not a capability one). The engine has ONE DOM with multiple
|
|
5
|
+
# parser front-ends, so an HTML document IS a Leptris::XML::Document
|
|
6
|
+
# and every node/serializer/query face applies unchanged. What was
|
|
7
|
+
# missing was the shape porters scan for: a top-level HTML module
|
|
8
|
+
# mirroring the Nokogiri entry points.
|
|
9
|
+
#
|
|
10
|
+
# Leptris::HTML(html) # the html4 lane (Nokogiri::HTML parity)
|
|
11
|
+
# Leptris::HTML5.parse(html) # the WHATWG engine (html5lib zero reds)
|
|
12
|
+
# Leptris::HTML4.parse(html) # explicit html4 lane
|
|
13
|
+
#
|
|
14
|
+
# These are pure delegates — no parallel class hierarchy, no second
|
|
15
|
+
# wrapper cache; identity and the whole XML surface carry over.
|
|
16
|
+
module Leptris
|
|
17
|
+
module HTML
|
|
18
|
+
module_function
|
|
19
|
+
|
|
20
|
+
# Nokogiri::HTML shape: the default lane is html4 (byte-parity
|
|
21
|
+
# with libxml2/Nokogiri::HTML), matching XML.parse_html's default.
|
|
22
|
+
def parse(html)
|
|
23
|
+
Leptris::XML.parse_html(html, mode: :html4)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
module HTML4
|
|
28
|
+
module_function
|
|
29
|
+
|
|
30
|
+
def parse(html)
|
|
31
|
+
Leptris::XML.parse_html(html, mode: :html4)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
module HTML5
|
|
36
|
+
module_function
|
|
37
|
+
|
|
38
|
+
# The conformant WHATWG engine: full implied-head set, foster
|
|
39
|
+
# parenting, adoption agency, template, RCDATA/rawtext (see
|
|
40
|
+
# spec/xml/html_whatwg_full_spec.rb).
|
|
41
|
+
def parse(html)
|
|
42
|
+
Leptris::XML.parse_html(html, mode: :whatwg)
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
data/lib/leptris/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: leptris
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.9.201.
|
|
4
|
+
version: 1.9.201.3
|
|
5
5
|
platform: ppc64le-linux
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
@@ -140,6 +140,7 @@ files:
|
|
|
140
140
|
- ext/leptris/native/native.c
|
|
141
141
|
- leptris.gemspec
|
|
142
142
|
- lib/leptris.rb
|
|
143
|
+
- lib/leptris/html.rb
|
|
143
144
|
- lib/leptris/version.rb
|
|
144
145
|
- lib/leptris/xml.rb
|
|
145
146
|
- lib/leptris/xml/attr.rb
|