Emmet ที่จะทำให้การสร้างเว็บ ลื่นไหล Tab เดียวจอด...
เคยประสบปัญหาเวลา เราเขียนเว็บกันมั้ยครับ เราต้องค่อย ๆ มานั่งพิมพ์ ทีล่ะตัว ๆ ไปเรื่อย ๆ Web Developer หลาย ๆ คนเลยเริ่มไปหาพวกโปรแกรม Code snippet มาใช้ ซึ่งผมก็เป็นเหมือนกัน แต่ผลปรากฏว่า เราก็ต้องมาสร้าง snippet เพื่อใช้เองอีก ทำให้เสียเวลามาก ๆ
ซึ่งแน่นอนว่า สมัยนี้เรามี Editor มากมายกายกองให้เราใช้ ไม่ได้มีแค่ Dreamweaver หรือ Notepad เหมือนเมื่อก่อนแล้ว และอีกอย่าง สมัยนี้เราใช้ IDE ตัวเดียว แต่สามารถเขียนได้หลาย ๆ ภาษาได้ในโปรแกรมเดียวด้วยล่ะ
ซึ่งอย่างที่ผมกำลังใช้อยู่ตอนนี้คือ Sublime Text ก็เป็น IDE สารพัดประโยชน์ดีจริง ๆ ใช้เป็น Default Text Editor แทน TextEdit บน OSX เลยทีเดียว กลับมาที่ Emmet กันต่อ
Emmet เป็น Plugin ตัวนึง ที่ทำให้เราเขียนโค๊ตได้อย่างลื่นไหลมาก ๆ เราสามารถที่จะทำได้มากกว่าที่ Code snippet ทั่ว ๆ ไปทำได้อีกด้วยล่ะ ! !
Editor ที่ Emmet รองรับ
เนื่องจาก ผู้สร้าง Emmet ต้องการให้มันใช้ได้กับหลาย ๆ IDE เขาเลยทำออกมาเป็น Plugin เพื่อให้ Developer สามารถดึงมาใช้ได้กันเยอะ ๆ (ผมชอบเวอร์ ~~ )
- Sublime Text 3 (Version 3 อย่างเดียว Version 2 ใช้ไม่ได้นะ หรืออาจจะใช้ได้ แต่เคยลองแล้วไม่ได้อะ)
- Eclipse
- Vim หรือที่บางคนเรียก Vi ผ่าน Package Manager ได้เลย
- มีอื่น ๆ อีก แต่ผมไม่เคยใช้ เลยไม่กล้าพูด
เรามาลองใช้กันดีกว่า
เรื่องแรกคือ Abbreviations ถือเป็น Core ของตัว Emmet เลยทีเดียว ไม่งั้นเราจะใช้ทำไมเนอะ
div>h1
อย่างเช่น เราต้องการ Div Tag แล้วข้างใน Div Tag จะมี h1 อยู่ข้างใน เราก็พิมพ์ตามด้านบน พอกด Tab ก็จะออกมาเป็น
<div>
<h1></h1>
</div>
เรามาลองอะไรที่ซับซ้อนกว่านี้หน่อย
html>(head>title{this is test.})+body
มันก็จะออกมาเป็น
<html>
<head>
<title>This is test.</title>
</head>
<body>
</body>
</html>
อีกอย่าง ถ้าเราใส่ปีกกาจะเป็นการเพิ่ม Content ลงไปใน Tag ที่เรากำหนดไว้ เช่น ตัวอย่างข้างบน ที่เราใส่ title{This is test} มันก็คือการใส่ This is test ลงไปใน Tag title นั่นเอง
Class & ID
บางครั้ง ไม่สิ ทุกครั้งสิ เราก็ต้องมากำหนด Style ด้วย CSS ผ่าน Class หรือ ID ถ้าเราจะกำหนด Class เราก็แค่ใส่ จุด แล้วตามด้วยชื่อ Class ที่เราต้องการ เช่น
div.container
เมื่อเรากด Tab เราก็จะเป็น
<div class = "container"> </div>
ส่วน ID ก็เช่นกัน แต่เปลี่ยนจาก จุด เป็น # เช่น
div#section1
ก็จะกลายเป็น
<div id = "section1"> </div>
แล้ว Properties อื่น ๆ ละ ?
เราสามารถเติม Properites อื่น ๆ ได้โดยใช้ [ ] แล้วข้างในก็เติม Properites ที่เราต้องการเข้าไป เช่น เราต้องการ Properites enable แล้วให้ค่ามันเป็น True ที่ Tag Link
div[enable=true]
พอเรากด Tab ก็จะกลายเป็น
<div enable = "true"></div>
แต่แค่นี้คงยังไม่มันส์ แล้วถ้าเกิดว่าเราจะต้องเขียนอะไรซ้ำ ๆ กันเยอะ ๆ อย่างเช่นเขียน li สัก 100 อันล่ะ (สมมุตินะ) ถ้าเขียนเองคงตายแน่นอน ถึงจะใช้ Sublime กด Cmd + Shift + D ก็ต้องกดไปอีก 99 ครั้ง ไหน ๆ เราก็ใช้ Emmet แล้ว ก็ใช้มันให้เป็นประโยชน์กันเถอะ
ul>li*100
ผลที่ออกมาก็จะเป็น ul แล้วข้างในเป็น li 100 อัน เยอะมากก......!!@#@#%#%
แต่นอกจากที่เราจะใช้ตัวคูณเพื่อเสก Tag ตามจำนวนที่เราต้องการแล้ว เรายังสามารถรันตัวเลขลงไปได้ด้วย เช่นใน Tag li เมื่อกี้ผมต้องการกำหนด ให้ใน Tag li มี Class ชื่อ ls แล้วตามด้วยเลข Tag ที่เท่าไหร่ ใน Emmet เราสามารถที่จะรันตัวเลขแบบอัตโนมัติก็ได้โดยใช้ $ เช่น
ul>li.item $$$*100
ผลที่ได้ก็จะออกมาเป็น
<ul>
<li class = "item 001"></li>
<li class = "item 002"></li>
.
.
.
<li class = "item 100"></li>
</ul>
ได้กันเป็นแบบนี้เลยทีเดียว เจ๋งมาก ! !
กับอีก Feature นึงคือ การ Generate Lorem ipsum ได้ด้วยล่ะเช่น
p>lorem
มันก็จะออกมาได้เป็น
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Assumenda dolores sit natus modi aut aliquid numquam fuga, suscipit impedit pariatur molestias optio neque quis blanditiis harum, a! Possimus, asperiores, animi.</p>
แต่ถ้าเราต้องการ ให้มัน Generate ออกมาสัก 4 คำก็ได้โดยการใส่เลขจำนวนคำหลัง lorem เช่น เราต้องการให้มัน Generate ออกมา 4 คำก็ต้องเขียนไปว่า lorem4 เช่น
p>lorem4
ผลก็จะได้ออกมาเป็น
<p>Lorem ipsum dolor sit.</p>
เพิ่มเติม เล็กน้อย
ในไฟล์ html ของเรา อย่างน้อยก็จะต้องมีพวก Tag head, body อะไรที่เป็นพื้นฐาน ซึ่งถ้าเราต้องพิมพ์ html>head>title... อะไรก็คงเยอะ มันเลยมี Snippet ของตัว Emmet เข้ามาช่วยอีก นั่นคือ html:5 พอกด Tab เท่านั้นแหละ รู้เลย !!! มาหมด
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
</body>
</html>
จริง ๆ แล้วนอกจากที่เอามาให้ดูในนี้แล้ว มันยังมีทางฝั่ง CSS ด้วย แต่ไม่ขอเอามาพูดและ เพราะเริ่มเยอะไปมากแล้ว สามารถเข้าไปดูที่เหลือได้ใน Document ของ Emmet ได้เลยที่ http://docs.emmet.io เขาจะบอกหมดเลยว่า มันมีอะไรบ้าง บอกเลยว่า เยอะมาก ๆ ผมยังจำได้ไม่หมดเลย (กำลังหัดใช้อย่างจริงจังมากอยู่ด้วยล่ะ)
จากที่เห็น ว่ามันทำให้เราเขียนเว็บได้ง่ายมาก ๆ มากกว่าเมื่อก่อนที่เราค่อย ๆ พิมพ์ทีล่ะตัวเยอะเลย ซึ่งจริง ๆ แล้วทั้งหมดนี้ก็เป็นเพียงแค่เครื่องมือช่วยทำให้เราเขียนโค๊ตได้สะดวกขึ้นเท่านั้นเอง แต่ที่สำคัญที่สุด ก็อยู่ฝีมือเราจริง ๆ แล้วล่ะครับ