[wp-trac] [WordPress Trac] #30986: Consider using an abstract syntax tree for wpautop

WordPress Trac noreply at wordpress.org
Tue Jan 13 23:22:28 UTC 2015

#30986: Consider using an abstract syntax tree for wpautop
 Reporter:  ericlewis    |       Owner:
     Type:  enhancement  |      Status:  new
 Priority:  normal       |   Milestone:  Awaiting Review
Component:  Formatting   |     Version:  0.71
 Severity:  normal       |  Resolution:
 Keywords:               |     Focuses:

Comment (by ericlewis):

 attachment:30986.2.diff is a patch against core which includes my second

 The internal logic is easier to read. It now adds paragraph tags to
 roughly the proper locations.

 Unit tests fail for two reasons:
 * `wpautop()` performs string trimming and `\n` stripping that the class
 would need to match.
 * DOMDocument replaces characters with HTML entities, which creates valid
 HTML but we might consider reversing for back-compat.

 attachment:30986.2.diff also includes benchmarking versus wpautop().

 Replying to [comment:2 dd32]:
 > 1. Speed; `wpautop()` is called on the front end, needs to be a decent

 Here's benchmark results from my basic test:

 Seconds for 10000 wpautop() invocations: 0.020344972610474
 Seconds for 10000 WP_AutoP class invocations: 0.34989809989929

 So it looks like the class is 10x slower than `wpautop()` in its current

 Replying to [comment:2 dd32]:
 > Availability; DOMDocument can be disabled in PHP, as can other XML
 parsing tools, and we've got conditionals on it's use elsewhere within
 core already I believe.

 That is a bummer. I wonder if this is a dealbreaker.

Ticket URL: <https://core.trac.wordpress.org/ticket/30986#comment:3>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform

More information about the wp-trac mailing list