Phiki\Contracts\TransformerInterface interface.
If you only need to modify data at a specific stage, you can extend the
Phiki\Transformers\AbstractTransformer class instead and override the methods you need.Using transformers
To use a transformer, provide an instance of one to thePendingHtmlOutput::transformer() method when highlighting code.
Transformers are applied in the order they are added. If you add mutliple transformers, the output from one will be passed to the next.Be careful when modifying the HTML AST, especially if you are adding or removing elements, as this can break the structure expected by later transformers.
Available hooks
| Method | Description |
|---|---|
preprocess | Modify the input code before it is tokenized. |
tokens | Modify the array of tokens after tokenization but before highlighting. |
highlighted | Modify the array of highlighted tokens after highlighting but before structuring. |
root | Modify the root node of the HTML AST, usually contains a single <pre> element. |
pre | Modify the <pre> element in the HTML AST, usually contains a single <code> element. |
code | Modify the <code> element in the HTML AST, usually contains 1 <span> element for each line. |
line | Modify each line element in the HTML AST, usually a <span> element. |
gutter | Modify the gutter element in the HTML AST, usually a <span> element. |
token | Modify each token element in the HTML AST, usually a <span> element. |
postprocess | Modify the final HTML output before it is returned as a string. |