[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