You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@velocity.apache.org by "Claude Brisson (Jira)" <ji...@apache.org> on 2019/09/02 19:38:00 UTC
[jira] [Resolved] (VELOCITY-919) Velocity is removing the
Zero-Width space from the text
[ https://issues.apache.org/jira/browse/VELOCITY-919?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claude Brisson resolved VELOCITY-919.
-------------------------------------
Fix Version/s: 2.2
Assignee: Claude Brisson
Resolution: Fixed
Fixed by commit 1866291, with corresponding test case.
> Velocity is removing the Zero-Width space from the text
> -------------------------------------------------------
>
> Key: VELOCITY-919
> URL: https://issues.apache.org/jira/browse/VELOCITY-919
> Project: Velocity
> Issue Type: Bug
> Components: Engine
> Affects Versions: 2.1
> Reporter: Rob van Dalen
> Assignee: Claude Brisson
> Priority: Major
> Fix For: 2.2
>
> Attachments: TestVelocity.zip
>
>
> I am not sure if this is a bug but we have the following situation.
> We have a recognition application of recognizing text and decorating the text.
> When we putting the below input text to the application:
> *Input for the application:*
> {code:none}
> see art. 1 of the WW and then some other text
> {code}
> _Just before the text *art. 1* there is a Zero-Width space._
> The application will make the text like this:
> *Input for the VelocityEngine:*
> {code:none}
> see ${decorations[0]} and then some other text
> {code}
> _Just before the text *$\{decorations[0]}* there still is a Zero-Width space. because our application only changed *art.1 of the WW* into *$\{decorations[0]}*_
> When we put this text to the VelocityEngine together with the decoration template and a list of laws in the context, the engine is changing my text. It's removing the Zero-Width Space.
> Just before the VelocityEngine is using the text and the template, VelocityEngine is removing the Zer0-Width Space
> Velocity should only do some markup and not change the original input text.
> *decoration.vm:*
> {code:none}
> #set($decorations = [])
> #foreach($type in $annotationsMap.keySet())
> #foreach($citation in $annotationsMap.get($type))
> #set($hideAddResult = $decorations.add("##
> <verwijzing>$citation</verwijzing>##
> "))
> #end
> #end
> {code}
> This is a pace of Java code:
> {code:java}
> Path templateFile = TEMPLATE_FILE.toPath();
> VelocityEngine velocityEngine = new VelocityEngine();
> Path pathName = templateFile.getParent();
> velocityEngine.setProperty(FILE_RESOURCE_LOADER_PATH, pathName.toFile().getAbsolutePath());
> velocityEngine.init();
> Map<String, List<String>> annotationsMap = getAnnotationsMap();
> StringBuilder templateStringBuilder = new StringBuilder("see \u200B${decorations[0]} and then some other text");
> templateStringBuilder.insert(0, "#parse(\"" + templateFile.getFileName() + "\")");
> VelocityContext context = new VelocityContext();
> context.put("escape", new EscapeTool());
> // annotationsMap is put in context as a whole, so that template script can decide what to do with different CitationTypes
> context.put("annotationsMap", annotationsMap);
> StringWriter writer = new StringWriter();
> velocityEngine.evaluate(context, writer, templateFile.getFileName().toString(), templateStringBuilder.toString());
> {code}
> The output of this application is:
> {code:html}
> see <verwijzing>art. 1 of the WW</verwijzing> and then some other text
> {code}
> But just before *<verwijzing>* i expected the Zero-Width Space, but it's gone. So somewhere in the methode evaluate of the VelocityEngine this character is removed, because it's still present in the template text *"see $\{decorations[0]} and then some other text"*
> Please help.
--
This message was sent by Atlassian Jira
(v8.3.2#803003)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@velocity.apache.org
For additional commands, e-mail: dev-help@velocity.apache.org