Hi
I am working on a component in which I have some VML tags like below .
<!--[if mso]>
<v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="/content/wknd/en/sports/la-skateparks" style="height:36px;v-text-anchor:middle;width:150px;" arcsize="5%" strokecolor="#EB7035" fillcolor="#EB7035">
<w:anchorlock/>
<center style="color:#ffffff;font-family:Helvetica, Arial,sans-serif;font-size:16px;">I am a button →</center>
</v:roundrect>
<![endif]-->
I want to rewrite the href="/content/wknd/en/sports/la-skateparks" value to lets say something like href="https://abc.com/sports/la-skateparks" . I have class which implements TransformerFactory for this ( something like this ) , but it is taking all the HTML tags we refer . Since the above tag is a VML based tag and not an HTML tag, even when I give the same, it is not picking up the href from this tag. Do any one have an idea on how to get this work in AEM ? May be I am missing something here.
Solved! Go to Solution.
Views
Replies
Total Likes
@Suraj_Kamdi Hey sorry , My mistake I had to add [V:ROUNDRECT] and [/V:ROUNDRECT] . ( the starting tag and closing tag) to the generate-htmlparser config node. This is working only if I don't have
<!--[if mso]>
The entire VML tag is inside the [if mso] tag and this is treated as comments in HTML. Hence the above one is not working when it is commented.
Please update those tag in includeTags="[A,IMG,SCRIPT,LINK]" configuration file first
Config file path = > /apps/project-name/config/rewriter/default
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:jcr="http://www.jcp.org/jcr/1.0" xmlns:nt="http://www.jcp.org/jcr/nt/1.0"
jcr:primaryType="nt:unstructured"
contentTypes="[text/html]"
enabled="{Boolean}true"
paths="[/content/project-name]"
generatorType="htmlparser"
order="1"
serializerType="htmlwriter"
transformerTypes="[linkchecker,versioned-clientlibs,project-name-url-rewriter]">
<generator-htmlparser
jcr:primaryType="nt:unstructured"
includeTags="[A,IMG,SCRIPT,LINK]"/>
</jcr:root>
I hope this will help.
Thanks & Regard,
Suraj Kamdi
Views
Replies
Total Likes
Then you need to update your transformer class.. see the below example for "<a> "tag
@Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { if ("a".equals(localName) && shouldBeTransformed(attributes)) { String href = attributes.getValue("href"); String modifiedHref = modifyHref(href); AttributesImpl attributesImpl = new AttributesImpl(attributes); attributesImpl.setValue(attributes.getIndex(href), modifiedHref); super.startElement(uri, localName, qName, attributesImpl); } else { super.startElement(uri, localName, qName, attributes); } }
just write extra logic to handle other than HTML tags.
Hope This will Help
Views
Replies
Total Likes
Views
Replies
Total Likes
@Suraj_Kamdi Hey sorry , My mistake I had to add [V:ROUNDRECT] and [/V:ROUNDRECT] . ( the starting tag and closing tag) to the generate-htmlparser config node. This is working only if I don't have
<!--[if mso]>
The entire VML tag is inside the [if mso] tag and this is treated as comments in HTML. Hence the above one is not working when it is commented.
Views
Replies
Total Likes
Views
Likes
Replies
Views
Likes
Replies