วิธีใช้:แม่แบบ

วิดีโอแนะนำแม่แบบเบื้องต้น (พากย์อังกฤษ บรรยายไทย)
แม่แบบ (template) เป็นหน้าของวิกิพีเดียที่ตั้งใจให้รวมอยู่ในหน้าอื่น ปกติมีเนื้อความซ้ำ ๆ มักจะมีเนื้อหาที่อาจมีความจำเป็นต้องแสดงในหน้าอื่นซ้ำ ๆ การใช้ที่พบบ่อย เช่น เป็นสารสำเร็จรูป คำเตือนหรือประกาศมาตรฐาน กล่องข้อมูล กล่องนำทาง และเพื่อวัตถุประสงค์ที่คล้ายกัน
วิธีการใส่แม่แบบที่พบบ่อยที่สุด เรียก การรวมข้าม (transclusion) โดยข้อความวิกิของหน้าเป้าหมายมีการพาดพิงถึงแม่แบบ โดยใช้วากยสัมพันธ์  อีกวิธีหนึ่งได้แก่การแทนที่ (substitution) โดยที่มีการคัดลอกเนื้อหาของแม่แบบลงในข้อความวิกิของหน้าเป้าหมายครั้งเดียวเมื่อบันทึก

**คำอธิบายทั่วไป**
แม่แบบส่วนใหญ่ได้แก่หน้าในเนมสเปซแม่แบบ ซึ่งหมายความว่าแม่แบบจะมีชื่อในรูป "แม่แบบ:XXXX" ทว่า การรวมข้ามและแทนที่สามารถทำได้จากเนมสเปซใดก็ได้ แม่แบบบางอย่างจึงจัดอยู่ในเนมสเปซอื่น เช่น เนมสเปซผู้ใช้ หน้าแม่แบบมีหน้าคุยที่สัมพันธ์กับแม่แบบนั้นด้วย
แม่แบบสามารถมีข้อความวิกิใดก็ได้ตามประสงค์ รวมทั้งการเรียกแม่แบบอื่น แต่มีสมรรถนะโปรแกรมจำกัดบางอย่าง ได้แก่ ค่าปรับแต่งได้ (เรียก "ตัวแปรเสริม") การคำนวณและการแตกกิ่ง (โดยใช้ฟังก์ชันตัวแจงส่วน) และการเข้าถึงตัวแปรจำเพาะต่อวิกิ (เมจิกเวิร์ด) อย่างเช่น วันที่ เวลาและชื่อหน้า แม่แบบยังอาจมีป้ายระบุซึ่งนิยามว่าจะรวมส่วนใดของข้อความวิกิหากรวมผ่านหรือแทนที่แม่แบบ หมายความว่า ลักษณะปรากฏของหน้าแม่แบบไม่จำเป็นต้องเหมือนกับเนื้อหาที่รวมข้าม (ตัวอย่างเช่น สามารถมีเอกสารประกอบ หมวดหมู่ของแม่แบบ เป็นต้น)
วิธีการ: ในการรวมข้ามแม่แบบเข้าสู่บทความหรือหน้าหนึ่ง ให้พิมพ์  ในข้อความวิกิตรงกับที่ที่จะให้แม่แบบปรากฏ อักษรตัวแรกจะเป็นตัวเล็กหรือใหญ่ก็ได้
คำขึ้นต้น แม่แบบ: ก่อนชื่อแม่แบบเป็นคำขึ้นต้นโดยปริยายและไม่จำเป็นต้องใส่ แต่สำหรับแม่แบบที่เก็บไว้ในเนมสเปซอื่น จะต้องระบุคำนำหน้า เช่น ผู้ใช้: ด้วย ในการรวมข้ามหน้าในเนมสเปซหลัก ให้ใส่เครื่องหมายทวิภาคก่อนชื่อเรื่อง เช่น {{:ชื่อหน้า}}
การพยายามรวมข้ามแม่แบบที่ยังไม่มีผู้สร้างจะก่อให้เกิดลิงก์แดง เช่นเดียวกับการเชื่อมโยงไปยังหน้าที่ไม่มีอยู่อื่น การคลิกลิงก์นั้นจะทำให้บุคคลสร้างแม่แบบนั้น ๆ ได้ ไม่สามารถรวมข้ามหน้าระหว่างโครงการได้ (เช่น วิกิพีเดียภาษาอื่น หรือโครงการพี่น้องของวิกิมีเดีย) ในการใช้แม่แบบในโครงการอื่น จะต้องสร้างแม่แบบเดียวกันขึ้นมาในโครงการนั้น ๆ

**วากยสัมพันธ์การใช้**

**ตัวแปรเสริม**
วากยสัมพันธ์การรวมข้ามพื้นฐานที่ให้ไว้ข้างต้นสามารถขยายได้ด้วยการเพิ่มตัวแปรเสริม ซึ่งใช้เพื่อควบคุมผลป้อนกลับของแม่แบบ วากยสัมพันธ์สำหรับตัวแปรเสริมได้แก่ 
โดยที่ ชื่อแม่แบบ เป็นชื่อของแม่แบบ และ ตัวแปรเสริม อาจมีเพียงค่าค่าหนึ่ง (จะเรียก ตัวแปรเสริมไม่มีชื่อ) หรือจะอยู่ในรูป ชื่อ=ค่า (ตัวแปรเสริมมีชื่อ) ก็ได้ ตัวแปรเสริมไม่มีชื่อลำดับที่หนึ่ง สองและสาม จะได้รับชื่อ 1, 2, 3 ตามลำดับ เป็นต้น
อักขระช่องว่าง (ว่าง จุดตั้งระยะ ป้อนกลับ) จะถูกลบออกจากจุดเริ่มต้นและสิ้นสุดของชื่อและค่าตัวแปรเสริมมีชื่อ แต่ไม่ลบออกจากตรงกลาง ฉะนั้น  จึงมีผลเช่นเดียวกับ  ทั้งนี้ ไม่รวมถึงตัวแปรเสริมไม่มีชื่อ ซึ่งจะคงอักขระช่องว่างทุกตัวไว้
ตัวแปรเสริมใด (ถ้ามี) สามารถหรือควรผ่านเข้าสู่แม่แบบบ้าง และวิธีการตั้งชื่อตัวแปรเสริม ขึ้นอยู่กับการเข้ารหัสของแม่แบบนั้น ตัวแปรเสริมสามารถนิยามลำดับก่อนหลังอย่างไรก็ได้ ตัวแปรเสริมฟุ่มเฟือยหรือเขียนชื่อผิดจะไม่มีผล ตัวแปรเสริมที่ไม่นิยามจะได้รับกำหนดค่าโดยปริยาย หากมีการนิยามตัวแปรเสริมหนึ่งมากกว่าหนึ่งครั้ง ค่าสุดท้ายจะมีผล
ค่าของตัวแปรเสริมสามารถเป็นสายอักขระว่าง เช่น เมื่อเครื่องหมายไพป์หรือเท่ากับตามด้วยเครื่องหมายไพป์ถัดไปหรือวงเล็บปิดทันที ซึ่งต่างจากการข้ามตัวแปรเสริมไปโดยสิ้นเชิง ซึ่งจะปล่อยตัวแปรเสริมไว้โดยไม่นิยาม แม้แม่แบบมักเข้ารหัสโดยให้ทั้งสองกรณีเท่ากัน
สามารถนิยามตัวแปรเสริมแม้ไม่มีอยู่ในรหัสของแม่แบบ ตัวอย่างเช่น reason มักใช้เป็นตัวแปรเสริมเทียมเพื่ออธิบายสั้น ๆ ในรหัสว่าเหตุใดจึงใส่แม่แบบไว้ บางแม่แบบเรียก มอดูล:ตรวจสอบพารามิเตอร์ที่ไม่รู้จัก เพื่อเตือนผู้ใช้ว่ากำลังใช้ตัวแปรเสริมที่ไม่มีการอธิบายในรหัสของแม่แบบ ซึ่งส่วนใหญ่ใช้กับกล่องข้อมูลและแม่แบบอื่นที่มีตัวแปรเสริมซับซ้อนจำนวนมาก โดยที่ถ้ามีตัวแปรเสริมที่ไม่รู้จักปกติจะทำให้เกิดข้อผิดพลาดโดยไม่ได้ตั้งใจ หากคุณปรับแม่แบบดังกล่าวให้รวมตัวแปรเสริมใหม่ จะต้องปรับการเรียกมอดูลด้วยเพื่อให้คิดรวมตัวแปรเสริมใหม่

**การเรียก**
การเรียกแม่แบบไม่ต่างจากการเรียกตัวแปรหรือฟังก์ชันในภาษาโปรแกรม คือ เรียกแม่แบบด้วยการอ้างอิงและแม่แบบจะคืนค่าค่าหนึ่งมา (สิ่งออก) เช่นเดียวกับฟังก์ชัน บางแม่แบบยอมรับตัวแปรเสริมที่เปลี่ยนแปลงสิ่งออกได้
ในมีเดียวิกิ ซึ่งเป็นซอฟต์แวร์วิกิที่วิกิพีเดียใช้ ตัวแปรมีความหมายจำเพาะกว่าซึ่งทำให้ตัวแปรต่างจากแม่แบบ แต่ทั้งสองเขียนด้วยเครื่องหมายวงเล็บปีกกาคู่  ปิดหน้าท้ายเหมือนกัน และคืนค่าค่าหนึ่งเหมือนกัน
ขณะที่ชื่อตัวแปรมีเดียวิกิเป็นอักษรตัวใหญ่ทั้งหมด แต่ชื่อแม่แบบมีคุณลักษณะพื้นฐานและข้อจำกัดเดียวกับชื่อหน้าทั้งหมด คือ ไวต่ออักษรใหญ่เล็ก (ยกเว้นสำหรับอักขระตัวแรก) เส้นใต้อักขระมีการแจงส่วนเป็นว่าง และชื่อแม่แบบไม่สามารถมีอักขระต่อไปนี้  เพราะต้องสงวนไว้สำหรับมาร์กอัพวิกิและเอชทีเอ็มแอล
สัญลักษณ์นัมเบอร์ # เรียก ตัวระบุส่วนแฟรกเมนต์ เพราะสัญลักษณ์นี้แสดงแฟรกเมนต์หรือส่วนหนึ่งของเอกสาร (เช่น ส่วนในบทความวิกิพีเดีย) แม้สัญลักษณ์ดังกล่าวสามารถใช้เพื่อเชื่อมโยงไปยังส่วนของหน้าแมแบบได้ (เช่น แม่แบบ:สถานีย่อย2#ตัวอย่าง) แต่ไม่มีเหตุผลต้องใส่ตัวระบุแฟรกเมนต์หรือชื่อแฟรกเมนต์ในอ้างอิงแม่แบบ ตัวอย่างเช่น ใน  สายอักขระ #Location ไม่มีจุดประสงค์จึงถูกละเลย

**ตัวอย่างการใช้แม่แบบพื้นฐาน**
หากคุณประสงค์ทดลองกับแม่แบบ กรุณาใช้หน้าผู้ใช้ของคุณหรือกระบะทราย
ตัวอย่างของแม่แบบง่ายมากแม่แบบหนึ่งพบได้ที่ แม่แบบ:Lambda ซึ่งขยายออกไปเพื่อวางสัญลักษณ์แลมดา ณ จุดนั้นในข้อความ โปรแกรมเมอร์จะกล่าวว่าแม่แบบนี้คืนสัญลักษณ์แลมดา (λ)
คลิกที่ แม่แบบ:Lambda แล้วคลิกตรงแถบ "แก้ไขต้นฉบับ" เพื่อดูรหัสของแม่แบบ (หรือข้อความวิกิ) ส่วนที่ "มีผล" ของรหัส ที่เรียก ส่วนขยาย (expansion) ของแม่แบบนั้น เป็นคำคำเดียว &lambda; ข้อความวิกิที่เหลืออยู่ภายในป้ายระบุ noinclude ฉะนั้นจึงแสดงผลในหน้าแม่แบบเองแต่จะไม่แสดงผลเมื่อมีการใช้ (หรือเรียก) แม่แบบในหน้าอื่น
ในการรวมข้ามแม่แบบ:Lambda ในหน้าอื่น (คือการใช้ในหน้าอื่นนั่นเอง) ให้พิมพ์ lambda (หรือ Lambda ก็ได้ เพราะอักษรตัวแรกจะเป็นอักษรเล็กหรือใหญ่ก็ได้) ลงในข้อความวิกิของหน้าเป้าหมายแล้วกด แสดงตัวอย่าง จะแสดงผลหน้าด้วย การเรียกแม่แบบ แทนที่ด้วยส่วนขยายของแม่แบบ ราวกับว่าข้อความวิกิตรงนั้นมี &lambda; อยู่จริง หน้าที่แสดงผลจึงมีข้อความ "λ" ปรากฏ
ตัวอย่างเช่น พิมพ์ อักษรตัวที่ 11 ของพยัญชนะกรีกได้แก่แลมดา (lambda) คุณจะเห็นว่า "อักษรตัวที่ 11 ของพยัญชนะกรีกได้แก่แลมดา (lambda)" เมื่อดูตัวอย่างหน้าหรือหลังบันทึกการเปลี่ยนแปลง คุณสามารถใช้แม่แบบได้โดยไม่ต้องรู้รายละเอียดของรหัส เพียงแต่คุณต้องจำได้ว่าแม่แบบจะได้ผลลัพธ์อย่างไร ซึ่งปกติอธิบายไว้ในหน้าแม่แบบอยู่แล้ว
การใช้แม่แบบนี้อีกทางหนึ่งได้แก่การแทนที่แม่แบบ หากคุณพิมพ์ อักษรตัวที่ 11 ของพยัญชนะกรีกได้แก่แลมดา (lambda) แล้วดูตัวอย่างหรือบันทุกหน้า คุณจะเห็น "อักษรตัวที่ 11 ของพยัญชนะกรีกได้แก่แลมดา (λ)" อีกครั้ง แต่เมื่อคุณย้อนกลับไปดูข้อความวิกิที่บันทึกไว้ คุณจะเห็นว่าการเรียกแม่แบบถูกแทนที่ด้วยส่วนขยายของแม่แบบเมื่อคุณบันทึกหน้า ลิงก์ระหว่างข้อความออกและแม่แบบเสียไป และผลออกจะไม่ได้รับผลกระทบจากการเปลี่ยนแปลงในแม่แบบหลังจากนั้น (ซึ่งจะเกิดในกรณีการรวมข้าม)

**Parameters ตัวอย่างกับตัวแปรเสริม**
ตัวอย่างของแม่แบบที่รับตัวแปรเสริม ได้แก่ แม่แบบ เกี่ยวกับ ลองพิมพ์ วิธีใช้:มอดูล ในหน้าทดลอง (หรือกระบะทราย) จะได้ข้อความต่อไปนี้
แม่แบบ เกี่ยวกับ ใช้ตัวแปรเสริมไม่มีชื่อสามตัวแปรในตัวอย่างข้างต้น แต่แม่แบบเดียวกันนี้ยังสามารถใช้ได้โดยระบุตัวแปรเสริมจำนวนต่างกันซึ่งจะให้ผลต่างกันเล็กน้อย ตัวอย่างเช่น วิธีใช้:มอดูล สังเกตการใช้ตัวแปรเสริมว่าง ในตัวอย่างนี้ไพป์ที่เขียนติดกันหมายความว่าตัวแปรเสริมแรกที่ "มีการผ่าน" ไปยังแม่แบบเป็นสายอักขระว่าง ซึ่งในแม่แบบนี้จะทำให้แม่แบบเว้นประโยค "เกี่ยวกับ" เริ่มต้น คุณจะได้ วิธีใช้:มอดูล
แม่แบบอื่น โดยเฉพาะอย่างยิ่งแม่แบบที่ซับซ้อนขึ้น รับตัวแปรมีชื่อหรือตัวแปรที่มีชื่อและไม่มีชื่อผสมกัน ตัวอย่างอย่างง่ายเช่น แม่แบบ:Payoff matrix ซึ่งใช้เพื่อสร้างตารางขนาด 2×2 ตัวอย่างเช่น
ดู หน้าแม่แบบ สำหรับความน่าจะเป็นมากขึ้น สังเกตว่าแม่แบบที่ใช้ข้างต้นไม่ได้นิยามตัวแปรเสริมทั้งหมดที่มีอยู่ ตัวแปรที่ไม่นิยามเหล่านี้จะได้กำหนดค่าโดยปริยาย
ช่องว่างหน้าและหลังเครื่องหมายเท่ากับ และก่อนและหลังตัวแปรเสริมใช้เพื่อทำให้กระจ่างเท่านั้น แต่ไม่มีความจำเป็นและจะถูกละเลยเมื่อมีการประเมินแม่แบบ (แต่สำหรับตัวแปรเสริมไม่มีชื่อจะยังนำมาคิดอยู่) ชื่อตัวแปรเสริมไวต่ออักษรใหญ่เล็ก ตัวอย่างเช่น จะไม่สามารถเขียน DR ผิดเป็น dr หรือ dR ในตัวอย่างข้างต้นได้ ตัวแปรเสริมซึ่งมีชื่อที่ไม่ได้ใช้ในแม่แบบจะถูกละเลย
พิจารณารหัสต้นทางของแม่แบบแสดงมาร์กอัพตารางมาตรฐานโดยมีเอนทิตีวงเล็บสามวงเล็บเป็นตัวแทนของตัวแปรเสริม
เอนทิตี {Left} สั่งแม่แบบให้ใช้ตัวแปรเสริมมีชื่อ 2L หรือข้อความ Left หากตัวแปรเสริมดังกล่าวไม่มีอยู่ในการเรียก

**การสร้างและแก้ไขแม่แบบ**
การสร้างและแก้ไขแม่แบบก็มีวิธีเช่นเดียวกับหน้าอื่น เริ่มจากเลือกชื่อที่เหมาะสม นำทางไปยังหน้านั้น แล้วคลิกแถบ "แก้ไข" หรือสร้างหน้าใหม่ตามความจำเป็น ดังที่กล่าวข้างต้น ปกติแม่แบบจะจัดอยู่ในเนมสเปซแม่แบบ แม้แม่แบบที่ตั้งใจสำหรับใช้ส่วนตัวคุณเองหรือสำหรับทดลองสามารถสร้างในเนมสเปซผู้ใช้ของคุณเอง ทุกอย่างที่สามารถใส่ในหน้าปกติหรือบทความสามารถใส่ในแม่แบบได้ รวมทั้งแม่แบบอื่นด้วย (เรียก แม่แบบย่อย) แม่แบบมักนำคุณลักษณะการเขียนโปรแกรม ได้แก่ ตัวแปรเสริม ฟังก์ชันตัวแจงส่วน และเมจิกเวิร์ดอื่น ซึ่งทำให้เนื้อหาที่รวมข้ามนั้นมีได้หลากหลายขึ้นอยู่กับบริบท นอกจากนี้ยังมีป้ายระบุพิเศษเพื่อควบคุมว่าจะรวมข้ามสารสนเทศใดบ้าง
ก่อนสร้างแม่แบบ ให้ค้นหาแม่แบบที่มีอยู่แล้วเร็ว ๆ (เช่น โดยการสำรวจ :หมวดหมู่:แม่แบบวิกิพีเดีย) เพื่อดูว่ามีแม่แบบที่ทำสิ่งที่คุณต้องการหรือแม่แบบคล้ายกันที่สามารถคัดลอกและดัดแปรแม่แบบ (หรือคงไว้และขยายแม่แบบเพิ่ม) หรือไม่ มองหาแม่แบบทั่วไปซึ่งสามารถต่อเติมเป็นแม่แบบใหม่ได้ ตัวอย่างเช่น แม่แบบกล่องนำทางสามารถสร้างได้ง่ายโดยการเรียก แม่แบบ:Navbox ทั่วไป
ไม่มีกฎเหล็กว่าควรเลือกชื่อใดเป็นชื่อแม่แบบ แต่ควรเป็นชื่อสั้น ๆ แต่บรรยายสรรพคุณได้ครบถ้วนพอสมควร หากมีแม่แบบคล้ายกัน ลองใช้รูปแบบการตั้งชื่อให้สอดคล้องกัน แม่แบบสามารถเปลี่ยนชื่อได้โดยไม่ทำให้การรวมข้ามที่ใช้อยู่แล้วเสียไป ถ้ามีการเปลี่ยนทางไปยังชื่อแม่แบบใหม่
ระมัดระวังอย่างยิ่งเมื่อแก้ไขแม่แบบที่มีอยู่เดิม การเปลี่ยนแปลงสามารถมีผลกระทบต่อหน้าจำนวนมาก ซึ่งบ่อยครั้งมักเป็นผลกระทบที่คุณอาจคาดไม่ถึง ด้วยเหตุนี้แม่แบบที่ใช้มากหลายแม่แบบจึงมีการป้องกันการแก้ไขยกเว้นผู้ดูแลระบบ ส่วนผู้เขียนคนอื่นสามารถเสนอแนะข้อเปลี่ยนแปลงได้ทางหน้าคุย บางแม่แบบมีหน้ากระบะทรายและชุดทดสอบสำหรับทดลอง
สามารถเสนอให้ลบหรือรวมแม่แบบได้เช่นเดียวกับหน้าอื่น

**การจัดการตัวแปรเสริม**
ค่าของตัวแปรเสริมซึ่งสามารถป้อนเข้าสู่แม่แบบจะปรากฏในรหัสแม่แบบเป็นไอเท็มที่อยู่ระหว่างวงเล็บสามตัว ดังนี้- รหัส  จะถูกแทนด้วยค่าของตัวแปรเสริมชื่อ xxx ตัวแปรเสริมเหล่านี้เรียก "ตัวแปรเสริมมีชื่อ"- รหัส ,  เป็นต้น จะถูกทแนที่ด้วย "ตัวแปรเสริมไม่มีชื่อ" ลำดับแรก ลำดับสอง เป็นต้น (หรือค่าของตัวแปรเสริมชื่อ 1, 2 เป็นต้น)
หากตัวแปรเสริมไม่ได้รับกำหนดค่า ก็จะไม่มีการแทนที่เกิดขึ้น หมายความว่าถ้าไม่มีค่าถูกส่งผ่านสำหรับตัวแปรเสริม xxx ค่าของนิพจน์  ในแม่แบบจะเป็น "" ตามอักษร ไม่ใช่ 'ว่าง' อย่างที่คุณคาดไว้ คุณสามารถแก้ไขพฤติกรรมแบบนี้ได้โดยการกำหนดค่าตัวแปรเสริมโดยปริยาย ซึ่งทำได้โดยใช้ "วากยสัมพันธ์ไพป์" โดย  เจาะจงค่าโดยปริยาย  dflt สำหรับตัวแปรเสริมมีชื่อ xxx และ  เจาะจงค่าโดยปริยาย dflt สำหรับตัวแปรเสริมไม่มีชื่อตัวแรก บ่อยครั้งวากยสัมพันธ์ไพป์ใช้กำหนดค่าโดยปริยายว่าง เช่น  หรือ 
หมายเหตุว่าค่าโดยปริยายจะต้องเป็นข้อความจริง คือคุณไม่สามารถกำหนดตัวแปรเสริมอีกตัวแปรหนึ่งเป็นค่าโดยปริยายได้ จะทำให้ตัวแปรเสริมคืนค่าเป็นชื่อของตัวแปรเสริมเป็นข้อความ 
เนื่องจากมีการใช้วากยสัมพันธ์วงเล็บคู่และวงเล็บสามหลายครั้ง บางทีนิพจน์อาจดูกำกวม อาจเป็นประโยชน์หรือมีความจำเป็นในการใส่อักขระว่างเพื่อลดความกำกวมนั้น ตัวอย่างเช่น  หรือ  อย่างไรก็ดี พึงระวังช่องว่างไม่พึงประสงค์ที่ปรากฏในการขยายแม่แบบด้วย

**กรณีพิเศษ: ป้ายระบุเปิดสไตล์เอกซ์เอ็มแอล**
ตัวแปรเสริมจะไม่ขยายเมื่อวนรอบด้วยป้ายระบุ nowiki จะไม่ขยายตัวแปรเสริมหากวางอยู่ในป้ายระบุเปิดแบบเอกซ์เอ็มแอล ฉะนั้น รายการต่อไปนี้จะใช้การไม่ได้ในแม่แบบ
เพราะตัวแปรเสริมไม่มีการขยาย แต่คุณสามารถใช้  ซึ่งเป็นฟังก์ชันตัวแจงส่วน ยกตัวอย่างใช้ใน sfn เพื่อก่อกำเนิดส่วนย่อย ref ฉะนั้น ตัวอย่างต่อไปนี้จะใช้การได้

**ระวัง: ยูอาร์แอลที่ขยายมากเกิน**
หากค่าของตัวแปรเสริมเป็น (หรือลงท้ายด้วย) ยูอาร์แอล ให้ตรวจดูว่ายูอาร์แอลแสดงผลในวิกิพีเดียเป็นลิงก์ที่ขยายมากเกินด้วยอักขระตั้งแต่หนึ่งตัวขึ้นไปตามหลังยูอาร์แอลหรือไม่ เพื่อไม่ให้เวลาคลิกลิงก์แล้วทำให้เกิดข้อผิดพลาดหรือล้มเหลว รับประกันว่าหลังซอฟต์แวร์ประมวลผลแล้ว ช่องว่างอ่อน (ไม่ใช่ช่องว่างแข็งหรือไม่แบ่ง) ตามหลังยูอาร์แอล ไม่ว่าคุณหรือผู้ใช้เป็นผู้ใส่ยูอาร์แอลหรือยูอาร์แอลนั้นก่อกำเนิดขึ้นจากการประมวลผลอัตโนมัติ รหัสต้นทางสามารถบรรจุหรือก่อกำเนิดช่องว่างซึ่งถูกละเลยในการประมวลผลหรืออาจไม่มีช่องว่างอยู่ที่นั่น ให้แก้ไขรหัสต้นทาง อาจโดยการบังคับช่องว่างอ่อนให้ปรากฏอยู่หลังยูอาร์แอล แม่แบบ spaces อาจมีประโยชน์

**ตัวแปรของระบบและตรรกะแบบมีเงื่อนไข**
รหัสแม่แบบมักใช้ตัวแปรและฟังก์ชันการแจงส่วนที่อธิบายใน วิธีใช้:เมจิกเวิร์ด เพื่อทำให้พฤติกรรมของแม่แบบเปลี่ยนไปตามสิ่งแวดล้อม (เช่น เวลาปัจจุบันหรือเนมสเปซ) หรือต่อค่าตัวแปรเสริมที่ส่งผ่านไปยังตัวมัน นอกจากนี้ ยังสามารถใช้รหัสเพื่อการคำนวณเลขคณิตได้ แต่คุณลักษณะการเขียนโปรแกรมมาตรฐานอย่างวงวนและการสั่งกำหนดค่าตัวแปรจะไม่มีให้ใช้ การขักใยสายอักขระเต็มก็ใช้ไม่ได้เช่นกัน 
สำหรับรายการตัวแปรกังกล่าวดูที่ วิธีใช้:เมจิกเวิร์ด และเอกสารที่สมบูรณ์กว่าทางหน้ามีเดียวิกิ mw:Help:Magic words และ mw:Help:Extension:ParserFunctions

**แม่แบบซ้อนใน**
แม่แบบหนึ่ง ๆ อาจบรรจุแม่แบบอื่นด้วย ปกติเรียก การซ้อนใน (nesting) เมื่อมีการประมวลผลแม่แบบ ข้อความวิกิที่ผลิตจากแม่แบบถูกซ้อนในทั้งหมดจะรวมข้ามสู่แม่แบบที่กำลังซ้อนใน เพื่อให้ผลิตภัณฑ์สุดท้ายมีการประมวลผลจากแม่แบบที่ซ้อนในลึกสุดไล่ขึ้นมาเรื่อย ๆ โดยสภาพ แม้เมื่อนำไปปฏิบัติแล้วค่อนข้างตรงไปตรงมา แต่ก็มีทริกและการพลิกแพลงบางอย่างที่สำคัญ 
ในการส่งค่าตัวแปรเสริมไปยังแม่แบบที่ถูกซ้อนใน ให้วางป้ายระบุตัวแปรเสริมเป็นค่าของตัวแปรเสริมหนึ่งในแม่แบบที่ถูกซ้อนในนั้น 
ตัวอย่าง
แม่แบบ:A มี  รหัสนี้นำค่าที่ส่งไปยังตัวแปรไม่มีชื่อลำดับที่สามของแม่แบบ:A แล้วส่งค่านั้นเป็นตัวแปรเสริมไม่มีชื่อลำดับแรกของแม่แบบ:B แล้วคืนข้อความวิกิที่ผลิตจาก B เป็รส่วนหนึ่งของวลี 
แม่แบบ:A มี  รหัสนี้มีผลเหมือนตัวอย่างแรก ยกเว้นตัวแปรเสริมไม่มีชื่อลำดับที่สามของแม่แบบ:A ถูกส่งไปยังตัวแปรเสริมมีชื่อ "waldo" ของแม่แบบ:B
สำหรับตัวแปรเสริมแม่แบบเองสามารถเลือกแบบมีเงื่อนไขได้
ตัวอย่าง
แม่แบบ:A มี  แม่แบบ:A ผ่านคำว่า "fox" เป็นตัวแปรเสริมมีชื่อหนึ่งของแม่แบบ:B ซึ่งชื่อของแม่แบบ:B เป็นตัวแปรเสริมไม่มีชื่อลำดับสามของ A
{{#if: สายอักขระทดสอบ | ค่าถ้าสายอักขระทดสอบไม่ว่าง | {{#if: สายอักขระทดสอบ | ค่าถ้าสายอักขระทดสอบไม่ว่าง | ค่าถ้าสายอักขระทดสอบว่าง (หรือมีเฉพาะช่องว่าง) }} }}
แม่แบบสามารถเรียดตัวเองได้ แต่จะหยุดหลังการวนซ้ำหนึ่งรอบเพื่อป้องกันวงวนไม่รู้จบ
เมื่อแม่แบบซ้อนในมีวงเล็บไม่เข้าคู่ เช่นใน lb} วงเล็บที่ไม่เข้าคู่นั้นจะถือเป็นข้อความระหว่างการประมวลผล และไม่มีผลต่อการแจงส่วนวงเล็บในแม่แบบที่กำลังซ้อนใน ทว่า หากแม่แบบที่ถูกซ้อนในมีการแทนที่ จะประมวลผลการแทนที่ก่อน แล้วจะเปลี่ยนแปลงวิธีที่มีการแจงส่วนวงเล็บในแม่แบบที่กำลังซ้อนใน เป็นกรณีที่พบน้อย แต่บางทีก็ทำให้เกิดข้อผิดพลาดที่ไม่คาดคิดได้
ดูสารสนเทศเพิ่มเติมที่ meta:Help:Advanced templates และ meta:Help:Recursive conversion of wikitext ทั้งสองหน้ายังมีสารสนเทศเกี่ยวกับการเรียกแม่แบบอย่างไม่ธรรมดา เช่น 

**Noinclude, includeonly, และ onlyinclude**
โดยปริยาย เมื่อมีการรวมข้าม (หรือแทนที่) แม่แบบ ข้อความวิกิ (รหัส) ทั้งหมดจากหน้าแม่แบบจะมารวมอยู่ในหน้าเป้าหมายด้วย แต่ผู้ใช้สามารถดัดแปรพฤติกรรมนั้นได้ โดยใช้ป้ายระบุซึ่งเจาะจงว่าจะให้รวมส่วนใดของรหัสแม่แบบ เพื่อเลี่ยงการรวมข้ามสารสนเทศที่ตั้งใจให้แสดงผลเฉพาะในหน้าแม่แบบเอง เช่น เอกสารกำกับแม่แบบและหมวดหมู่ ป้ายระบุได้แก่- noinclude – ข้อความระหว่างป้ายระบุนี้จะไม่ถูกรวมเมื่อมีการรวมข้ามหรือแทนที่แม่แบบ แต่จะมีการประมวลผลในหน้าแม่แบบ ที่พบใช้บ่อยคือเอกสารประกอบแม่แบบ- onlyinclude – ใช้เจาะจงว่าจะรวมข้ามหรือแทนที่สิ่งที่ปรากฏระหว่างป้ายระบุนี้เท่านั้น- includeonly – จะรวมข้ามหรือแทนที่ข้อความระหว่างป้ายระบุ แต่จะไม่มีการประมวลผลในหน้าแม่แบบเอง 
บางทีปัญหาที่พบบ่อยที่สุดสำหรับการใช้บล็อกเหล่านี้ได้แก่ช่องว่างหรือบรรทัดไม่พึงประสงค์ เป็นสิ่งสำคัญที่ต้องระลึกว่าผลของป้ายระบุเหล่านี้เริ่มทันทีก่อนวงเล็บปีกกาเครื่องหมายแรก ไม่ใช่บรรทัดก่อนหน้าหรืออักขระที่เห็นได้ก่อนหน้า ทำนองเดียวกัน ผลจะสิ้นสุดทันทีหลังวงเล็บปีกกาสุดท้าย ไม่ใช่บรรทัดต่อไปหรืออักขระที่มองเห็นได้ถัดไป ตัวอย่างเช่น

xt
!xt

xt
!xt



ป้ายระบุเหล่านี้สามารถซ้อนในกันและกันได้ (ซึ่งจะใช้ได้สำหรับป้ายระบุ o เป็นหลัก) สำหรับ oabcodefcghic จะใช้การไม่ได้ตามคาด ใช้กฎ "แรกเปิด สุดท้ายปิด" ซึ่งเป็นมาตรฐานสำหรับเอชทีเอ็มแอล/เอกซ์เอ็มแอล
วิธีการสร้างแม่แบบ