Emmet: Est-il possible de contrôler la séquence des attributs lors de la diffusion en HTML ?

Créé le 3 nov. 2015  Â·  18Commentaires  Â·  Source: emmetio/emmet

J'aimerais que l'attribut class toujours le tout premier attribut.

Voulez-vous soutenir ce problème ? Publiez une prime dessus ! Nous acceptons les primes via Bountysource .

Enhancement

Commentaire le plus utile

La question est pertinente à ce jour.
@sergeche quelles sont les chances que cette tâche

Tous les 18 commentaires

En règle générale, tous les attributs sont affichés dans l'ordre dans lequel ils apparaissent dans l'abréviation, à moins qu'un extrait avec d'autres attributs ne soit spécifié pour l'abréviation. Ici, vous modifiez simplement les extraits eux-mêmes et ajoutez-leur un attribut vide class bon endroit.

@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>

En règle générale, tous les attributs sont affichés dans l'ordre dans lequel ils apparaissent dans l'abréviation,

Non )

mais comment créer un tel snippet qui fera l'affaire, par exemple : a.classname → <a class="classname" href=""></a> ?

Parce que pour a snippet : https://github.com/emmetio/emmet/blob/master/lib/snippets.json#L691

Solution : soit supprimer ce snippet (le remplacer par une valeur vide : "a": null ), soit le modifier : "a": "<a class=\"\" href=\"\"> , mais alors l'attribut class sera toujours affiché . Ou créez un nouvel extrait qui ne contient aucun attribut dans l'élément <a> .

HM...
a écrit "a": null, - http://take.ms/BHuO6
rien n'a changé : a.classname → <a href="|" class="classname"></a>

a écrit "a": "<a class=\"\" href=\"\">" - http://take.ms/98CIZ
non utilisable : a.classname → <a class="" href="">|

a écrit "a": "<a>",
non-non-non-non, David Blaine, NON : a.classname → <a>

Ai-je bien compris que la réponse à ma question est « pas question » ? Ou est-ce que je fais quelque chose de mal ? )

C'est pratique de le faire - en aucun cas, vous devez changer le noyau pour pouvoir définir des priorités de tri pour les attributs

Dans quel fichier creuser quelque chose ? :)

Alternativement : https://github.com/emmetio/emmet/blob/master/lib/filter/html.js#L21
En principe, vous pouvez écrire votre propre filtre, qui générera la sortie correcte, et le connecter en tant qu'extension afin de ne pas toucher au noyau.

L'option avec le filtre est bien meilleure (je déteste entrer dans le coeur de l'application). Où puis-je lire sur l'API ? Ou quelques exemples, peut-être ?

La question est pertinente à ce jour.
@sergeche quelles sont les chances que cette tâche

Vous pouvez écrire votre filtre et faire une Pull Request. Il n'y a pas de documentation sur les filtres, mais il s'agit d'une fonction courante qui accepte une abréviation analysée sous la forme d'un arbre en entrée et peut la modifier, par exemple, échanger des attributs

Extrait redéfini pour a (http://s020.radikal.ru/i717/1703/c0/8127577c2b25.png), sans filtres cela fonctionne comme il se doit : a.xxx -> <a class="xxx" href=""></a>
Mais lors de l'utilisation du filtre bem, le résultat est incorrect, le nom de la classe est dupliqué :
a.xxx|bem -> <a class="xxx xxx" href=""></a>
div.yyy>a.-xxx|bem -> <a class="yyy__xxx -xxx" href=""></a>
Est-il possible d'éviter cela d'une manière ou d'une autre ? @sergeche

@DDyst cette fonctionnalité est dans le nouveau noyau, qui est toujours dans la version alpha pour Atom

Comment le regarder / l'essayer ? )

Sergey, indiquez au moins dans quel fichier chercher cette opportunité même - je regarde la structure du fichier a beaucoup changé O_o ... Jusqu'à présent, il n'est possible de personnaliser directement dans le noyau que correctement ?
Oui, et | bem - maintenant comment ?
Shl .. Et je pensais qu'Emmet ne pouvait pas être mieux, mais ça arrive !!))

  1. Accédez aux paramètres utilisateur d'Emmet :
    Préférences -> Paramètres du package -> Emmet -> Paramètres utilisateur
  2. Insérez l'extrait suivant :
{
  "snippets": {
    "html": {
      "abbreviations": {
        "a": "<a class='' href=''>"
        }
      }
    }
}

Eh bien, nous avons toujours tous les liens avec les cours :)

Mise en œuvre initiale de la combinaison des attributs dans l'ordre inverse lors de la résolution des extraits : d'abord, ceux qui sont écrits dans l'abréviation, puis ceux qui sont déclarés dans l'extrait (voir le lien vers le commit ci-dessus). Est-ce similaire au comportement attendu ?

Une autre option consiste à déclarer des attributs implicites (avec un point d'exclamation au début) dans l'extrait : "foo": "my-tag[title !class]" L'essence des attributs implicites est qu'ils ne sont affichés que s'ils ont une valeur. C'est-à-dire qu'en utilisant des attributs implicites, vous pouvez spécifier l'ordre dans lequel les attributs doivent être affichés, quel que soit l'ordre dans lequel ils ont été déclarés dans l'abréviation

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

renatorib picture renatorib  Â·  26Commentaires

DanielRuf picture DanielRuf  Â·  5Commentaires

deathmood picture deathmood  Â·  15Commentaires

midgethoen picture midgethoen  Â·  8Commentaires

fversepuy picture fversepuy  Â·  5Commentaires