ทำ HTML Template ด้วย html/template

Go มี built-in library สำหรับจัดการเกี่ยวกับ html เอาไว้ ซึ่งจะอยู่ใน package html โดยวันนี้จะหยิบหนึ่งในความสามารถของ package นี้นั้นคือ template นั้นเอง

ขั้นตอนแรกเรามาทำการสร้าง base สำหรับเป็น template แม่กันซะก่อน โดยในที่นี้จะใช้ชื่อว่า base.html

การสร้าง template เราจะใช้ tag define เอาไว้บอกว่าเราจะสร้าง template ชื่ออะไร ส่วน tag template นั้นบอกว่าให้ include template ทีชื่อว่า content เข้ามาซึ่งเรายังไม่ได้ define เข้า content นี้เลย เพราะฉะนั้นขั้นตอนต่อไปเราจะสร้าง content กันโดยจะใช้ชื่อ piyo.html ตาม code ด้านล่าง

จากนี้ก็เหลือส่วนของการ compile template ให้พร้อมเอาไปใช้นั้นเอง โดยสร้างไฟล์ชื่อว่า main.go ขึ้นมา

จากตัวอย่างในบรรทัดที่ 8 คือการ compile template โดยจะใช้ ParseFiles ซึ่ง arguments เป็นชื่อไฟล์ html ที่จำเป็นสำหรับการ compile และบรรทัดที่ 11 เป็นการเขียน html ที่ผ่านการ compile แล้วลงไปใน io.Writer (ในที่นี้เป็น ResponseWriter ของ http)

ทำการทดสอบการใช้งานโดย go run main.go และเข้า browser http://localhost:8000/piyo จะได้ตามรูป

Screen Shot 2558-01-04 at 4.40.09 PM

สังเกตว่าที่ title จะได้ตาม base.html แต่ content จะได้ตาม piyo.html เท่าก็ถือว่าสำเร็จ :)