pugjs/pug

Alternative syntax for `&attributes`

Open

#1,744 创建于 2014年11月20日

在 GitHub 查看
 (7 评论) (0 反应) (0 负责人)JavaScript (21,509 star) (1,955 fork)batch import
Good First Issue

描述

I tend to use the &attributes syntax quite often, and think it is kind of verbose. The & token does not seem to be used for anything else right now, so would not it be possible to use an alternative syntax such as

h1.foo(data-a="b")&({'data-b': 'c'})

A small change to the lexer should be sufficient. Modifying attributesBlock as follow works and passes all the tests.

  attributesBlock: function () {
    var captures;
    if (captures = (/^&attributes/.exec(this.input) || /^&/.exec(this.input))) {
      this.consume(captures[0].length);
      var args = this.bracketExpression();
      this.consume(args.end + 1);
      return this.tok('&attributes', args.src);
    }
  }

If you have any interest in this proposition, I'm up for testing this feature and sending a PR.

Thanks.

贡献者指南

Alternative syntax for `&attributes` · pugjs/pug#1744 | Good First Issue