HTML juga statik, yang bermaksud bahawa jika anda ingin memaparkan data dinamik (diambil dari API, sebagai contoh), anda selalu berakhir dengan Mishmash HTML Stings di dalam JavaScript. Ini boleh menjadi mimpi ngeri untuk debug dan mengekalkan. Pug adalah enjin templat untuk nod dan untuk penyemak imbas. Ia dikumpulkan kepada HTML dan mempunyai sintaks mudah, yang boleh menjadikan anda lebih produktif dan kod anda lebih mudah dibaca. PUG memudahkan kedua -dua menulis HTML yang boleh diguna semula, dan juga membuat data ditarik dari pangkalan data atau API.
Dalam panduan ini, saya akan menunjukkan bagaimana untuk bangun dan berjalan dengan PUG. Kami akan bermula dengan memasangnya dari npm, pergi ke sintaks asasnya dan kemudian melihat beberapa contoh menggunakan JavaScript di Pug. Akhirnya, kami akan meneroka beberapa ciri yang lebih maju Pug dengan membina projek nod/ekspres mudah yang menggunakan PUG sebagai enjin templatnya.
Takeaways Key
Pendekatan ini membolehkan anda menggunakan semula elemen laman web statik, sambil menentukan elemen dinamik berdasarkan data anda. Ia juga memudahkan pemisahan kebimbangan, menjaga logik aplikasi anda diasingkan dari logik paparan anda.
Anda lebih cenderung untuk mendapat manfaat daripada enjin templat jika laman web atau aplikasi web anda didorong data - seperti direktori kakitangan untuk mentadbir pekerja, kedai web yang menyenaraikan pelbagai produk untuk pengguna membeli, atau tapak dengan dinamik fungsi carian.
Anda tidak akan memerlukan enjin templat jika anda mengambil sedikit data dari API (dalam hal ini anda hanya boleh menggunakan rentetan templat asli JavaScript), atau jika anda membuat tapak statik kecil.
Ia juga perlu diperhatikan bahawa PUG digunakan untuk dipanggil Jade sehingga dipaksa untuk menukar namanya kerana tuntutan tanda dagangan pada tahun 2015. Perubahan nama berkuatkuasa dengan versi 2.0.
Masih banyak bahan berkaitan jed yang tersedia dalam talian. Dan sementara sebahagian daripadanya mungkin masih cukup sah, hakikat bahawa perubahan nama bertepatan dengan bump versi utama bermakna sintaks Pug mempunyai beberapa perbezaan, pengurangan, dan penyingkiran berbanding dengan pendahulunya. Ini didokumenkan di sini.Jika anda berminat untuk mengetahui lebih lanjut, anda boleh membaca pengumuman perubahan nama asal dalam isu GitHub ini. Jika tidak, pastikan anda menambah perkataan "templat" kepada carian Google yang berkaitan dengan PUG anda untuk mengelakkan hasil yang penuh dengan pooches.
Memasang PUG
Terdapat beberapa pilihan untuk memasang nod/npm. Sama ada pergi ke halaman utama projek dan muat turun binari yang betul untuk sistem anda, atau gunakan pengurus versi seperti NVM. Saya akan mengesyorkan menggunakan pengurus versi jika mungkin, kerana ini akan membolehkan anda memasang versi nod yang berbeza dan beralih di antara mereka mengikut kehendak. Ia juga akan menafikan sekumpulan kesilapan kebenaran yang berpotensi.
anda boleh menyemak tutorial kami "Memasang pelbagai versi Node.js menggunakan NVM" untuk panduan yang lebih mendalam.
sekali nod dan npm dipasang pada sistem anda, anda boleh memasang pakej pug-cli seperti SO:
<span>npm i -g pug-cli </span>
Pada masa penulisan, ini adalah seperti berikut:
$ pug <span>--version </span>pug version: <span>2.0.3 </span>pug-cli version: <span>1.0.0-alpha6 </span>
Saya sedang menggunakan teks Sublime 3 dan, keluar dari kotak, inilah fail .pug yang kelihatan seperti:
sintaks penonjolan akan menjadikannya lebih mudah untuk bekerja dengan fail PUG, terutama yang panjangnya.
cuba pug html tanpa memasang
Codepen, sebagai contoh, mempunyai sokongan pug yang dibakar tepat. Ini akan membolehkan anda memasukkan kod PUG ke panel HTML dan melihat hasilnya muncul dalam masa nyata.
Sebagai bonus tambahan, anda boleh mengklik pada anak panah bawah dalam anak tetingkap HTML dan pilih Lihat html yang disusun untuk melihat markup yang dihasilkan oleh PUG. sintaks asas PUG HTML
Sekarang bahawa kami telah dipasang PUG, mari kita cuba. Buat direktori baru bernama PUG-contoh dan ubah ke dalamnya. Kemudian buat direktori selanjutnya yang dipanggil HTML dan fail yang dipanggil index.pug:
Cara ini akan berfungsi ialah kami akan menulis kod PUG kami di index.pug dan mempunyai pug-cli menonton fail ini untuk perubahan. Apabila ia mengesan apa -apa, ia akan mengambil kandungan index.pug dan menjadikannya sebagai HTML dalam direktori HTML.
<span>npm i -g pug-cli </span>
Untuk menendang ini, buka terminal dalam direktori PUG-examples dan masukkan ini:
anda harus melihat sesuatu seperti yang berikut:
Nota: Dalam perintah di atas, pilihan -w bermaksud menonton, titik memberitahu Pug untuk menonton segala -galanya dalam direktori semasa ,-o ./html memberitahu PUG untuk mengeluarkan HTML dalam direktori HTML dan -P Pilihan mempercepatkan output.
$ pug <span>--version </span>pug version: <span>2.0.3 </span>pug-cli version: <span>1.0.0-alpha6 </span>
Sekarang mari kita buat halaman dari tangkapan skrin di atas (yang mengadu tentang kekurangan sintaks yang menonjol). Masukkan yang berikut ke index.pug:
<span>mkdir -p pug-examples/html </span><span>cd pug-examples </span><span>touch index.pug </span>
simpan pug.index dan kemudian periksa kandungan ./html/index.html. Anda mesti melihat perkara berikut:
tidak buruk, eh? Pug CLI telah mengambil fail pug kami dan menjadikannya sebagai html biasa.
pug <span>-w . -o ./html -P </span>
kod di atas menghasilkan ini:
watching index.pug rendered /home/jim/Desktop/pug-examples/html/index.html
sekarang ambil kod ini:
<span>doctype html </span><span>html<span><span>(lang=<span>'en'</span>)</span></span> </span> <span>head </span> <span>title Hello, World! </span> <span>body </span> <span>h1 Hello, World! </span> <span>div<span>.remark</span> </span> <span>p Pug rocks! </span>
<span><span><!DOCTYPE html></span> </span><span><span><span><html</span> lang<span>="en"</span>></span> </span> <span><span><span><head</span>></span> </span> <span><span><span><title</span>></span>Hello, World!<span><span></title</span>></span> </span> <span><span><span></head</span>></span> </span> <span><span><span><body</span>></span> </span> <span><span><span><h1</span>></span>Hello, World!<span><span></h1</span>></span> </span> <span><span><span><div</span> class<span>="remark"</span>></span> </span> <span><span><span><p</span>></span>Pug rocks!!<span><span></p</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></body</span>></span> </span><span><span><span></html</span>></span> </span>
Kedua, Pug tidak mempunyai sebarang tag penutup. Ini jelas akan menjimatkan beberapa ketukan kekunci yang adil dan memberikan sintaks yang bersih dan mudah dibaca.
Sekarang kita mendapat pegangan pada beberapa pug asas, mari kita cepat pergi ke sintaksnya. Jika mana-mana ini kelihatan mengelirukan, atau anda ingin pergi lebih mendalam, pastikan anda berunding dengan dokumentasi yang sangat baik projek.
anda boleh menggunakan PUG untuk menghasilkan beberapa pengisytiharan jenis dokumen.
contohnya Doctype HTML akan disusun kepada , standard HTML5 DOCTYPE, sedangkan Doctype ketat akan memberi kami . Pug akan melakukan yang terbaik untuk memastikan outputnya sah untuk jenis dokumen.
Seperti yang disebutkan, Pug tidak mempunyai tag penutup dan bergantung pada lekukan untuk bersarang. Ini mungkin mengambil sedikit masa untuk digunakan, tetapi apabila anda melakukannya, ia menjadikan kod yang bersih dan boleh dibaca. Contohnya:
<span>npm i -g pug-cli </span>
kod di atas disusun untuk ini:
$ pug <span>--version </span>pug version: <span>2.0.3 </span>pug-cli version: <span>1.0.0-alpha6 </span>
Perhatikan bahawa PUG cukup pintar untuk menutup mana-mana tag penutupan diri (seperti elemen) untuk kami.
Kelas dan ID dinyatakan menggunakan notasi .ClassName dan #IdName. Contohnya:
<span>mkdir -p pug-examples/html </span><span>cd pug-examples </span><span>touch index.pug </span>
pug <span>-w . -o ./html -P </span>
watching index.pug rendered /home/jim/Desktop/pug-examples/html/index.html
ini menghasilkan perkara berikut:
<span>doctype html </span><span>html<span><span>(lang=<span>'en'</span>)</span></span> </span> <span>head </span> <span>title Hello, World! </span> <span>body </span> <span>h1 Hello, World! </span> <span>div<span>.remark</span> </span> <span>p Pug rocks! </span>
Ada banyak lagi yang boleh dikatakan mengenai atribut. Sebagai contoh, anda boleh menggunakan JavaScript untuk memasukkan pembolehubah dalam atribut anda, atau memberikan pelbagai nilai kepada atribut. Kami akan menggunakan JavaScript di Pug di bahagian seterusnya.
<span><span><!DOCTYPE html></span> </span><span><span><span><html</span> lang<span>="en"</span>></span> </span> <span><span><span><head</span>></span> </span> <span><span><span><title</span>></span>Hello, World!<span><span></title</span>></span> </span> <span><span><span></head</span>></span> </span> <span><span><span><body</span>></span> </span> <span><span><span><h1</span>></span>Hello, World!<span><span></h1</span>></span> </span> <span><span><span><div</span> class<span>="remark"</span>></span> </span> <span><span><span><p</span>></span>Pug rocks!!<span><span></p</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></body</span>></span> </span><span><span><span></html</span>></span> </span>
blok teks dan teks biasa
kita sudah melihat cara menambah teks biasa:
Cara lain adalah untuk awalan garis dengan watak paip (|):
<span>div<span>.remark</span> </span> <span>p Pug rocks!! </span>
ini memberi kita perkara berikut:
<span><span><span><div</span> class<span>="remark"</span>></span> </span> <span><span><span><p</span>></span>Pug rocks!!<span><span></p</span>></span> </span><span><span><span></div</span>></span> </span>
Apabila berurusan dengan blok besar teks, anda hanya boleh iklan titik. Sebaik sahaja nama tag, atau selepas kurungan penutup, jika tag mempunyai atribut:
<span>div<span>.remark</span> </span><span>p Pug rocks!! </span>
ini hasil dalam:
<span><span><span><div</span> class<span>="remark"</span>></span><span><span></div</span>></span> </span><span><span><span><p</span>></span>Pug rocks!!<span><span></p</span>></span> </span>
Komen
<span>nav </span> <span>navbar-default div </span> <span>h1 My Website! </span> <span>ul </span> <span>li </span> <span>a Home </span> <span>li </span> <span>a Page 1 </span> <span>li </span> <span>a Page 2 </span> <span>input </span>
komen ini akan ditambah kepada html yang diberikan:
<span><span><span><nav</span>></span> </span> <span><span><span><div</span>></span> </span> <span><span><span><h1</span>></span>My Website!<span><span></h1</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><ul</span>></span> </span> <span><span><span><li</span>></span><span><span><a</span>></span>Home<span><span></a</span>></span><span><span></li</span>></span> </span> <span><span><span><li</span>></span><span><span><a</span>></span>Page 1<span><span></a</span>></span><span><span></li</span>></span> </span> <span><span><span><li</span>></span><span><span><a</span>></span>Page 2<span><span></a</span>></span><span><span></li</span>></span> </span> <span><span><span></ul</span>></span> </span> <span><span><span><input</span>/></span> </span><span><span><span></nav</span>></span> </span>
anda memulakan komen seperti SO:
<span>nav<span>#navbar-default</span> </span> <span>div<span>.container-fluid</span> </span> <span>h1<span>.navbar-header</span> My Website! </span>
Apabila anda melakukan ini, komen akan kekal dalam fail PUG tetapi tidak akan muncul di HTML.
<span>nav<span>#navbar-default</span> </span> <span><span>.container-fluid</span> </span> <span>h1<span>.navbar-header</span> My Website! </span>
Komen mesti muncul di barisan mereka sendiri. Di sini, komen akan dianggap sebagai teks biasa:
komen multiline juga mungkin:
<span><span><span><nav</span> id<span>="navbar-default"</span>></span> </span> <span><span><span><div</span> class<span>="container-fluid"</span>></span> </span> <span><span><span><h1</span> class<span>="navbar-header"</span>></span>My Website!<span><span></h1</span>></span> </span> <span><span><span></div</span>></span> </span><span><span><span></nav</span>></span> </span>
<span>npm i -g pug-cli </span>
Di bawah ini anda boleh menemui demo susun atur gaya bootstrap yang menunjukkan teknik yang telah kami bincangkan setakat ini:
Lihat pena
Demo asas oleh SitePoint (@SitePoint)
pada codepen.
Salah satu perkara hebat tentang PUG adalah keupayaan untuk menjalankan JavaScript dalam templat anda. Ini menjadikannya mudah untuk memasukkan pembolehubah ke dalam templat kami, berulang di atas tatasusunan dan objek, menjadikan HTML secara kondusif, dan banyak lagi.
Ini adalah perbezaan penting untuk mengetahui sebelum menggunakan JavaScript di PUG.
Kod Unbuffered bermula dengan tolak (-). Ia tidak secara langsung menambah apa -apa kepada output, tetapi nilai -nilainya boleh digunakan dari dalam PUG:
$ pug <span>--version </span>pug version: <span>2.0.3 </span>pug-cli version: <span>1.0.0-alpha6 </span>
kod buffered, sebaliknya, bermula dengan sama (=). Ia menilai ungkapan JavaScript dan mengeluarkan hasilnya.
<span>mkdir -p pug-examples/html </span><span>cd pug-examples </span><span>touch index.pug </span>
kod di atas disusun untuk ini:
pug <span>-w . -o ./html -P </span>
Atas sebab keselamatan, kod buffered adalah HTML melarikan diri.
watching index.pug rendered /home/jim/Desktop/pug-examples/html/index.html
kod di atas disusun untuk ini:
<span>doctype html </span><span>html<span><span>(lang=<span>'en'</span>)</span></span> </span> <span>head </span> <span>title Hello, World! </span> <span>body </span> <span>h1 Hello, World! </span> <span>div<span>.remark</span> </span> <span>p Pug rocks! </span>
Interpolasi String adalah proses menggantikan satu atau lebih ruang letak dalam templat dengan nilai yang sama. Seperti yang telah kita lihat, Input Buffered menawarkan satu kaedah untuk melakukan ini. Satu lagi menggunakan #{}. Di sini, Pug akan menilai sebarang kod antara kurungan keriting, melarikan diri, dan menjadikannya templat.
<span><span><!DOCTYPE html></span> </span><span><span><span><html</span> lang<span>="en"</span>></span> </span> <span><span><span><head</span>></span> </span> <span><span><span><title</span>></span>Hello, World!<span><span></title</span>></span> </span> <span><span><span></head</span>></span> </span> <span><span><span><body</span>></span> </span> <span><span><span><h1</span>></span>Hello, World!<span><span></h1</span>></span> </span> <span><span><span><div</span> class<span>="remark"</span>></span> </span> <span><span><span><p</span>></span>Pug rocks!!<span><span></p</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></body</span>></span> </span><span><span><span></html</span>></span> </span>
kod di atas disusun untuk ini:
<span>div<span>.remark</span> </span> <span>p Pug rocks!! </span>
Sebagai kurungan keriting boleh mengandungi sebarang ungkapan JavaScript yang sah, ini membuka sekumpulan kemungkinan:
<span><span><span><div</span> class<span>="remark"</span>></span> </span> <span><span><span><p</span>></span>Pug rocks!!<span><span></p</span>></span> </span><span><span><span></div</span>></span> </span>
ini disusun untuk:
<span>div<span>.remark</span> </span><span>p Pug rocks!! </span>
Ia juga mungkin untuk menjadikan nilai -nilai yang tidak diselaraskan ke dalam templat anda menggunakan! {}. Tetapi ini bukan idea terbaik jika input berasal dari sumber yang tidak dipercayai.
NOTA: Apabila anda ingin memberikan nilai yang dipegang dalam pembolehubah kepada atribut elemen, anda boleh meninggalkan #{}. Sebagai contoh: img (alt = name).
setiap kata kunci PUG menjadikannya mudah untuk melangkah ke atas tatasusunan:
<span><span><span><div</span> class<span>="remark"</span>></span><span><span></div</span>></span> </span><span><span><span><p</span>></span>Pug rocks!!<span><span></p</span>></span> </span>
ini menghasilkan perkara berikut:
<span>nav </span> <span>navbar-default div </span> <span>h1 My Website! </span> <span>ul </span> <span>li </span> <span>a Home </span> <span>li </span> <span>a Page 1 </span> <span>li </span> <span>a Page 2 </span> <span>input </span>
anda juga boleh menggunakannya untuk melangkah ke atas kunci dalam objek:
<span><span><span><nav</span>></span> </span> <span><span><span><div</span>></span> </span> <span><span><span><h1</span>></span>My Website!<span><span></h1</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span><ul</span>></span> </span> <span><span><span><li</span>></span><span><span><a</span>></span>Home<span><span></a</span>></span><span><span></li</span>></span> </span> <span><span><span><li</span>></span><span><span><a</span>></span>Page 1<span><span></a</span>></span><span><span></li</span>></span> </span> <span><span><span><li</span>></span><span><span><a</span>></span>Page 2<span><span></a</span>></span><span><span></li</span>></span> </span> <span><span><span></ul</span>></span> </span> <span><span><span><input</span>/></span> </span><span><span><span></nav</span>></span> </span>
ini hasil dalam:
<span>nav<span>#navbar-default</span> </span> <span>div<span>.container-fluid</span> </span> <span>h1<span>.navbar-header</span> My Website! </span>
pug juga membolehkan anda menyediakan blok lain yang akan dilaksanakan jika array atau objek kosong:
<span>nav<span>#navbar-default</span> </span> <span><span>.container-fluid</span> </span> <span>h1<span>.navbar-header</span> My Website! </span>
Akhirnya, ambil perhatian bahawa anda boleh menggunakan sebagai alias untuk setiap.
syarat menawarkan cara yang sangat berguna untuk memberikan HTML yang berbeza bergantung kepada hasil ekspresi JavaScript:
<span>npm i -g pug-cli </span>
Dalam contoh ini, kami menyemak sama ada objek pekerja mempunyai harta extn, maka sama ada mengeluarkan nilai harta itu (jika ada), atau teks "N/A".
Di bawah ini anda boleh menemui demo beberapa teknik yang telah dibincangkan dalam bahagian ini. Ini mempamerkan faedah Pug agak lebih daripada demo terdahulu, seperti yang perlu kita lakukan untuk menambah pekerja lebih lanjut adalah untuk menambah objek lebih lanjut ke array SitePoint Pekerja kami.
Lihat pena
javascript dalam demo pug oleh sitepoint (@sitePoint)
pada codepen.
Sekarang kita mempunyai idea yang munasabah mengenai sintaks Pug dan bagaimana ia berfungsi, mari kita selesaikan dengan membina aplikasi Express.js kecil untuk menunjukkan beberapa ciri yang lebih maju Pug.
Kod untuk contoh ini boleh didapati di GitHub.
NOTA: Jika anda tidak menggunakan Express sebelum ini, jangan risau. Ia adalah rangka kerja web untuk Node.js yang menyediakan satu set ciri yang mantap untuk membina aplikasi web. Jika anda ingin mengetahui lebih lanjut, lihat kami bermula dengan tutorial Express.
Pertama, mari buat projek baru dan pasang Express:
$ pug <span>--version </span>pug version: <span>2.0.3 </span>pug-cli version: <span>1.0.0-alpha6 </span>
<span>mkdir -p pug-examples/html </span><span>cd pug-examples </span><span>touch index.pug </span>
pug <span>-w . -o ./html -P </span>
Jika anda melihat sesuatu seperti ini, maka perkara -perkara telah merancang:
Menambah beberapa data
Walau bagaimanapun ... memasang dan mengkonfigurasi pangkalan data adalah sedikit berat untuk contoh kecil ini, jadi saya akan menggunakan pakej yang dipanggil JSON-SERVER. Ini akan membolehkan kita membuat fail db.json yang akan menjadi API rehat yang kita boleh melakukan operasi CRUD terhadap.
Mari pasangnya:
Sekarang buat fail DB.JSON yang disebutkan di dalam akar projek:
watching index.pug rendered /home/jim/Desktop/pug-examples/html/index.html
Akhirnya, kita memerlukan beberapa JSON untuk memisahkannya. Kami akan menggunakan penjana pengguna rawak, yang merupakan API sumber terbuka percuma untuk menghasilkan data pengguna rawak. Dua puluh lima orang harus lakukan untuk contoh kami, jadi pergi ke https://randomuser.me/api/?results=25 dan menyalin hasilnya ke db.json.
<span>doctype html </span><span>html<span><span>(lang=<span>'en'</span>)</span></span> </span> <span>head </span> <span>title Hello, World! </span> <span>body </span> <span>h1 Hello, World! </span> <span>div<span>.remark</span> </span> <span>p Pug rocks! </span>
Akhirnya, mulakan pelayan dalam tetingkap terminal kedua dengan:
<span>npm i -g pug-cli </span>
Ini akan menyebabkan JSON-Server bermula pada port 3001 dan menonton fail pangkalan data kami untuk perubahan.
Express mempunyai sokongan yang sangat baik untuk menggunakan PUG, jadi konfigurasi yang sangat sedikit diperlukan.
Pertama, mari tambahkan PUG ke projek kami:
$ pug <span>--version </span>pug version: <span>2.0.3 </span>pug-cli version: <span>1.0.0-alpha6 </span>
kemudian di app.js kita perlu memberitahu Express untuk menggunakan PUG:
<span>mkdir -p pug-examples/html </span><span>cd pug-examples </span><span>touch index.pug </span>
Seterusnya, buat direktori pandangan, kemudian dalam direktori pandangan, tambahkan fail index.pug:
pug <span>-w . -o ./html -P </span>
tambahkan beberapa kandungan ke fail itu:
watching index.pug rendered /home/jim/Desktop/pug-examples/html/index.html
kemudian ubah app.js seperti So:
<span>doctype html </span><span>html<span><span>(lang=<span>'en'</span>)</span></span> </span> <span>head </span> <span>title Hello, World! </span> <span>body </span> <span>h1 Hello, World! </span> <span>div<span>.remark</span> </span> <span>p Pug rocks! </span>
Akhirnya, mulakan semula pelayan nod, kemudian muat semula penyemak imbas anda dan anda harus melihat ini:
Membina direktori kakitangan
<span><span><!DOCTYPE html></span> </span><span><span><span><html</span> lang<span>="en"</span>></span> </span> <span><span><span><head</span>></span> </span> <span><span><span><title</span>></span>Hello, World!<span><span></title</span>></span> </span> <span><span><span></head</span>></span> </span> <span><span><span><body</span>></span> </span> <span><span><span><h1</span>></span>Hello, World!<span><span></h1</span>></span> </span> <span><span><span><div</span> class<span>="remark"</span>></span> </span> <span><span><span><p</span>></span>Pug rocks!!<span><span></p</span>></span> </span> <span><span><span></div</span>></span> </span> <span><span><span></body</span>></span> </span><span><span><span></html</span>></span> </span>
<span>div<span>.remark</span> </span> <span>p Pug rocks!! </span>
maka kami memberikan indeks seperti dahulu, tetapi kali ini kami menyampaikannya sebagai objek literal yang mengandungi semua data kami.
NOTA: Anda perlu memulakan semula pelayan nod setiap kali anda membuat perubahan kepada app.js. Jika ini mula menjengkelkan, lihat Nodemon, yang akan melakukan ini untuk anda.
sekarang untuk pug. Tukar indeks.pug untuk kelihatan seperti berikut:
sememangnya tidak ada yang mengejutkan berlaku di sini. Kami menggunakan semantik-UI-CSS untuk beberapa gaya, serta beberapa gaya kita sendiri.
<span><span><span><div</span> class<span>="remark"</span>></span> </span> <span><span><span><p</span>></span>Pug rocks!!<span><span></p</span>></span> </span><span><span><span></div</span>></span> </span>
di bahagian bawah halaman adalah footer dengan tuntutan hak cipta kami dan tahun semasa.
Jika anda menyegarkan halaman sekarang, anda harus melihat ini:
Ini sudah cukup bagus, tetapi untuk mengelilingi perkara, saya akan menunjukkan bagaimana untuk menstrukturkan pandangan kami untuk menawarkan fleksibiliti maksimum apabila projek berkembang.
kemudian tambahkan yang berikut:
<span>div<span>.remark</span> </span><span>p Pug rocks!! </span>
cara kerja ini adalah bahawa kami telah menentukan dua blok kandungan (kandungan blok dan footer blok) yang boleh diganti oleh template kanak -kanak. Dalam kes blok footer, kami juga telah menentukan beberapa kandungan sandaran yang akan diberikan jika templat kanak -kanak tidak mentakrifkan blok ini.
Sekarang kita boleh memberitahu fail index.pug kami untuk mewarisi dari susun atur kami:
<span>npm i -g pug-cli </span>
Hasilnya adalah sama seperti yang kita ada sebelum ini, tetapi kod kini mempunyai struktur yang lebih baik.
Mixins membolehkan anda membuat blok PUG yang boleh diguna semula. Kita boleh menggunakannya untuk mengekstrak baris jadual kita ke dalam failnya sendiri.
3Mixins diisytiharkan menggunakan kata kunci Mixin. Mereka disusun untuk fungsi dan boleh mengambil hujah. Tambahkan yang berikut ke pandangan/mixins/_tablerow.pug:
$ pug <span>--version </span>pug version: <span>2.0.3 </span>pug-cli version: <span>1.0.0-alpha6 </span>
sekarang alter index.pug Like So:
<span>mkdir -p pug-examples/html </span><span>cd pug-examples </span><span>touch index.pug </span>
Seperti yang anda lihat, kami mengimport mixin di bahagian atas fail. Kami kemudian memanggilnya dengan mengutamakan namanya dengan simbol ditambah dan lulus objek pekerja kami untuk dipaparkan.
pug <span>-w . -o ./html -P </span>
Ini berlebihan untuk aplikasi kecil kami, tetapi ia menunjukkan ciri PUG yang sangat berguna yang membolehkan kami menulis kod yang boleh diguna semula.
Kesimpulan
masih banyak lagi yang boleh dilakukan oleh Pug. Saya akan menggalakkan anda untuk menyemak dokumentasi yang sangat baik dan hanya mula menggunakannya dalam projek anda. Anda juga boleh menggunakannya dengan beberapa kerangka JS moden, seperti React atau Vue, dan ia juga telah dipindahkan ke beberapa bahasa lain.
Jika anda sedang mencari cabaran, mengapa tidak cuba memperluaskan direktori pekerja untuk menambah fungsi CRUD yang hilang. Dan jika anda terjebak dengan sintaks, jangan lupa bahawa bantuan sentiasa di tangan.
Soalan Lazim Mengenai Preprocessor Templat HTML PUG
Apakah preprocessor template PUG HTML? Ia memudahkan dan meningkatkan proses penulisan HTML dengan menyediakan sintaks yang lebih ringkas dan ekspresif. Ia membolehkan penstrukturan berasaskan indentasi, yang sering membawa kepada kod yang lebih bersih dan lebih teratur. Pug juga menyokong pembolehubah, campuran, dan termasuk, membuat penciptaan templat lebih cekap.
Walaupun PUG direka khas untuk menghasilkan HTML, ia boleh digunakan bersamaan dengan pelbagai rangka depan seperti React, Sudut, atau Vue.Js. Walau bagaimanapun, dengan menggunakan PUG dengan rangka kerja ini mungkin memerlukan konfigurasi dan alat tambahan.
Ya, anda boleh mengintegrasikan templat PUG dengan mudah bersama fail HTML biasa dalam projek yang sama. Ini berguna apabila beralih dari satu format ke yang lain atau ketika bekerjasama dengan pemaju menggunakan pendekatan yang berbeza.Atas ialah kandungan terperinci PUG HTML Template Engine: Panduan pemula ' s. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!