You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|`\x17`| 0x17 |`CONTENT_MARKUP`| Inline markup (`<strong>`, `<em>`, `<a>`) | NO - text flows through |
352
+
353
+
### How Protection Works
354
+
355
+
1.**CONTENT_BLOCK** (`\x14`) - Splits text for post-processing. `invokePostLineHandlers()` uses `explode(CONTENT_BLOCK, $text)` and only processes even-indexed segments.
356
+
357
+
2.**CONTENT_REPLACED/TEXTUAL** (`\x15`, `\x16`) - Excluded from longwords pattern `[^ \n\t\x14\x15\x16...]`. Content is completely skipped.
336
358
337
-
-`CONTENT_MARKUP` (\x17) - Regular HTML markup (tags, formatting)
338
-
-`CONTENT_REPLACED` (\x16) - Replaced elements (images)
339
-
-`CONTENT_TEXTUAL` (\x15) - Escaped/treated text (code blocks)
340
-
-`CONTENT_BLOCK` (\x14) - Block elements
359
+
3.**CONTENT_MARKUP** (`\x17`) - NOT excluded from longwords. This allows text to flow through inline tags for hyphenation: `<strong>very-long-word</strong>` can be hyphenated.
360
+
361
+
### Protection Key Format
362
+
363
+
Protection keys have format: `[TYPE][COUNTER][TYPE]` where:
364
+
- TYPE is one of `\x14-\x17`
365
+
- COUNTER uses `\x18-\x1F` for octal-encoded digits
366
+
367
+
Example: `\x17\x18\x17` = CONTENT_MARKUP with counter 0
368
+
369
+
### Usage in HtmlGenerator
341
370
342
-
When creating raw HTML strings (not HtmlElement), protect them:
0 commit comments