This is a bit more complicated than removing a css definition.

As far as I understand this is what happens -- 

1. Parsoid recognizes {{כ}} as a template (expected) and sends it to VE as a transclusion object. 
2. VE treats it as transclusion object (as expected) --- but this means that-
3. The content of the transclusion/template is wrapped with transclusion node markup. This means that the RLM code is now wrapped with html markup, which effectively alienates it from the string it is supposed to affect.

In most other templates the above behavior is exactly what we want, so this template is an exception. We need to figure out a way to recognize these exceptional templates and then deal with them.

But there is another issue - this is going to be a design challenge, too. 

"RLM" is an invisible character, so when we look at the article itself we have no indication that there is any special notation or character inside a sentence or a word. So, when we let users edit this in VisualEditor, we have to see how we can allow RLM to affect the word (so, it needs to not be encapsulated with html) *but* we also have to make sure a user can see it is there and, hopefully, interact with it.

We need to come up with creative ways on how to allow user interaction. 

What happens, for example, if a user removes the string the RLM was attached to without removing the RLM character itself? The user may not know about it if it is invisible, and it can cause problems in the edit and later edit in that sentence.


I think we might want to consider shifting from RLM templates, that provide directionality change in a string, to language annotations, that provide the same thing *plus* language definition. This is what we're moving towards anyways. It provides more information and it lets the user interact with the language definition. 

I understand that if we do it we will get dirty diffs, but I am not entirely sure how we can deal with RLM properly in the editor -- and is it not in any case preferable to use full-information language annotation instead of a limited-behavior RLM character?