The syntax highlighter for jade has some small issues.
For the following codes, if you remove the spaces around the operators, they haven't the same colors anymore:
```jade
body(class=authenticated ? 'authed' : 'anon')
body(class=authenticated?'authed':'anon')
```
```jade
a(href='/home/' + index) Home
a(href='/home/'+index) Home
```
The last line in the second example will also screw up every following code syntax highlight!

Comments: This is the problem inherited from WebMatrix (where Jade support comes). The issue here is actually much bigger - the Jade parser that we have doesn't properly understand Jade syntax. In particular, it assumes that all attribute values are either string literals, or just whitespace-separated syntax of tokens. It doesn't even try to parse them as proper JS expressions, which is what Jade syntax requires. There are other related issues here. For example, the interpolation syntax, `#{...}`, also doesn't treat the body as a JS expression. So the first `}` inside will terminate the block, even if it occurs inside a string literal or a comment. Worse yet, a comma will also terminate. On top of that, there is a bunch of unrelated issues, like not understanding quoted attribute names, or not seemingly understanding the `foo=` syntax at all. It would seem that the only proper way to fix all this is to rewrite this from scratch by using `jade-parser` or similar.
For the following codes, if you remove the spaces around the operators, they haven't the same colors anymore:
```jade
body(class=authenticated ? 'authed' : 'anon')
body(class=authenticated?'authed':'anon')
```
```jade
a(href='/home/' + index) Home
a(href='/home/'+index) Home
```
The last line in the second example will also screw up every following code syntax highlight!

Comments: This is the problem inherited from WebMatrix (where Jade support comes). The issue here is actually much bigger - the Jade parser that we have doesn't properly understand Jade syntax. In particular, it assumes that all attribute values are either string literals, or just whitespace-separated syntax of tokens. It doesn't even try to parse them as proper JS expressions, which is what Jade syntax requires. There are other related issues here. For example, the interpolation syntax, `#{...}`, also doesn't treat the body as a JS expression. So the first `}` inside will terminate the block, even if it occurs inside a string literal or a comment. Worse yet, a comma will also terminate. On top of that, there is a bunch of unrelated issues, like not understanding quoted attribute names, or not seemingly understanding the `foo=` syntax at all. It would seem that the only proper way to fix all this is to rewrite this from scratch by using `jade-parser` or similar.