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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3f03a5e746164caed2bf46160a039f7eb28fe213d018fe5e493d044691023393
4
- data.tar.gz: dc94383066e5832b46f6a7fa88a200753efbae8b974c6173f1fa5f3b049d900b
3
+ metadata.gz: 70325ce657c64594e9654f4f5be3dd3010e81a04e50bfbf20ce1852dfbf6aa6b
4
+ data.tar.gz: 53edf9998cf4dc5d4bb0edcf8005d3b5517407eee7b3750509b47fac3b5f14ce
5
5
  SHA512:
6
- metadata.gz: e9e1cc15e6dbb5f7367c44fc41934646f033133ab37e45d509146a6713326e22cd588bda0d7a9a5869ef0f242f09d89c08d7cc6b49fbe93d8e7500b6275d348b
7
- data.tar.gz: 8bb2161485769ff76c002edf31ef37a337e448acf6ac330970cfe017eec27f97bebab2e52d147d73a05b2fd762bebb6d4d4b0484e6280fd7d0f2d33422287892
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
@@ -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
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Leptris
4
- VERSION = "1.9.201.2"
4
+ VERSION = "1.9.201.3"
5
5
  end
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.2
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