Skip to content

Commit e8eb681

Browse files
committed
update status
1 parent 0e81466 commit e8eb681

1 file changed

Lines changed: 19 additions & 19 deletions

File tree

STATUS.md

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,23 @@ Template composition (`WP_HTML_Template` as replacement value) works for text co
1818
**4. Compile-once Design**
1919
Lazy compilation with cached edits (`$edits` array) is efficient for template reuse.
2020

21+
**5. Boolean Attribute Support**
22+
Supply `true` to create a boolean attribute (`disabled="</%d>"` + `true``disabled`), or `false`/`null` to remove an attribute entirely. Only works for whole-attribute placeholders—partial placeholders reject boolean values.
23+
2124
---
2225

2326
### What's Missing from the Ticket Requirements
2427

2528
**1. No URL Escaping (Ticket TODO)**
2629
The ticket explicitly says "does not escape URLs differently than other attributes." The XSS test shows `javascript:alert("xss")` only escapes quotes—no `esc_url()` equivalent. This is a security gap for `href`/`src` attributes.
2730

28-
**2. Boolean Attributes Not Implemented**
29-
Ticket promises: "supply true to create a boolean attribute or false/null remove an attribute." The current implementation only handles string and Template replacement values. No boolean support visible.
30-
31-
**3. No Attribute Spread**
31+
**2. No Attribute Spread**
3232
Ticket comment 9 discusses "spread" attributes for making tags placeholders. Not implemented.
3333

34-
**4. Missing Output Format Methods**
34+
**3. Missing Output Format Methods**
3535
Ticket TODO lists `->final_output_to_browser()`, `->final_output_to_plaintext()`, `->final_output_to_markdown()`, etc. None exist.
3636

37-
**5. Embed Replacement in Tag Processor (Ticket TODO)**
37+
**4. Embed Replacement in Tag Processor (Ticket TODO)**
3838
The ticket wants replacement embedded in the Tag Processor. Current implementation uses a separate class with its own parsing pass.
3939

4040
---
@@ -102,17 +102,17 @@ The ticket's philosophy is "prefer trust and safety over features"—valid, but
102102

103103
### Summary Table
104104

105-
| Requirement | Status | Notes |
106-
| -------------------------- | ------ | ------------------------------ |
107-
| Context-aware escaping || Works for text and attributes |
108-
| Funky comment placeholders || Clean implementation |
109-
| Nested HTML via Templates || Text context only |
110-
| Boolean attributes | | Not implemented |
111-
| URL escaping || Only generic escaping |
112-
| Attribute spread || Not implemented |
113-
| Output format methods || Not implemented |
114-
| Tag Processor integration || Separate class |
115-
| Table context support || Explicitly unsupported |
116-
| i18n integration || Not addressed |
117-
| RAWTEXT/RCDATA replacement || Placeholders don't work inside |
105+
| Requirement | Status | Notes |
106+
| -------------------------- | ------ | ---------------------------------- |
107+
| Context-aware escaping || Works for text and attributes |
108+
| Funky comment placeholders || Clean implementation |
109+
| Nested HTML via Templates || Text context only |
110+
| Boolean attributes | | true/false/null for whole-attr |
111+
| URL escaping || Only generic escaping |
112+
| Attribute spread || Not implemented |
113+
| Output format methods || Not implemented |
114+
| Tag Processor integration || Separate class |
115+
| Table context support || Explicitly unsupported |
116+
| i18n integration || Not addressed |
117+
| RAWTEXT/RCDATA replacement || Placeholders don't work inside |
118118

0 commit comments

Comments
 (0)