mirror of https://github.com/halo-dev/halo
![]() #### What type of PR is this? /kind feature /area plugin #### What this PR does / why we need it: This PR provides an interface ElementTagProcessor to make plugin handle element tag easily. e.g.: ```java public class ImgTagProcessor implements ElementTagPostProcessor { @Override public Mono<Void> process(ITemplateContext context, IProcessableElementTag tag, IElementTagStructureHandler structureHandler) { var elementName = tag.getElementDefinition().getElementName(); if (!Objects.equals("img", elementName.getElementName())) { return Mono.empty(); } var srcAttr = tag.getAttribute("src"); if (srcAttr == null) { return Mono.empty(); } var newSrc = srcAttr.getValue(); // TODO rewrite src structureHandler.setAttribute("src", newSrc); return Mono.empty(); } } ``` After PR merged, plugins https://github.com/webp-sh/halo-plugin-webp-cloud and https://github.com/guqing/plugin-cloudinary can be refined with new method. #### Does this PR introduce a user-facing change? ```release-note 支持在插件中操作渲染结果 ``` |
||
---|---|---|
.. | ||
src | ||
build.gradle |