วิธีใช้:แม่แบบ
แม่แบบ (template) เป็นหน้าของวิกิพีเดียที่ตั้งใจให้รวมอยู่ในหน้าอื่น ปกติมีเนื้อความซ้ำ ๆ มักจะมีเนื้อหาที่อาจมีความจำเป็นต้องแสดงในหน้าอื่นซ้ำ ๆ การใช้ที่พบบ่อย เช่น เป็นสารสำเร็จรูป คำเตือนหรือประกาศมาตรฐาน กล่องข้อมูล กล่องนำทาง และเพื่อวัตถุประสงค์ที่คล้ายกัน วิธีการใส่แม่แบบที่พบบ่อยที่สุด เรียก การรวมข้าม (transclusion) โดยข้อความวิกิของหน้าเป้าหมายมีการพาดพิงถึงแม่แบบ โดยใช้วากยสัมพันธ์ คำอธิบายทั่วไปแม่แบบส่วนใหญ่ได้แก่หน้าในเนมสเปซแม่แบบ ซึ่งหมายความว่าแม่แบบจะมีชื่อในรูป "แม่แบบ:XXXX" ทว่า การรวมข้ามและแทนที่สามารถทำได้จากเนมสเปซใดก็ได้ แม่แบบบางอย่างจึงจัดอยู่ในเนมสเปซอื่น เช่น เนมสเปซผู้ใช้ หน้าแม่แบบมีหน้าคุยที่สัมพันธ์กับแม่แบบนั้นด้วย แม่แบบสามารถมีข้อความวิกิใดก็ได้ตามประสงค์ รวมทั้งการเรียกแม่แบบอื่น แต่มีสมรรถนะโปรแกรมจำกัดบางอย่าง ได้แก่ ค่าปรับแต่งได้ (เรียก "ตัวแปรเสริม") การคำนวณและการแตกกิ่ง (โดยใช้ฟังก์ชันตัวแจงส่วน) และการเข้าถึงตัวแปรจำเพาะต่อวิกิ (เมจิกเวิร์ด) อย่างเช่น วันที่ เวลาและชื่อหน้า แม่แบบยังอาจมีป้ายระบุซึ่งนิยามว่าจะรวมส่วนใดของข้อความวิกิหากรวมผ่านหรือแทนที่แม่แบบ หมายความว่า ลักษณะปรากฏของหน้าแม่แบบไม่จำเป็นต้องเหมือนกับเนื้อหาที่รวมข้าม (ตัวอย่างเช่น สามารถมีเอกสารประกอบ หมวดหมู่ของแม่แบบ เป็นต้น) วิธีการ: ในการรวมข้ามแม่แบบเข้าสู่บทความหรือหน้าหนึ่ง ให้พิมพ์ คำขึ้นต้น หมายเหตุ: การพยายามรวมข้ามแม่แบบที่ยังไม่มีผู้สร้างจะก่อให้เกิดลิงก์แดง เช่นเดียวกับการเชื่อมโยงไปยังหน้าที่ไม่มีอยู่อื่น การคลิกลิงก์นั้นจะทำให้บุคคลสร้างแม่แบบนั้น ๆ ได้ ไม่สามารถรวมข้ามหน้าระหว่างโครงการได้ (เช่น วิกิพีเดียภาษาอื่น หรือโครงการพี่น้องของวิกิมีเดีย) ในการใช้แม่แบบในโครงการอื่น จะต้องสร้างแม่แบบเดียวกันขึ้นมาในโครงการนั้น ๆ วากยสัมพันธ์การใช้ตัวแปรเสริมวากยสัมพันธ์การรวมข้ามพื้นฐานที่ให้ไว้ข้างต้นสามารถขยายได้ด้วยการเพิ่มตัวแปรเสริม ซึ่งใช้เพื่อควบคุมผลป้อนกลับของแม่แบบ วากยสัมพันธ์สำหรับตัวแปรเสริมได้แก่ อักขระช่องว่าง (ว่าง จุดตั้งระยะ ป้อนกลับ) จะถูกลบออกจากจุดเริ่มต้นและสิ้นสุดของชื่อและค่าตัวแปรเสริมมีชื่อ แต่ไม่ลบออกจากตรงกลาง ฉะนั้น ตัวแปรเสริมใด (ถ้ามี) สามารถหรือควรผ่านเข้าสู่แม่แบบบ้าง และวิธีการตั้งชื่อตัวแปรเสริม ขึ้นอยู่กับการเข้ารหัสของแม่แบบนั้น ตัวแปรเสริมสามารถนิยามลำดับก่อนหลังอย่างไรก็ได้ ตัวแปรเสริมฟุ่มเฟือยหรือเขียนชื่อผิดจะไม่มีผล ตัวแปรเสริมที่ไม่นิยามจะได้รับกำหนดค่าโดยปริยาย หากมีการนิยามตัวแปรเสริมหนึ่งมากกว่าหนึ่งครั้ง ค่าสุดท้ายจะมีผล ค่าของตัวแปรเสริมสามารถเป็นสายอักขระว่าง เช่น เมื่อเครื่องหมายไพป์หรือเท่ากับตามด้วยเครื่องหมายไพป์ถัดไปหรือวงเล็บปิดทันที ซึ่งต่างจากการข้ามตัวแปรเสริมไปโดยสิ้นเชิง ซึ่งจะปล่อยตัวแปรเสริมไว้โดยไม่นิยาม แม้แม่แบบมักเข้ารหัสโดยให้ทั้งสองกรณีเท่ากัน สามารถนิยามตัวแปรเสริมแม้ไม่มีอยู่ในรหัสของแม่แบบ ตัวอย่างเช่น การเรียกการเรียกแม่แบบไม่ต่างจากการเรียกตัวแปรหรือฟังก์ชันในภาษาโปรแกรม คือ เรียกแม่แบบด้วยการอ้างอิงและแม่แบบจะคืนค่าค่าหนึ่งมา (สิ่งออก) เช่นเดียวกับฟังก์ชัน บางแม่แบบยอมรับตัวแปรเสริมที่เปลี่ยนแปลงสิ่งออกได้ ในมีเดียวิกิ ซึ่งเป็นซอฟต์แวร์วิกิที่วิกิพีเดียใช้ ตัวแปรมีความหมายจำเพาะกว่าซึ่งทำให้ตัวแปรต่างจากแม่แบบ แต่ทั้งสองเขียนด้วยเครื่องหมายวงเล็บปีกกาคู่ ขณะที่ชื่อตัวแปรมีเดียวิกิเป็นอักษรตัวใหญ่ทั้งหมด แต่ชื่อแม่แบบมีคุณลักษณะพื้นฐานและข้อจำกัดเดียวกับชื่อหน้าทั้งหมด คือ ไวต่ออักษรใหญ่เล็ก (ยกเว้นสำหรับอักขระตัวแรก) เส้นใต้อักขระมีการแจงส่วนเป็นว่าง และชื่อแม่แบบไม่สามารถมีอักขระต่อไปนี้ สัญลักษณ์นัมเบอร์ ตัวอย่างการใช้แม่แบบพื้นฐานหมายเหตุ: หากคุณประสงค์ทดลองกับแม่แบบ กรุณาใช้หน้าผู้ใช้ของคุณหรือกระบะทราย ตัวอย่างของแม่แบบง่ายมากแม่แบบหนึ่งพบได้ที่ แม่แบบ:Lambda ซึ่งขยายออกไปเพื่อวางสัญลักษณ์แลมดา ณ จุดนั้นในข้อความ โปรแกรมเมอร์จะกล่าวว่าแม่แบบนี้คืนสัญลักษณ์แลมดา (λ) คลิกที่ แม่แบบ:Lambda แล้วคลิกตรงแถบ "แก้ไขต้นฉบับ" เพื่อดูรหัสของแม่แบบ (หรือข้อความวิกิ) ส่วนที่ "มีผล" ของรหัส ที่เรียก ส่วนขยาย (expansion) ของแม่แบบนั้น เป็นคำคำเดียว ในการรวมข้ามแม่แบบ:Lambda ในหน้าอื่น (คือการใช้ในหน้าอื่นนั่นเอง) ให้พิมพ์ ตัวอย่างเช่น พิมพ์ การใช้แม่แบบนี้อีกทางหนึ่งได้แก่การแทนที่แม่แบบ หากคุณพิมพ์ ตัวอย่างกับตัวแปรเสริมตัวอย่างของแม่แบบที่รับตัวแปรเสริม ได้แก่ แม่แบบ
แม่แบบ แม่แบบอื่น โดยเฉพาะอย่างยิ่งแม่แบบที่ซับซ้อนขึ้น รับตัวแปรมีชื่อหรือตัวแปรที่มีชื่อและไม่มีชื่อผสมกัน ตัวอย่างอย่างง่ายเช่น แม่แบบ:Payoff matrix ซึ่งใช้เพื่อสร้างตารางขนาด 2×2 ตัวอย่างเช่น
ดู หน้าแม่แบบ สำหรับความน่าจะเป็นมากขึ้น สังเกตว่าแม่แบบที่ใช้ข้างต้นไม่ได้นิยามตัวแปรเสริมทั้งหมดที่มีอยู่ ตัวแปรที่ไม่นิยามเหล่านี้จะได้กำหนดค่าโดยปริยาย ช่องว่างหน้าและหลังเครื่องหมายเท่ากับ และก่อนและหลังตัวแปรเสริมใช้เพื่อทำให้กระจ่างเท่านั้น แต่ไม่มีความจำเป็นและจะถูกละเลยเมื่อมีการประเมินแม่แบบ (แต่สำหรับตัวแปรเสริมไม่มีชื่อจะยังนำมาคิดอยู่) ชื่อตัวแปรเสริมไวต่ออักษรใหญ่เล็ก ตัวอย่างเช่น จะไม่สามารถเขียน พิจารณารหัสต้นทางของแม่แบบแสดงมาร์กอัพตารางมาตรฐานโดยมีเอนทิตีวงเล็บสามวงเล็บเป็นตัวแทนของตัวแปรเสริม {| id="Payoff matrix" style="background:white; float: {{{Float|right}}}; clear:right; text-align:center;" align={{{Float|right}}} cellspacing=0 cellpadding=8 width={{{Width|225}}}
|-
|style="width:33%; "|
|style="width:33%; border-bottom: solid black 1px;"| {{{2L|Left}}}
|style="width:33%; border-bottom: solid black 1px;"| {{{2R|Right}}}
|-
|style="border-right: solid black 1px; text-align: right; "| {{{1U|Up}}}
|style="border-right: solid black 1px; border-bottom: solid black 1px; background:{{{ULc|white}}}; font-size:120%; "| {{{UL|0, 0}}}
|style="border-right: solid black 1px; border-bottom: solid black 1px; background:{{{URc|white}}}; font-size:120%; "| {{{UR|0, 0}}}
|-
|style="border-right: solid black 1px; text-align: right; "| {{{1D|Down}}}
|style="border-right: solid black 1px; border-bottom: solid black 1px; background:{{{DLc|white}}}; font-size:120%; "| {{{DL|0, 0}}}
|style="border-right: solid black 1px; border-bottom: solid black 1px; background:{{{DRc|white}}}; font-size:120%; "| {{{DR|0, 0}}}
|-
|style="font-size: 90%;" colspan=3 |''{{{Name|{{PAGENAME}}}}}''
|}
เอนทิตี การสร้างและแก้ไขแม่แบบการสร้างและแก้ไขแม่แบบก็มีวิธีเช่นเดียวกับหน้าอื่น เริ่มจากเลือกชื่อที่เหมาะสม นำทางไปยังหน้านั้น แล้วคลิกแถบ "แก้ไข" หรือสร้างหน้าใหม่ตามความจำเป็น ดังที่กล่าวข้างต้น ปกติแม่แบบจะจัดอยู่ในเนมสเปซแม่แบบ แม้แม่แบบที่ตั้งใจสำหรับใช้ส่วนตัวคุณเองหรือสำหรับทดลองสามารถสร้างในเนมสเปซผู้ใช้ของคุณเอง ทุกอย่างที่สามารถใส่ในหน้าปกติหรือบทความสามารถใส่ในแม่แบบได้ รวมทั้งแม่แบบอื่นด้วย (เรียก แม่แบบย่อย) แม่แบบมักนำคุณลักษณะการเขียนโปรแกรม ได้แก่ ตัวแปรเสริม ฟังก์ชันตัวแจงส่วน และเมจิกเวิร์ดอื่น ซึ่งทำให้เนื้อหาที่รวมข้ามนั้นมีได้หลากหลายขึ้นอยู่กับบริบท นอกจากนี้ยังมีป้ายระบุพิเศษเพื่อควบคุมว่าจะรวมข้ามสารสนเทศใดบ้าง ก่อนสร้างแม่แบบ ให้ค้นหาแม่แบบที่มีอยู่แล้วเร็ว ๆ (เช่น โดยการสำรวจ หมวดหมู่:แม่แบบวิกิพีเดีย) เพื่อดูว่ามีแม่แบบที่ทำสิ่งที่คุณต้องการหรือแม่แบบคล้ายกันที่สามารถคัดลอกและดัดแปรแม่แบบ (หรือคงไว้และขยายแม่แบบเพิ่ม) หรือไม่ มองหาแม่แบบทั่วไปซึ่งสามารถต่อเติมเป็นแม่แบบใหม่ได้ ตัวอย่างเช่น แม่แบบกล่องนำทางสามารถสร้างได้ง่ายโดยการเรียก แม่แบบ:Navbox ทั่วไป ไม่มีกฎเหล็กว่าควรเลือกชื่อใดเป็นชื่อแม่แบบ แต่ควรเป็นชื่อสั้น ๆ แต่บรรยายสรรพคุณได้ครบถ้วนพอสมควร หากมีแม่แบบคล้ายกัน ลองใช้รูปแบบการตั้งชื่อให้สอดคล้องกัน แม่แบบสามารถเปลี่ยนชื่อได้โดยไม่ทำให้การรวมข้ามที่ใช้อยู่แล้วเสียไป ถ้ามีการเปลี่ยนทางไปยังชื่อแม่แบบใหม่ ระมัดระวังอย่างยิ่งเมื่อแก้ไขแม่แบบที่มีอยู่เดิม การเปลี่ยนแปลงสามารถมีผลกระทบต่อหน้าจำนวนมาก ซึ่งบ่อยครั้งมักเป็นผลกระทบที่คุณอาจคาดไม่ถึง ด้วยเหตุนี้แม่แบบที่ใช้มากหลายแม่แบบจึงมีการป้องกันการแก้ไขยกเว้นผู้ดูแลระบบ ส่วนผู้เขียนคนอื่นสามารถเสนอแนะข้อเปลี่ยนแปลงได้ทางหน้าคุย บางแม่แบบมีหน้ากระบะทรายและชุดทดสอบสำหรับทดลอง สามารถเสนอให้ลบหรือรวมแม่แบบได้เช่นเดียวกับหน้าอื่น การจัดการตัวแปรเสริมค่าของตัวแปรเสริมซึ่งสามารถป้อนเข้าสู่แม่แบบจะปรากฏในรหัสแม่แบบเป็นไอเท็มที่อยู่ระหว่างวงเล็บสามตัว ดังนี้
หากตัวแปรเสริมไม่ได้รับกำหนดค่า ก็จะไม่มีการแทนที่เกิดขึ้น หมายความว่าถ้าไม่มีค่าถูกส่งผ่านสำหรับตัวแปรเสริม หมายเหตุว่าค่าโดยปริยายจะต้องเป็นข้อความจริง คือคุณไม่สามารถกำหนดตัวแปรเสริมอีกตัวแปรหนึ่งเป็นค่าโดยปริยายได้ จะทำให้ตัวแปรเสริมคืนค่าเป็นชื่อของตัวแปรเสริมเป็นข้อความ เนื่องจากมีการใช้วากยสัมพันธ์วงเล็บคู่และวงเล็บสามหลายครั้ง บางทีนิพจน์อาจดูกำกวม อาจเป็นประโยชน์หรือมีความจำเป็นในการใส่อักขระว่างเพื่อลดความกำกวมนั้น ตัวอย่างเช่น กรณีพิเศษ: ป้ายระบุเปิดสไตล์เอกซ์เอ็มแอลตัวแปรเสริมจะไม่ขยายเมื่อวนรอบด้วยป้ายระบุ
เพราะตัวแปรเสริมไม่มีการขยาย แต่คุณสามารถใช้
ระวัง: ยูอาร์แอลที่ขยายมากเกินหากค่าของตัวแปรเสริมเป็น (หรือลงท้ายด้วย) ยูอาร์แอล ให้ตรวจดูว่ายูอาร์แอลแสดงผลในวิกิพีเดียเป็นลิงก์ที่ขยายมากเกินด้วยอักขระตั้งแต่หนึ่งตัวขึ้นไปตามหลังยูอาร์แอลหรือไม่ เพื่อไม่ให้เวลาคลิกลิงก์แล้วทำให้เกิดข้อผิดพลาดหรือล้มเหลว รับประกันว่าหลังซอฟต์แวร์ประมวลผลแล้ว ช่องว่างอ่อน (ไม่ใช่ช่องว่างแข็งหรือไม่แบ่ง) ตามหลังยูอาร์แอล ไม่ว่าคุณหรือผู้ใช้เป็นผู้ใส่ยูอาร์แอลหรือยูอาร์แอลนั้นก่อกำเนิดขึ้นจากการประมวลผลอัตโนมัติ รหัสต้นทางสามารถบรรจุหรือก่อกำเนิดช่องว่างซึ่งถูกละเลยในการประมวลผลหรืออาจไม่มีช่องว่างอยู่ที่นั่น ให้แก้ไขรหัสต้นทาง อาจโดยการบังคับช่องว่างอ่อนให้ปรากฏอยู่หลังยูอาร์แอล แม่แบบ ตัวแปรของระบบและตรรกะแบบมีเงื่อนไขรหัสแม่แบบมักใช้ตัวแปรและฟังก์ชันการแจงส่วนที่อธิบายใน วิธีใช้:เมจิกเวิร์ด เพื่อทำให้พฤติกรรมของแม่แบบเปลี่ยนไปตามสิ่งแวดล้อม (เช่น เวลาปัจจุบันหรือเนมสเปซ) หรือต่อค่าตัวแปรเสริมที่ส่งผ่านไปยังตัวมัน นอกจากนี้ ยังสามารถใช้รหัสเพื่อการคำนวณเลขคณิตได้ แต่คุณลักษณะการเขียนโปรแกรมมาตรฐานอย่างวงวนและการสั่งกำหนดค่าตัวแปรจะไม่มีให้ใช้ การขักใยสายอักขระเต็มก็ใช้ไม่ได้เช่นกัน สำหรับรายการตัวแปรกังกล่าวดูที่ วิธีใช้:เมจิกเวิร์ด และเอกสารที่สมบูรณ์กว่าทางหน้ามีเดียวิกิ mw:Help:Magic words และ mw:Help:Extension:ParserFunctions แม่แบบซ้อนในแม่แบบหนึ่ง ๆ อาจบรรจุแม่แบบอื่นด้วย ปกติเรียก การซ้อนใน (nesting) เมื่อมีการประมวลผลแม่แบบ ข้อความวิกิที่ผลิตจากแม่แบบถูกซ้อนในทั้งหมดจะรวมข้ามสู่แม่แบบที่กำลังซ้อนใน เพื่อให้ผลิตภัณฑ์สุดท้ายมีการประมวลผลจากแม่แบบที่ซ้อนในลึกสุดไล่ขึ้นมาเรื่อย ๆ โดยสภาพ แม้เมื่อนำไปปฏิบัติแล้วค่อนข้างตรงไปตรงมา แต่ก็มีทริกและการพลิกแพลงบางอย่างที่สำคัญ ในการส่งค่าตัวแปรเสริมไปยังแม่แบบที่ถูกซ้อนใน ให้วางป้ายระบุตัวแปรเสริมเป็นค่าของตัวแปรเสริมหนึ่งในแม่แบบที่ถูกซ้อนในนั้น
สำหรับตัวแปรเสริมแม่แบบเองสามารถเลือกแบบมีเงื่อนไขได้
แม่แบบสามารถเรียดตัวเองได้ แต่จะหยุดหลังการวนซ้ำหนึ่งรอบเพื่อป้องกันวงวนไม่รู้จบ เมื่อแม่แบบซ้อนในมีวงเล็บไม่เข้าคู่ เช่นใน ดูสารสนเทศเพิ่มเติมที่ meta:Help:Advanced templates และ meta:Help:Recursive conversion of wikitext ทั้งสองหน้ายังมีสารสนเทศเกี่ยวกับการเรียกแม่แบบอย่างไม่ธรรมดา เช่น Noinclude, includeonly, และ onlyincludeโดยปริยาย เมื่อมีการรวมข้าม (หรือแทนที่) แม่แบบ ข้อความวิกิ (รหัส) ทั้งหมดจากหน้าแม่แบบจะมารวมอยู่ในหน้าเป้าหมายด้วย แต่ผู้ใช้สามารถดัดแปรพฤติกรรมนั้นได้ โดยใช้ป้ายระบุซึ่งเจาะจงว่าจะให้รวมส่วนใดของรหัสแม่แบบ เพื่อเลี่ยงการรวมข้ามสารสนเทศที่ตั้งใจให้แสดงผลเฉพาะในหน้าแม่แบบเอง เช่น เอกสารกำกับแม่แบบและหมวดหมู่ ป้ายระบุได้แก่
บางทีปัญหาที่พบบ่อยที่สุดสำหรับการใช้บล็อกเหล่านี้ได้แก่ช่องว่างหรือบรรทัดไม่พึงประสงค์ เป็นสิ่งสำคัญที่ต้องระลึกว่าผลของป้ายระบุเหล่านี้เริ่มทันทีก่อนวงเล็บปีกกาเครื่องหมายแรก ไม่ใช่บรรทัดก่อนหน้าหรืออักขระที่เห็นได้ก่อนหน้า ทำนองเดียวกัน ผลจะสิ้นสุดทันทีหลังวงเล็บปีกกาสุดท้าย ไม่ใช่บรรทัดต่อไปหรืออักขระที่มองเห็นได้ถัดไป ตัวอย่างเช่น
ป้ายระบุเหล่านี้สามารถซ้อนในกันและกันได้ (ซึ่งจะใช้ได้สำหรับป้ายระบุ |