[wp-trac] [WordPress Trac] #61255: HTML API: Report depth of currently-matched element.
WordPress Trac
noreply at wordpress.org
Thu May 23 23:36:10 UTC 2024
#61255: HTML API: Report depth of currently-matched element.
--------------------------------------+----------------------
Reporter: dmsnell | Owner: dmsnell
Type: feature request | Status: closed
Priority: normal | Milestone: 6.6
Component: HTML API | Version: trunk
Severity: normal | Resolution: fixed
Keywords: has-patch has-unit-tests | Focuses:
--------------------------------------+----------------------
Changes (by dmsnell):
* owner: (none) => dmsnell
* status: new => closed
* resolution: => fixed
Comment:
In [changeset:"58191" 58191]:
{{{
#!CommitTicketReference repository="" revision="58191"
HTML API: Add method to report depth of currently-matched node.
The HTML Processor maintains a stack of open elements, where every
element,
every `#text` node, every HTML comment, and other node is pushed and
popped while
traversing the document. The "depth" of each of these nodes represents how
deep
that stack is where the node appears. Unfortunately this information isn't
exposed to calling code, which has led different projects to attempt to
calculate this value externally. This isn't always trivial, but the HTML
Processor could make it so by exposing the internal knowledge in a new
method.
In this patch the `get_current_depth()` method returns just that. Since
the
processor always exists within a context, the depth includes nesting from
the
always-present html element and also the body, since currently the HTML
Processor only supports parsing in the IN BODY context.
This means that the depth reported for the `DIV` in `<div>` is 3, not 1,
because
its breadcrumbs path is `HTML > BODY > DIV`.
Developed in https://github.com/WordPress/wordpress-develop/pull/6589
Discussed in https://core.trac.wordpress.org/ticket/61255
Fixes #61255.
Props dmsnell, jonsurrell.
}}}
--
Ticket URL: <https://core.trac.wordpress.org/ticket/61255#comment:3>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list