Emmet: É possível controlar a sequência de atributos ao divulgar em HTML?

Criado em 3 nov. 2015  ·  18Comentários  ·  Fonte: emmetio/emmet

Eu gostaria de ter o atributo class sempre como o primeiro atributo.

Quer apoiar este problema? Publique uma recompensa por isso! Aceitamos recompensas via Bountysource .

Enhancement

Comentários muito úteis

A questão é relevante até hoje.
@sergeche quais são as chances dessa tarefa entrar na lista TODO?

Todos 18 comentários

Normalmente, todos os atributos são exibidos na ordem em que aparecem na abreviatura, a menos que um fragmento com outros atributos seja especificado para a abreviação. Aqui, você apenas altera os próprios trechos e adiciona um atributo vazio class no lugar certo.

@sergeche
label.clasname<label for="" class="clasname"></label>
a.classname<a href="" class="classname"></a>
a[class=classname href="goo"]<a href="goo" class="classname"></a>

Normalmente, todos os atributos são exibidos na ordem em que aparecem na abreviatura,

Não )

mas como criar tal snippet que fará, por exemplo: a.classname<a class="classname" href=""></a> ?

Porque por a snippet: https://github.com/emmetio/emmet/blob/master/lib/snippets.json#L691

Solução: exclua este snippet (substitua-o por um valor vazio: "a": null ) ou modifique-o: "a": "<a class=\"\" href=\"\"> , mas o atributo class sempre será exibido . Ou crie um novo snippet que não contenha nenhum atributo no elemento <a> .

HM ...
escreveu "a": null, - http://take.ms/BHuO6
nada mudou: a.classname<a href="|" class="classname"></a>

escreveu "a": "<a class=\"\" href=\"\">" - http://take.ms/98CIZ
não utilizável: a.classname<a class="" href="">|

escreveu "a": "<a>",
não-não-não-não, David Blaine, NÃO: a.classname<a>

Eu entendi corretamente que a resposta à minha pergunta é "de jeito nenhum"? Ou estou fazendo algo errado? )

É conveniente fazer isso - de jeito nenhum, você precisa mudar o kernel para que possa definir as prioridades de classificação para os atributos

Em qual arquivo para cavar algo? :)

Como alternativa: https://github.com/emmetio/emmet/blob/master/lib/filter/html.js#L21
Em princípio, você pode escrever seu próprio filtro, que irá gerar a saída correta, e conectá-lo como uma extensão para não tocar no kernel.

A opção com o filtro é muito melhor (odeio entrar no núcleo do aplicativo). Onde posso ler sobre a API? Ou alguns exemplos, talvez?

A questão é relevante até hoje.
@sergeche quais são as chances dessa tarefa entrar na lista TODO?

Você pode escrever seu filtro e fazer uma solicitação pull. Não há documentação sobre filtros, mas esta é uma função comum que aceita uma abreviatura analisada na forma de uma árvore como entrada e pode alterá-la, por exemplo, atributos de troca

Snippet redefinido para a (http://s020.radikal.ru/i717/1703/c0/8127577c2b25.png), sem filtros funciona como deveria: a.xxx -> <a class="xxx" href=""></a>
Mas ao usar o filtro bem, o resultado fica incorreto, o nome da classe é duplicado:
a.xxx|bem -> <a class="xxx xxx" href=""></a>
div.yyy>a.-xxx|bem -> <a class="yyy__xxx -xxx" href=""></a>
É possível evitar isso de alguma forma? @sergeche

@DDyst este recurso está no novo kernel, que ainda está na versão alfa para Atom

Como assistir / experimentar? )

Sergey, dica pelo menos em qual arquivo procurar essa mesma oportunidade - estou vendo que a estrutura do arquivo mudou muito O_o ... Até agora, é possível personalizar diretamente no kernel apenas corretamente?
Sim, e | bem - agora como?
Shl .. E eu pensei que o emmet não poderia estar melhor, mas aí está chegando !!))

  1. Vá para as configurações do usuário do Emmet:
    Preferências -> Configurações do pacote -> Emmet -> Configurações do usuário
  2. Insira o seguinte snippet:
{
  "snippets": {
    "html": {
      "abbreviations": {
        "a": "<a class='' href=''>"
        }
      }
    }
}

Bem, sempre obtemos todos os links com as aulas :)

Fez a implementação inicial de combinar atributos em ordem reversa ao resolver trechos: primeiro, aqueles que estão escritos na abreviatura, depois aqueles que são declarados no trecho (veja o link para o commit acima). Isso é semelhante ao comportamento esperado?

Outra opção é declarar atributos implícitos (com um ponto de exclamação no início) no snippet: "foo": "my-tag[title !class]" A essência dos atributos implícitos é que eles são exibidos apenas se tiverem um valor. Ou seja, de fato, usando atributos implícitos, você pode especificar a ordem em que os atributos devem ser exibidos, independentemente da ordem em que foram declarados na abreviatura

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

HeikoMamerow picture HeikoMamerow  ·  16Comentários

planetoftheweb picture planetoftheweb  ·  3Comentários

sergeche picture sergeche  ·  25Comentários

MarvinXu picture MarvinXu  ·  10Comentários

fversepuy picture fversepuy  ·  5Comentários