Emmet: Apakah mungkin untuk mengontrol urutan atribut saat menyebar dalam HTML?

Dibuat pada 3 Nov 2015  ·  18Komentar  ·  Sumber: emmetio/emmet

Saya ingin atribut class selalu sebagai atribut pertama.

Ingin mendukung masalah ini? Posting hadiah di atasnya! Kami menerima bounty melalui

Enhancement

Komentar yang paling membantu

Pertanyaan itu relevan dengan hari ini.
@sergeche apa peluang tugas ini masuk daftar TODO?

Semua 18 komentar

Biasanya, semua atribut ditampilkan dalam urutan kemunculannya dalam singkatan, kecuali jika potongan dengan atribut lain ditentukan untuk singkatannya. Di sini Anda cukup mengubah cuplikan itu sendiri dan menambahkan atribut kosong class di tempat yang tepat.

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

Biasanya, semua atribut ditampilkan dalam urutan kemunculannya dalam singkatan,

Tidak )

tapi bagaimana cara membuat seperti snippet yang akan dilakukan, misalnya: a.classname<a class="classname" href=""></a> ?

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

Solusi: hapus cuplikan ini (timpa dengan nilai kosong: "a": null ), atau ubah: "a": "<a class=\"\" href=\"\"> , tetapi kemudian atribut class akan selalu ditampilkan . Atau buat cuplikan baru yang tidak mengandung atribut apa pun di elemen <a> .

hm...
tulis "a": null, - http://take.ms/BHuO6
tidak ada yang berubah: a.classname<a href="|" class="classname"></a>

tulis "a": "<a class=\"\" href=\"\">" - http://take.ms/98CIZ
tidak dapat digunakan: a.classname<a class="" href="">|

menulis "a": "<a>",
tidak-tidak-tidak-tidak, David Blaine, TIDAK: a.classname<a>

Apakah saya memahami dengan benar bahwa jawaban atas pertanyaan saya adalah "tidak mungkin"? Atau apakah saya melakukan sesuatu yang salah? )

Lebih mudah untuk melakukannya - tidak mungkin, Anda perlu mengubah kernel sehingga Anda dapat mengatur prioritas penyortiran untuk atribut

Di file mana untuk menggali sesuatu? :)

Atau: https://github.com/emmetio/emmet/blob/master/lib/filter/html.js#L21
Pada prinsipnya, Anda dapat menulis filter Anda sendiri, yang akan menghasilkan output yang benar, dan menghubungkannya sebagai ekstensi agar tidak menyentuh kernel.

Opsi dengan filter jauh lebih baik (saya benci masuk ke inti aplikasi). Di mana saya bisa membaca tentang API? Atau beberapa contoh, mungkin?

Pertanyaan itu relevan dengan hari ini.
@sergeche apa peluang tugas ini masuk daftar TODO?

Anda dapat menulis filter dan membuat Permintaan Tarik. Tidak ada dokumentasi tentang filter, tetapi ini adalah fungsi umum yang menerima singkatan yang diurai dalam bentuk pohon sebagai input dan dapat mengubahnya, misalnya, menukar atribut

Cuplikan yang didefinisikan ulang untuk a (http://s020.radikal.ru/i717/1703/c0/8127577c2b25.png), tanpa filter berfungsi sebagaimana mestinya: a.xxx -> <a class="xxx" href=""></a>
Tetapi ketika menggunakan filter bem, hasilnya salah, nama kelas digandakan:
a.xxx|bem -> <a class="xxx xxx" href=""></a>
div.yyy>a.-xxx|bem -> <a class="yyy__xxx -xxx" href=""></a>
Apakah mungkin untuk menghindari ini? @sergeche

@DDyst fitur ini ada di kernel baru, yang masih dalam versi alpha untuk Atom

Bagaimana cara menonton / mencobanya? )

Sergey, petunjuk setidaknya di mana file untuk mencari kesempatan ini - Saya melihat struktur file telah banyak berubah O_o ... Sejauh ini, adalah mungkin untuk menyesuaikan langsung di kernel hanya dengan benar?
Ya, dan | bem - sekarang bagaimana?
Shl .. Dan saya pikir emmet tidak bisa lebih baik lagi, tapi ini dia !!))

  1. Buka pengaturan pengguna Emmet:
    Preferensi -> Pengaturan Paket -> Emmet -> Pengaturan Pengguna
  2. Sisipkan cuplikan berikut:
{
  "snippets": {
    "html": {
      "abbreviations": {
        "a": "<a class='' href=''>"
        }
      }
    }
}

Yah, kami selalu mendapatkan semua tautan dengan kelas :)

Membuat implementasi awal menggabungkan atribut dalam urutan terbalik saat menyelesaikan cuplikan: pertama, atribut yang ditulis dalam singkatan, lalu atribut yang dideklarasikan dalam cuplikan (lihat tautan ke komit di atas). Apakah ini mirip dengan perilaku yang diharapkan?

Opsi lainnya adalah mendeklarasikan atribut implisit (dengan tanda seru di awal) dalam cuplikan: "foo": "my-tag[title !class]" Inti dari atribut implisit adalah bahwa atribut tersebut ditampilkan hanya jika memiliki nilai. Artinya, pada kenyataannya, menggunakan atribut implisit, Anda dapat menentukan urutan atribut yang harus ditampilkan, terlepas dari urutan dideklarasikan dalam singkatan

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

corysimmons picture corysimmons  ·  5Komentar

deathmood picture deathmood  ·  15Komentar

sergeche picture sergeche  ·  25Komentar

midgethoen picture midgethoen  ·  8Komentar

renatorib picture renatorib  ·  26Komentar