Файл Jade-Lang Readme содержит раздел Code , в котором подробно рассказывается о том, что является и не является клиентским JavaScript.
В основном, если вы используете код внутри шаблона, а он не находится внутри тега скрипта, он будет отображать вывод этого javascript до того, как отправит его в браузер. Это все еще JavaScript, но он выполняется на стороне сервера. Любой javascript внутри тега script является обычным javascript и отправляется в браузер, как и все остальные.
Что касается приведенного вами примера, строка:
- each article in articles
Переводится как:
for (var article in articles) {
/* Whatever else is going on in the template */
}
Также:
a(href="/blog/"+article._id.toHexString())!= article.title
Перевод (упрощенный) в
"<a href=\"/blog\"" + article._id.toHexString() + ">" + /* Escaped article.title */ + "</a>"
Но Jade анализирует и отображает результаты перед отправкой в браузер.