<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="he">
	<id>https://zitut.chabadpedia.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%D7%99%D7%95%D7%A1%D7%A3+%D7%91%D7%9F+%D7%9E%D7%9C%D7%9E%D7%93</id>
	<title>חב&quot;דציטוט - תרומות המשתמש [he]</title>
	<link rel="self" type="application/atom+xml" href="https://zitut.chabadpedia.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%D7%99%D7%95%D7%A1%D7%A3+%D7%91%D7%9F+%D7%9E%D7%9C%D7%9E%D7%93"/>
	<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php/%D7%9E%D7%99%D7%95%D7%97%D7%93:%D7%AA%D7%A8%D7%95%D7%9E%D7%95%D7%AA/%D7%99%D7%95%D7%A1%D7%A3_%D7%91%D7%9F_%D7%9E%D7%9C%D7%9E%D7%93"/>
	<updated>2026-05-14T14:00:49Z</updated>
	<subtitle>תרומות המשתמש</subtitle>
	<generator>MediaWiki 1.40.3</generator>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:Gadgets-definition&amp;diff=6565</id>
		<title>מדיה ויקי:Gadgets-definition</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:Gadgets-definition&amp;diff=6565"/>
		<updated>2025-07-16T18:21:41Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: יצירת דף עם התוכן &amp;quot;== עריכה == * editIntro[ResourceLoader]|editIntro.js * Checkty[ResourceLoader|dependencies=mediawiki.util,oojs-ui-widgets,mediawiki.util|type=general]|Checkty.js|Checkty.css * wikEdDiff[ResourceLoader]|wikEdDiff.js * OrphanCheck[ResourceLoader]|OrphanCheck.js * Revert[ResourceLoader]|Revert.js * autocomplete[ResourceLoader|dependencies=jquery.ui,jquery.textSelection]|autocomplete.js  * EditToolbar[ResourceLoader|default|dependencies=mediawiki.util]|Edi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== עריכה ==&lt;br /&gt;
* editIntro[ResourceLoader]|editIntro.js&lt;br /&gt;
* Checkty[ResourceLoader|dependencies=mediawiki.util,oojs-ui-widgets,mediawiki.util|type=general]|Checkty.js|Checkty.css&lt;br /&gt;
* wikEdDiff[ResourceLoader]|wikEdDiff.js&lt;br /&gt;
* OrphanCheck[ResourceLoader]|OrphanCheck.js&lt;br /&gt;
* Revert[ResourceLoader]|Revert.js&lt;br /&gt;
* autocomplete[ResourceLoader|dependencies=jquery.ui,jquery.textSelection]|autocomplete.js&lt;br /&gt;
&lt;br /&gt;
* EditToolbar[ResourceLoader|default|dependencies=mediawiki.util]|EditToolbar.js&lt;br /&gt;
* Summarieslist[ResourceLoader|dependencies=mediawiki.util|default]|Summarieslist.js&lt;br /&gt;
* ReferencesWarn[ResourceLoader|dependencies=mediawiki.util]|ReferencesWarn.js&lt;br /&gt;
* Rechtschreibpruefung[ResourceLoader|dependencies=mediawiki.util,jquery.cookie]|Rechtschreibpruefung.js&lt;br /&gt;
&lt;br /&gt;
== קישורים ==&lt;br /&gt;
* disambig[ResourceLoader|default|rights=minoredit]|disambig.css&lt;br /&gt;
&lt;br /&gt;
== ניווט_וחיפוש ==&lt;br /&gt;
* CustomSideBarLinks[ResourceLoader]|CustomSideBarLinks.js&lt;br /&gt;
* Dwim[ResourceLoader|skins=vector|dependencies=jquery.suggestions,mediawiki.user|default]|Dwim.js&lt;br /&gt;
* popup[ResourceLoader]|popup.js&lt;br /&gt;
&lt;br /&gt;
== עיצוב ==&lt;br /&gt;
* mySandbox[ResourceLoader|dependencies=mediawiki.util|default|rights=minoredit]|mySandbox.js&lt;br /&gt;
* CiteTooltip[ResourceLoader|dependencies=jquery.tipsy,mediawiki.user|default]|CiteTooltip.js&lt;br /&gt;
* updateMarker[ResourceLoader|type=styles]|updateMarker.css&lt;br /&gt;
&lt;br /&gt;
== קטגוריות ==&lt;br /&gt;
* HotCat[ResourceLoader]|HotCat.js&lt;br /&gt;
* Cat-a-lot[ResourceLoader]|Cat-a-lot.js&lt;br /&gt;
&lt;br /&gt;
== ניטור ==&lt;br /&gt;
* Warnings[ResourceLoader|dependencies=mediawiki.util]|Warnings.js&lt;br /&gt;
* rollBackSummary[ResourceLoader|rights=patrol]|rollBackSummary.js&lt;br /&gt;
* UserMessages[ResourceLoader|rights=patrol]|UserMessages.js&lt;br /&gt;
* rcPatrol[ResourceLoader|rights=patrol]|rcPatrol.js&lt;br /&gt;
* toggleRCOptions[ResourceLoader|rights=patrol]|toggleRCOptions.js&lt;br /&gt;
* patrolAlarm[ResourceLoader|rights=patrol]|patrolAlarm.js&lt;br /&gt;
* QuickRCDiff[ResourceLoader|dependencies=jquery.ui.dialog,mediawiki.action.history.diff,mediawiki.api]|QuickRCDiff.js&lt;br /&gt;
* validate-template-params[ResourceLoader]|validate-template-params.css|validate-template-params.js&lt;br /&gt;
* RangePatrol[ResourceLoader|rights=patrol]|RangePatrol.js&lt;br /&gt;
&lt;br /&gt;
== שונות ==&lt;br /&gt;
* feedback[ResourceLoader|dependencies=mediawiki.util|default]|feedback.js&lt;br /&gt;
* mobile-feedback[ResourceLoader|targets=mobile|dependencies=jquery]|mobile-feedback.js&lt;br /&gt;
* checkVoteRights[ResourceLoader|dependencies=mediawiki.util|type=general|rights=patrol]|checkVoteRights.js|checkVoteRights.css&lt;br /&gt;
* personalScript[ResourceLoader]|personalScript.js&lt;br /&gt;
&lt;br /&gt;
== גאדג&#039;טים ניסיוניים ==&lt;br /&gt;
* ondemand-Tabs[ResourceLoader|hidden]|ondemand-Tabs.js&lt;br /&gt;
* JWB[ResourceLoader|hidden]|JWB.js&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%97%D7%91%22%D7%93%D7%A6%D7%99%D7%98%D7%95%D7%98:%D7%9E%D7%A0%D7%98%D7%A8&amp;diff=5520</id>
		<title>חב&quot;דציטוט:מנטר</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%97%D7%91%22%D7%93%D7%A6%D7%99%D7%98%D7%95%D7%98:%D7%9E%D7%A0%D7%98%D7%A8&amp;diff=5520"/>
		<updated>2025-01-14T19:35:22Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: יצירת דף עם התוכן &amp;quot;150px &amp;quot;&amp;#039;&amp;#039;&amp;#039;מנטרים&amp;#039;&amp;#039;&amp;#039;&amp;quot; הם משתמשים העוסקים בניטור השינויים האחרונים בחב&amp;quot;דציטוט. לשם כך, ניתנים להם כלים מסוימים שנועדו לסייע להם במלאכת הניטור.  == כלים לשימוש המנטרים == למנטרים ניתנה האפשרות לבצע את הפע...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[קובץ:Wikimedia Deutschland icon explore.png|שמאל|150px]]&lt;br /&gt;
&amp;quot;&#039;&#039;&#039;מנטרים&#039;&#039;&#039;&amp;quot; הם משתמשים העוסקים בניטור [[מיוחד:שינויים אחרונים|השינויים האחרונים]] ב[[חב&amp;quot;דציטוט]]. לשם כך, ניתנים להם כלים מסוימים שנועדו לסייע להם במלאכת הניטור.&lt;br /&gt;
&lt;br /&gt;
== כלים לשימוש המנטרים ==&lt;br /&gt;
למנטרים ניתנה האפשרות לבצע את הפעולות הבאות:&lt;br /&gt;
*יכולת להבחין בין &amp;quot;עריכות בדוקות&amp;quot; לעריכות לא-בדוקות ב[[מיוחד:שינויים אחרונים|דף השינויים האחרונים]], ב[[מיוחד:רשימת מעקב|רשימת המעקב]] ובדפי השוואה בין גרסאות.&lt;br /&gt;
*סימון עריכות של אחרים כבדוקות ב[[חב&amp;quot;דציטוט:מערכת בקרת שינויים|מערכת בקרת השינויים]].&lt;br /&gt;
*[[חב&amp;quot;דציטוט:הנחיות למפעילי מערכת#שחזור מהיר|שחזור מהיר]] של דפים.&lt;br /&gt;
*צפייה ברשימה של [[מיוחד:דפים שאינם במעקב|דפים שאינם במעקב]].&lt;br /&gt;
*הסתרת [[מיוחד:יומנים/patrol|יומן השינויים הבדוקים]] כשצופים ב[[מיוחד:יומנים|כל היומנים הציבוריים]] (ניתן להציג גם את יומן השינויים הבדוקים באמצעות הקישור &amp;quot;הצגת יומן שינויים בדוקים&amp;quot;).&lt;br /&gt;
*שימוש ב[[מיוחד:סקריפטים|סקריפטים]] המיועדים למנטרים בלבד.&lt;br /&gt;
&lt;br /&gt;
== תנאי הסף לקבלת ההרשאות ==&lt;br /&gt;
הרשאות &amp;quot;מנטר&amp;quot; יכולות להינתן רק למשתמשים שעומדים בתנאים הבאים:&lt;br /&gt;
# ותק של שנתיים&lt;br /&gt;
# 1,500 עריכות במרחב הערכים&lt;br /&gt;
# היכרות מספקת עם כללי הקהילה הנוגעים לניטור ולטיפול בהשחתות&lt;br /&gt;
# מינוי או הסכמה של [[חב&amp;quot;דציטוט:מפעיל מערכת|מפעיל מערכת]]&lt;br /&gt;
כל מפעיל מערכת יכול להעניק ולהסיר הרשאות מנטר של משתמשים אחרים. משתמש המעוניין בהרשאות מנטר, יכול לבקש אותן בדף &amp;quot;[[חב&amp;quot;דציטוט:בקשות ממפעילים#בקשת הרשאות|בקשות ממפעילים]]&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
כל מפעיל מערכת רשאי להעניק - בשעת הצורך - הרשאת מנטר לפי שיקול דעתו, גם ללא הקריטריונים שצויינו לעיל.&lt;br /&gt;
&lt;br /&gt;
יש לציין כי לא לכל המשתמשים שעומדים בתנאים הללו יתווספו אוטומטית הרשאות &amp;quot;מנטר&amp;quot;. מפעילי המערכת יפעילו שיקול דעת לבחון האם המועמד מכיר את הכללים והנהלים הרלוונטיים המקובלים בחב&amp;quot;דציטוט, והאם למועמד יש שיקול דעת הולם. בפרט, על מפעיל המערכת שרוצה להעניק הרשאת &amp;quot;מנטר&amp;quot; למועמד כלשהו לוודא קיומם של קריטריונים מסוימים.&lt;br /&gt;
&lt;br /&gt;
מפעילי מערכת יכולים להסיר הרשאות מנטר של משתמש, בלי קשר לשאלה מי העניק אותן.&lt;br /&gt;
&lt;br /&gt;
==שיקולים שעל מפעילי מערכת לקחת בחשבון כשברצונם להעניק הרשאות &amp;quot;מנטר&amp;quot; למועמד==&lt;br /&gt;
* מערכת בקרת השינויים נועדה למנוע מצב שבו מספר מנטרים בודקים את אותו השינוי ובכך מבזבזים את זמנם בעבודה כפולה. בנוסף, היא עוזרת לסנן ערכים שלא נבדקו כלל. לכן, על מפעילי מערכת לבחון האם למועמד יש הידע, הניסיון והיכולת לעזור בכך. &lt;br /&gt;
* על המפעיל לוודא, שהמועמד שולט בשפה הכתובה, כך שיבחין במידת הצורך, בשגיאות כתיב ותחביר.&lt;br /&gt;
* על המפעיל לוודא, שלמועמד היכרות מספקת עם כללי הקהילה הנוגעים לניטור ולטיפול בהשחתות.&lt;br /&gt;
* על המפעיל להפנות את מקבל ההרשאה לקרוא בעיון את הדף [[חב&amp;quot;דציטוט:מדריך למנטר|מדריך למנטר]]&lt;br /&gt;
&lt;br /&gt;
==ראו גם==&lt;br /&gt;
*[[חב&amp;quot;דציטוט:מדריך למנטר|מדריך למנטר]]&lt;br /&gt;
*[http://zitut.chabadpedia.com/index.php/%D7%9E%D7%99%D7%95%D7%97%D7%93:%D7%A8%D7%A9%D7%99%D7%9E%D7%AA_%D7%9E%D7%A9%D7%AA%D7%9E%D7%A9%D7%99%D7%9D?username=&amp;amp;group=patroler&amp;amp;wpsubmit=&amp;amp;wpFormIdentifier=mw-listusers-form&amp;amp;limit=300 רשימת המנטרים]&lt;br /&gt;
*[[מיוחד:יומנים/patrol|יומן שינויים בדוקים]]&lt;br /&gt;
*[[חב&amp;quot;דציטוט:מפעיל מערכת|מפעיל מערכת]]&lt;br /&gt;
*[[מיוחד:העדפות#mw-prefsection-gadgets|רשימת גאדג&#039;טים שנועדו לסייע בניטור]] (ראו תחת הכותרת &amp;quot;ניטור&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
[[קטגוריה:חב&amp;quot;דציטוט - הרשאות|מנטר]]&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%97%D7%91%22%D7%93%D7%A6%D7%99%D7%98%D7%95%D7%98:%D7%A2%D7%95%D7%A8%D7%9A_%D7%9E%D7%9E%D7%A9%D7%A7&amp;diff=5519</id>
		<title>חב&quot;דציטוט:עורך ממשק</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%97%D7%91%22%D7%93%D7%A6%D7%99%D7%98%D7%95%D7%98:%D7%A2%D7%95%D7%A8%D7%9A_%D7%9E%D7%9E%D7%A9%D7%A7&amp;diff=5519"/>
		<updated>2025-01-14T19:04:47Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: יצירת דף עם התוכן &amp;quot;&amp;#039;&amp;#039;&amp;#039;עורך ממשק&amp;#039;&amp;#039;&amp;#039; יכול לערוך את הודעות המערכת של ממשק המשתמש בחב&amp;quot;דציטוט, וכן לטפל במסנני ההשחתות. פירוט מלא של ההרשאות בטבלה שלהלן. הרשאות היו בעבר חלק מההרשאות של מפעיל מערכת. בנוסף לתת-קבוצה של הרשאות מפעיל, הרשאת &amp;quot;מנהל ממשק&amp;quot; מאפשרת...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;עורך ממשק&#039;&#039;&#039; יכול לערוך את הודעות המערכת של ממשק המשתמש ב[[חב&amp;quot;דציטוט]], וכן לטפל במסנני ההשחתות. פירוט מלא של ההרשאות בטבלה שלהלן. הרשאות היו בעבר חלק מההרשאות של [[חב&amp;quot;דציטוט:מפעיל מערכת|מפעיל מערכת]]. בנוסף לתת-קבוצה של הרשאות מפעיל, הרשאת &amp;quot;מנהל ממשק&amp;quot; מאפשרת גם לייבא דפים מאתרי ויקי נוספים, שנשמרו בעזרת [[מיוחד:ייצוא דפים]]. ההרשאה מאפשרת עריכת דפים, כולל דפי js, css ו־json במרחב מדיה-ויקי, ובמרחב משתמש של משתמשים אחרים (ללא ההרשאה, עורך יכול לערוך דפים כאלו במרחב המשתמש של עצמו, אך לא של אחרים).&lt;br /&gt;
&lt;br /&gt;
עריכת דפי js{{כ}}, css ו־json מחוץ למרחב המשתמש האישי ניתנת לעורכי ממשק, אך לא למפעילים.&lt;br /&gt;
&lt;br /&gt;
ההרשאה למנהל ממשק מוענקת על ידי [[חב&amp;quot;דציטוט:בירוקרט|בירוקרטים]].&lt;br /&gt;
&lt;br /&gt;
בחב&amp;quot;דציטוט ישנם {{NUMBERINGROUP:interface-admin}} [[Special:ListUsers/interface-admin| משתמשים בעלי הרשאת {{שם הדף}}]].&lt;br /&gt;
&lt;br /&gt;
==הרשאות טכניות==&lt;br /&gt;
להלן רשימת ההרשאות הכלולות בהרשאת &amp;quot;מנהל ממשק&amp;quot;. רשימה עדכנית מופיעה ב[[מיוחד:רשימת הרשאות לקבוצה]]:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!תיאור ההרשאה !! שם ההרשאה&lt;br /&gt;
|-&lt;br /&gt;
|עריכת ממשק המשתמש || editinterface&lt;br /&gt;
|-&lt;br /&gt;
|עריכת קובצי CSS של האתר כולו || editsitecss&lt;br /&gt;
|-&lt;br /&gt;
|עריכת קובצי CSS של משתמשים אחרים || editusercss&lt;br /&gt;
|-&lt;br /&gt;
|עריכת קובצי JSON של האתר כולו || editsitejson&lt;br /&gt;
|-&lt;br /&gt;
|עריכת קובצי JSON של משתמשים אחרים || edituserjson&lt;br /&gt;
|-&lt;br /&gt;
|עריכת קובצי JavaScript של האתר כולו || editsitejs&lt;br /&gt;
|-&lt;br /&gt;
|עריכת קובצי JavaScript של משתמשים אחרים || edituserjs&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[קטגוריה:חב&amp;quot;דציטוט - הרשאות]]&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%97%D7%91%22%D7%93%D7%A6%D7%99%D7%98%D7%95%D7%98:%D7%9E%D7%A0%D7%94%D7%9C_%D7%9E%D7%9E%D7%A9%D7%A7&amp;diff=5518</id>
		<title>חב&quot;דציטוט:מנהל ממשק</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%97%D7%91%22%D7%93%D7%A6%D7%99%D7%98%D7%95%D7%98:%D7%9E%D7%A0%D7%94%D7%9C_%D7%9E%D7%9E%D7%A9%D7%A7&amp;diff=5518"/>
		<updated>2025-01-14T19:03:59Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: הפניה לדף חב&amp;quot;דציטוט:עורך ממשק&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#הפניה [[חב&amp;quot;דציטוט:עורך ממשק]]&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%AA%D7%91%D7%A0%D7%99%D7%AA:%D7%9E%D7%A6%D7%95%D7%95%D7%AA&amp;diff=5517</id>
		<title>תבנית:מצוות</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%AA%D7%91%D7%A0%D7%99%D7%AA:%D7%9E%D7%A6%D7%95%D7%95%D7%AA&amp;diff=5517"/>
		<updated>2025-01-14T19:01:30Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: יצירת דף עם התוכן &amp;quot;{{בית כנסת}}{{מנהגים}}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{בית כנסת}}{{מנהגים}}&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%A2%D7%96%D7%A8%D7%94:%D7%90%D7%99%D7%9A_%D7%9C%D7%99%D7%A6%D7%95%D7%A8_%D7%93%D7%A3_%D7%97%D7%93%D7%A9&amp;diff=5401</id>
		<title>עזרה:איך ליצור דף חדש</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%A2%D7%96%D7%A8%D7%94:%D7%90%D7%99%D7%9A_%D7%9C%D7%99%D7%A6%D7%95%D7%A8_%D7%93%D7%A3_%D7%97%D7%93%D7%A9&amp;diff=5401"/>
		<updated>2024-07-06T22:22:55Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: יוסף בן מלמד העביר את הדף חב&amp;quot;דציטוט:איך ליצור דף חדש לשם עזרה:איך ליצור דף חדש בלי להשאיר הפניה&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== עקרונות מנחים ==&lt;br /&gt;
* לפני שתצרו דף חדש, חפשו ערכים קיימים בנושא עליו אתם רוצים לכתוב כדי לוודא שעדיין לא קיים ערך בנושא זה.&lt;br /&gt;
* חשבו אם הערך אותו בחרתם ליצור הוא ערך בעל חשיבות אנציקלופדית והאם הוא עשוי לעניין קוראים אחרים מבחינת מרכזיותו.&lt;br /&gt;
* לפני יצירת ערך על אישיות נא בדקו האם היא עונה על האמור בדף [[חב&amp;quot;דפדיה:עקרונות וקווים מנחים ליצירת ערכי אישים|עקרונות וקווים מנחים ליצירת ערכי אישים]]&lt;br /&gt;
* &#039;&#039;&#039;ערכי יהדות שאין להם קשר ישיר לחב&amp;quot;ד&#039;&#039;&#039;. לא מומלץ להשקיע זמן ומשאבים אחרים, בכתיבת ערכים שאינם קשורים בחסידות חב&amp;quot;ד בצורה משמעותית. זאת מכיון שישנם אתרים אחרים המתמחים בכך ועושים זאת היטב. יחד עם זאת ניתן לכתוב בחב&amp;quot;דציטוט ערכים בנושאים שונים ביהדות, כל עוד הם כתובים וערוכים בצורה המתאימה לכללי חב&amp;quot;דציטוט.&lt;br /&gt;
* זכרו תמיד לקשר את הערך אותו אתם כותבים לאחת [[:קטגוריה:קטגוריות|הקטגוריות]].&lt;br /&gt;
* &#039;&#039;&#039;אין לעשות שימוש בחומר המוגן בזכויות יוצרים ללא רשות!&#039;&#039;&#039;.&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
== יצירת דף חדש מקישור קיים ==&lt;br /&gt;
במהלך קריאתכם ב[[חב&amp;quot;דפדיה|חב&amp;quot;דציטוט,]] תיתקלו ודאי בקישורים לדפים שטרם נכתבו. קישורים לדפים שטרם נכתבו מופיעים בצבע אדום. לחצו על הקישור ותגיעו לדף שבו כתוב: &#039;&#039;&#039;הגעתם לדף שעדיין איננו קיים. כדי ליצור דף חדש, כתבו את התוכן שלכם בתיבת הטקסט למטה.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
פשוט התחילו לכתוב את המאמר בתיבת הטקסט. כשתסיימו, לחצו על כפתור &amp;quot;שמור דף&amp;quot; שבתחתית העמוד (השתמשו בכפתור התצוגה המקדימה אם אתם רוצים לראות כיצד ייראה הדף שכתבתם לפני שתשמרו אותו).&lt;br /&gt;
&lt;br /&gt;
== יצירת ערך חדש שעדיין אין לו קישורים ==&lt;br /&gt;
הדרך הפשוטה ביותר על מנת ליצור ערך חדש שאין לו קישורים היא לכתוב את שם הערך ב&#039;תיבת החיפוש&#039; ולהקיש על &amp;quot;עבור&amp;quot;. הערך לא יימצא ותתקבל ההודעה &#039;&#039;&#039;&amp;quot;יצירת הדף [[קישור אדום עם שם הדף]] באתר הוויקי הזה.&amp;quot;&#039;&#039;&#039; באפשרותכם ליצור את הדף על ידי לחיצה על הקישור ויפתח חלון העריכה של הערך החדש.&lt;br /&gt;
&lt;br /&gt;
עוד דרך היא להשתמש ב[[דף משתמש]], או ב[[ארגז החול]] או ב[[בקשת ערך]], אך מומלץ להוסיף קישור לערך בתוך ערך רלוונטי, שבו הקישור נדרש ממילא.{{שאלה}}&amp;lt;small&amp;gt; &amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%A2%D7%96%D7%A8%D7%94:%D7%90%D7%99%D7%9A_%D7%9C%D7%99%D7%A6%D7%95%D7%A8_%D7%93%D7%A3_%D7%97%D7%93%D7%A9&amp;diff=5399</id>
		<title>עזרה:איך ליצור דף חדש</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%A2%D7%96%D7%A8%D7%94:%D7%90%D7%99%D7%9A_%D7%9C%D7%99%D7%A6%D7%95%D7%A8_%D7%93%D7%A3_%D7%97%D7%93%D7%A9&amp;diff=5399"/>
		<updated>2024-07-06T22:22:10Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: יוסף בן מלמד העביר את הדף איך ליצור דף חדש לשם חב&amp;quot;דציטוט:איך ליצור דף חדש בלי להשאיר הפניה&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== עקרונות מנחים ==&lt;br /&gt;
* לפני שתצרו דף חדש, חפשו ערכים קיימים בנושא עליו אתם רוצים לכתוב כדי לוודא שעדיין לא קיים ערך בנושא זה.&lt;br /&gt;
* חשבו אם הערך אותו בחרתם ליצור הוא ערך בעל חשיבות אנציקלופדית והאם הוא עשוי לעניין קוראים אחרים מבחינת מרכזיותו.&lt;br /&gt;
* לפני יצירת ערך על אישיות נא בדקו האם היא עונה על האמור בדף [[חב&amp;quot;דפדיה:עקרונות וקווים מנחים ליצירת ערכי אישים|עקרונות וקווים מנחים ליצירת ערכי אישים]]&lt;br /&gt;
* &#039;&#039;&#039;ערכי יהדות שאין להם קשר ישיר לחב&amp;quot;ד&#039;&#039;&#039;. לא מומלץ להשקיע זמן ומשאבים אחרים, בכתיבת ערכים שאינם קשורים בחסידות חב&amp;quot;ד בצורה משמעותית. זאת מכיון שישנם אתרים אחרים המתמחים בכך ועושים זאת היטב. יחד עם זאת ניתן לכתוב בחב&amp;quot;דציטוט ערכים בנושאים שונים ביהדות, כל עוד הם כתובים וערוכים בצורה המתאימה לכללי חב&amp;quot;דציטוט.&lt;br /&gt;
* זכרו תמיד לקשר את הערך אותו אתם כותבים לאחת [[:קטגוריה:קטגוריות|הקטגוריות]].&lt;br /&gt;
* &#039;&#039;&#039;אין לעשות שימוש בחומר המוגן בזכויות יוצרים ללא רשות!&#039;&#039;&#039;.&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
== יצירת דף חדש מקישור קיים ==&lt;br /&gt;
במהלך קריאתכם ב[[חב&amp;quot;דפדיה|חב&amp;quot;דציטוט,]] תיתקלו ודאי בקישורים לדפים שטרם נכתבו. קישורים לדפים שטרם נכתבו מופיעים בצבע אדום. לחצו על הקישור ותגיעו לדף שבו כתוב: &#039;&#039;&#039;הגעתם לדף שעדיין איננו קיים. כדי ליצור דף חדש, כתבו את התוכן שלכם בתיבת הטקסט למטה.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
פשוט התחילו לכתוב את המאמר בתיבת הטקסט. כשתסיימו, לחצו על כפתור &amp;quot;שמור דף&amp;quot; שבתחתית העמוד (השתמשו בכפתור התצוגה המקדימה אם אתם רוצים לראות כיצד ייראה הדף שכתבתם לפני שתשמרו אותו).&lt;br /&gt;
&lt;br /&gt;
== יצירת ערך חדש שעדיין אין לו קישורים ==&lt;br /&gt;
הדרך הפשוטה ביותר על מנת ליצור ערך חדש שאין לו קישורים היא לכתוב את שם הערך ב&#039;תיבת החיפוש&#039; ולהקיש על &amp;quot;עבור&amp;quot;. הערך לא יימצא ותתקבל ההודעה &#039;&#039;&#039;&amp;quot;יצירת הדף [[קישור אדום עם שם הדף]] באתר הוויקי הזה.&amp;quot;&#039;&#039;&#039; באפשרותכם ליצור את הדף על ידי לחיצה על הקישור ויפתח חלון העריכה של הערך החדש.&lt;br /&gt;
&lt;br /&gt;
עוד דרך היא להשתמש ב[[דף משתמש]], או ב[[ארגז החול]] או ב[[בקשת ערך]], אך מומלץ להוסיף קישור לערך בתוך ערך רלוונטי, שבו הקישור נדרש ממילא.{{שאלה}}&amp;lt;small&amp;gt; &amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%A9%D7%AA%D7%9E%D7%A9:%D7%99%D7%95%D7%A1%D7%A3_%D7%91%D7%9F_%D7%9E%D7%9C%D7%9E%D7%93/%D7%AA%D7%91%D7%A0%D7%99%D7%AA&amp;diff=5245</id>
		<title>משתמש:יוסף בן מלמד/תבנית</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%A9%D7%AA%D7%9E%D7%A9:%D7%99%D7%95%D7%A1%D7%A3_%D7%91%D7%9F_%D7%9E%D7%9C%D7%9E%D7%93/%D7%AA%D7%91%D7%A0%D7%99%D7%AA&amp;diff=5245"/>
		<updated>2024-06-26T21:40:35Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[משתמש:יוסף בן מלמד/תבנית|ב&amp;quot;ה]]{{אא|עברית=כן|ציטוט=כן}}&lt;br /&gt;
יחי המלך המשיח!&lt;br /&gt;
&lt;br /&gt;
ברוכים הבאים למיזם &#039;&#039;&#039;חב&amp;quot;דציטוט&#039;&#039;&#039; המשמש כאתר ויקי למאגר ציטוטים חב&amp;quot;דים. האתר כעת בעבודה וייפתח בקרוב אם ירצה ה&#039;.&lt;br /&gt;
&lt;br /&gt;
הצעות, הארות והערות אפשר לכתוב בשמחה בדף שיחתי או במייל שלי 586YBM@GMAIL.COM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ טקסט הכותרת&lt;br /&gt;
|-&lt;br /&gt;
! שם האתר !! {{SITENAME}}&lt;br /&gt;
|-&lt;br /&gt;
| מספר דפי ציטוט || {{NUMBEROFARTICLES}}&lt;br /&gt;
|-&lt;br /&gt;
| מספר כלל הדפים || {{NUMBEROFPAGES}}&lt;br /&gt;
|-&lt;br /&gt;
| מספר קבצים || {{NUMBEROFFILES}}&lt;br /&gt;
|-&lt;br /&gt;
| מספר משתמשים || {{NUMBEROFUSERS}}&lt;br /&gt;
|-&lt;br /&gt;
| מספר משתמשים פעילים || {{NUMBEROFACTIVEUSERS}}&lt;br /&gt;
|-&lt;br /&gt;
| מספר מפעילי מערכת || {{NUMBEROFADMINS}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{סטטיסטיקה 2}}&lt;br /&gt;
{{תחזוקה}}&lt;br /&gt;
{{סטטיסטיקה}}&lt;br /&gt;
&lt;br /&gt;
{{משתמש:יוסף בן מלמד/דפים שצריך ליצור}}&lt;br /&gt;
&amp;lt;!--[[הבעל שם טוב]]*[[אדמו&amp;quot;ר הזקן]]*[[הצמח צדק]]*[[הסבא משפולי]]*[[המגיד ממעזריטש]]*[[הרבי המהר&amp;quot;ש]]*[[אדמו&amp;quot;ר הריי&amp;quot;צ]][[קובץ:מדליה.png|23px|]]*[[אדמו&amp;quot;ר האמצעי]]*[[ספר התניא]]*[[ר&#039; מענדל פוטרפאס]][[קובץ:מדליה.png|23px|]]*[[לוי יצחק שניאורסון]]*[[דוד חנזין]]*[[ראובן דונין]]*[[רבי הלל מפאריטש]]*[[מבצע תורה]]*[[מבצע צדקה]]*[[אדמו&amp;quot;רי חב&amp;quot;ד (פירושונים)]]*[[זלמן משה היצחקי]]*[[אהבת ישראל]]*[[השגחה פרטית]]*[[תורת החסידות]]*[[רב]]*[[נסיעה לרבי]]*[[שמחה]]*[[עשה לך רב]]*[[התוועדות חסידית]]*[[אידיש]]*[[ישיבת תומכי תמימים]]*[[תהלוכה]]*[[ספר תורה הכללי]]*[[מנהגי רבותינו נשיאנו]]*[[אימוץ]]&lt;br /&gt;
}} --!&amp;gt;&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:%D7%AA%D7%90%D7%A8%D7%99%D7%9A_%D7%A2%D7%91%D7%A8%D7%99/%D7%AA%D7%99%D7%A2%D7%95%D7%93&amp;diff=5235</id>
		<title>יחידה:תאריך עברי/תיעוד</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:%D7%AA%D7%90%D7%A8%D7%99%D7%9A_%D7%A2%D7%91%D7%A8%D7%99/%D7%AA%D7%99%D7%A2%D7%95%D7%93&amp;diff=5235"/>
		<updated>2024-06-26T21:08:51Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: גרסה אחת יובאה&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:%D7%AA%D7%90%D7%A8%D7%99%D7%9A_%D7%A2%D7%91%D7%A8%D7%99/%D7%91%D7%93%D7%99%D7%A7%D7%95%D7%AA&amp;diff=5233</id>
		<title>יחידה:תאריך עברי/בדיקות</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:%D7%AA%D7%90%D7%A8%D7%99%D7%9A_%D7%A2%D7%91%D7%A8%D7%99/%D7%91%D7%93%D7%99%D7%A7%D7%95%D7%AA&amp;diff=5233"/>
		<updated>2024-06-26T21:08:51Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: גרסה אחת יובאה&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- Unit tests for [[Module:LocationAndCountry]]. Click talk page to run tests.&lt;br /&gt;
local p = require(&#039;Module:UnitTests&#039;)&lt;br /&gt;
 &lt;br /&gt;
function p:testHebrewToGeneral()&lt;br /&gt;
    self:preprocess_equals(&lt;br /&gt;
    	&#039;{{#invoke:תאריך עברי|pick|hebrew=כ&amp;quot;ה בכסלו ה\&#039;תשע&amp;quot;ה|world=}}&#039;,&lt;br /&gt;
    	&#039;17 בדצמבר 2014&#039;&lt;br /&gt;
    )&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
function p:testHebrewToGeneralLinks()&lt;br /&gt;
    self:preprocess_equals(&lt;br /&gt;
    	&#039;{{#invoke:תאריך עברי|pick|hebrew=[[כ&amp;quot;ה בכסלו]] [[ה\&#039;תשע&amp;quot;ה]]|world=}}&#039;,&lt;br /&gt;
    	&#039;17 בדצמבר 2014&#039;&lt;br /&gt;
    )&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
 function p:testWrongFormat()&lt;br /&gt;
    self:preprocess_equals(&lt;br /&gt;
    	&#039;{{#invoke:תאריך עברי|pick|hebrew=א\&#039; בסתיו א\&#039; תש&amp;quot;ח|world=|error=X}}&#039;,&lt;br /&gt;
    	&#039;X&#039;&lt;br /&gt;
    )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:%D7%AA%D7%90%D7%A8%D7%99%D7%9A_%D7%A2%D7%91%D7%A8%D7%99&amp;diff=5231</id>
		<title>יחידה:תאריך עברי</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:%D7%AA%D7%90%D7%A8%D7%99%D7%9A_%D7%A2%D7%91%D7%A8%D7%99&amp;diff=5231"/>
		<updated>2024-06-26T21:08:50Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: גרסה אחת יובאה&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;mtable = {&amp;quot;ינואר&amp;quot;, &amp;quot;פברואר&amp;quot;, &amp;quot;מרץ&amp;quot;, &amp;quot;אפריל&amp;quot;, &amp;quot;מאי&amp;quot;, &amp;quot;יוני&amp;quot;,&lt;br /&gt;
	&amp;quot;יולי&amp;quot;, &amp;quot;אוגוסט&amp;quot;, &amp;quot;ספטמבר&amp;quot;, &amp;quot;אוקטובר&amp;quot;, &amp;quot;נובמבר&amp;quot;, &amp;quot;דצמבר&amp;quot;, }&lt;br /&gt;
&lt;br /&gt;
monthtable = {&lt;br /&gt;
	[&amp;quot;תשרי&amp;quot;] = 7, [&amp;quot;חשוון&amp;quot;] = 8, [&amp;quot;כסלו&amp;quot;] = 9, [&amp;quot;טבת&amp;quot;] = 10,&lt;br /&gt;
	[&amp;quot;שבט&amp;quot;] = 11, [&amp;quot;אדר א&#039;&amp;quot;] = 12, [&amp;quot;אדר ב&#039;&amp;quot;] = 13, [&amp;quot;אדר&amp;quot;] = 13,&lt;br /&gt;
	[&amp;quot;ניסן&amp;quot;] = 1, [&amp;quot;אייר&amp;quot;] = 2, [&amp;quot;סיוון&amp;quot;] = 3, [&amp;quot;תמוז&amp;quot;] = 4,&lt;br /&gt;
	[&amp;quot;אב&amp;quot;] = 5, [&amp;quot;אלול&amp;quot;] = 6,&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
typomonthtable = {[&amp;quot;חשון&amp;quot;] = &amp;quot;חשוון&amp;quot;, [&amp;quot;כסליו&amp;quot;] = &amp;quot;כסלו&amp;quot;,&lt;br /&gt;
	[&amp;quot;חשון&amp;quot;] = &amp;quot;חשוון&amp;quot;, [&amp;quot;סיון&amp;quot;] = &amp;quot;סיוון&amp;quot;,&lt;br /&gt;
	[&amp;quot;מרחשון&amp;quot;] = &amp;quot;חשוון&amp;quot;, [&amp;quot;מרחשוון&amp;quot;] = &amp;quot;חשוון&amp;quot;, [&amp;quot;מר-חשוון&amp;quot;] = &amp;quot;חשוון&amp;quot;,&lt;br /&gt;
	[&amp;quot;מנחם אב&amp;quot;] = &amp;quot;אב&amp;quot;, [&amp;quot;מנחם-אב&amp;quot;] = &amp;quot;אב&amp;quot;,&lt;br /&gt;
	[&amp;quot;שבט (חודש)|שבט&amp;quot;] = &amp;quot;שבט&amp;quot;, [&amp;quot;שבט (חודש)&amp;quot;] = &amp;quot;שבט&amp;quot;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
lastletters = {[&amp;quot;כ&amp;quot;] = &amp;quot;ך&amp;quot;, [&amp;quot;מ&amp;quot;] = &amp;quot;ם&amp;quot;, [&amp;quot;נ&amp;quot;] = &amp;quot;ן&amp;quot;, [&amp;quot;פ&amp;quot;] = &amp;quot;ף&amp;quot;, [&amp;quot;צ&amp;quot;] = &amp;quot;ץ&amp;quot;}&lt;br /&gt;
&lt;br /&gt;
function sub1(str, from, to)&lt;br /&gt;
	return mw.ustring.sub(str, from, to)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function find1(str, what, where)&lt;br /&gt;
	return mw.ustring.find(str, what, where, true) or 0&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function len1(s)&lt;br /&gt;
	if (s == nil) then&lt;br /&gt;
		return 0 end&lt;br /&gt;
	return mw.ustring.len(s)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function hebnum(s)&lt;br /&gt;
	numberstable = {&lt;br /&gt;
	[&amp;quot;א&amp;quot;] = 1, [&amp;quot;ב&amp;quot;] = 2, [&amp;quot;ג&amp;quot;] = 3, [&amp;quot;ד&amp;quot;] = 4, [&amp;quot;ה&amp;quot;] = 5,&lt;br /&gt;
	[&amp;quot;ו&amp;quot;] = 6, [&amp;quot;ז&amp;quot;] = 7, [&amp;quot;ח&amp;quot;] = 8, [&amp;quot;ט&amp;quot;] = 9, [&amp;quot;י&amp;quot;] = 10, &lt;br /&gt;
	[&amp;quot;כ&amp;quot;] = 20, [&amp;quot;ך&amp;quot;] = 20, [&amp;quot;ל&amp;quot;] = 30, [&amp;quot;מ&amp;quot;] = 40, [&amp;quot;ם&amp;quot;] = 40, &lt;br /&gt;
	[&amp;quot;נ&amp;quot;] = 50, [&amp;quot;ן&amp;quot;] = 50, [&amp;quot;ס&amp;quot;] = 60, [&amp;quot;ע&amp;quot;] = 70, [&amp;quot;פ&amp;quot;] = 80, &lt;br /&gt;
	[&amp;quot;ף&amp;quot;] = 80, [&amp;quot;צ&amp;quot;] = 90, [&amp;quot;ץ&amp;quot;] = 90, [&amp;quot;ק&amp;quot;] = 100, [&amp;quot;ר&amp;quot;] = 200, &lt;br /&gt;
	[&amp;quot;ש&amp;quot;] = 300, [&amp;quot;ת&amp;quot;] = 400, [&amp;quot;&#039;&amp;quot;] = 0, [&amp;quot;\&amp;quot;&amp;quot;] = 0,}&lt;br /&gt;
	local ans = 0&lt;br /&gt;
	local str = s&lt;br /&gt;
	while len1(str) &amp;gt; 0 do&lt;br /&gt;
		ans = ans + numberstable[sub1(str, 1, 1)]&lt;br /&gt;
		str = sub1(str, 2, len1(str))&lt;br /&gt;
	end&lt;br /&gt;
	return ans&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function mindate(fix)&lt;br /&gt;
	local indenttable = {176, 206, 235, 265, 294, 324, 0, 30, 59, 88, 117, 147, 147}&lt;br /&gt;
	return same(&amp;quot;28-08-&amp;quot; .. takeyear(fix[3]) .. &amp;quot; + &amp;quot; .. (indenttable[monthtable[sub1(fix[2], 2)]]&lt;br /&gt;
		+ hebnum(fix[1]) - 1) .. &amp;quot; days&amp;quot;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function takeyear(year)&lt;br /&gt;
	local new&lt;br /&gt;
	if 0 &amp;lt; find1(year, &amp;quot;אלפים&amp;quot;)&lt;br /&gt;
		then new = hebnum(sub1(year, 1, 2)) * 1000&lt;br /&gt;
		else new = hebnum(sub1(year, 3, len1(year))) + 1000&lt;br /&gt;
		* hebnum(sub1((year), 1, 2)) end&lt;br /&gt;
	return frame:callParserFunction(&amp;quot;padleft&amp;quot;, {new - 3761, 4})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function exacttdate(hdate, mindate, format)&lt;br /&gt;
	local count = 0&lt;br /&gt;
	local ans&lt;br /&gt;
	local greg&lt;br /&gt;
	while (count &amp;lt; 82) do&lt;br /&gt;
		ans = mindate .. &amp;quot; + &amp;quot; .. count .. &amp;quot; days&amp;quot;&lt;br /&gt;
		if (remove(from(ans)) == hdate) then&lt;br /&gt;
			greg = same(ans)&lt;br /&gt;
			local diffs = diff(greg)&lt;br /&gt;
			if diffs &amp;lt; 0 then diffs = 0 end&lt;br /&gt;
			greg = same(greg .. &amp;quot; - &amp;quot;.. diffs .. &amp;quot;days&amp;quot;)&lt;br /&gt;
			checkcasp(greg)&lt;br /&gt;
			if makeformat then&lt;br /&gt;
				return frame:callParserFunction(&amp;quot;#זמןמ:&amp;quot; .. makeformat, greg)&lt;br /&gt;
			end&lt;br /&gt;
			return format(greg) end&lt;br /&gt;
		count = count + 1&lt;br /&gt;
	end&lt;br /&gt;
	error(&amp;quot;Date not found&amp;quot;, 0)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function exacttdate1(hyear)&lt;br /&gt;
	local wyear = frame:callParserFunction(&amp;quot;padleft&amp;quot;, {hebnum(sub1(hyear, 3, len1(hyear))) + 1000&lt;br /&gt;
		* hebnum(sub1(hyear, 1, 2)) - 3761, 4})&lt;br /&gt;
	checkcasp(&amp;quot;01-01-&amp;quot; .. wyear)&lt;br /&gt;
	return wyear .. &amp;quot;-&amp;quot; .. frame:callParserFunction(&amp;quot;padleft&amp;quot;, {wyear + 1, 4})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function opposite(gdate, format)&lt;br /&gt;
	if samesame == true&lt;br /&gt;
		then samesame = false&lt;br /&gt;
			return format(gdate) end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function from(gdate)&lt;br /&gt;
	local ans = opposite(gdate, to)&lt;br /&gt;
	if ans ~= nil&lt;br /&gt;
		then return ans end&lt;br /&gt;
	if frame.args[&amp;quot;links&amp;quot;] == &amp;quot;yes&amp;quot;&lt;br /&gt;
		then return &amp;quot;[[&amp;quot; .. frame:callParserFunction(&amp;quot;#זמןמ:xhxjj xjx&amp;quot;, gdate) .. &amp;quot;]] [[&amp;quot;&lt;br /&gt;
			.. frame:callParserFunction(&amp;quot;#זמןמ:xhxjY&amp;quot;, gdate) .. &amp;quot;]]&amp;quot; end&lt;br /&gt;
	return frame:callParserFunction(&amp;quot;#זמןמ:xhxjj xjx xhxjY&amp;quot;, gdate)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function frommonth(gdate)&lt;br /&gt;
	local ans = opposite(gdate, tomonth)&lt;br /&gt;
	if ans ~= nil&lt;br /&gt;
		then return ans end&lt;br /&gt;
	if frame.args[&amp;quot;links&amp;quot;] == &amp;quot;yes&amp;quot;&lt;br /&gt;
		then return &amp;quot;[[&amp;quot; .. frame:callParserFunction(&amp;quot;#זמןמ:xjF&amp;quot;, gdate) .. &amp;quot;]] [[&amp;quot;&lt;br /&gt;
			.. frame:callParserFunction(&amp;quot;#זמןמ:xhxjY&amp;quot;, gdate) .. &amp;quot;]]&amp;quot; end&lt;br /&gt;
	return frame:callParserFunction(&amp;quot;#זמןמ:xjF xhxjY&amp;quot;, gdate)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function fromonlymonth(gdate)&lt;br /&gt;
	local ans = opposite(gdate, toonlymonth)&lt;br /&gt;
	if ans ~= nil&lt;br /&gt;
		then return ans end&lt;br /&gt;
	if frame.args[&amp;quot;links&amp;quot;] == &amp;quot;yes&amp;quot;&lt;br /&gt;
		then return &amp;quot;[[&amp;quot; .. frame:callParserFunction(&amp;quot;#זמןמ:xjF&amp;quot;, gdate) .. &amp;quot;]]&amp;quot; end&lt;br /&gt;
	return frame:callParserFunction(&amp;quot;#זמןמ:xjF&amp;quot;, gdate)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function fromyear(gdate)&lt;br /&gt;
	local ans = opposite(gdate, toyear)&lt;br /&gt;
	if ans ~= nil&lt;br /&gt;
		then return ans end&lt;br /&gt;
	if frame.args[&amp;quot;links&amp;quot;] == &amp;quot;yes&amp;quot;&lt;br /&gt;
		then return &amp;quot;[[&amp;quot; .. frame:callParserFunction(&amp;quot;#זמןמ:xhxjY&amp;quot;, gdate) .. &amp;quot;]]&amp;quot; end&lt;br /&gt;
	return frame:callParserFunction(&amp;quot;#זמןמ:xhxjY&amp;quot;, gdate)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function same(gdate)&lt;br /&gt;
	return frame:callParserFunction(&amp;quot;#זמןמ:d-m-Y&amp;quot;, gdate)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function makeyear(gdate)&lt;br /&gt;
	local year = frame:callParserFunction(&amp;quot;#זמןמ:Y&amp;quot;, gdate)&lt;br /&gt;
	if tonumber(year) &amp;lt; 1000 and which&lt;br /&gt;
		then year = sub1(year, 2)&lt;br /&gt;
	end&lt;br /&gt;
	return year&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function to(gdate)&lt;br /&gt;
	local year = makeyear(gdate)&lt;br /&gt;
	if frame.args[&amp;quot;links&amp;quot;] == &amp;quot;yes&amp;quot;&lt;br /&gt;
		then return &amp;quot;[[&amp;quot; .. frame:callParserFunction(&amp;quot;#זמןמ:j בF&amp;quot;, gdate) .. &amp;quot;]] [[&amp;quot;&lt;br /&gt;
			.. year .. &amp;quot;]]&amp;quot; end&lt;br /&gt;
	return frame:callParserFunction(&amp;quot;#זמןמ:j בF&amp;quot;, gdate) .. &amp;quot; &amp;quot; .. year&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function tomonth(gdate)&lt;br /&gt;
	local year = makeyear(gdate)&lt;br /&gt;
	if frame.args[&amp;quot;links&amp;quot;] == &amp;quot;yes&amp;quot;&lt;br /&gt;
		then return &amp;quot;[[&amp;quot; .. frame:callParserFunction(&amp;quot;#זמןמ:F&amp;quot;, gdate) .. &amp;quot;]] [[&amp;quot;&lt;br /&gt;
			.. year .. &amp;quot;]]&amp;quot; end&lt;br /&gt;
	return frame:callParserFunction(&amp;quot;#זמןמ:F&amp;quot;, gdate) .. &amp;quot; &amp;quot; .. year&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function toonlymonth(gdate)&lt;br /&gt;
	if frame.args[&amp;quot;links&amp;quot;] == &amp;quot;yes&amp;quot;&lt;br /&gt;
		then return &amp;quot;[[&amp;quot; .. frame:callParserFunction(&amp;quot;#זמןמ:F&amp;quot;, gdate) .. &amp;quot;]]&amp;quot; end&lt;br /&gt;
	return frame:callParserFunction(&amp;quot;#זמןמ:F&amp;quot;, gdate)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function toyear(gdate)&lt;br /&gt;
	local year = makeyear(gdate)&lt;br /&gt;
	if frame.args[&amp;quot;links&amp;quot;] == &amp;quot;yes&amp;quot;&lt;br /&gt;
		then return &amp;quot;[[&amp;quot; .. year .. &amp;quot;]]&amp;quot; end&lt;br /&gt;
	return year&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function fixmonth(hdate)&lt;br /&gt;
	local point&lt;br /&gt;
	local max = 0&lt;br /&gt;
	local place = 0&lt;br /&gt;
	for m, mm in pairs(typomonthtable) do&lt;br /&gt;
		point = find1(hdate, m)&lt;br /&gt;
		if point &amp;gt; 0 and max &amp;lt; len1(m)&lt;br /&gt;
			then max = len1(m)&lt;br /&gt;
				place = m end&lt;br /&gt;
	end&lt;br /&gt;
	if max &amp;gt; 0&lt;br /&gt;
		then point = find1(hdate, place)&lt;br /&gt;
			return sub1(hdate, 1, point - 1) .. typomonthtable[place] .. sub1(hdate, point + len1(place)) end&lt;br /&gt;
	return hdate&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function fixdate(hdate1)&lt;br /&gt;
	local hdate = fixmonth(hdate1)&lt;br /&gt;
	if 1 == find1(hdate, &amp;quot;ראש חודש&amp;quot;)&lt;br /&gt;
		then hdate = &amp;quot;א&#039; ב&amp;quot; .. sub1(hdate, 10) end&lt;br /&gt;
	local h1, h2, h3 = parts(hdate)&lt;br /&gt;
--[=[&lt;br /&gt;
	local s1 = find1(hdate, &amp;quot; &amp;quot;)&lt;br /&gt;
	local s2 = find1(hdate, &amp;quot; &amp;quot;, s1 + 1)&lt;br /&gt;
	local s3 = find1(hdate, &amp;quot; &amp;quot;, s2 + 1)&lt;br /&gt;
	if (s3 &amp;gt; 0) then&lt;br /&gt;
		s2 = s3 end&lt;br /&gt;
	h1 = sub1(hdate, 1, s1 - 1)&lt;br /&gt;
	h2 = sub1(hdate, s1 + 1, s2 - 1)&lt;br /&gt;
	h3 = sub1(hdate, s2 + 1, len1(hdate))&lt;br /&gt;
]=]&lt;br /&gt;
	if (len1(h3) &amp;gt; 1 and sub1(h3, 2, 2) ~= &amp;quot;&#039;&amp;quot;) then&lt;br /&gt;
		h3 = &amp;quot;ה&#039;&amp;quot; .. h3 end&lt;br /&gt;
--[=[&lt;br /&gt;
	for m, mm in pairs(typomonthtable) do&lt;br /&gt;
		if h2 == &amp;quot;ב&amp;quot; .. m&lt;br /&gt;
		then h2 = &amp;quot;ב&amp;quot; .. mm end&lt;br /&gt;
	end&lt;br /&gt;
]=]&lt;br /&gt;
	for y, yy in pairs(lastletters) do&lt;br /&gt;
		if sub1(h3, len1(h3)) == y&lt;br /&gt;
		then h3 = sub1(h3, 1, len1(h3) - 1) .. yy end&lt;br /&gt;
	end&lt;br /&gt;
	return {h1, h2, h3, h1 .. &amp;quot; &amp;quot; .. h2 .. &amp;quot; &amp;quot; .. h3}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function fixerror(message)&lt;br /&gt;
	if message == &amp;quot;---&amp;quot;&lt;br /&gt;
		then return &amp;quot;&amp;quot; end&lt;br /&gt;
	return frame:preprocess(message)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function aserror(message)&lt;br /&gt;
	error(message .. &amp;quot;[[קטגוריה:דפים עם שגיאות בתאריך]]&amp;quot;, 0)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function takenumbers(wdate)&lt;br /&gt;
	local s1 = find1(wdate, &amp;quot; &amp;quot;)&lt;br /&gt;
	local s2 = find1(wdate, &amp;quot; &amp;quot;, s1 + 1)&lt;br /&gt;
	local h1 = sub1(wdate, 1, s1 - 1)&lt;br /&gt;
	local h2 = sub1(wdate, s1 + 1, s2 - 1)&lt;br /&gt;
	local h3 = sub1(wdate, s2 + 1, len1(wdate))&lt;br /&gt;
	for f, ff in pairs(mtable) do&lt;br /&gt;
		if &amp;quot;ב&amp;quot; .. ff == h2 then&lt;br /&gt;
			return h1 .. &amp;quot;-&amp;quot; .. frame:callParserFunction(&amp;quot;padleft&amp;quot;, {f, 2})&lt;br /&gt;
				.. &amp;quot;-&amp;quot; .. frame:callParserFunction(&amp;quot;padleft&amp;quot;, {h3, 4}) end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function numtonums(wdate)&lt;br /&gt;
	local s1 = find1(wdate, &amp;quot;-&amp;quot;)&lt;br /&gt;
	local s2 = find1(wdate, &amp;quot;-&amp;quot;, s1 + 1)&lt;br /&gt;
	return {tonumber(sub1(wdate, 1, s1 - 1)),&lt;br /&gt;
			tonumber(sub1(wdate, s1 + 1, s2 - 1)),&lt;br /&gt;
		    tonumber(sub1(wdate, s2 + 1, len1(wdate)))}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function diff(gdate)&lt;br /&gt;
	local ans&lt;br /&gt;
	local wdate = numtonums(gdate)&lt;br /&gt;
	local wday = wdate[1]&lt;br /&gt;
	local wmonth = wdate[2]&lt;br /&gt;
	local wyear = wdate[3]&lt;br /&gt;
	if wyear &amp;gt; 1582 or (wyear == 1582 and (wmonth &amp;gt; 10 or (wmonth == 10 and wday &amp;gt; 14)))&lt;br /&gt;
		then ans = 0&lt;br /&gt;
		else local ytable = {200, 300, 500, 600, 700, 900, 1000, 1100, 1300, 1400, 1500}&lt;br /&gt;
			ans = 10&lt;br /&gt;
			if wmonth &amp;lt; 3&lt;br /&gt;
				then wyear = wyear - 1 end&lt;br /&gt;
			for y, yy in pairs(ytable) do&lt;br /&gt;
				if yy &amp;gt; wyear&lt;br /&gt;
					then ans = ans - 1 end&lt;br /&gt;
			end end&lt;br /&gt;
	return ans&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function remove(dateStr) -- Thanks to Eran&lt;br /&gt;
	dateStr = mw.ustring.gsub( dateStr, &amp;quot;[%[%]]&amp;quot;, &amp;quot;&amp;quot; )&lt;br /&gt;
	dateStr = mw.ustring.gsub(dateStr, &amp;quot;(\127UNIQ[^\127]+QINU\127)&amp;quot;, &amp;quot;&amp;quot;)&lt;br /&gt;
	dateStr = mw.ustring.gsub(dateStr, &amp;quot;&amp;amp;rlm;&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
	dateStr = mw.ustring.gsub(dateStr, &amp;quot;&amp;amp;lrm;&amp;quot;,&amp;quot;&amp;quot;)&lt;br /&gt;
	return dateStr&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function checkcasp(wdate)&lt;br /&gt;
	local wnumbers = numtonums(wdate)&lt;br /&gt;
	if wnumbers[3] &amp;lt; 360 or wnumbers[3] &amp;gt; 4357 or&lt;br /&gt;
			(wnumbers[3] == 1582 and wnumbers[2] == 10 and wnumbers[1] &amp;gt; 4 and wnumbers[1] &amp;lt; 15)&lt;br /&gt;
		then error(&amp;quot;The date is not in the allowed casp&amp;quot;, 0) end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function fromhebrewyear(hyear)&lt;br /&gt;
	ans = fromhebrewdate(&amp;quot;א&#039; בניסן &amp;quot; .. hyear, toyear)&lt;br /&gt;
	if frame.args[&amp;quot;exact&amp;quot;] ~= &amp;quot;כן&amp;quot;&lt;br /&gt;
		then ans = ans .. &amp;quot;-&amp;quot; .. fromhebrewdate(&amp;quot;א&#039; בתשרי &amp;quot; .. hyear, toyear)&lt;br /&gt;
	end&lt;br /&gt;
	return ans&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function fromhebrewmonth(hdate)&lt;br /&gt;
	if frame.args[&amp;quot;exact&amp;quot;] == &amp;quot;כן&amp;quot;&lt;br /&gt;
		then return fromhebrewdate(&#039;ט&amp;quot;ו ב&#039; .. hdate, tomonth) end&lt;br /&gt;
	local date1 = fromhebrewdate(&amp;quot;א&#039; ב&amp;quot; .. hdate, same)&lt;br /&gt;
	local month1 = toonlymonth(date1)&lt;br /&gt;
	local year1 = toyear(date1)&lt;br /&gt;
	local date2 = same(date1 .. &amp;quot; + 30 days&amp;quot;)&lt;br /&gt;
	date2 = frommonth(date2)&lt;br /&gt;
	date2 = fromhebrewdate(&amp;quot;א&#039; ב&amp;quot; .. date2, same)&lt;br /&gt;
	date2 = same(date2 .. &amp;quot; - 1 days&amp;quot;)&lt;br /&gt;
	local month2 = toonlymonth(date2)&lt;br /&gt;
	local year2 = toyear(date2)&lt;br /&gt;
	if year1 ~= year2&lt;br /&gt;
		then return month1 .. &amp;quot; &amp;quot; .. year1 .. &amp;quot; - &amp;quot; .. month2 .. &amp;quot; &amp;quot; .. year2&lt;br /&gt;
		elseif month1 ~= month2&lt;br /&gt;
			then return month1 .. &amp;quot;-&amp;quot; .. month2 .. &amp;quot; &amp;quot; .. year1&lt;br /&gt;
			else return month1 .. &amp;quot; &amp;quot; .. year1 end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function fromhebrewdate(rem, format)&lt;br /&gt;
	local fix = fixdate(remove(rem))&lt;br /&gt;
	return exacttdate(fix[4], mindate(fix), format)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function fromhebrew1(hdate)&lt;br /&gt;
	local ht, rem = findhdatetype(fixmonth(hdate))&lt;br /&gt;
	if ht == &amp;quot;dmy&amp;quot;&lt;br /&gt;
		then return ifwhich(fromhebrewdate(rem, to))&lt;br /&gt;
		elseif ht == &amp;quot;my&amp;quot;&lt;br /&gt;
			then return ifwhich(fromhebrewmonth(rem))&lt;br /&gt;
			elseif ht == &amp;quot;y&amp;quot;&lt;br /&gt;
				then return ifwhich(fromhebrewyear(rem))&lt;br /&gt;
					else error(&amp;quot;Wrong type: &amp;quot; .. ht, 0) end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function findhdatetype(hdate)&lt;br /&gt;
	local rem = mw.text.trim(remove(hdate))&lt;br /&gt;
	local day, month, year = parts(hdate)&lt;br /&gt;
	if day ~= nil&lt;br /&gt;
		then return &amp;quot;dmy&amp;quot;, rem end&lt;br /&gt;
	if month ~= nil&lt;br /&gt;
		then return &amp;quot;my&amp;quot;, rem end&lt;br /&gt;
	return &amp;quot;y&amp;quot;, rem&lt;br /&gt;
--[=[&lt;br /&gt;
	for m, mm in pairs(monthtable) do&lt;br /&gt;
		if find1(rem, m) == 1 then&lt;br /&gt;
			return &amp;quot;my&amp;quot;, rem end&lt;br /&gt;
	end&lt;br /&gt;
	if find1(rem, &amp;quot; &amp;quot;) == 0 then&lt;br /&gt;
		return &amp;quot;y&amp;quot;, rem end&lt;br /&gt;
	return &amp;quot;dmy&amp;quot;, rem&lt;br /&gt;
]=]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function fromhebrew(f)&lt;br /&gt;
	which = true&lt;br /&gt;
	return fromhebrewandverify(f)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function fromhebrewformat(f)&lt;br /&gt;
	which = true&lt;br /&gt;
	makeformat = f.args[&amp;quot;format&amp;quot;]&lt;br /&gt;
	return fromhebrewandverify(f)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function verify(f)&lt;br /&gt;
	frame = f&lt;br /&gt;
	which = false&lt;br /&gt;
	local success, res = pcall(pick1, frame.args[1], frame.args[2], &amp;quot;[[קטגוריה:חוסר מתאם בין תאריך עברי לתאריך לועזי]]&amp;quot;)&lt;br /&gt;
	if not success&lt;br /&gt;
		then res = &amp;quot;&amp;quot; end&lt;br /&gt;
	local ans = &amp;quot;&amp;quot;&lt;br /&gt;
	if f.args[2] ~= &amp;quot;&amp;quot;&lt;br /&gt;
		then ans = tohebrew0(f.args[2]) end&lt;br /&gt;
	if f.args[1] ~= &amp;quot;&amp;quot;&lt;br /&gt;
		then ans = ans .. fromhebrewandverify(f) end&lt;br /&gt;
	return res .. ans&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function fromhebrewandverify(f)&lt;br /&gt;
	frame = f&lt;br /&gt;
	local success, res = pcall(fromhebrew1, frame.args[1])&lt;br /&gt;
	if success&lt;br /&gt;
		then return ifwhich(res)&lt;br /&gt;
		elseif frame.args[&amp;quot;about&amp;quot;] == &amp;quot;כן&amp;quot; and&lt;br /&gt;
				frame:expandTemplate({title = &amp;quot;גיל לערכי אישים/מקורב&amp;quot;, args = {str = frame.args[1]}}) ~= &amp;quot;&amp;quot;&lt;br /&gt;
			then return ifwhich(frame.args[1], &amp;quot;[[קטגוריה:דפים עם תאריך עברי מקורב]]&amp;quot;)&lt;br /&gt;
		elseif frame.args[&amp;quot;error&amp;quot;] == nil&lt;br /&gt;
			then return aserror(res) end&lt;br /&gt;
	return fixerror(frame.args[&amp;quot;error&amp;quot;])&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function tohebrewyear(gyear)&lt;br /&gt;
	ans = tohebrewnum(&amp;quot;01-01-&amp;quot; .. gyear, fromyear)&lt;br /&gt;
	if frame.args[&amp;quot;exact&amp;quot;] ~= &amp;quot;כן&amp;quot;&lt;br /&gt;
		then ans = ans .. &amp;quot;-&amp;quot; .. tohebrewnum(&amp;quot;01-12-&amp;quot; .. gyear, fromyear)&lt;br /&gt;
	end&lt;br /&gt;
	return ifwhich(ans)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function tohebrewmonth(wdate)&lt;br /&gt;
	if frame.args[&amp;quot;exact&amp;quot;] == &amp;quot;כן&amp;quot;&lt;br /&gt;
		then return tohebrewdate(&amp;quot;15 ב&amp;quot; .. wdate, frommonth) end&lt;br /&gt;
	local date1 = tohebrewdate(&amp;quot;1 ב&amp;quot; .. wdate, same)&lt;br /&gt;
	local month1 = fromonlymonth(date1)&lt;br /&gt;
	local year1 = fromyear(date1)&lt;br /&gt;
	local date2 = same(date1 .. &amp;quot; + 31 days&amp;quot;)&lt;br /&gt;
	date2 = tomonth(date2)&lt;br /&gt;
	date2 = tohebrewdate(&amp;quot;1 ב&amp;quot; .. date2, same)&lt;br /&gt;
	date2 = same(date2 .. &amp;quot; - 1 days&amp;quot;)&lt;br /&gt;
	local month2 = fromonlymonth(date2)&lt;br /&gt;
	local year2 = fromyear(date2)&lt;br /&gt;
	if year1 ~= year2&lt;br /&gt;
		then return ifwhich(month1 .. &amp;quot; &amp;quot; .. year1 .. &amp;quot; - &amp;quot; .. month2 .. &amp;quot; &amp;quot; .. year2)&lt;br /&gt;
		elseif month1 ~= month2&lt;br /&gt;
			then return ifwhich(month1 .. &amp;quot;-&amp;quot; .. month2 .. &amp;quot; &amp;quot; .. year1)&lt;br /&gt;
			else return ifwhich(month1 .. &amp;quot; &amp;quot; .. year1) end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function tohebrewdate(rem, format)&lt;br /&gt;
	local s1 = find1(rem, &amp;quot; &amp;quot;)&lt;br /&gt;
	local s2 = find1(rem, &amp;quot; &amp;quot;, s1 + 1)&lt;br /&gt;
	if len1(rem) - s2 == 3&lt;br /&gt;
		then rem = sub1(rem, 1, s2) .. &amp;quot;0&amp;quot; .. sub1(rem, s2 + 1) end&lt;br /&gt;
	local take = takenumbers(rem)&lt;br /&gt;
	if remove(to(take)) ~= rem&lt;br /&gt;
		then error(&amp;quot;wrong date&amp;quot;, 0) end&lt;br /&gt;
	checkcasp(take)&lt;br /&gt;
	take = same(take .. &amp;quot; + &amp;quot; .. diff(take) .. &amp;quot; days&amp;quot;)&lt;br /&gt;
	return ifwhich(format(take))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function tohebrewnum(wdate, format)&lt;br /&gt;
	if find1(wdate, &amp;quot;-&amp;quot;, 3) == 3 and find1(wdate, &amp;quot;-&amp;quot;, 6) == 6 and len1(wdate) == 9&lt;br /&gt;
		then wdate = sub1(wdate, 1, 6) .. &amp;quot;0&amp;quot; .. sub1(wdate, 7, 9) end&lt;br /&gt;
	if same(wdate) ~= wdate&lt;br /&gt;
		then error(&amp;quot;wrong date&amp;quot;, 0) end&lt;br /&gt;
	checkcasp(wdate)&lt;br /&gt;
	wdate = same(wdate .. &amp;quot; + &amp;quot; .. diff(wdate) .. &amp;quot; days&amp;quot;)&lt;br /&gt;
	return ifwhich(format(wdate))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function findwdatetype(wdate)&lt;br /&gt;
	local rem = mw.text.trim(remove(wdate))&lt;br /&gt;
	if find1(rem, &amp;quot;-&amp;quot;) ~= 0 then&lt;br /&gt;
		return &amp;quot;num&amp;quot;, rem end&lt;br /&gt;
	for m, mm in pairs(mtable) do&lt;br /&gt;
		if find1(rem, mm) == 1 then&lt;br /&gt;
			return &amp;quot;my&amp;quot;, rem end&lt;br /&gt;
	end&lt;br /&gt;
	if tonumber(rem) ~= nil and tonumber(rem) .. &amp;quot;&amp;quot; == rem then&lt;br /&gt;
		return &amp;quot;y&amp;quot;, rem end&lt;br /&gt;
	return &amp;quot;dmy&amp;quot;, rem&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function tohebrew1(wdate)&lt;br /&gt;
	local w, rem = findwdatetype(wdate)&lt;br /&gt;
	if w == &amp;quot;num&amp;quot;&lt;br /&gt;
		then return tohebrewnum(rem, from)&lt;br /&gt;
		elseif w == &amp;quot;dmy&amp;quot;&lt;br /&gt;
			then return tohebrewdate(rem, from)&lt;br /&gt;
			elseif w == &amp;quot;my&amp;quot;&lt;br /&gt;
				then return tohebrewmonth(rem)&lt;br /&gt;
				elseif w == &amp;quot;y&amp;quot;&lt;br /&gt;
					then return tohebrewyear(rem)&lt;br /&gt;
					else error(&amp;quot;Wrong type: &amp;quot; .. ht, 0) end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function pick1(hdate, wdate, cat)&lt;br /&gt;
	local ht, wt, hrem, wrem, hdw, wdh, hsuccess, wsuccess, thsuccess, twsuccess&lt;br /&gt;
	if cat == nil&lt;br /&gt;
		then which = true&lt;br /&gt;
			ht, hrem = findhdatetype(hdate)&lt;br /&gt;
			wt, wrem = findwdatetype(wdate)&lt;br /&gt;
		else thsuccess, ht, hrem = pcall(findhdatetype, hdate)&lt;br /&gt;
			twsuccess, wt, wrem = pcall(findwdatetype, wdate)&lt;br /&gt;
			hsuccess = false&lt;br /&gt;
			wsuccess = false end&lt;br /&gt;
	if hrem == &amp;quot;&amp;quot;&lt;br /&gt;
		then ht = &amp;quot;empty&amp;quot;&lt;br /&gt;
		else hsuccess, hdw = pcall(fromhebrew1, hrem)&lt;br /&gt;
			if not hsuccess&lt;br /&gt;
				then ht = &amp;quot;about&amp;quot; end end&lt;br /&gt;
	if wrem == &amp;quot;&amp;quot;&lt;br /&gt;
		then wt = &amp;quot;empty&amp;quot;&lt;br /&gt;
		else wsuccess, wdh = pcall(tohebrew1, wrem)&lt;br /&gt;
			if not wsuccess&lt;br /&gt;
				then wt = &amp;quot;about&amp;quot; end end&lt;br /&gt;
	if cat ~= nil&lt;br /&gt;
		then if ht == &amp;quot;dmy&amp;quot; and wt ~= &amp;quot;dmy&amp;quot;&lt;br /&gt;
				then return &amp;quot;[[קטגוריה:חוסר מתאם בתאריכים - תאריך &amp;quot; &lt;br /&gt;
							.. frame.args[&amp;quot;type&amp;quot;] .. &amp;quot; עברי מדויק]]&amp;quot; end&lt;br /&gt;
			if ht ~= &amp;quot;dmy&amp;quot; and wt == &amp;quot;dmy&amp;quot;&lt;br /&gt;
				then return &amp;quot;[[קטגוריה:חוסר מתאם בתאריכים - תאריך &amp;quot; &lt;br /&gt;
							.. frame.args[&amp;quot;type&amp;quot;] .. &amp;quot; לועזי מדויק]]&amp;quot; end&lt;br /&gt;
--			if ht == &amp;quot;dmy&amp;quot; or ht == &amp;quot;my&amp;quot; or ht == &amp;quot;y&amp;quot;&lt;br /&gt;
--				then return &amp;quot;[[קטגוריה:חוסר מתאם בתאריכים - תאריך &amp;quot; &lt;br /&gt;
--							.. frame.args[&amp;quot;type&amp;quot;] .. &amp;quot; לועזי מדויק]]&amp;quot; end&lt;br /&gt;
			return &amp;quot;&amp;quot; end&lt;br /&gt;
	if wsuccess and hsuccess&lt;br /&gt;
		then if wt == &amp;quot;dmy&amp;quot; then return wdate&lt;br /&gt;
			elseif ht == &amp;quot;dmy&amp;quot; then return hdw&lt;br /&gt;
			elseif wt == &amp;quot;my&amp;quot; then return wdate&lt;br /&gt;
			elseif ht == &amp;quot;my&amp;quot; then return hdw&lt;br /&gt;
			elseif wt == &amp;quot;y&amp;quot; then return wdate&lt;br /&gt;
			else return hdw end&lt;br /&gt;
		elseif wsuccess then return wdate&lt;br /&gt;
		elseif hsuccess then return hdw&lt;br /&gt;
		elseif wt == &amp;quot;about&amp;quot; then return wdate&lt;br /&gt;
		else return hdate end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function checkcat(adate, cat)&lt;br /&gt;
	if cat == nil&lt;br /&gt;
		then return adate end&lt;br /&gt;
	return cat&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function pick(f)&lt;br /&gt;
	frame = f&lt;br /&gt;
	local hebrew = frame.args[&amp;quot;hebrew&amp;quot;]&lt;br /&gt;
	local world = frame.args[&amp;quot;world&amp;quot;]&lt;br /&gt;
	local habout = false&lt;br /&gt;
	local wabout = false&lt;br /&gt;
	if frame:expandTemplate({title = &amp;quot;גיל לערכי אישים/מקורב&amp;quot;, args = {str = hebrew}}) ~= &amp;quot;&amp;quot;&lt;br /&gt;
		then hebrew = &amp;quot;&amp;quot;&lt;br /&gt;
			habout = true end&lt;br /&gt;
	if frame:expandTemplate({title = &amp;quot;גיל לערכי אישים/מקורב&amp;quot;, args = {str = world}}) ~= &amp;quot;&amp;quot;&lt;br /&gt;
		then world = &amp;quot;&amp;quot;&lt;br /&gt;
			wabout = true end&lt;br /&gt;
	local success, res = pcall(pick1, hebrew, world)&lt;br /&gt;
	if success&lt;br /&gt;
		then if habout and world == &amp;quot;&amp;quot;&lt;br /&gt;
				then return frame.args[&amp;quot;hebrew&amp;quot;] end&lt;br /&gt;
			if wabout and hebrew == &amp;quot;&amp;quot;&lt;br /&gt;
				then return frame.args[&amp;quot;world&amp;quot;] end&lt;br /&gt;
			return res&lt;br /&gt;
		elseif frame.args[&amp;quot;error&amp;quot;] == nil&lt;br /&gt;
			then return aserror(res) end&lt;br /&gt;
	return fixerror(frame.args[&amp;quot;error&amp;quot;])&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function tohebrew0(wdate)&lt;br /&gt;
	local success, res = pcall(tohebrew1, wdate)&lt;br /&gt;
	if success&lt;br /&gt;
		then return res&lt;br /&gt;
		elseif frame.args[&amp;quot;about&amp;quot;] == &amp;quot;כן&amp;quot; and&lt;br /&gt;
				frame:expandTemplate({title = &amp;quot;גיל לערכי אישים/מקורב&amp;quot;, args = {str = wdate}}) ~= &amp;quot;&amp;quot;&lt;br /&gt;
			then return ifwhich(frame.args[1], &amp;quot;[[קטגוריה:דפים עם תאריך מקורב]]&amp;quot;)&lt;br /&gt;
		elseif frame.args[&amp;quot;error&amp;quot;] == nil&lt;br /&gt;
			then return aserror(res) end&lt;br /&gt;
	return fixerror(frame.args[&amp;quot;error&amp;quot;])&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function tohebrew(f)&lt;br /&gt;
	frame = f&lt;br /&gt;
	which = true&lt;br /&gt;
	return tohebrew0(frame.args[1])&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function samedate(f)&lt;br /&gt;
	frame = f&lt;br /&gt;
	which = true&lt;br /&gt;
	samesame = true&lt;br /&gt;
	return tohebrew0(frame.args[1])&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function ifwhich(ans, noans)&lt;br /&gt;
	if noans == nil&lt;br /&gt;
		then noans = &amp;quot;&amp;quot; end&lt;br /&gt;
	if which&lt;br /&gt;
		then return ans&lt;br /&gt;
		else return noans end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function parts(hdate)&lt;br /&gt;
	local funcs = {&lt;br /&gt;
	{function() return w[1] end},&lt;br /&gt;
	{function() return w[2], w[1] end,&lt;br /&gt;
	 function() return c(w[2], w[1]) end},&lt;br /&gt;
	{function() return w[3], w[2], w[1] end,&lt;br /&gt;
	 function() return c(w[3], w[2]), w[1] end,&lt;br /&gt;
	 function() return w[3], c(w[2], w[1]) end},&lt;br /&gt;
	{function() return w[4], c(w[3], w[2]), w[1] end,&lt;br /&gt;
	 function() return c(w[4], w[3]), w[2], w[1] end,&lt;br /&gt;
	 nil,&lt;br /&gt;
	 function() return c(w[4], w[3]), c(w[2], w[1]) end},&lt;br /&gt;
	{nil,&lt;br /&gt;
	 function() return c(w[5], w[4]), c(w[3], w[2]), w[1] end}}&lt;br /&gt;
	function c(x, y) return y .. &amp;quot; &amp;quot; .. x end&lt;br /&gt;
	w = takewords(hdate)&lt;br /&gt;
	local code = 1&lt;br /&gt;
	if 0 &amp;lt; find1(hdate, &amp;quot;אלפים&amp;quot;)&lt;br /&gt;
		then code = code + 1 end&lt;br /&gt;
	if 1 == find1(hdate, &amp;quot;אדר א&amp;quot;)&lt;br /&gt;
		then code = code + 2 end&lt;br /&gt;
	if 1 == find1(hdate, &amp;quot;אדר ב&amp;quot;)&lt;br /&gt;
		then code = code + 2 end&lt;br /&gt;
	local year, month, day = funcs[#w][code]()&lt;br /&gt;
	return day, month, year&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function takewords(str)&lt;br /&gt;
	local count = 1&lt;br /&gt;
	local ans = {}&lt;br /&gt;
	local cur = str&lt;br /&gt;
	while find1(cur, &amp;quot; &amp;quot;) &amp;gt; 0 do&lt;br /&gt;
		ans[count] = sub1(cur, 1, find1(cur, &amp;quot; &amp;quot;) - 1)&lt;br /&gt;
		count = count + 1&lt;br /&gt;
		cur = sub1(cur, find1(cur, &amp;quot; &amp;quot;) + 1)&lt;br /&gt;
	end&lt;br /&gt;
	ans[count] = cur&lt;br /&gt;
	return ans&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return {fromhebrew = fromhebrew, tohebrew = tohebrew, verify = verify, pick = pick, samedate = samedate,&lt;br /&gt;
	fromhebrewformat = fromhebrewformat}&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:%D7%AA%D7%90%D7%A8%D7%99%D7%9A/%D7%91%D7%93%D7%99%D7%A7%D7%95%D7%AA&amp;diff=5227</id>
		<title>יחידה:תאריך/בדיקות</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:%D7%AA%D7%90%D7%A8%D7%99%D7%9A/%D7%91%D7%93%D7%99%D7%A7%D7%95%D7%AA&amp;diff=5227"/>
		<updated>2024-06-26T21:08:49Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: גרסה אחת יובאה&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- Unit tests for [[Module:תאריך]]. Click talk page to run tests.&lt;br /&gt;
local p = require(&#039;Module:UnitTests&#039;)&lt;br /&gt;
 &lt;br /&gt;
local Date = require(&#039;יחידה:תאריך&#039;)&lt;br /&gt;
&lt;br /&gt;
function p:testNewFromWikitextSimple()&lt;br /&gt;
	local d = Date.newFromWikitext(&#039;3 בפברואר 2000&#039;)&lt;br /&gt;
    self:equals(&#039;precision&#039;, d.precision, Date.PRECISION.DAY )&lt;br /&gt;
    self:equals(&#039;day &#039;, d.day, 3 )&lt;br /&gt;
    self:equals(&#039;year &#039;, d.month, 2 )&lt;br /&gt;
    self:equals(&#039;year &#039;, d.year, 2000 )&lt;br /&gt;
    self:equals(&#039;calendar &#039;, d.calendar, Date.CALENDAR.GREGORIAN )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p:testNewFromWikitextLink()&lt;br /&gt;
	local d = Date.newFromWikitext(&#039;[[3 בפברואר]] [[2000]]&#039;)&lt;br /&gt;
    self:equals(&#039;precision&#039;, d.precision, Date.PRECISION.DAY )&lt;br /&gt;
    self:equals(&#039;day &#039;, d.day, 3 )&lt;br /&gt;
    self:equals(&#039;year &#039;, d.month, 2 )&lt;br /&gt;
    self:equals(&#039;year &#039;, d.year, 2000 )&lt;br /&gt;
    self:equals(&#039;calendar &#039;, d.calendar, Date.CALENDAR.GREGORIAN )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p:testNewFromWikitextCentury()&lt;br /&gt;
     local success, res = pcall(Date.newFromWikitext, &#039;המאה ה-13&#039; )&lt;br /&gt;
     self:equals(&#039;parse&#039;, tostring(success), &#039;true&#039; )&lt;br /&gt;
	 if success then&lt;br /&gt;
		self:equals(&#039;precision&#039;, res.precision, Date.PRECISION.YEAR100 )&lt;br /&gt;
		self:equals(&#039;year&#039;, res.year, 1300 ) -- representive year is the last, e.g century pretty format is year/100&lt;br /&gt;
		self:equals(&#039;month&#039;, res.month, 0 )  -- not relevant&lt;br /&gt;
		self:equals(&#039;day&#039;, res.day, 0 )      -- not relevant&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:%D7%A9%D7%A4%D7%AA_%D7%A7%D7%99%D7%A9%D7%95%D7%A8/styles.css&amp;diff=5223</id>
		<title>יחידה:שפת קישור/styles.css</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:%D7%A9%D7%A4%D7%AA_%D7%A7%D7%99%D7%A9%D7%95%D7%A8/styles.css&amp;diff=5223"/>
		<updated>2024-06-26T21:08:48Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: גרסה אחת יובאה&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;function p.myFunction()&lt;br /&gt;
    return &#039;&amp;lt;span style=&amp;quot;font-size: 0.95em; font-weight: bold; color: #555;&amp;quot; class=&amp;quot;languageicon&amp;quot;&amp;gt;Your Text Here&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:%D7%A9%D7%A4%D7%AA_%D7%A7%D7%99%D7%A9%D7%95%D7%A8&amp;diff=5221</id>
		<title>יחידה:שפת קישור</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:%D7%A9%D7%A4%D7%AA_%D7%A7%D7%99%D7%A9%D7%95%D7%A8&amp;diff=5221"/>
		<updated>2024-06-26T21:08:48Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: גרסה אחת יובאה&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local Arguments = require( &amp;quot;Module:Arguments&amp;quot; )&lt;br /&gt;
&lt;br /&gt;
local function getLocalLangNameWithPrefix(langCodeOrLocalName)&lt;br /&gt;
	local localName = langCodeOrLocalName&lt;br /&gt;
&lt;br /&gt;
	if not mw.ustring.match(langCodeOrLocalName, &#039;[א-ת]+&#039;) then&lt;br /&gt;
		-- tanslate&lt;br /&gt;
		if langCodeOrLocalName == &#039;iw&#039; then -- legacy code for modern hebrew&lt;br /&gt;
			localName = &#039;עברית&#039;&lt;br /&gt;
		else&lt;br /&gt;
			localName = mw.language.fetchLanguageName(langCodeOrLocalName, &#039;he&#039;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- add prefix&lt;br /&gt;
	if  mw.ustring.match(localName, &#039;[א-ת]+&#039;) then&lt;br /&gt;
		return &#039;ב&#039; .. localName&lt;br /&gt;
	else&lt;br /&gt;
		return &#039;ב־&#039; .. localName&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function render(frame)&lt;br /&gt;
    local args = Arguments.getArgs(frame, { [&#039;trim&#039;] = true, [&#039;removeBlanks&#039;] = true })&lt;br /&gt;
    local langs = {}&lt;br /&gt;
    for _, v in pairs(args) do&lt;br /&gt;
        table.insert(langs, getLocalLangNameWithPrefix(v))&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    if #langs == 0 then&lt;br /&gt;
        table.insert(langs, &#039;ב{{{שפה}}}&#039;)&lt;br /&gt;
    end&lt;br /&gt;
    &lt;br /&gt;
    -- הסרנו את החלק הזה:&lt;br /&gt;
    -- local templatestyles = frame:extensionTag{&lt;br /&gt;
    --     name = &#039;templatestyles&#039;, args = { src = &#039;יחידה:שפת קישור/styles.css&#039; }&lt;br /&gt;
    -- }&lt;br /&gt;
    &lt;br /&gt;
    -- שינינו את השורה הזו כדי להסיר את templatestyles&lt;br /&gt;
    local res = &#039;&amp;lt;span dir=&amp;quot;rtl&amp;quot; class=&amp;quot;languageicon&amp;quot;&amp;gt;(&#039;.. mw.text.listToText( langs, &#039;, &#039;, &#039; ו&#039; )  .. &#039;)&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    return res&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return  {&lt;br /&gt;
    [&#039;שפת קישור&#039;]=render&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:%D7%A4%D7%A8%D7%9E%D7%98%D7%A8%D7%99%D7%9D/%D7%AA%D7%99%D7%A2%D7%95%D7%93&amp;diff=5217</id>
		<title>יחידה:פרמטרים/תיעוד</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:%D7%A4%D7%A8%D7%9E%D7%98%D7%A8%D7%99%D7%9D/%D7%AA%D7%99%D7%A2%D7%95%D7%93&amp;diff=5217"/>
		<updated>2024-06-26T21:08:48Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: גרסה אחת יובאה&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[קטגוריה:ניהול פרמטרים]]&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:%D7%A1%D7%95%D7%92%D7%A8%D7%99%D7%99%D7%9D/%D7%91%D7%93%D7%99%D7%A7%D7%95%D7%AA&amp;diff=5213</id>
		<title>יחידה:סוגריים/בדיקות</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:%D7%A1%D7%95%D7%92%D7%A8%D7%99%D7%99%D7%9D/%D7%91%D7%93%D7%99%D7%A7%D7%95%D7%AA&amp;diff=5213"/>
		<updated>2024-06-26T21:08:47Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: גרסה אחת יובאה&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- Unit tests for [[Module:סוגריים]]. Click talk page to run tests.&lt;br /&gt;
local p = require(&#039;Module:UnitTests&#039;)&lt;br /&gt;
 &lt;br /&gt;
function p:test()&lt;br /&gt;
    self:preprocess_equals_many(&#039;{{#invoke:סוגריים|remove_parents|string=&#039;, &#039;}}&#039;, {&lt;br /&gt;
        {&#039;חתול&#039;, &#039;חתול&#039;},&lt;br /&gt;
        {&#039;חתול (במגפיים)&#039;, &#039;חתול&#039;},&lt;br /&gt;
	{&#039;חתול (בלי) (מגפיים)&#039;, &#039;חתול&#039;},&lt;br /&gt;
    }&lt;br /&gt;
)&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:TemplateTranslation/en/Cite_GHG&amp;diff=5193</id>
		<title>יחידה:TemplateTranslation/en/Cite GHG</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:TemplateTranslation/en/Cite_GHG&amp;diff=5193"/>
		<updated>2024-06-26T21:08:39Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: גרסה אחת יובאה&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
p.ikeys = {&lt;br /&gt;
	1,&lt;br /&gt;
	2,&lt;br /&gt;
	3,&lt;br /&gt;
	&#039;nologo&#039;,&lt;br /&gt;
	&#039;notitle&#039;&lt;br /&gt;
}&lt;br /&gt;
p.okeys = {&lt;br /&gt;
	{1},&lt;br /&gt;
	{2},&lt;br /&gt;
	{3},&lt;br /&gt;
	{&#039;ללא סמל&#039;},&lt;br /&gt;
	{&#039;ללא שם&#039;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
p.options = { linear = true, implicitnumbers = true }&lt;br /&gt;
&lt;br /&gt;
function p.transform(f, i)&lt;br /&gt;
	local t, o&lt;br /&gt;
&lt;br /&gt;
	-- Target template name&lt;br /&gt;
	t = &#039;גזניוס קאוטש קאולי&#039;&lt;br /&gt;
	&lt;br /&gt;
	-- Init output arguments&lt;br /&gt;
	o = {}&lt;br /&gt;
	&lt;br /&gt;
	o[1] = i[1]&lt;br /&gt;
	o[2] = i[2]&lt;br /&gt;
	o[3] = i[3]&lt;br /&gt;
	o[&#039;ללא סמל&#039;] = i[&#039;nologo&#039;]&lt;br /&gt;
	o[&#039;ללא שם&#039;] = i[&#039;notitle&#039;]&lt;br /&gt;
  &lt;br /&gt;
	return {t, o}&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:TemplateTranslation/en&amp;diff=5191</id>
		<title>יחידה:TemplateTranslation/en</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:TemplateTranslation/en&amp;diff=5191"/>
		<updated>2024-06-26T21:08:38Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: גרסה אחת יובאה&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;_G.language = &#039;en&#039;&lt;br /&gt;
&lt;br /&gt;
-- list of supported templates&lt;br /&gt;
_G.templates = {&lt;br /&gt;
	&#039;Cite GHG&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
return require (&#039;Module:TemplateTranslation&#039;)&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:TemplateTranslation&amp;diff=5189</id>
		<title>יחידה:TemplateTranslation</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:TemplateTranslation&amp;diff=5189"/>
		<updated>2024-06-26T21:08:38Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: גרסה אחת יובאה&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
function defaultize(args, ilist) -- set default values for output parameters&lt;br /&gt;
	local newargs = {}&lt;br /&gt;
	for _, v in ipairs(ilist) do&lt;br /&gt;
		if type(v) == &#039;table&#039; and v[1] then&lt;br /&gt;
			if args[v[1]] then newargs[v[1]] = tostring(args[v[1]]) end&lt;br /&gt;
		else&lt;br /&gt;
			newargs[v] = tostring(args[v] or &#039;&#039;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return newargs&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function serialize(template, args, olist, options) -- convert array of output parameters to string representation&lt;br /&gt;
	local separator = &#039;\n&#039;&lt;br /&gt;
	if options.linear then separator = &#039;&#039; end&lt;br /&gt;
	local lastimplicitnumber&lt;br /&gt;
	if options.implicitnumbers then lastimplicitnumber = 0 end&lt;br /&gt;
	local out = &#039;{{&#039; .. template .. separator&lt;br /&gt;
	local argintro, itemintro&lt;br /&gt;
    if options.linear then argintro = &#039;&#039; end -- merely by convention and for convenience&lt;br /&gt;
	for _, u in ipairs(olist) do&lt;br /&gt;
		local v&lt;br /&gt;
		if type(u) == &#039;table&#039; and u[1] then&lt;br /&gt;
			if args[u[1]] and args[u[1]] ~= &#039;&#039; then v = u[1] else v = nil end&lt;br /&gt;
		else&lt;br /&gt;
			v = u&lt;br /&gt;
		end&lt;br /&gt;
		if v and args[v] then&lt;br /&gt;
			if argintro ~= &#039;&#039; then itemintro = &#039; |&#039; else itemintro = &#039;|&#039; end -- we check previous arg&#039;s whitespace and follow suit&lt;br /&gt;
			if options.implicitnumbers and type(v) == &#039;number&#039; and v == lastimplicitnumber+1 then&lt;br /&gt;
				argintro = &#039;&#039;&lt;br /&gt;
				lastimplicitnumber = v&lt;br /&gt;
			else&lt;br /&gt;
				argintro = &#039; &#039; .. v .. &#039; = &#039;&lt;br /&gt;
			end&lt;br /&gt;
			out = out .. itemintro .. argintro .. args[v]&lt;br /&gt;
			if argintro ~= &#039;&#039; then out = out .. separator end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	out = out .. &#039;}}&#039;&lt;br /&gt;
	return out&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function call(frame, name) -- does the actual transformation by using the respective submodule&lt;br /&gt;
	local submodule = require (&#039;Module:TemplateTranslation/&#039; .. _G.language .. &#039;/&#039; .. name)&lt;br /&gt;
	local template, args, result = name, {}, nil&lt;br /&gt;
	if submodule then&lt;br /&gt;
		args = defaultize(frame.args, submodule.ikeys or {})&lt;br /&gt;
		if submodule[&#039;transform&#039;] then result = submodule[&#039;transform&#039;](frame, args) else result = nil end&lt;br /&gt;
	end&lt;br /&gt;
	if result then&lt;br /&gt;
		template = result[1] or template&lt;br /&gt;
		args = result[2] or args&lt;br /&gt;
	end&lt;br /&gt;
	return serialize(template, args, submodule.okeys or {}, submodule.options or {})&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local name&lt;br /&gt;
for _, name in ipairs(_G.templates) do -- create an associative array of lambda functions, corresponding to one supported template each&lt;br /&gt;
	p[name] = function(frame)&lt;br /&gt;
		return call(frame, name)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:Sidebar&amp;diff=5183</id>
		<title>יחידה:Sidebar</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:Sidebar&amp;diff=5183"/>
		<updated>2024-06-26T21:08:36Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: גרסה אחת יובאה&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;--&lt;br /&gt;
-- This module implements {{Sidebar}}&lt;br /&gt;
--&lt;br /&gt;
require(&#039;Module:No globals&#039;)&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
local getArgs = require(&#039;Module:Arguments&#039;).getArgs&lt;br /&gt;
local navbar = require(&#039;Module:Navbar&#039;)._navbar&lt;br /&gt;
&lt;br /&gt;
local function trimAndAddAutomaticNewline(s)&lt;br /&gt;
	-- For compatibility with the original {{sidebar with collapsible lists}}&lt;br /&gt;
	-- implementation, which passed some parameters through {{#if}} to trim&lt;br /&gt;
	-- their whitespace. This also triggered the automatic newline behavior.&lt;br /&gt;
	-- ([[meta:Help:Newlines and spaces#Automatic newline]])&lt;br /&gt;
	s = mw.ustring.gsub(s, &amp;quot;^%s*(.-)%s*$&amp;quot;, &amp;quot;%1&amp;quot;)&lt;br /&gt;
	if mw.ustring.find(s, &#039;^[#*:;]&#039;) or mw.ustring.find(s, &#039;^{|&#039;) then&lt;br /&gt;
		return &#039;\n&#039; .. s&lt;br /&gt;
	else&lt;br /&gt;
		return s&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function hasSubgroup(s)&lt;br /&gt;
	if mw.ustring.find(s, &#039;vertical%-navbox%-subgroup&#039;) then&lt;br /&gt;
		return true&lt;br /&gt;
	else&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.sidebar(frame, args)&lt;br /&gt;
	if not args then&lt;br /&gt;
		args = getArgs(frame)&lt;br /&gt;
	end&lt;br /&gt;
	local root = mw.html.create()&lt;br /&gt;
	local child = args.child and mw.text.trim(args.child) == &#039;yes&#039;&lt;br /&gt;
&lt;br /&gt;
	root = root:tag(&#039;table&#039;)&lt;br /&gt;
	if not child then&lt;br /&gt;
		root &lt;br /&gt;
			:addClass(&#039;vertical-navbox&#039;)&lt;br /&gt;
			:addClass(args.wraplinks ~= &#039;true&#039; and &#039;nowraplinks&#039; or nil)&lt;br /&gt;
			:addClass(args.bodyclass or args.class)&lt;br /&gt;
			:css(&#039;float&#039;, args.float or &#039;left&#039;)&lt;br /&gt;
			:css(&#039;clear&#039;, (args.float == &#039;none&#039; and &#039;both&#039;) or args.float or &#039;left&#039;)&lt;br /&gt;
			:css(&#039;width&#039;, args.width or &#039;22.0em&#039;)&lt;br /&gt;
			:css(&#039;margin&#039;, args.float == &#039;left&#039; and &#039;0 1.0em 1.0em 0&#039; or &#039;0 0 1.0em 1.0em&#039;)&lt;br /&gt;
			:css(&#039;background&#039;, &#039;#f9f9f9&#039;)&lt;br /&gt;
			:css(&#039;border&#039;, &#039;1px solid #aaa&#039;)&lt;br /&gt;
			:css(&#039;padding&#039;, &#039;0.2em&#039;)&lt;br /&gt;
			:css(&#039;border-spacing&#039;, &#039;0.4em 0&#039;)&lt;br /&gt;
			:css(&#039;text-align&#039;, &#039;center&#039;)&lt;br /&gt;
			:css(&#039;line-height&#039;, &#039;1.4em&#039;)&lt;br /&gt;
			:css(&#039;font-size&#039;, &#039;88%&#039;)&lt;br /&gt;
			:cssText(args.bodystyle or args.style)&lt;br /&gt;
&lt;br /&gt;
		if args.outertitle then&lt;br /&gt;
			root&lt;br /&gt;
				:tag(&#039;caption&#039;)&lt;br /&gt;
					:addClass(args.outertitleclass)&lt;br /&gt;
					:css(&#039;padding-bottom&#039;, &#039;0.2em&#039;)&lt;br /&gt;
					:css(&#039;font-size&#039;, &#039;125%&#039;)&lt;br /&gt;
					:css(&#039;line-height&#039;, &#039;1.2em&#039;)&lt;br /&gt;
					:css(&#039;font-weight&#039;, &#039;bold&#039;)&lt;br /&gt;
					:cssText(args.outertitlestyle)&lt;br /&gt;
					:wikitext(args.outertitle)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if args.topimage then&lt;br /&gt;
			local imageCell = root:tag(&#039;tr&#039;):tag(&#039;td&#039;)&lt;br /&gt;
&lt;br /&gt;
			imageCell&lt;br /&gt;
				:addClass(args.topimageclass)&lt;br /&gt;
				:css(&#039;padding&#039;, &#039;0.4em 0&#039;)&lt;br /&gt;
				:cssText(args.topimagestyle)&lt;br /&gt;
				:wikitext(args.topimage)&lt;br /&gt;
&lt;br /&gt;
			if args.topcaption then&lt;br /&gt;
				imageCell&lt;br /&gt;
					:tag(&#039;div&#039;)&lt;br /&gt;
						:css(&#039;padding-top&#039;, &#039;0.2em&#039;)&lt;br /&gt;
						:css(&#039;line-height&#039;, &#039;1.2em&#039;)&lt;br /&gt;
						:cssText(args.topcaptionstyle)&lt;br /&gt;
						:wikitext(args.topcaption)&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if args.pretitle then&lt;br /&gt;
			root&lt;br /&gt;
				:tag(&#039;tr&#039;)&lt;br /&gt;
					:tag(&#039;td&#039;)&lt;br /&gt;
						:addClass(args.pretitleclass)&lt;br /&gt;
						:cssText(args.basestyle)&lt;br /&gt;
						:css(&#039;padding-top&#039;, args.topimage and &#039;0.2em&#039; or &#039;0.4em&#039;)&lt;br /&gt;
						:css(&#039;line-height&#039;, &#039;1.2em&#039;)&lt;br /&gt;
						:cssText(args.pretitlestyle)&lt;br /&gt;
						:wikitext(args.pretitle)&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		root&lt;br /&gt;
			:addClass(&#039;vertical-navbox-subgroup&#039;)&lt;br /&gt;
			:css(&#039;width&#039;, &#039;100%&#039;)&lt;br /&gt;
			:css(&#039;margin&#039;, &#039;0px&#039;)&lt;br /&gt;
			:css(&#039;border-spacing&#039;, &#039;0px&#039;)&lt;br /&gt;
			:addClass(args.bodyclass or args.class)&lt;br /&gt;
			:cssText(args.bodystyle or args.style)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if args.title then&lt;br /&gt;
		if child then&lt;br /&gt;
			root&lt;br /&gt;
				:wikitext(args.title)&lt;br /&gt;
		else&lt;br /&gt;
			root&lt;br /&gt;
				:tag(&#039;tr&#039;)&lt;br /&gt;
					:tag(&#039;th&#039;)&lt;br /&gt;
						:addClass(args.titleclass)&lt;br /&gt;
						:cssText(args.basestyle)&lt;br /&gt;
						:css(&#039;padding&#039;, &#039;0.2em 0.4em 0.2em&#039;)&lt;br /&gt;
						:css(&#039;padding-top&#039;, args.pretitle and 0)&lt;br /&gt;
						:css(&#039;font-size&#039;, &#039;145%&#039;)&lt;br /&gt;
						:css(&#039;line-height&#039;, &#039;1.2em&#039;)&lt;br /&gt;
						:cssText(args.titlestyle)&lt;br /&gt;
						:wikitext(args.title)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if args.image then&lt;br /&gt;
		local imageCell = root:tag(&#039;tr&#039;):tag(&#039;td&#039;)&lt;br /&gt;
&lt;br /&gt;
		imageCell&lt;br /&gt;
			:addClass(args.imageclass)&lt;br /&gt;
			:css(&#039;padding&#039;, &#039;0.2em 0 0.4em&#039;)&lt;br /&gt;
			:cssText(args.imagestyle)&lt;br /&gt;
			:wikitext(args.image)&lt;br /&gt;
&lt;br /&gt;
		if args.caption then&lt;br /&gt;
			imageCell&lt;br /&gt;
				:tag(&#039;div&#039;)&lt;br /&gt;
					:css(&#039;padding-top&#039;, &#039;0.2em&#039;)&lt;br /&gt;
					:css(&#039;line-height&#039;, &#039;1.2em&#039;)&lt;br /&gt;
					:cssText(args.captionstyle)&lt;br /&gt;
					:wikitext(args.caption)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if args.above then&lt;br /&gt;
		root&lt;br /&gt;
			:tag(&#039;tr&#039;)&lt;br /&gt;
				:tag(&#039;td&#039;)&lt;br /&gt;
					:addClass(args.aboveclass)&lt;br /&gt;
					:css(&#039;padding&#039;, &#039;0.3em 0.4em 0.3em&#039;)&lt;br /&gt;
					:css(&#039;font-weight&#039;, &#039;bold&#039;)&lt;br /&gt;
					:cssText(args.abovestyle)&lt;br /&gt;
					:newline() -- newline required for bullet-points to work&lt;br /&gt;
					:wikitext(args.above)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local rowNums = {}&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		k = &#039;&#039; .. k&lt;br /&gt;
		local num = k:match(&#039;^heading(%d+)$&#039;) or k:match(&#039;^content(%d+)$&#039;)&lt;br /&gt;
		if num then table.insert(rowNums, tonumber(num)) end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(rowNums)&lt;br /&gt;
	-- remove duplicates from the list (e.g. 3 will be duplicated if both heading3 and content3 are specified)&lt;br /&gt;
	for i = #rowNums, 1, -1 do&lt;br /&gt;
		if rowNums[i] == rowNums[i - 1] then&lt;br /&gt;
			table.remove(rowNums, i)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	for i, num in ipairs(rowNums) do&lt;br /&gt;
		local heading = args[&#039;heading&#039; .. num]&lt;br /&gt;
		if heading then&lt;br /&gt;
			root&lt;br /&gt;
				:tag(&#039;tr&#039;)&lt;br /&gt;
					:tag(&#039;th&#039;)&lt;br /&gt;
						:addClass(args.headingclass)&lt;br /&gt;
						:css(&#039;padding&#039;, &#039;0.1em&#039;)&lt;br /&gt;
						:cssText(args.basestyle)&lt;br /&gt;
						:cssText(args.headingstyle)&lt;br /&gt;
						:cssText(args[&#039;heading&#039; .. num .. &#039;style&#039;])&lt;br /&gt;
						:newline()&lt;br /&gt;
						:wikitext(heading)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		local content = args[&#039;content&#039; .. num]&lt;br /&gt;
		if content then&lt;br /&gt;
			root&lt;br /&gt;
				:tag(&#039;tr&#039;)&lt;br /&gt;
					:tag(&#039;td&#039;)&lt;br /&gt;
						:addClass(args.contentclass)&lt;br /&gt;
						:css(&#039;padding&#039;, hasSubgroup(content) and &#039;0.1em 0 0.2em&#039; or &#039;0 0.1em 0.4em&#039;)&lt;br /&gt;
						:cssText(args.contentstyle)&lt;br /&gt;
						:cssText(args[&#039;content&#039; .. num .. &#039;style&#039;])&lt;br /&gt;
						:newline()&lt;br /&gt;
						:wikitext(content)&lt;br /&gt;
						:done()&lt;br /&gt;
					:newline() -- Without a linebreak after the &amp;lt;/td&amp;gt;, a nested list like &amp;quot;* {{hlist| ...}}&amp;quot; doesn&#039;t parse correctly.&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if args.below then&lt;br /&gt;
		root&lt;br /&gt;
			:tag(&#039;tr&#039;)&lt;br /&gt;
				:tag(&#039;td&#039;)&lt;br /&gt;
					:addClass(args.belowclass)&lt;br /&gt;
					:css(&#039;padding&#039;, &#039;0.3em 0.4em 0.3em&#039;)&lt;br /&gt;
					:css(&#039;font-weight&#039;, &#039;bold&#039;)&lt;br /&gt;
					:cssText(args.belowstyle)&lt;br /&gt;
					:newline()&lt;br /&gt;
					:wikitext(args.below)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if not child then&lt;br /&gt;
		local navbarArg = args.navbar or args.tnavbar&lt;br /&gt;
		if navbarArg ~= &#039;none&#039; and navbarArg ~= &#039;off&#039; and (args.name or frame:getParent():getTitle():gsub(&#039;/sandbox$&#039;, &#039;&#039;) ~= &#039;Template:Sidebar&#039;) then&lt;br /&gt;
			root&lt;br /&gt;
				:tag(&#039;tr&#039;)&lt;br /&gt;
					:tag(&#039;td&#039;)&lt;br /&gt;
						:css(&#039;text-align&#039;, &#039;right&#039;)&lt;br /&gt;
						:css(&#039;font-size&#039;, &#039;115%&#039;)&lt;br /&gt;
						:cssText(args.navbarstyle or args.tnavbarstyle)&lt;br /&gt;
						:wikitext(navbar{&lt;br /&gt;
							args.name,&lt;br /&gt;
							mini = 1,&lt;br /&gt;
							fontstyle = args.navbarfontstyle or args.tnavbarfontstyle&lt;br /&gt;
						})&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return tostring(root) .. (child and &#039;[[קטגוריה:דפים עם תבנית צד עם פרמטר child]]&#039; or &#039;&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.collapsible(frame)&lt;br /&gt;
	local args = getArgs(frame)&lt;br /&gt;
&lt;br /&gt;
	args.abovestyle = &#039;border-top: 1px solid #aaa; border-bottom: 1px solid #aaa;&#039; .. (args.abovestyle or &#039;&#039;)&lt;br /&gt;
	args.belowstyle = &#039;border-top: 1px solid #aaa; border-bottom: 1px solid #aaa;&#039; .. (args.belowstyle or &#039;&#039;)&lt;br /&gt;
	args.navbarstyle = &#039;padding-top: 0.6em;&#039; .. (args.navbarstyle or args.tnavbarstyle or &#039;&#039;)&lt;br /&gt;
	if not args.name and frame:getParent():getTitle():gsub(&#039;/sandbox$&#039;, &#039;&#039;) == &#039;Template:Sidebar with collapsible lists&#039; then&lt;br /&gt;
		args.navbar = &#039;none&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local contentArgs = {}&lt;br /&gt;
&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		local num = string.match(k, &#039;^list(%d+)$&#039;)&lt;br /&gt;
		if num then&lt;br /&gt;
			local expand = args.expanded and (args.expanded == &#039;all&#039; or args.expanded == args[&#039;list&#039; .. num .. &#039;name&#039;])&lt;br /&gt;
&lt;br /&gt;
			local row = mw.html.create(&#039;div&#039;)&lt;br /&gt;
			row&lt;br /&gt;
				:addClass(&#039;NavFrame&#039;)&lt;br /&gt;
				:addClass((not expand) and &#039;collapsed&#039; or nil)&lt;br /&gt;
				:css(&#039;border&#039;, &#039;none&#039;)&lt;br /&gt;
				:css(&#039;padding&#039;, 0)&lt;br /&gt;
				:cssText(args.listframestyle)&lt;br /&gt;
				:cssText(args[&#039;list&#039; .. num .. &#039;framestyle&#039;])&lt;br /&gt;
				:tag(&#039;div&#039;)&lt;br /&gt;
					:addClass(&#039;NavHead&#039;)&lt;br /&gt;
					:addClass(args.listtitleclass)&lt;br /&gt;
					:css(&#039;font-size&#039;, &#039;105%&#039;)&lt;br /&gt;
					:css(&#039;background&#039;, &#039;transparent&#039;)&lt;br /&gt;
					:css(&#039;text-align&#039;, &#039;right&#039;)&lt;br /&gt;
					:cssText(args.basestyle)&lt;br /&gt;
					:cssText(args.listtitlestyle)&lt;br /&gt;
					:cssText(args[&#039;list&#039; .. num .. &#039;titlestyle&#039;])&lt;br /&gt;
					:wikitext(trimAndAddAutomaticNewline(args[&#039;list&#039; .. num .. &#039;title&#039;] or &#039;List&#039;))&lt;br /&gt;
					:done()&lt;br /&gt;
				:tag(&#039;div&#039;)&lt;br /&gt;
					:addClass(&#039;NavContent&#039;)&lt;br /&gt;
					:addClass(args.listclass)&lt;br /&gt;
					:addClass(args[&#039;list&#039; .. num .. &#039;class&#039;])&lt;br /&gt;
					:css(&#039;font-size&#039;, &#039;105%&#039;)&lt;br /&gt;
					:css(&#039;padding&#039;, &#039;0.2em 0 0.4em&#039;)&lt;br /&gt;
					:css(&#039;text-align&#039;, &#039;right&#039;)&lt;br /&gt;
					:cssText(args.liststyle)&lt;br /&gt;
					:cssText(args[&#039;list&#039; .. num .. &#039;style&#039;])&lt;br /&gt;
					:wikitext(trimAndAddAutomaticNewline(args[&#039;list&#039; .. num]))&lt;br /&gt;
&lt;br /&gt;
			contentArgs[&#039;content&#039; .. num] = tostring(row)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	for k, v in pairs(contentArgs) do&lt;br /&gt;
		args[k] = v&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return p.sidebar(frame, args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:Routemap&amp;diff=5181</id>
		<title>יחידה:Routemap</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:Routemap&amp;diff=5181"/>
		<updated>2024-06-26T21:08:36Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: גרסה אחת יובאה&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local i18n = {&lt;br /&gt;
	errors = {&lt;br /&gt;
		[&amp;quot;parameter-missing&amp;quot;] = &amp;quot;Missing parameter!&amp;quot;,&lt;br /&gt;
		[&amp;quot;collapsible-block-not-closed&amp;quot;] = &amp;quot;Collapsible section not closed properly!&amp;quot;,&lt;br /&gt;
		[&amp;quot;collapsible-block-not-open&amp;quot;] = &amp;quot;Missing start-Collapsible markup!&amp;quot;,&lt;br /&gt;
		[&amp;quot;collapsible-block-empty&amp;quot;] = &amp;quot;Collapsible section must not be empty!&amp;quot;,&lt;br /&gt;
		[&amp;quot;collapsible-block-no-first-row&amp;quot;] = &amp;quot;Invalid first row of collapsible section!&amp;quot;,&lt;br /&gt;
		[&amp;quot;collapsible-block-no-replacement&amp;quot;] = &amp;quot;Invalid collapsible replacement row!&amp;quot;,&lt;br /&gt;
		[&amp;quot;colspan-less-rows-than-set&amp;quot;] = &amp;quot;Invalid colspan set!&amp;quot;,&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;error-categories&amp;quot;] = {&lt;br /&gt;
		default = &#039;[[Category:Pages with errors of Module Routemap]]&#039;,&lt;br /&gt;
		[&amp;quot;text-images&amp;quot;] = &#039;[[Category:Pages using Routemap with text images]]&#039;,&lt;br /&gt;
		[&amp;quot;separate-navbar&amp;quot;] = &#039;[[Category:Pages using Routemap with a separate navbar template]]&#039;,&lt;br /&gt;
		[&amp;quot;missing-text-values&amp;quot;] = &#039;[[Category:Pages using BSto or BSsrws with missing text values]]&#039;,&lt;br /&gt;
		[&amp;quot;br-tags&amp;quot;] = &#039;[[Category:Pages using BSto, BSsplit, BSsrws or BScvt with br tags]]&#039;,&lt;br /&gt;
		[&amp;quot;srws&amp;quot;] = &#039;[[Category:Pages using BSsplit instead of BSsrws]]&#039;,&lt;br /&gt;
		[&amp;quot;rmr-error&amp;quot;] = &#039;[[Category:Pages with bad value for RoutemapRoute template]]&#039;&lt;br /&gt;
	},&lt;br /&gt;
	text = {&lt;br /&gt;
		navbar_mini = false, -- for navbar pos 2 only&lt;br /&gt;
		navbar_text = &#039;תרשים:&#039;, -- for navbar pos 2 only&lt;br /&gt;
		legend_text = &#039;מקרא&#039;, --Was &#039;Legend&#039;&lt;br /&gt;
		legend = {&lt;br /&gt;
			default = &#039;[[Template:Railway line legend&#039;,&lt;br /&gt;
			track = &#039;[[Template:Railway track legend&#039;,&lt;br /&gt;
			bus = &#039;[[Template:Bus route legend&#039;,&lt;br /&gt;
			canal = &#039;[[Template:Waterways legend&#039;,&lt;br /&gt;
			water = &#039;[[Template:Waterways legend&#039;,&lt;br /&gt;
			waterway = &#039;[[Template:Waterways legend&#039;,&lt;br /&gt;
			foot = &#039;[[Template:Trails legend&#039;,&lt;br /&gt;
			footpath = &#039;[[Template:Trails legend&#039;,&lt;br /&gt;
			walkway = &#039;[[Template:Trails legend&#039;&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	html = {&lt;br /&gt;
		[&amp;quot;cell-icon-fmt&amp;quot;] = &#039;\&lt;br /&gt;
|style=&amp;quot;padding:0%s&amp;quot;|[[File:BSicon_%s.svg|x20px|link=%s|alt=|%s]]%s&#039;,&lt;br /&gt;
		[&amp;quot;cell-overlapicon-fmt&amp;quot;] = &#039;&amp;lt;div style=&amp;quot;position:absolute;left:0px;top:0px;padding:0%s&amp;quot;&amp;gt;[[File:BSicon_%s.svg|x20px|link=%s|alt=|%s]]&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
		[&amp;quot;cell-icon-fmt-with-overlap&amp;quot;] = &#039;\&lt;br /&gt;
|style=&amp;quot;padding:0%s&amp;quot;|&amp;lt;div style=&amp;quot;position:relative&amp;quot;&amp;gt;%s&amp;lt;/div&amp;gt;&amp;lt;div%s&amp;gt;[[File:BSicon_%s.svg|x20px|link=|alt=|%s]]%s&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
		[&amp;quot;cell-text-fmt&amp;quot;] = &#039;\&lt;br /&gt;
|style=&amp;quot;padding:0;width:%s;min-width:%s;line-height:20px%s&amp;quot; title=&amp;quot;%s&amp;quot;|&amp;lt;%s style=&amp;quot;line-height:.975;display:inline-block%s&amp;quot;&amp;gt;%s%s%s%s&amp;lt;/%s&amp;gt;&#039;,&lt;br /&gt;
		[&amp;quot;cell-overlaptext-fmt&amp;quot;] = &#039;&amp;lt;div style=&amp;quot;position:absolute;width:%s;min-width:%s;line-height:20px%s&amp;quot; title=&amp;quot;%s&amp;quot;&amp;gt;&amp;lt;%s style=&amp;quot;line-height:.975;display:inline-block%s&amp;quot;&amp;gt;%s%s%s&amp;lt;/%s&amp;gt;&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
		[&amp;quot;cell-text-fmt-with-overlap&amp;quot;] = &#039;\&lt;br /&gt;
|style=&amp;quot;padding:0%s&amp;quot;|&amp;lt;div style=&amp;quot;position:relative&amp;quot;&amp;gt;%s&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;width:%s;min-width:%s;line-height:20px%s&amp;quot; title=&amp;quot;%s&amp;quot;&amp;gt;&amp;lt;%s style=&amp;quot;line-height:.975;display:inline-block%s&amp;quot;&amp;gt;%s%s%s%s&amp;lt;/%s&amp;gt;&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
		[&amp;quot;cell-empty-fmt&amp;quot;] = &#039;\n|style=&amp;quot;padding:0;width:%s;min-width:%s;height:20px;min-height:20px%s&amp;quot;|%s&#039;,&lt;br /&gt;
		[&amp;quot;cell-empty-fmt-with-overlap&amp;quot;] = &#039;\n|style=&amp;quot;padding:0%s&amp;quot;|&amp;lt;div style=&amp;quot;position:relative&amp;quot;&amp;gt;%s&amp;lt;/div&amp;gt;&amp;lt;div style=&amp;quot;width:%s;min-width:%s;height:20px;min-height:20px%s&amp;quot;&amp;gt;%s&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
&lt;br /&gt;
		[&amp;quot;cell-filler-fmt&amp;quot;] = &#039;\n|style=&amp;quot;padding:0; width:8px&amp;quot;| ||style=&amp;quot;padding:0; width:4px; background-color:%s&amp;quot;| ||style=&amp;quot;padding:0; width:8px&amp;quot;|&#039;,&lt;br /&gt;
		[&amp;quot;cell-filler-empty-fmt&amp;quot;] = &#039;\n|style=&amp;quot;padding:0; width:20px&amp;quot;|&#039;,&lt;br /&gt;
&lt;br /&gt;
		[&amp;quot;row-linfo4-fmt&amp;quot;] = &#039;\&lt;br /&gt;
|style=&amp;quot;width:auto;vertical-align:middle;padding:0 3px 0 0;text-align:left;%s&amp;quot;|&amp;lt;div style=&amp;quot;display:inline;font-size:90%%;&amp;quot;&amp;gt;%s&amp;lt;/div&amp;gt;&#039;,-- parameters:linfo4-width, linfo4&lt;br /&gt;
		[&amp;quot;row-linfo3-fmt&amp;quot;] = &#039;&amp;lt;div style=&amp;quot;display:inline;font-size:90%%;&amp;quot;&amp;gt;%s&amp;lt;/div&amp;gt; &#039;,&lt;br /&gt;
		[&amp;quot;row-rinfo3-fmt&amp;quot;] = &#039; &amp;lt;div style=&amp;quot;display:inline;font-size:90%%;&amp;quot;&amp;gt;%s&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
		[&amp;quot;row-rinfo4-fmt&amp;quot;] = &#039;\&lt;br /&gt;
|style=&amp;quot;width:auto;vertical-align:middle;padding:0 0 0 3px;text-align:right;%s&amp;quot;|&amp;lt;div style=&amp;quot;display:inline;font-size:90%%;&amp;quot;&amp;gt;%s&amp;lt;/div&amp;gt;&#039;,-- parameters:rinfo4-width, rinfo4&lt;br /&gt;
&lt;br /&gt;
		[&amp;quot;row-general-fmt&amp;quot;] = &#039;\&lt;br /&gt;
|- style=&amp;quot;line-height:1&amp;quot; %s\&lt;br /&gt;
|colspan=&amp;quot;%s&amp;quot; style=&amp;quot;width:auto;vertical-align:middle;padding:0;text-align:right;%s&amp;quot;|%s\&lt;br /&gt;
|style=&amp;quot;width:auto;vertical-align:middle;text-align:left;padding:0 %s;%s&amp;quot;|&amp;lt;div style=&amp;quot;display:inline;font-size:90%%;&amp;quot;&amp;gt;%s&amp;lt;/div&amp;gt;\&lt;br /&gt;
|style=&amp;quot;width:auto;padding:0%s&amp;quot;|\&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;display:table;width:unset;line-height:0;padding:0 !important;margin:0 auto !important&amp;quot;\&lt;br /&gt;
|- style=&amp;quot;display:inline-table;%s&amp;quot;%s\&lt;br /&gt;
|}\&lt;br /&gt;
|style=&amp;quot;width:auto;vertical-align:middle;text-align:right;padding:0 %s;%s&amp;quot;|&amp;lt;div style=&amp;quot;display:inline;font-size:90%%;&amp;quot;&amp;gt;%s&amp;lt;/div&amp;gt;\&lt;br /&gt;
|colspan=&amp;quot;%s&amp;quot; style=&amp;quot;width:auto;vertical-align:middle;padding:0;text-align:left;%s&amp;quot;|%s%s&#039;,-- parameters: linfo4-fmt, colspan-left, linfo3+2-width, linfo3+2, linfo1-pad, linfo1-width, linfo1, bg, cells, rinfo1-pad, rinfo1-width, rinfo1, colspan-right, rinfo2+3-width, rinfo2+3, rinfo4-fmt&lt;br /&gt;
&lt;br /&gt;
		[&amp;quot;row-collapsible-begin-fmt&amp;quot;] = &#039;\&lt;br /&gt;
|- style=&amp;quot;line-height:1&amp;quot;\&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot; style=&amp;quot;padding:0 !important;background-color:%s&amp;quot;|\&lt;br /&gt;
{|class=&amp;quot;%s%s&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;%s padding:0 !important;vertical-align:middle;margin:0 !important;white-space:nowrap&amp;quot;&#039;,-- parameters: bg, &amp;quot;collapsible &amp;quot;/&amp;quot;mw-collapsible mw-&amp;quot;, collapse-state, &amp;quot;float:right&amp;quot; / &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
		[&amp;quot;row-collapsible-end-fmt&amp;quot;] = &#039;\n|}&#039;,&lt;br /&gt;
&lt;br /&gt;
		[&amp;quot;row-collapsible-left-button-width&amp;quot;] = &#039;45px&#039;,-- 50px is the minimal width for [показать] / [скрыть] button. Use 40px for [show] / [hide]&lt;br /&gt;
		[&amp;quot;row-collapsible-left-button-fmt&amp;quot;] = &#039;\n! style=&amp;quot;padding-right:3px;min-width:%s;%s&amp;quot; |&#039;,--parameters: left-button-width, linfo4-width&lt;br /&gt;
		[&amp;quot;row-collapsible-left-linfo4+3+2-fmt&amp;quot;] = &#039;\&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;line-height:1;width:100%%;padding:0 !important;margin:0 !important&amp;quot;\&lt;br /&gt;
|style=&amp;quot;width:auto;vertical-align:middle;padding:0 3px 0 1px;text-align:left&amp;quot;| &amp;lt;div style=&amp;quot;display:inline;font-size:90%%;&amp;quot;&amp;gt;%s&amp;lt;/div&amp;gt;\&lt;br /&gt;
|style=&amp;quot;width:auto;vertical-align:middle;text-align:right&amp;quot;| %s\&lt;br /&gt;
|}&#039;,-- parameters: linfo4, linfo3+2&lt;br /&gt;
		[&amp;quot;row-collapsible-right-button-width&amp;quot;] = &#039;45px&#039;,-- 72px is the minimal width for [развернуть] / [свернуть] button at 90%. Use 58px for [expand] / [collapse]&lt;br /&gt;
		[&amp;quot;row-collapsible-right-rinfo2+3+4-fmt&amp;quot;] = &#039;\&lt;br /&gt;
{|cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;line-height:1;width:100%%;padding:0 !important;margin:0 !important&amp;quot;\&lt;br /&gt;
|style=&amp;quot;width:auto;vertical-align:middle;text-align:left&amp;quot;| %s\&lt;br /&gt;
|style=&amp;quot;width:auto;vertical-align:middle;padding:0 1px 0 3px;text-align:right&amp;quot;| &amp;lt;div style=&amp;quot;display:inline;font-size:90%%;&amp;quot;&amp;gt;%s&amp;lt;/div&amp;gt;\&lt;br /&gt;
|}&#039;,-- parameters: rinfo2+3, linfo4&lt;br /&gt;
		[&amp;quot;row-collapsible-right-button-fmt&amp;quot;] = &#039;\n| style=&amp;quot;width:auto;vertical-align:middle;padding-left:3px;font-size:90%%;min-width:%s;%s&amp;quot; |&#039;,--parameters: right-button-width, rinfo4-width&lt;br /&gt;
&lt;br /&gt;
		[&amp;quot;row-collapsible-replace-begin-fmt&amp;quot;] = &#039;\&lt;br /&gt;
|- style=&amp;quot;line-height:1&amp;quot;\&lt;br /&gt;
|colspan=&amp;quot;7&amp;quot; style=&amp;quot;padding:0 %s&amp;quot;|&amp;lt;div style=&amp;quot;position:relative&amp;quot;&amp;gt;\&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;position:absolute;margin:0;bottom:0px;%svertical-align:middle;white-space:nowrap;background-color:%s&amp;quot;&#039;,-- parameters: &amp;quot;right-button-width 0 0&amp;quot; / &amp;quot;0 0 left-button-width&amp;quot;, &amp;quot;right:0px&amp;quot; / &amp;quot;&amp;quot;, bg&lt;br /&gt;
		[&amp;quot;row-collapsible-replace-end-fmt&amp;quot;] = &#039;\n|}&amp;lt;/div&amp;gt;&#039;,&lt;br /&gt;
&lt;br /&gt;
		[&amp;quot;colspan-fmt&amp;quot;] = &#039;%s\n|-\n| colspan=&amp;quot;7&amp;quot; style=&amp;quot;background-color:%s;text-align:%s;%s&amp;quot;|\n%s&#039;,&lt;br /&gt;
		[&amp;quot;empty-row-fmt&amp;quot;] = &#039;\n|-\n| style=&amp;quot;width:auto;padding:0 3px 0 0;%s&amp;quot; |\n| style=&amp;quot;width:auto;padding: 0;%s&amp;quot; |\n| style=&amp;quot;width:auto;padding:0 %s;%s&amp;quot; |\n| style=&amp;quot;width:auto;padding:0&amp;quot; |\n| style=&amp;quot;width:auto;padding:0 %s;%s&amp;quot; |\n| style=&amp;quot;width:auto;padding:0;%s&amp;quot; |\n| style=&amp;quot;width:auto;padding:0 0 0 3px;%s&amp;quot; |&#039;&lt;br /&gt;
		}&lt;br /&gt;
}&lt;br /&gt;
local p,q={},{}&lt;br /&gt;
&lt;br /&gt;
local getArgs = require(&#039;Module:Arguments&#039;).getArgs&lt;br /&gt;
&lt;br /&gt;
local function makeInvokeFunction(funcName)&lt;br /&gt;
	-- makes a function that can be returned from #invoke, using&lt;br /&gt;
	-- [[Module:Arguments]].&lt;br /&gt;
	return function (frame)&lt;br /&gt;
		local args = getArgs(frame, {parentOnly = true})&lt;br /&gt;
		return p[funcName](args)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function formaterror(key,param)&lt;br /&gt;
	local result = string.format(i18n.html[&#039;colspan-fmt&#039;], &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;&#039; .. string.format(i18n.errors[key] or (tostring(key) .. &#039; %s&#039;),&lt;br /&gt;
		tostring(param or &#039;&#039;)) .. &#039;&amp;lt;/span&amp;gt;&#039;)&lt;br /&gt;
	if mw.site.namespaces[mw.title.getCurrentTitle().namespace].isContent then result = result .. (i18n[&#039;error-categories&#039;][key] or i18n[&#039;error-categories&#039;].default or &#039;&#039;) end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function RGBbyCode(code)-- RGB codes for BSicon sets at Commons:Category:Icons for railway descriptions/other colors&lt;br /&gt;
	local colors = {--       Any changes should be discussed at Commons:Talk:BSicon/Colors&lt;br /&gt;
		bahn     = &#039;BE2D2C&#039;, ex          = &#039;D77F7E&#039;,&lt;br /&gt;
		u        = &#039;003399&#039;, uex         = &#039;6281C0&#039;,&lt;br /&gt;
		f        = &#039;008000&#039;, fex         = &#039;64B164&#039;,&lt;br /&gt;
		g        = &#039;2CA05A&#039;, gex         = &#039;7EC49A&#039;,&lt;br /&gt;
		azure    = &#039;3399FF&#039;, ex_azure    = &#039;99CCFF&#039;,&lt;br /&gt;
		black    = &#039;000000&#039;, ex_black    = &#039;646464&#039;,&lt;br /&gt;
		blue     = &#039;0078BE&#039;, ex_blue     = &#039;64ACD6&#039;,&lt;br /&gt;
		brown    = &#039;8D5B2D&#039;, ex_brown    = &#039;B89A7F&#039;,&lt;br /&gt;
		cerulean = &#039;1A8BB9&#039;, ex_cerulean = &#039;73B7D3&#039;,&lt;br /&gt;
		cyan     = &#039;40E0D0&#039;, ex_cyan     = &#039;8AEAE1&#039;,&lt;br /&gt;
		denim    = &#039;00619F&#039;, ex_denim    = &#039;649EC3&#039;,&lt;br /&gt;
		fuchsia  = &#039;B5198D&#039;, ex_fuchsia  = &#039;D173B8&#039;,&lt;br /&gt;
		golden   = &#039;D7C447&#039;, ex_golden   = &#039;E5DA8E&#039;,&lt;br /&gt;
		green    = &#039;2DBE2C&#039;, ex_green    = &#039;7FD67E&#039;,&lt;br /&gt;
		grey     = &#039;999999&#039;, ex_grey     = &#039;C0C0C0&#039;,&lt;br /&gt;
		jade     = &#039;53B147&#039;, ex_jade     = &#039;95CE8E&#039;,&lt;br /&gt;
		lavender = &#039;9999FF&#039;, ex_lavender = &#039;C0C0FF&#039;,&lt;br /&gt;
		lime     = &#039;99CC00&#039;, ex_lime     = &#039;D1E681&#039;,&lt;br /&gt;
		maroon   = &#039;800000&#039;, ex_maroon   = &#039;B16464&#039;,&lt;br /&gt;
		ochre    = &#039;CC6600&#039;, ex_ochre    = &#039;DEA164&#039;,&lt;br /&gt;
		olive    = &#039;837902&#039;, ex_olive    = &#039;B2AC64&#039;,&lt;br /&gt;
		orange   = &#039;FF6600&#039;, ex_orange   = &#039;FF9955&#039;,&lt;br /&gt;
		pink     = &#039;F0668D&#039;, ex_pink     = &#039;F4A1B8&#039;,&lt;br /&gt;
		purple   = &#039;8171AC&#039;, ex_purple   = &#039;B1A8CB&#039;,&lt;br /&gt;
		red      = &#039;EF161E&#039;, ex_red      = &#039;F37176&#039;,&lt;br /&gt;
		ruby     = &#039;CC0066&#039;, ex_ruby     = &#039;DE64A1&#039;,&lt;br /&gt;
		saffron  = &#039;FFAB2E&#039;, ex_saffron  = &#039;FFC969&#039;,&lt;br /&gt;
		sky      = &#039;069DD3&#039;, ex_sky      = &#039;67C2E3&#039;,&lt;br /&gt;
		steel    = &#039;A1B3D4&#039;, ex_steel    = &#039;C4CFE3&#039;,&lt;br /&gt;
		teal     = &#039;339999&#039;, ex_teal     = &#039;82C0C0&#039;,&lt;br /&gt;
		violet   = &#039;800080&#039;, ex_violet   = &#039;B164B1&#039;,&lt;br /&gt;
		yellow   = &#039;FFD702&#039;, ex_yellow   = &#039;FFEB81&#039;,&lt;br /&gt;
	}&lt;br /&gt;
	return colors[code] or colors.bahn&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.RGBbyCode = makeInvokeFunction(&#039;_RGBbyCode&#039;)&lt;br /&gt;
&lt;br /&gt;
function p._RGBbyCode(args)&lt;br /&gt;
	return RGBbyCode(args[1])&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function properties(str)&lt;br /&gt;
--str is a combination of properties with following syntax:&lt;br /&gt;
--property name=value,property name1=value1,property name2=value2 and so on&lt;br /&gt;
	local result = {}&lt;br /&gt;
	for i, v in ipairs(mw.text.split(str, &#039;,&#039;)) do&lt;br /&gt;
		if v then&lt;br /&gt;
			local t = mw.text.split(v, &#039;=&#039;)&lt;br /&gt;
			if string.find(v, &#039;=&#039;) then&lt;br /&gt;
				t[1] = mw.text.trim(t[1]) --trim parameter names&lt;br /&gt;
				table.insert(result, t[1])&lt;br /&gt;
				result[t[1]] = t[2] or &#039;&#039; --fill table with pairs &amp;quot;property&amp;quot;=&amp;quot;value&amp;quot;&lt;br /&gt;
			elseif result[result[i - 1]] then&lt;br /&gt;
				table.insert(result, result[i - 1])&lt;br /&gt;
				result[result[i]] = result[result[i]]..&#039;,&#039;..t[1] --if no equals sign then tack t[1] onto the previous result&lt;br /&gt;
			else&lt;br /&gt;
				table.insert(result, &#039;~~&#039;)&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(result, &#039;~~&#039;)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function positive(x)&lt;br /&gt;
	if not x then return nil else x = string.lower(x) end&lt;br /&gt;
	if x == &#039;yes&#039; or x == &#039;y&#039; or x == &#039;1&#039; or x == &#039;true&#039; then return 1 end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function negative(x)&lt;br /&gt;
	if not x then return nil else x = string.lower(x) end&lt;br /&gt;
	if x == &#039;no&#039; or x == &#039;n&#039; or x == &#039;0&#039; or x == &#039;false&#039; then return 0 end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function alignment(x, y, z)&lt;br /&gt;
	if not x then return nil end&lt;br /&gt;
	local directions = {&lt;br /&gt;
		[&#039;inherit-left&#039;]    = {&#039;l&#039;, &#039;left&#039;,},&lt;br /&gt;
		[&#039;inherit-right&#039;]   = {&#039;r&#039;, &#039;right&#039;,},&lt;br /&gt;
		[&#039;top-inherit&#039;]     = {&#039;a&#039;, &#039;t&#039;, &#039;top&#039;,},&lt;br /&gt;
		[&#039;bottom-inherit&#039;]  = {&#039;e&#039;, &#039;b&#039;, &#039;bottom&#039;,},&lt;br /&gt;
		[&#039;top-left&#039;]        = {&#039;la&#039;, &#039;tl&#039;, &#039;c4&#039;, &#039;nw&#039;, &#039;top-left&#039;, &#039;topleft&#039;,},&lt;br /&gt;
		[&#039;top-right&#039;]       = {&#039;ra&#039;, &#039;tr&#039;, &#039;c1&#039;, &#039;ne&#039;, &#039;top-right&#039;, &#039;topright&#039;,},&lt;br /&gt;
		[&#039;bottom-left&#039;]     = {&#039;le&#039;, &#039;bl&#039;, &#039;c3&#039;, &#039;sw&#039;, &#039;bottom-left&#039;, &#039;bottomleft&#039;,},&lt;br /&gt;
		[&#039;bottom-right&#039;]    = {&#039;re&#039;, &#039;br&#039;, &#039;c2&#039;, &#039;se&#039;, &#039;bottom-right&#039;, &#039;bottomright&#039;,},&lt;br /&gt;
		[&#039;inherit-center&#039;]  = {&#039;c&#039;, &#039;center&#039;, &#039;centre&#039;,},&lt;br /&gt;
		[&#039;middle-inherit&#039;]  = {&#039;m&#039;, &#039;middle&#039;,},&lt;br /&gt;
		[&#039;top-center&#039;]      = {&#039;ma&#039;, &#039;tc&#039;, &#039;top-center&#039;, &#039;top-centre&#039;, &#039;topcenter&#039;, &#039;topcentre&#039;,},&lt;br /&gt;
		[&#039;bottom-center&#039;]   = {&#039;me&#039;, &#039;bc&#039;, &#039;bottom-center&#039;, &#039;bottom-centre&#039;, &#039;bottomcenter&#039;, &#039;bottomcentre&#039;,},&lt;br /&gt;
		[&#039;middle-left&#039;]     = {&#039;lm&#039;, &#039;ml&#039;, &#039;middle-left&#039;, &#039;middleleft&#039;,},&lt;br /&gt;
		[&#039;middle-right&#039;]    = {&#039;rm&#039;, &#039;mr&#039;, &#039;middle-right&#039;, &#039;middleright&#039;,},&lt;br /&gt;
		[&#039;middle-center&#039;]   = {&#039;cm&#039;, &#039;mc&#039;, &#039;middle-center&#039;, &#039;middle-centre&#039;, &#039;middlecenter&#039;, &#039;middlecentre&#039;,},&lt;br /&gt;
	}&lt;br /&gt;
	for k, v in pairs(directions) do&lt;br /&gt;
		for _, name in ipairs(v) do&lt;br /&gt;
			if x:lower() == name then&lt;br /&gt;
				local values = mw.text.split(k, &#039;-&#039;)&lt;br /&gt;
				if values[1] == &#039;inherit&#039; then values[1] = y end&lt;br /&gt;
				if values[2] == &#039;inherit&#039; then values[2] = z end&lt;br /&gt;
				return values&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return {y, z}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function widths(p)&lt;br /&gt;
	local values = {&lt;br /&gt;
		[&#039;w&#039;] = 160, [&#039;+bs&#039;] = 140, [&#039;bs&#039;] = 120, [&#039;+s&#039;] = 100,&lt;br /&gt;
		[&#039;s&#039;] = 80, [&#039;+db&#039;] = 70, [&#039;+b&#039;] = 60, [&#039;db&#039;] = 50,&lt;br /&gt;
		[&#039;b&#039;] = 40, [&#039;+cd&#039;] = 35, [&#039;+d&#039;] = 30, [&#039;+c&#039;] = 25,&lt;br /&gt;
		[&#039;&#039;] = 20, [&#039;ocd&#039;] = 17.5, [&#039;cd&#039;] = 15, [&#039;od&#039;] = 12.5,&lt;br /&gt;
		[&#039;d&#039;] = 10, [&#039;oc&#039;] = 7.5, [&#039;c&#039;] = 5, [&#039;o&#039;] = 2.5&lt;br /&gt;
	} -- in px&lt;br /&gt;
	return values[p]&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function cell(icon,overlapIcons,rowProps)--[[&lt;br /&gt;
&lt;br /&gt;
Icon handling. Each icon is defined as in the following example:&lt;br /&gt;
icon ID!~overlap icon ID!@image link target&lt;br /&gt;
Values for an icon ID containing &amp;quot;*&amp;quot; are treated as text, with the letter(s) before &amp;quot;*&amp;quot; as width prefix(es).&lt;br /&gt;
No limit on overlapping icons or text; just separate them by &amp;quot;!~&amp;quot;.&lt;br /&gt;
Parameters can be added after every object, separated to the left by &amp;quot;!_&amp;quot;. This, if there is a link, must be after the link.&lt;br /&gt;
Parameters for individual objects in an overlapping stack can also be added, separated to the left by &amp;quot;__&amp;quot;.&lt;br /&gt;
Unless a link is provided, each cell will have mouseover text indicating its contents.&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
	local tmp, tmp2, cellProps, iconProps, overlapProps, tmp_sep, link, tracking, icontext, iconpre, width = {}, {}, {}, {}, {}, &#039;&#039;, &#039;&#039;, &#039;&#039;&lt;br /&gt;
	if #overlapIcons &amp;gt; 0 then&lt;br /&gt;
		tmp = mw.text.split(overlapIcons[#overlapIcons], &#039;!_&#039;)&lt;br /&gt;
		if #tmp &amp;gt; 1 then overlapIcons[#overlapIcons], cellProps = tmp[1], properties(tmp[2]) end&lt;br /&gt;
		tmp = mw.text.split(overlapIcons[#overlapIcons], &#039;!@&#039;)&lt;br /&gt;
		overlapIcons[#overlapIcons] = tmp[1]&lt;br /&gt;
		if #tmp &amp;gt; 1 then link = tmp[2] end&lt;br /&gt;
		tmp = mw.text.split(icon, &#039;__&#039;)&lt;br /&gt;
		icon = tmp[1]&lt;br /&gt;
		if #tmp &amp;gt; 1 then iconProps = properties(tmp[2]) end&lt;br /&gt;
		for i, v in ipairs(overlapIcons) do&lt;br /&gt;
			tmp = mw.text.split(v, &#039;__&#039;)&lt;br /&gt;
			overlapIcons[i] = mw.text.trim(tmp[1])&lt;br /&gt;
			if #tmp &amp;gt; 1 then overlapProps[i] = properties(tmp[2]) else overlapProps[i] = {} end&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		tmp = mw.text.split(icon, &#039;[!_]_&#039;)&lt;br /&gt;
		if #tmp &amp;gt; 1 then icon, cellProps = tmp[1], properties(tmp[2]) end&lt;br /&gt;
		tmp = mw.text.split(icon, &#039;!@&#039;)&lt;br /&gt;
		icon = mw.text.trim(tmp[1])&lt;br /&gt;
		if #tmp &amp;gt; 1 then link = tmp[2] end&lt;br /&gt;
	end&lt;br /&gt;
	if #overlapIcons &amp;gt; 0 and icon ~= &#039;&#039; then tmp_sep = &#039;; &#039; end&lt;br /&gt;
	local icontip = mw.text.nowiki(mw.text.unstripNoWiki(icon..tmp_sep..table.concat(overlapIcons, &#039;; &#039;)))&lt;br /&gt;
	local textspl = string.find(icon, &#039;%*&#039;)&lt;br /&gt;
	if textspl then&lt;br /&gt;
		icontext = mw.text.trim(mw.ustring.sub(icon, textspl + 1))&lt;br /&gt;
		if textspl ~= 1 then iconpre = mw.text.trim(mw.ustring.sub(icon, 1, textspl - 1)) end&lt;br /&gt;
	end&lt;br /&gt;
	if cellProps.style then cellProps.style = &#039;;&#039;..cellProps.style else cellProps.style = &#039;&#039; end&lt;br /&gt;
	cellProps.bg = cellProps.bg or cellProps.background or cellProps.bgcolor&lt;br /&gt;
	if cellProps.bg then cellProps.style = cellProps.style..&#039;;background:&#039;..cellProps.bg end&lt;br /&gt;
	if #overlapIcons &amp;gt; 0 or icontext then&lt;br /&gt;
		cellProps._before, cellProps._after = rowProps._before or &#039;&#039;, rowProps._after or &#039;&#039;&lt;br /&gt;
		cellProps.color = cellProps.color or cellProps.colour ; cellProps.bold = cellProps.bold or cellProps.b ; cellProps.italic = cellProps.italic or cellProps.i or cellProps.it&lt;br /&gt;
		if cellProps.color then cellProps.style = cellProps.style..&#039;;color:&#039;..cellProps.color end&lt;br /&gt;
		if positive(cellProps.italic) then cellProps.style = cellProps.style..&#039;;font-style:italic&#039; end&lt;br /&gt;
		if positive(cellProps.bold) then cellProps.style = cellProps.style..&#039;;font-weight:bold&#039; end&lt;br /&gt;
		if not cellProps.fontsize or rowProps.fontsize or cellProps.fontsize == &#039;info&#039; then&lt;br /&gt;
		elseif cellProps.fontsize == &#039;cmt&#039; or cellProps.fontsize == &#039;comment&#039; then&lt;br /&gt;
			cellProps._before, cellProps._after = &#039;&amp;lt;div style=&amp;quot;display:inline;font-size:90%;&amp;quot;&amp;gt;&#039;, &#039;&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
		else&lt;br /&gt;
			cellProps.style = cellProps.style..&#039;;font-size:&#039;..cellProps.fontsize&lt;br /&gt;
		end&lt;br /&gt;
		if cellProps.align or rowProps.align then&lt;br /&gt;
			rowProps.align = rowProps.align or {&#039;middle&#039;, &#039;center&#039;}&lt;br /&gt;
			cellProps.align = alignment(cellProps.align, rowProps.align[1], rowProps.align[2]) or rowProps.align&lt;br /&gt;
			cellProps.style, cellProps.textfmt = cellProps.style..&#039;;vertical-align:&#039;..cellProps.align[1]..&#039;;text-align:&#039;..cellProps.align[2], &#039;;vertical-align:&#039;..cellProps.align[1]&lt;br /&gt;
		else&lt;br /&gt;
			cellProps.style, cellProps.textfmt = cellProps.style..&#039;;vertical-align:middle;text-align:center&#039;, &#039;;vertical-align:middle;text-align:center&#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if #overlapIcons &amp;gt; 0 then&lt;br /&gt;
		tmp = {}&lt;br /&gt;
		for i, v in ipairs(overlapIcons) do&lt;br /&gt;
			local thislink = link&lt;br /&gt;
			if i ~= #overlapIcons then thislink = &#039;&#039; end&lt;br /&gt;
			if thislink and thislink ~= &#039;&#039; then icontip = thislink end&lt;br /&gt;
			if overlapProps[i].style then overlapProps.style = &#039;;&#039;..overlapProps[i].style else overlapProps.style = &#039;&#039; end&lt;br /&gt;
			overlapProps[i].bg = overlapProps[i].bg or overlapProps[i].background or overlapProps[i].bgcolor&lt;br /&gt;
			if overlapProps[i].bg then overlapProps.style = overlapProps.style..&#039;;background:&#039;..overlapProps[i].bg end&lt;br /&gt;
			local tmp_textspl = string.find(v, &#039;%*&#039;)&lt;br /&gt;
			if tmp_textspl then&lt;br /&gt;
				local tmp_icontext, tmp_iconpre = mw.text.trim(mw.ustring.sub(v, tmp_textspl + 1)), &#039;&#039;&lt;br /&gt;
				if tmp_textspl ~= 1 then tmp_iconpre = mw.text.trim(mw.ustring.sub(v, 1, tmp_textspl - 1)) end&lt;br /&gt;
				overlapProps._before, overlapProps._after = cellProps._before, cellProps._after&lt;br /&gt;
				overlapProps[i].color = overlapProps[i].color or overlapProps[i].colour ; overlapProps[i].bold = overlapProps[i].bold or overlapProps[i].b ; overlapProps[i].italic = overlapProps[i].italic or overlapProps[i].i or overlapProps[i].it&lt;br /&gt;
				if overlapProps[i].color then overlapProps.style = overlapProps.style..&#039;;color:&#039;..overlapProps[i].color end&lt;br /&gt;
				if positive(overlapProps[i].italic) then overlapProps.style = overlapProps.style..&#039;;font-style:italic&#039; end&lt;br /&gt;
				if positive(overlapProps[i].bold) then overlapProps.style = overlapProps.style..&#039;;font-weight:bold&#039; end&lt;br /&gt;
				if rowProps.fontsize or cellProps.fontsize or overlapProps[i].fontsize == &#039;info&#039; then&lt;br /&gt;
				elseif not overlapProps[i].fontsize then&lt;br /&gt;
					overlapProps.style = overlapProps.style..&#039;;font-size:10px;transform:scaleX(.9)&#039;&lt;br /&gt;
				elseif overlapProps[i].fontsize == &#039;cmt&#039; or overlapProps[i].fontsize == &#039;comment&#039; then&lt;br /&gt;
					overlapProps._before, overlapProps._after = &#039;&amp;lt;div style=&amp;quot;display:inline;font-size:90%;&amp;quot;&amp;gt;&#039;, &#039;&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
				else&lt;br /&gt;
					overlapProps.style = overlapProps.style..&#039;;font-size:&#039;..overlapProps[i].fontsize&lt;br /&gt;
				end&lt;br /&gt;
				if overlapProps[i].align or cellProps.align then&lt;br /&gt;
					cellProps.align = cellProps.align or {&#039;middle&#039;, &#039;center&#039;}&lt;br /&gt;
					overlapProps.align = alignment(overlapProps[i].align, cellProps.align[1], cellProps.align[2]) or cellProps.align&lt;br /&gt;
					overlapProps.style, overlapProps.textfmt = overlapProps.style..&#039;;vertical-align:&#039;..overlapProps.align[1]..&#039;;text-align:&#039;..overlapProps.align[2], &#039;;vertical-align:&#039;..overlapProps.align[1]&lt;br /&gt;
				else&lt;br /&gt;
					overlapProps.style, overlapProps.textfmt = overlapProps.style..&#039;;vertical-align:middle;text-align:center&#039;, &#039;;vertical-align:middle;text-align:center&#039;&lt;br /&gt;
				end&lt;br /&gt;
				if overlapProps[i].abbr then&lt;br /&gt;
					overlapProps.tag = {&#039;abbr title=&amp;quot;&#039;..string.gsub(overlapProps[i].abbr, &#039;&amp;quot;&#039;, &#039;&amp;amp;quot;&#039;)..&#039;&amp;quot;&#039;, &#039;abbr&#039;}&lt;br /&gt;
				else&lt;br /&gt;
					overlapProps.tag = {&#039;div&#039;, &#039;div&#039;}&lt;br /&gt;
				end&lt;br /&gt;
				width = (widths(tmp_iconpre) or 20)..&#039;px&#039;&lt;br /&gt;
				table.insert(tmp, string.format(i18n.html[&#039;cell-overlaptext-fmt&#039;], width, width, overlapProps.style, icontip, overlapProps.tag[1], overlapProps.textfmt, overlapProps._before, tmp_icontext, overlapProps._after, overlapProps.tag[2]))&lt;br /&gt;
			else&lt;br /&gt;
				v = mw.text.trim(v)&lt;br /&gt;
				if string.find(v, &#039;num&#039;) then&lt;br /&gt;
					if not string.find(v, &#039;numN%d+&#039;) then tracking = tracking..(i18n[&#039;error-categories&#039;][&#039;text-images&#039;] or i18n[&#039;error-categories&#039;].default) end&lt;br /&gt;
				end&lt;br /&gt;
				table.insert(tmp, string.format(i18n.html[&#039;cell-overlapicon-fmt&#039;], overlapProps.style, v, thislink, icontip))&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if iconProps.style then tmp2[1] = true else iconProps.style = &#039;&#039; end&lt;br /&gt;
		iconProps.bg = iconProps.bg or iconProps.background or iconProps.bgcolor&lt;br /&gt;
		if iconProps.bg then iconProps.style = iconProps.style..&#039;;background:&#039;..iconProps.bg end&lt;br /&gt;
		width = widths(icon)&lt;br /&gt;
		if width then&lt;br /&gt;
			if tmp2[1] then iconProps.style = &#039;;&#039;..iconProps.style end&lt;br /&gt;
			return string.format(i18n.html[&#039;cell-empty-fmt-with-overlap&#039;], cellProps.style, mw.text.trim(table.concat(tmp)), width..&#039;px&#039;, width..&#039;px&#039;, iconProps.style, tracking)&lt;br /&gt;
		elseif icontext then&lt;br /&gt;
			iconProps._before, iconProps._after = cellProps._before, cellProps._after&lt;br /&gt;
			iconProps.color = iconProps.color or iconProps.colour ; iconProps.bold = iconProps.bold or iconProps.b ; iconProps.italic = iconProps.italic or iconProps.i or iconProps.it&lt;br /&gt;
			if iconProps.color then iconProps.style = iconProps.style..&#039;;color:&#039;..iconProps.color end&lt;br /&gt;
			if positive(iconProps.italic) then iconProps.style = iconProps.style..&#039;;font-style:italic&#039; end&lt;br /&gt;
			if positive(iconProps.bold) then iconProps.style = iconProps.style..&#039;;font-weight:bold&#039; end&lt;br /&gt;
			if rowProps.fontsize or cellProps.fontsize or iconProps.fontsize == &#039;info&#039; then&lt;br /&gt;
			elseif not iconProps.fontsize then&lt;br /&gt;
				iconProps.style = iconProps.style..&#039;;font-size:10px;transform:scaleX(.9)&#039;&lt;br /&gt;
			elseif iconProps.fontsize == &#039;cmt&#039; or iconProps.fontsize == &#039;comment&#039; then&lt;br /&gt;
				iconProps._before, iconProps._after = &#039;&amp;lt;div style=&amp;quot;display:inline;font-size:90%;&amp;quot;&amp;gt;&#039;, &#039;&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
			else&lt;br /&gt;
				iconProps.style = iconProps.style..&#039;;font-size:&#039;..iconProps.fontsize&lt;br /&gt;
			end&lt;br /&gt;
			if iconProps.align or cellProps.align then&lt;br /&gt;
				cellProps.align = cellProps.align or {&#039;middle&#039;, &#039;center&#039;}&lt;br /&gt;
				iconProps.align = alignment(iconProps.align, cellProps.align[1], cellProps.align[2]) or cellProps.align&lt;br /&gt;
				iconProps.style, iconProps.textfmt = iconProps.style..&#039;;vertical-align:&#039;..iconProps.align[1]..&#039;;text-align:&#039;..iconProps.align[2], &#039;;vertical-align:&#039;..iconProps.align[1]&lt;br /&gt;
			else&lt;br /&gt;
				iconProps.style, iconProps.textfmt = iconProps.style..&#039;;vertical-align:middle;text-align:center&#039;, &#039;;vertical-align:middle;text-align:center&#039;&lt;br /&gt;
			end&lt;br /&gt;
			if iconProps.abbr then&lt;br /&gt;
				iconProps.tag = {&#039;abbr title=&amp;quot;&#039;..string.gsub(iconProps.abbr, &#039;&amp;quot;&#039;, &#039;&amp;amp;quot;&#039;)..&#039;&amp;quot;&#039;, &#039;abbr&#039;}&lt;br /&gt;
			else&lt;br /&gt;
				iconProps.tag = {&#039;div&#039;, &#039;div&#039;}&lt;br /&gt;
			end&lt;br /&gt;
			if tmp2[1] then iconProps.style = &#039;;&#039;..iconProps.style end&lt;br /&gt;
			width = (widths(iconpre) or 20)..&#039;px&#039;&lt;br /&gt;
			return string.format(i18n.html[&#039;cell-text-fmt-with-overlap&#039;], cellProps.style, mw.text.trim(table.concat(tmp)), width, width, iconProps.style, icontip, iconProps.tag[1], iconProps.textfmt, iconProps._before, icontext, iconProps._after, tracking, iconProps.tag[2])&lt;br /&gt;
		else&lt;br /&gt;
			if iconProps.style ~= &#039;&#039; then iconProps.style = string.gsub(&#039; style=&amp;quot;&#039;..iconProps.style..&#039;&amp;quot;&#039;, &#039;&amp;quot;;&#039;, &#039;&amp;quot;&#039;, 1) end&lt;br /&gt;
			if string.find(icon, &#039;num&#039;) then&lt;br /&gt;
				if not string.find(icon, &#039;numN%d+&#039;) then tracking = tracking..(i18n[&#039;error-categories&#039;][&#039;text-images&#039;] or i18n[&#039;error-categories&#039;].default) end&lt;br /&gt;
			end&lt;br /&gt;
			return string.format(i18n.html[&#039;cell-icon-fmt-with-overlap&#039;], cellProps.style, mw.text.trim(table.concat(tmp)), iconProps.style, icon, icontip, tracking)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	width = widths(icon)&lt;br /&gt;
	if width then&lt;br /&gt;
		return string.format(i18n.html[&#039;cell-empty-fmt&#039;], width..&#039;px&#039;, width..&#039;px&#039;, cellProps.style, tracking)&lt;br /&gt;
	else&lt;br /&gt;
		if link and link ~= &#039;&#039; then icontip = link end&lt;br /&gt;
		if icontext then&lt;br /&gt;
			if not cellProps.fontsize and not rowProps.fontsize then cellProps.style = cellProps.style..&#039;;font-size:10px;transform:scaleX(.9)&#039; end&lt;br /&gt;
			if cellProps.abbr then&lt;br /&gt;
				cellProps.tag = {&#039;abbr title=&amp;quot;&#039;..string.gsub(cellProps.abbr, &#039;&amp;quot;&#039;, &#039;&amp;amp;quot;&#039;)..&#039;&amp;quot;&#039;, &#039;abbr&#039;}&lt;br /&gt;
			else&lt;br /&gt;
				cellProps.tag = {&#039;div&#039;, &#039;div&#039;}&lt;br /&gt;
			end&lt;br /&gt;
			width = (widths(iconpre) or 20)..&#039;px&#039;&lt;br /&gt;
			return string.format(i18n.html[&#039;cell-text-fmt&#039;], width, width, cellProps.style, icontip, cellProps.tag[1], cellProps.textfmt, cellProps._before, icontext, cellProps._after, tracking, cellProps.tag[2])&lt;br /&gt;
		else&lt;br /&gt;
			if string.find(icon, &#039;num&#039;) then&lt;br /&gt;
				if not string.find(icon, &#039;numN%d+&#039;) then tracking = tracking..(i18n[&#039;error-categories&#039;][&#039;text-images&#039;] or i18n[&#039;error-categories&#039;].default) end&lt;br /&gt;
			end&lt;br /&gt;
			return string.format(i18n.html[&#039;cell-icon-fmt&#039;], cellProps.style, icon, link, icontip, tracking)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function fillercell(code)&lt;br /&gt;
--Creates a 5px-high row.&lt;br /&gt;
--Values in icon pattern can only be [blank], d, [BSicon color] or #[hex triplet].&lt;br /&gt;
	if code == &#039;&#039; then&lt;br /&gt;
		return string.format(i18n.html[&#039;cell-filler-empty-fmt&#039;], &#039;20px&#039;, &#039;20px&#039;)&lt;br /&gt;
	elseif code == &#039;d&#039; then&lt;br /&gt;
		return string.format(i18n.html[&#039;cell-filler-empty-fmt&#039;], &#039;10px&#039;, &#039;10px&#039;)&lt;br /&gt;
	elseif mw.ustring.sub(code,1,1) == &#039;#&#039; then&lt;br /&gt;
		return string.format(i18n.html[&#039;cell-filler-fmt&#039;], code)&lt;br /&gt;
	else&lt;br /&gt;
		return string.format(i18n.html[&#039;cell-filler-fmt&#039;], &#039;#&#039;..RGBbyCode(code))&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function row(pattern,noformatting,filler)--[[&lt;br /&gt;
&lt;br /&gt;
Row handling. Each row looks like the following:&lt;br /&gt;
row properties~~linfo4~~linfo3~~linfo2~~linfo1! !(icon pattern)~~rinfo1~~rinfo2~~rinfo3~~rinfo4~~row properties&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
	local result = {[&#039;linfo4&#039;] = &#039;&#039;, [&#039;linfo3+2&#039;] = &#039;&#039;, [&#039;linfo1&#039;] = &#039;&#039;, rowstyle = &#039;&#039;, [&#039;cells&#039;] = {}, [&#039;rinfo1&#039;] = &#039;&#039;, [&#039;rinfo2+3&#039;] = &#039;&#039;, [&#039;rinfo4&#039;] = &#039;&#039;, [&#039;rowProp&#039;] = {}}&lt;br /&gt;
	local lcolspan, rcolspan, linfo4_fmt, rinfo4_fmt = &#039;2&#039;, &#039;2&#039;, &#039;&#039;, &#039;&#039;&lt;br /&gt;
	local left, right, icons, overlapIcons, tmp = {}, {}, {}, {}, mw.text.split(pattern, &#039;! !&#039;)&lt;br /&gt;
	if #tmp &amp;gt; 1 then--splitting the pattern by &#039;! !&#039;&lt;br /&gt;
		left = tmp[1] ; right = tmp[2]&lt;br /&gt;
	else&lt;br /&gt;
		left = &#039;&#039; ; right = tmp[1] or &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	tmp = mw.text.split(left, &#039;~~&#039;)--analysing the left part&lt;br /&gt;
	if #tmp &amp;gt; 1 then--if there are several ~~&lt;br /&gt;
		result[&#039;linfo1&#039;] = mw.getCurrentFrame():preprocess(mw.text.trim(tmp[#tmp]))&lt;br /&gt;
		result[&#039;linfo3+2&#039;] = mw.text.trim(tmp[#tmp - 1])&lt;br /&gt;
		if #tmp &amp;gt; 2 then&lt;br /&gt;
			tmp[#tmp - 2] = mw.text.trim(tmp[#tmp - 2])&lt;br /&gt;
			if tmp[#tmp - 2] ~= &#039;&#039; then result[&#039;linfo3+2&#039;] = string.format(i18n.html[&#039;row-linfo3-fmt&#039;], tmp[#tmp - 2]) .. result[&#039;linfo3+2&#039;] end&lt;br /&gt;
			if #tmp &amp;gt; 3 then&lt;br /&gt;
				tmp[#tmp - 3] = mw.text.trim(tmp[#tmp - 3])&lt;br /&gt;
				if tmp[#tmp - 3] ~= &#039;&#039; then&lt;br /&gt;
					result[&#039;linfo4&#039;] = mw.getCurrentFrame():preprocess(tmp[#tmp - 3])&lt;br /&gt;
					lcolspan = &#039;1&#039;&lt;br /&gt;
					linfo4_fmt = string.format(i18n.html[&#039;row-linfo4-fmt&#039;], &#039;&#039;, result[&#039;linfo4&#039;])&lt;br /&gt;
				end&lt;br /&gt;
				if #tmp &amp;gt; 4 then result.rowProp = properties(mw.text.trim(tmp[#tmp - 4])) end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	else--assume only linfo2 was provided.&lt;br /&gt;
		result[&#039;linfo3+2&#039;] = mw.text.trim(tmp[1])&lt;br /&gt;
	end&lt;br /&gt;
	result[&#039;linfo3+2&#039;] = mw.getCurrentFrame():preprocess(result[&#039;linfo3+2&#039;])--expand possible templates in info.&lt;br /&gt;
&lt;br /&gt;
	tmp = mw.text.split(right, &#039;~~&#039;)--analysing the right part&lt;br /&gt;
	if #tmp &amp;gt; 2 then&lt;br /&gt;
		result[&#039;rinfo1&#039;] = mw.getCurrentFrame():preprocess(mw.text.trim(tmp[2]))&lt;br /&gt;
		result[&#039;rinfo2+3&#039;] = mw.text.trim(tmp[3])&lt;br /&gt;
		if #tmp &amp;gt; 3 then&lt;br /&gt;
			tmp[4] = mw.text.trim(tmp[4])&lt;br /&gt;
			if tmp[4] ~= &#039;&#039; then result[&#039;rinfo2+3&#039;] = result[&#039;rinfo2+3&#039;] .. string.format(i18n.html[&#039;row-rinfo3-fmt&#039;], tmp[4]) end&lt;br /&gt;
			if #tmp &amp;gt; 4 then&lt;br /&gt;
				tmp[5] = mw.text.trim(tmp[5])&lt;br /&gt;
				if tmp[5] ~= &#039;&#039; then&lt;br /&gt;
					result[&#039;rinfo4&#039;] = mw.getCurrentFrame():preprocess(tmp[5])&lt;br /&gt;
					rcolspan = &#039;1&#039;&lt;br /&gt;
					rinfo4_fmt = string.format(i18n.html[&#039;row-rinfo4-fmt&#039;], &#039;&#039;, result[&#039;rinfo4&#039;])&lt;br /&gt;
				end&lt;br /&gt;
				if #tmp &amp;gt; 5 then result.rowProp = properties(mw.text.trim(tmp[6])) end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	else--assume only rinfo2 was provided.&lt;br /&gt;
		result[&#039;rinfo2+3&#039;] = mw.text.trim(tmp[2] or &#039;&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	result[&#039;rinfo2+3&#039;] = mw.getCurrentFrame():preprocess(result[&#039;rinfo2+3&#039;])&lt;br /&gt;
&lt;br /&gt;
-- The below parameter functions are passed through to the cells.&lt;br /&gt;
	if result.rowProp.fontsize == &#039;cmt&#039; or result.rowProp.fontsize == &#039;comment&#039; then&lt;br /&gt;
		result.rowProp._before, result.rowProp._after = &#039;&amp;lt;span style=&amp;quot;font-size:90%;&amp;quot;&amp;gt;&#039;, &#039;&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if result.rowProp.align then&lt;br /&gt;
		result.rowProp.align = alignment(result.rowProp.align, &#039;middle&#039;, &#039;center&#039;) or {&#039;middle&#039;, &#039;center&#039;}&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	icons = mw.text.split(tmp[1], &#039;\\&#039;)--splitting the string of icons first by &amp;quot;\&amp;quot;&lt;br /&gt;
	if type(filler) == &#039;string&#039; then&lt;br /&gt;
		result.style = &#039;;font-size:0px&#039;&lt;br /&gt;
		result.rowstyle = &#039;height:&#039; .. filler .. &#039;;min-height:&#039; .. filler --row parameter before any cells&lt;br /&gt;
		for i, v in ipairs(icons) do table.insert(result[&#039;cells&#039;], fillercell(v)) end--no !@ or !~ for filler row&lt;br /&gt;
	else&lt;br /&gt;
		result.style = &#039;&#039;&lt;br /&gt;
		for i, v in ipairs(icons) do&lt;br /&gt;
			tmp = mw.text.split(v, &#039;!~&#039;)&lt;br /&gt;
			icons[i] = tmp[1]&lt;br /&gt;
			table.remove(tmp, 1)&lt;br /&gt;
			table.insert(overlapIcons, tmp)&lt;br /&gt;
		end&lt;br /&gt;
		for i, v in ipairs(icons) do table.insert(result[&#039;cells&#039;], cell(v, overlapIcons[i], result.rowProp)) end&lt;br /&gt;
	end&lt;br /&gt;
	result[&#039;cells&#039;] = table.concat(result[&#039;cells&#039;])&lt;br /&gt;
	if result.rowProp.style then result.style = result.style..&#039;;&#039;..result.rowProp.style end&lt;br /&gt;
	result.rowProp.bg = result.rowProp.bg or result.rowProp.background or result.rowProp.bgcolor ; result.rowProp.color = result.rowProp.color or result.rowProp.colour ; result.rowProp.bold = result.rowProp.bold or result.rowProp.b ; result.rowProp.italic = result.rowProp.italic or result.rowProp.i or result.rowProp.it&lt;br /&gt;
	if result.rowProp.bg then result.style = result.style..&#039;;background:&#039;..result.rowProp.bg end&lt;br /&gt;
	if result.rowProp.color then result.style = result.style..&#039;;color:&#039;..result.rowProp.color end&lt;br /&gt;
	if positive(result.rowProp.italic) then result.style = result.style..&#039;;font-style:italic&#039; end&lt;br /&gt;
	if positive(result.rowProp.bold) then result.style = result.style..&#039;;font-weight:bold&#039; end&lt;br /&gt;
	if result.rowProp.align then&lt;br /&gt;
		result.style = result.style..&#039;;vertical-align:&#039;..result.rowProp.align[1]..&#039;;text-align:&#039;..result.rowProp.align[2]&lt;br /&gt;
	else&lt;br /&gt;
		result.style = result.style..&#039;;vertical-align:middle;text-align:center&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if result.rowProp.fontsize and result.rowProp._after == &#039;&#039; and result.rowProp.fontsize ~= &#039;info&#039; then&lt;br /&gt;
		result.style = result.style..&#039;;font-size:&#039;..result.rowProp.fontsize&lt;br /&gt;
	end&lt;br /&gt;
	if noformatting then&lt;br /&gt;
		return result&lt;br /&gt;
	else&lt;br /&gt;
		return string.format(i18n.html[&#039;row-general-fmt&#039;], linfo4_fmt, lcolspan, &#039;&#039;, result[&#039;linfo3+2&#039;], q.linfo1_pad, &#039;&#039;, result[&#039;linfo1&#039;], result.style, result.rowstyle,&lt;br /&gt;
			result[&#039;cells&#039;], q.rinfo1_pad, &#039;&#039;, result[&#039;rinfo1&#039;], rcolspan, &#039;&#039;, result[&#039;rinfo2+3&#039;], rinfo4_fmt)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--↓ This table handles diagram rows beginning with a hyphen (&amp;quot;-&amp;quot;).&lt;br /&gt;
q = {collapsibles = -1, text_width = {&#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;&#039;}, linfo1_pad = &#039;3px&#039;, rinfo1_pad = &#039;3px&#039;, bg = &#039;#F9F9F9&#039;}&lt;br /&gt;
q.isKeyword = function(pattern, i, rows, justTest)&lt;br /&gt;
	if mw.ustring.sub(pattern, 1, 1) ~= &#039;-&#039; then if justTest then return false else return nil end end--not a valid keyword&lt;br /&gt;
	local tmp = mw.text.split(string.sub(pattern, 2), &#039;%-&#039;)&lt;br /&gt;
	if type(q[tmp[1]])==&amp;quot;function&amp;quot; and tmp[1] ~= &#039;isKeyword&#039; then&lt;br /&gt;
		if justTest then return tmp[1] else return q[tmp[1]](tmp, i, rows) end--valid keyword&lt;br /&gt;
	else&lt;br /&gt;
		if justTest then return false else return nil end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
q[&#039;startCollapsible&#039;] = function(params, i, rows)&lt;br /&gt;
	table.remove(rows, i)&lt;br /&gt;
	local tmp = q.isKeyword(rows[i], i, rows, true)&lt;br /&gt;
	if tmp then&lt;br /&gt;
		if tmp == &#039;endCollapsible&#039; then return formaterror(&#039;collapsible-block-empty&#039;)&lt;br /&gt;
		else return formaterror(&#039;collapsible-block-no-first-row&#039;) .. q.isKeyword(rows[i], i, rows) --no valid keywords that can follow &amp;quot;startCollapsible&amp;quot;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if q.collapsibles == -1 then q.collapsibles = 1 else q.collapsibles = q.collapsibles + 1 end--q.collapsibles == -1 means there are no collapsibles at all; 0 - all closed; &amp;gt;0 - some not closed&lt;br /&gt;
	local collapsed, replace, props = params[2], params[3] or &#039;&#039;, properties(table.concat(params, &#039;-&#039;, 4))--params[1] is the keyword name so all indices are shifted by one.&lt;br /&gt;
	if collapsed == nil or collapsed == &#039;&#039; then collapsed = &#039;collapsed&#039; end&lt;br /&gt;
	if props.bg == nil or props.bg == &#039;&#039; then props.bg = &#039;transparent&#039; ; props[&#039;bg-replace&#039;] = q.bg else props[&#039;bg-replace&#039;] = props.bg end&lt;br /&gt;
	local mode, float, result&lt;br /&gt;
	if q.rinfo1_pad == &#039;&#039; then mode = &#039;collapsible &#039; ; float = &#039;float:right;&#039;&lt;br /&gt;
	else mode = &#039;mw-collapsible mw-&#039; ; float = &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	result = string.format(i18n.html[&amp;quot;row-collapsible-begin-fmt&amp;quot;], props.bg, mode, collapsed, float)&lt;br /&gt;
	tmp = row(rows[i], true, nil)&lt;br /&gt;
	local linfo4_3_2_fmt, rinfo2_3_4_fmt = &#039;&#039;, &#039;&#039;&lt;br /&gt;
	if q.rinfo1_pad == &#039;&#039; then&lt;br /&gt;
		if tmp[&#039;linfo4&#039;] ~= &#039;&#039; or tmp[&#039;linfo3+2&#039;] ~= &#039;&#039; then linfo4_3_2_fmt = string.format(i18n.html[&#039;row-collapsible-left-linfo4+3+2-fmt&#039;], tmp[&#039;linfo4&#039;], tmp[&#039;linfo3+2&#039;]) end&lt;br /&gt;
		result = result .. string.format(i18n.html[&#039;row-general-fmt&#039;], string.format(i18n.html[&#039;row-collapsible-left-button-fmt&#039;], i18n.html[&#039;row-collapsible-left-button-width&#039;], q.text_width[1]),&lt;br /&gt;
			&#039;1&#039;, q.text_width[2], linfo4_3_2_fmt, q.linfo1_pad, q.text_width[3], tmp[&#039;linfo1&#039;], tmp.style, &#039;&#039;, tmp[&#039;cells&#039;], &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;1&#039;, &#039;&#039;, &#039;&#039;, string.format(i18n.html[&#039;row-rinfo4-fmt&#039;], &#039;&#039;, &#039;&#039;))&lt;br /&gt;
	else&lt;br /&gt;
		if tmp[&#039;rinfo4&#039;] ~= &#039;&#039; or tmp[&#039;rinfo2+3&#039;] ~= &#039;&#039; then rinfo2_3_4_fmt = string.format(i18n.html[&#039;row-collapsible-right-rinfo2+3+4-fmt&#039;], tmp[&#039;rinfo2+3&#039;], tmp[&#039;rinfo4&#039;]) end&lt;br /&gt;
		result = result .. string.format(i18n.html[&#039;row-general-fmt&#039;], string.format(i18n.html[&#039;row-linfo4-fmt&#039;], q.text_width[1], tmp[&#039;linfo4&#039;]),&lt;br /&gt;
			&#039;1&#039;, q.text_width[2], tmp[&#039;linfo3+2&#039;], q.linfo1_pad, q.text_width[3], tmp[&#039;linfo1&#039;], tmp.style, &#039;&#039;, tmp[&#039;cells&#039;], q.rinfo1_pad, q.text_width[4], tmp[&#039;rinfo1&#039;],&lt;br /&gt;
			&#039;1&#039;, q.text_width[5], rinfo2_3_4_fmt, string.format(i18n.html[&#039;row-collapsible-right-button-fmt&#039;], i18n.html[&#039;row-collapsible-right-button-width&#039;], q.text_width[6]))&lt;br /&gt;
	end&lt;br /&gt;
	if replace ~= &#039;&#039; then&lt;br /&gt;
		if q.isKeyword(rows[i + 1], i, rows, true) then return result .. formaterror(&#039;collapsible-block-no-replacement&#039;) end--a plain row needed for replacement&lt;br /&gt;
		table.remove(rows, i)&lt;br /&gt;
		tmp = row(rows[i], true, nil)&lt;br /&gt;
		local padding, right = i18n.html[&#039;row-collapsible-right-button-width&#039;] .. &#039; 0 0&#039;, &#039;&#039;&lt;br /&gt;
		if q.rinfo1_pad == &#039;&#039; then padding = &#039;0 0 &#039; .. i18n.html[&#039;row-collapsible-left-button-width&#039;] ; right = &#039;right:0px;&#039; end&lt;br /&gt;
		result = result .. string.format(i18n.html[&#039;row-collapsible-replace-begin-fmt&#039;], padding, right, props[&#039;bg-replace&#039;])&lt;br /&gt;
		linfo4_3_2_fmt = &#039;&#039; ; rinfo2_3_4_fmt = &#039;&#039;&lt;br /&gt;
		if q.rinfo1_pad == &#039;&#039; then&lt;br /&gt;
			if tmp[&#039;linfo4&#039;] ~= &#039;&#039; or tmp[&#039;linfo3+2&#039;] ~= &#039;&#039; then linfo4_3_2_fmt = string.format(i18n.html[&#039;row-collapsible-left-linfo4+3+2-fmt&#039;], tmp[&#039;linfo4&#039;], tmp[&#039;linfo3+2&#039;]) end&lt;br /&gt;
			result = result .. string.format(i18n.html[&#039;row-general-fmt&#039;], string.format(i18n.html[&#039;row-linfo4-fmt&#039;], &#039;&#039;, &#039;&#039;), &#039;1&#039;, q.text_width[2], linfo4_3_2_fmt,&lt;br /&gt;
				q.linfo1_pad, q.text_width[3], tmp[&#039;linfo1&#039;], tmp.style, &#039;&#039;, tmp[&#039;cells&#039;], &#039;&#039;, &#039;&#039;, &#039;&#039;, &#039;1&#039;, &#039;&#039;, &#039;&#039;, string.format(i18n.html[&#039;row-rinfo4-fmt&#039;], &#039;&#039;, &#039;&#039;))&lt;br /&gt;
		else&lt;br /&gt;
			if tmp[&#039;rinfo4&#039;] ~= &#039;&#039; or tmp[&#039;rinfo2+3&#039;] ~= &#039;&#039; then rinfo2_3_4_fmt = string.format(i18n.html[&#039;row-collapsible-right-rinfo2+3+4-fmt&#039;], tmp[&#039;rinfo2+3&#039;], tmp[&#039;rinfo4&#039;]) end&lt;br /&gt;
			result = result .. string.format(i18n.html[&#039;row-general-fmt&#039;], string.format(i18n.html[&#039;row-linfo4-fmt&#039;], q.text_width[1], tmp[&#039;linfo4&#039;]), &#039;1&#039;, q.text_width[2],&lt;br /&gt;
				tmp[&#039;linfo3+2&#039;], q.linfo1_pad, q.text_width[3], tmp[&#039;linfo1&#039;], tmp.style, &#039;&#039;, tmp[&#039;cells&#039;], q.rinfo1_pad, q.text_width[4], tmp[&#039;rinfo1&#039;], &#039;1&#039;, q.text_width[5],&lt;br /&gt;
				rinfo2_3_4_fmt, string.format(i18n.html[&#039;row-rinfo4-fmt&#039;], &#039;&#039;, &#039;&#039;))&lt;br /&gt;
		end&lt;br /&gt;
		result = result .. i18n.html[&#039;row-collapsible-replace-end-fmt&#039;]&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
q[&#039;endCollapsible&#039;] = function(params, i, rows)&lt;br /&gt;
	if q.collapsibles &amp;gt; 0 then&lt;br /&gt;
		q.collapsibles = q.collapsibles - 1&lt;br /&gt;
		return i18n.html[&#039;row-collapsible-end-fmt&#039;]&lt;br /&gt;
	else&lt;br /&gt;
		return formaterror(&#039;collapsible-block-not-open&#039;)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
q[&#039;colspan&#039;] = function(params, i, rows)&lt;br /&gt;
	if params[2] == &#039;end&#039; then return &#039;&#039; end&lt;br /&gt;
	local tmp, j, nrows, props = {}, 0, tonumber(params[2]), properties(table.concat(params, &#039;-&#039;, 3))&lt;br /&gt;
	if nrows ~= 0 then table.remove(rows, i) end&lt;br /&gt;
	if nrows == nil then nrows = #rows - i + 1 end&lt;br /&gt;
	while j &amp;lt; nrows and i &amp;lt;= #rows do&lt;br /&gt;
		j = j + 1&lt;br /&gt;
		if rows[i] == &#039;-colspan-end&#039;  then&lt;br /&gt;
			j = nrows&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(tmp, rows[i])&lt;br /&gt;
		end&lt;br /&gt;
		if nrows ~= j or i == #rows then table.remove(rows, i) end&lt;br /&gt;
	end&lt;br /&gt;
	if j &amp;lt; nrows then j = formaterror(&#039;colspan-less-rows-than-set&#039;,j) else j = &#039;&#039; end&lt;br /&gt;
	return string.format(i18n.html[&#039;colspan-fmt&#039;], j, props.bg or &#039;&#039;, props.align or &#039;&#039;, props[&#039;style&#039;] or &#039;&#039;, mw.getCurrentFrame():preprocess(table.concat(tmp, &#039;\n&#039;)))&lt;br /&gt;
end&lt;br /&gt;
q[&#039;filler&#039;] = function(params, i, rows)&lt;br /&gt;
	local tmp, height = table.concat(params, &#039;-&#039;, 3), &#039;5px&#039;&lt;br /&gt;
	if #params &amp;lt; 3 or tmp == &#039;&#039; then return formaterror(&#039;parameter-missing&#039;) end--TODO: specify the name of the parameter&lt;br /&gt;
	if params[2] ~= &#039;&#039; then height = params[2] end&lt;br /&gt;
	return row(tmp, nil, height)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.RGBbyCode(frame)&lt;br /&gt;
	return RGBbyCode(mw.text.trim(frame.args[1] or &#039;&#039;))&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function localroute(pattern,ptw,pbg,process)&lt;br /&gt;
	local tmp = {}&lt;br /&gt;
	if mw.text.trim(pbg) ~= &#039;&#039; then q.bg = pbg end&lt;br /&gt;
	tmp = mw.text.split(mw.text.trim(ptw), &#039;%s*,%s*&#039;)&lt;br /&gt;
	if #tmp == 6 then&lt;br /&gt;
		for i = 1, 6 do&lt;br /&gt;
			if tmp[i] ~= &#039;&#039; then&lt;br /&gt;
				if tonumber(string.sub(tmp[i],-1)) then&lt;br /&gt;
					q.text_width[i] = &#039;width:&#039; .. tmp[i] .. &#039;px;min-width:&#039; .. tmp[i] .. &#039;px;&#039;&lt;br /&gt;
				else&lt;br /&gt;
					q.text_width[i] = &#039;width:&#039; .. tmp[i] .. &#039;;min-width:&#039; .. tmp[i] .. &#039;;&#039;&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		if tmp[4] == &#039;&#039; and tmp[5] == &#039;&#039; and tmp[6] == &#039;&#039; then&lt;br /&gt;
			q.rinfo1_pad = &#039;&#039;--padding for rinfo1 column = 0, not 3px&lt;br /&gt;
		elseif tmp[1] == &#039;&#039; and tmp[2] == &#039;&#039; and tmp[3] == &#039;&#039; then&lt;br /&gt;
			q.linfo1_pad = &#039;&#039;&lt;br /&gt;
		end--padding for linfo1 column = 0, not 3px&lt;br /&gt;
	elseif #tmp == 3 then&lt;br /&gt;
		for i = 1, 3 do&lt;br /&gt;
			if tmp[i] ~= &#039;&#039; then&lt;br /&gt;
				if tonumber(string.sub(tmp[i],-1)) then&lt;br /&gt;
					q.text_width[i + 3] = &#039;width:&#039; .. tmp[i] .. &#039;px;min-width:&#039; .. tmp[i] .. &#039;px;&#039;&lt;br /&gt;
				else&lt;br /&gt;
					q.text_width[i + 3] = &#039;width:&#039; .. tmp[i] .. &#039;;min-width:&#039; .. tmp[i] .. &#039;;&#039;&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		q.linfo1_pad = &#039;&#039;&lt;br /&gt;
	elseif #tmp == 1 and tmp[1] ~= &#039;&#039; then&lt;br /&gt;
		if tonumber(string.sub(tmp[1],-1)) then&lt;br /&gt;
			q.text_width[5] = &#039;width:&#039; .. tmp[1] .. &#039;px;min-width:&#039; .. tmp[1] .. &#039;px;&#039;&lt;br /&gt;
		else&lt;br /&gt;
			q.text_width[5] = &#039;width:&#039; .. tmp[1] .. &#039;;min-width:&#039; .. tmp[1] .. &#039;;&#039;&lt;br /&gt;
		end&lt;br /&gt;
		q.linfo1_pad = &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	for i = 1, 6 do&lt;br /&gt;
		tmp = tonumber(mw.ustring.match(q.text_width[i], &#039;:([0-9]+%.?[0-9]*)px;&#039;))&lt;br /&gt;
		if tmp then&lt;br /&gt;
			tmp = tmp*3/40&lt;br /&gt;
			q.text_width[i] = &#039;width:&#039; .. tmp .. &#039;em;min-width:&#039; .. tmp .. &#039;em;&#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	tmp = {}&lt;br /&gt;
&lt;br /&gt;
	local index = 0&lt;br /&gt;
	local rows = {}&lt;br /&gt;
	if not process or process == &#039;&#039; or negative(process) then&lt;br /&gt;
		pattern = mw.ustring.gsub(pattern, &#039;\n(#[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F])&#039;, &#039;%1&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	for item in pattern:gmatch(&#039;([^\n]*)\n?&#039;) do&lt;br /&gt;
		item = mw.text.trim(item)&lt;br /&gt;
		if item ~= &#039;&#039; then&lt;br /&gt;
			index = index + 1&lt;br /&gt;
			rows[index] = item&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if index == 0 then return formaterror(&#039;parameter-missing&#039;) end&lt;br /&gt;
	for i, v in ipairs(rows) do&lt;br /&gt;
		local keyword = q.isKeyword(v, i, rows)&lt;br /&gt;
		if type(keyword) ~= &amp;quot;string&amp;quot; then&lt;br /&gt;
			table.insert(tmp, row(v, nil, nil))&lt;br /&gt;
		else&lt;br /&gt;
			table.insert(tmp, keyword)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if q.collapsibles &amp;gt; 0 then table.insert(tmp, formaterror(&#039;collapsible-block-not-closed&#039;) .. q[&#039;endCollapsible&#039;]()) end&lt;br /&gt;
	if q.collapsibles ~= -1 then&lt;br /&gt;
		if q.rinfo1_pad == &#039;&#039; then&lt;br /&gt;
			q.text_width[1] = q.text_width[1] .. &#039;min-width:&#039; .. i18n.html[&#039;row-collapsible-left-button-width&#039;] .. &#039;;&#039;&lt;br /&gt;
		else&lt;br /&gt;
			q.text_width[6] = q.text_width[6] .. &#039;min-width:&#039; .. i18n.html[&#039;row-collapsible-right-button-width&#039;] .. &#039;;&#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	-- ↓ empty row to set column widths; ↑ if q.collapsibles ≠ -1 and there are collapsible sections, leftmost or rightmost column should be wide enough to accomodate the button&lt;br /&gt;
	table.insert(tmp, string.format(i18n.html[&#039;empty-row-fmt&#039;], q.text_width[1], q.text_width[2], q.linfo1_pad, q.text_width[3], q.rinfo1_pad, q.text_width[4], q.text_width[5], q.text_width[6]))&lt;br /&gt;
	return table.concat(tmp)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getArgNums(prefix, args)&lt;br /&gt;
	-- Copied from Module:Infobox on enwiki.&lt;br /&gt;
	-- Returns a table containing the numbers of the arguments that exist&lt;br /&gt;
	-- for the specified prefix. For example, if the prefix were &#039;data&#039;, and&lt;br /&gt;
	-- &#039;data1&#039;, &#039;data2&#039;, and &#039;data5&#039; existed, this would return {1, 2, 5}.&lt;br /&gt;
	local nums = {}&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		local num = tostring(k):match(&#039;^&#039; .. prefix .. &#039;([1-9]%d*)$&#039;)&lt;br /&gt;
		if num then table.insert(nums, tonumber(num)) end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(nums)&lt;br /&gt;
	return nums&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local greatercontrast = require(&#039;Module:Color contrast&#039;)._greatercontrast&lt;br /&gt;
local rgb_black = &#039;#252525&#039; -- class .mw-body in Mediawiki:Common.css&lt;br /&gt;
&lt;br /&gt;
p.infobox = makeInvokeFunction(&#039;_infobox&#039;)&lt;br /&gt;
&lt;br /&gt;
function p._infobox(args) -- Creates a pretty box.&lt;br /&gt;
	args.map1, args.tw, args[&#039;map1-title&#039;], args[&#039;map1-collapsible&#039;], args[&#039;map1-collapse&#039;] = args.map1 or args.map, args.tw or args[&#039;text-width&#039;] or args[&#039;text width&#039;], args[&#039;map1-title&#039;] or args[&#039;map-title&#039;], args[&#039;map1-collapsible&#039;] or args[&#039;map-collapsible&#039;], args[&#039;map1-collapse&#039;] or args[&#039;map1-collapsed&#039;] or args[&#039;map-collapse&#039;] or args[&#039;map-collapsed&#039;]&lt;br /&gt;
	local function map_prefix(x) return &#039;map&#039;..x end&lt;br /&gt;
	local mapnums, prefix = {}&lt;br /&gt;
	if args[1] and args[1] ~= &#039;&#039; then&lt;br /&gt;
		prefix = tonumber&lt;br /&gt;
		for k, v in pairs(args) do&lt;br /&gt;
			if type(k) == &#039;number&#039; then table.insert(mapnums, k) end&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		prefix = map_prefix&lt;br /&gt;
		mapnums = getArgNums(&#039;map&#039;, args)&lt;br /&gt;
		table.sort(mapnums)&lt;br /&gt;
	end&lt;br /&gt;
	args[&#039;title bg color&#039;] = args[&#039;title bg color&#039;] or args[&#039;title bg&#039;] or args[&#039;title-bg&#039;] or &#039;#27404E&#039;&lt;br /&gt;
	args[&#039;title color&#039;] = args[&#039;title color&#039;] or args[&#039;title-color&#039;] or greatercontrast{args[&#039;title bg color&#039;], &#039;#FFF&#039;, rgb_black}&lt;br /&gt;
	args.legend = args.legend or &#039;no&#039;&lt;br /&gt;
	local navbar = require(&#039;Module:Navbar&#039;).navbar&lt;br /&gt;
	local navtable = {}&lt;br /&gt;
	args.navbar = args.navbar or args.tnavbar&lt;br /&gt;
	if args.navbar then&lt;br /&gt;
		navtable = {args.navbar, mini = i18n.text.navbar_mini, text = i18n.text.navbar_text}&lt;br /&gt;
		args.navbar = navbar(navtable)&lt;br /&gt;
	else&lt;br /&gt;
		args.navbar = &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	local result = &#039;&#039;&lt;br /&gt;
	if args.inline then result = result..&#039;&amp;amp;#32;\n&#039; end&lt;br /&gt;
	result = result..&#039;{|&#039;&lt;br /&gt;
	args.collapse = args.collapse or args.collapsed&lt;br /&gt;
	if args.inline or negative(args.collapsible) then&lt;br /&gt;
		args.collapsible = &#039;0&#039;&lt;br /&gt;
	else&lt;br /&gt;
		result = result .. &#039;class=&amp;quot;collapsible &#039;&lt;br /&gt;
		if args.collapse then result = result .. &#039;collapsed&#039; end&lt;br /&gt;
		result = result .. &#039;&amp;quot; &#039;&lt;br /&gt;
	end&lt;br /&gt;
	args.float = args.float or &#039;right&#039;&lt;br /&gt;
	if args.float == &#039;right&#039; then&lt;br /&gt;
		args.margin = &#039;margin-left:1em;&#039;&lt;br /&gt;
	elseif args.float == &#039;left&#039; then&lt;br /&gt;
		args.margin = &#039;margin-right:1em;&#039;&lt;br /&gt;
	else&lt;br /&gt;
		args.margin = &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	args.fontsize2 = 10000/88&lt;br /&gt;
	if args.inline then&lt;br /&gt;
		args.inline2 = &#039;float:none;width:100%;margin:0;border:none;&#039;&lt;br /&gt;
		args.fontsize = 100&lt;br /&gt;
	else&lt;br /&gt;
		args.inline2 = &#039;box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .14), 0 1px 5px 0 rgba(0, 0, 0, .12), 0 3px 1px -2px rgba(0, 0, 0, .2); -moz-box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .14), 0 1px 5px 0 rgba(0, 0, 0, .12), 0 3px 1px -2px rgba(0, 0, 0, .2); -webkit-box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .14), 0 1px 5px 0 rgba(0, 0, 0, .12), 0 3px 1px -2px rgba(0, 0, 0, .2);&#039;&lt;br /&gt;
		args.fontsize = 88 -- as above: CSS rule for .infobox in %&lt;br /&gt;
	end&lt;br /&gt;
	args.bg = args.bg or &#039;#F9F9F9&#039;&lt;br /&gt;
	args.style = args.style or &#039;&#039;&lt;br /&gt;
	result = result .. &#039;cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;float:&#039; .. args.float .. &#039;;clear:&#039; .. args.float .. &#039;;margin-top:0;margin-bottom:1em;&#039; .. args.margin .. &#039;empty-cells:show;border-collapse:collapse;font-size:&#039; .. args.fontsize .. &#039;%;background:&#039; .. args.bg .. &#039;;&#039; .. args.inline2 .. args.style .. &#039;&amp;quot;&#039;&lt;br /&gt;
	args.title = args.title or &#039;&#039;&lt;br /&gt;
	if args.inline or args.title == &#039;no&#039; or args.title == &#039;0&#039; then&lt;br /&gt;
	else&lt;br /&gt;
		result = result .. &#039;\n! style=&amp;quot;color:&#039; .. args[&#039;title color&#039;] .. &#039;;background:&#039; .. args[&#039;title bg color&#039;] .. &#039;;text-align:center;padding:5px&amp;quot;|&#039;&lt;br /&gt;
		if args[&#039;navbar pos&#039;] then&lt;br /&gt;
			result = result .. &#039;&amp;lt;div&amp;gt;&#039;&lt;br /&gt;
		else&lt;br /&gt;
			if args.navbar ~= &#039;&#039; then&lt;br /&gt;
				navtable.mini = true&lt;br /&gt;
				navtable.brackets = true&lt;br /&gt;
				navtable.style = &#039;float:left;margin-right:5px;white-space:nowrap&#039;&lt;br /&gt;
				navtable.fontstyle = &#039;font-size:&#039;..args.fontsize2..&#039;%;color:&#039; .. args[&#039;title color&#039;]&lt;br /&gt;
				args.navbar = navbar(navtable) .. &#039;&amp;lt;div style=&amp;quot;margin-left:55px&amp;quot;&amp;gt;&#039;&lt;br /&gt;
			else&lt;br /&gt;
				args.navbar = &#039;&amp;lt;div&amp;gt;&#039;&lt;br /&gt;
			end&lt;br /&gt;
			result = result .. args.navbar&lt;br /&gt;
		end&lt;br /&gt;
		result = result .. &#039;&amp;lt;div style=&amp;quot;white-space:nowrap;&#039;&lt;br /&gt;
		if args.collapsible == &#039;0&#039; and (args[&#039;navbar pos&#039;] or args.navbar == &#039;&amp;lt;div&amp;gt;&#039;) then&lt;br /&gt;
		else&lt;br /&gt;
			result = result .. &#039;margin-right:55px;&#039;&lt;br /&gt;
			if args[&#039;navbar pos&#039;] or args.navbar == &#039;&amp;lt;div&amp;gt;&#039; then&lt;br /&gt;
				result = result .. &#039;margin-left:55px;&#039;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		result = result .. &#039;font-size:&#039;..args.fontsize2..&#039;%;&amp;quot;&amp;gt;&#039; .. args.title .. &#039;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	args.top = args.top or args[&#039;on top&#039;]&lt;br /&gt;
	if args.top then&lt;br /&gt;
		result = result .. &#039;\n|-\n|style=&amp;quot;padding:0px 5px;text-align:center;&#039;..(args.topstyle or &#039;&#039;)..&#039;&amp;quot;|&#039; .. args.top&lt;br /&gt;
	end&lt;br /&gt;
	result = result .. &#039;\n|-\n|style=&amp;quot;line-height:normal;padding:4px 5px&amp;quot;|&#039;&lt;br /&gt;
	if args.navbar ~= &#039;&#039; and args[&#039;navbar pos&#039;] == &#039;1&#039; then&lt;br /&gt;
		if not positive(args[&#039;navbar long&#039;]) and not negative(args[&#039;navbar mini&#039;]) then navtable.mini = true; args.navbar = navbar(navtable) end&lt;br /&gt;
		result = result .. &#039;&amp;lt;div style=&amp;quot;float:left;padding-right:5px&amp;quot;&amp;gt;&#039; .. args.navbar .. &#039;&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	args.legend2 = mw.ustring.lower(args.legend)&lt;br /&gt;
	if args.legend2 ~= &#039;no&#039; and args.legend2 ~= &#039;0&#039; then&lt;br /&gt;
		args.legend = i18n.text.legend[args.legend2] or ((args.legend2 ~= &#039;&#039;) and (&#039;[[&#039;..args.legend) or i18n.text.legend.default)&lt;br /&gt;
		args.legend = args.legend .. &#039;|&#039; .. (args[&#039;legend alt&#039;] or i18n.text.legend_text) .. &#039;]]&#039;&lt;br /&gt;
		result = result .. &#039;&amp;lt;div class=&amp;quot;selfreference noprint&amp;quot; style=&amp;quot;text-align:right;font-size:90%;&amp;quot;&amp;gt;&#039; .. args.legend .. &#039;&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if args.inline then args.padding2 = &#039;0px&#039; else args.padding2 = &#039;0px 6px&#039; end&lt;br /&gt;
	for k, v in ipairs(mapnums) do&lt;br /&gt;
		if not mapnums[k + 1] then&lt;br /&gt;
			if not args.inline then args.padding2 = &#039;0px 6px 6px&#039; end&lt;br /&gt;
		end&lt;br /&gt;
		args.ending = &#039;&#039;&lt;br /&gt;
		if args[&#039;map&#039;..v..&#039;-title&#039;] then&lt;br /&gt;
			args.header_margin = &#039;0&#039;&lt;br /&gt;
			if k == 1 then args.border_header = &#039;border-bottom: 5px solid &#039;..args.bg..&#039;;&#039; else args.border_header = &#039;border-top: 5px solid &#039;..args.bg..&#039;; border-bottom: 5px solid &#039;..args.bg..&#039;;&#039; end&lt;br /&gt;
			if positive(args[&#039;map&#039;..v..&#039;-collapsible&#039;]) then&lt;br /&gt;
				args.header_margin = &#039;0 55px&#039;&lt;br /&gt;
				args.ending = &#039;\n|}&#039;&lt;br /&gt;
				if positive(args[&#039;map&#039;..v..&#039;-collapse&#039;]) or positive(args[&#039;map&#039;..v..&#039;-collapsed&#039;]) then args.map_collapsed = &#039; mw-collapsed autocollapse&#039; else args.map_collapsed = &#039;&#039; end&lt;br /&gt;
				result = result..&#039;\n|-\n|\n{|class=&amp;quot;mw-collapsible&#039;..args.map_collapsed..&#039;&amp;quot; cellpadding=&amp;quot;0&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;display: table; min-width:100%; margin:0 auto;&amp;quot;&#039;&lt;br /&gt;
			end&lt;br /&gt;
			if args.inline then args.header_style2 = &#039; style=&amp;quot;line-height:normal;&amp;quot;&#039; else args.header_style2 = &#039;&#039; end&lt;br /&gt;
			result = result..&#039;\n|-&#039;..args.header_style2..&#039;\n!style=&amp;quot;&#039;..args.border_header..&#039;padding:3px 5px; text-align:center; vertical-align:middle; color:&#039;..rgb_black..&#039;; background-color: #EEEEEE&amp;quot; | &amp;lt;div style=&amp;quot;margin:&#039;..args.header_margin..&#039;;font-size:&#039;..10000/args.fontsize..&#039;%;&amp;quot;&amp;gt;&#039;..args[&#039;map&#039;..v..&#039;-title&#039;]..&#039;&amp;lt;/div&amp;gt;&#039;&lt;br /&gt;
			args.border_top = &#039;&#039;&lt;br /&gt;
		else&lt;br /&gt;
			if k == 1 then args.border_top = &#039;&#039; else args.border_top = &#039;border-top: 5px solid &#039;..args.bg..&#039;;&#039; end&lt;br /&gt;
		end&lt;br /&gt;
		-- note this module is assuming LTR&lt;br /&gt;
		result = result .. &#039;\n|-\n|style=&amp;quot;&#039;..args.border_top..&#039;padding:&#039; .. args.padding2 .. &#039;&amp;quot;|\n{|cellpadding=&amp;quot;0&amp;quot; dir=&amp;quot;ltr&amp;quot; cellspacing=&amp;quot;0&amp;quot; class=&amp;quot;nogrid&amp;quot; style=&amp;quot;padding:0px;border:0px;background:transparent;white-space:nowrap;line-height:1.2;font-size:&#039;..(args.fontsize2 * .95)..&#039;%;margin:auto&amp;quot;\n&#039;..localroute(args[prefix(v)], (args[&#039;tw&#039;..v] or args[&#039;text-width&#039;..v] or args[&#039;text width&#039;..v] or args.tw or &#039;&#039;), args.bg, args.process)..&#039;\n|}&#039;..args.ending&lt;br /&gt;
	end&lt;br /&gt;
	args.bottom = args.bottom or args.footnote&lt;br /&gt;
	if args.bottom then&lt;br /&gt;
		if args.inline then args.padding2 = &#039;6px&#039; else args.padding2 = &#039;0px&#039; end&lt;br /&gt;
		result = result .. &#039;\n|-\n|style=&amp;quot;line-height:normal;text-align:right;padding:&#039; .. args.padding2 .. &#039; 5px 5px;&#039;..(args.bottomstyle or args.footnotestyle or &#039;&#039;)..&#039;&amp;quot;|&#039; .. args.bottom&lt;br /&gt;
		if string.find(args.bottom, &#039;&amp;amp;action=edit&#039;) then result = result .. (i18n[&#039;error-categories&#039;][&#039;separate-navbar&#039;] or i18n[&#039;error-categories&#039;].default) end&lt;br /&gt;
	end&lt;br /&gt;
	if args.navbar ~= &#039;&#039; and args[&#039;navbar pos&#039;] == &#039;2&#039; then&lt;br /&gt;
		if negative(args[&#039;navbar long&#039;]) or positive(args[&#039;navbar mini&#039;]) then navtable.mini = true; args.navbar = navbar(navtable) end&lt;br /&gt;
		if args.inline and not args.bottom then args.padding2 = &#039;6px&#039; else args.padding2 = &#039;0px&#039; end&lt;br /&gt;
		result = result .. &#039;\n|-\n|style=&amp;quot;line-height:normal;padding:&#039; .. args.padding2 .. &#039; 5px 3px;text-align:center&amp;quot;|&#039; .. args.navbar&lt;br /&gt;
	end&lt;br /&gt;
	return result .. &#039;\n|}&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function base(t1,t2,link,stn,italic,it,it2,bold,align,style,bg1,bg2,line,fs1,fs2,lh,v1,swap,inp,bs)&lt;br /&gt;
--Creates an inline table with two rows of text. Can be used in any Routemap text cell.&lt;br /&gt;
--Implemented in the BSsplit, BSto, BSsrws and BScvt templates.&lt;br /&gt;
	if not align then&lt;br /&gt;
		if bs == &#039;cvt&#039; then&lt;br /&gt;
			align = &#039;right&#039;&lt;br /&gt;
		else&lt;br /&gt;
			align = &#039;inherit&#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	style = style or &#039;&#039;&lt;br /&gt;
	local result = &#039;&amp;amp;#32;&amp;lt;table cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;0&amp;quot; style=&amp;quot;font-size:80%; font-weight:inherit; color:inherit; background-color:transparent; margin-top:-2px; margin-bottom:-2px; display:inline-table; vertical-align:middle; text-align:&#039;..align&lt;br /&gt;
	if italic or it == &#039;all&#039; then result = result..&#039;;font-style:italic&#039; end&lt;br /&gt;
	if bold then result = result..&#039;;font-weight:bold&#039; end&lt;br /&gt;
	local rowstart = &#039;&amp;lt;tr&amp;gt;&amp;lt;td style=&amp;quot;text-align:inherit;padding:0;line-height:&#039;&lt;br /&gt;
	result = result..&#039;;&#039;..style..&#039;&amp;quot;&amp;gt;&#039;..rowstart..lh&lt;br /&gt;
	if line then result = result..&#039;;border-bottom:1px solid gray&#039; end&lt;br /&gt;
	local bgpad = &#039;;padding-left:.5em;padding-right:.5em&#039;&lt;br /&gt;
	local function bgtext(v)&lt;br /&gt;
		return &#039;;color:&#039;..greatercontrast{v, &#039;#FFF&#039;, rgb_black}&lt;br /&gt;
	end&lt;br /&gt;
	if bg1 then&lt;br /&gt;
		result = result..bgpad..bgtext(bg1)..&#039;;background-color:&#039;..bg1&lt;br /&gt;
	elseif bg2 then&lt;br /&gt;
		result = result..bgpad&lt;br /&gt;
	end&lt;br /&gt;
	if fs1 then result = result..&#039;;font-size:&#039;..fs1 end&lt;br /&gt;
	result = result..&#039;&amp;quot;&amp;gt;&#039;&lt;br /&gt;
	if not t1 or string.find(t1, &#039;^%s*$&#039;) then&lt;br /&gt;
		if not t2 then t2 = &#039;&#039; end&lt;br /&gt;
		if string.find(t2, &#039;&amp;lt;br ?/?&amp;gt;&#039;) == nil then t1 = &#039;&amp;amp;nbsp;&#039; end&lt;br /&gt;
	end&lt;br /&gt;
	if not t2 or string.find(t2, &#039;^%s*$&#039;) then&lt;br /&gt;
		if not t1 then t1 = &#039;&#039; end&lt;br /&gt;
		if string.find(t1, &#039;&amp;lt;br ?/?&amp;gt;&#039;) == nil then t2 = &#039;&amp;amp;nbsp;&#039; end&lt;br /&gt;
	end&lt;br /&gt;
	if bs == &#039;srws&#039; then&lt;br /&gt;
		if stn then&lt;br /&gt;
			link = t1..&#039; &#039;..t2..&#039; &#039;..stn&lt;br /&gt;
		else&lt;br /&gt;
			link = t1..&#039; &#039;..t2..&#039; railway station&#039;&lt;br /&gt;
		end&lt;br /&gt;
	elseif bs == &#039;cvt&#039; then&lt;br /&gt;
		local split, floor, outp, v2, mult = mw.text.split, math.floor&lt;br /&gt;
		local function trim(x)&lt;br /&gt;
			return string.gsub(x, &#039;%s&#039;, &#039;&#039;)&lt;br /&gt;
		end&lt;br /&gt;
		local cvt = { -- conversion values&lt;br /&gt;
			[&#039;mi&#039;] = 1.609344,&lt;br /&gt;
			[&#039;ch&#039;] = 20.1168,&lt;br /&gt;
			[&#039;mi;ch&#039;] = 80,&lt;br /&gt;
			[&#039;m&#039;] = 1 / .9144,&lt;br /&gt;
			[&#039;yd&#039;] = .9144,&lt;br /&gt;
			[&#039;ft&#039;] = .3048,&lt;br /&gt;
		}&lt;br /&gt;
		local sf = { -- 10 ^ floor(log10(cvt[inp]) + .5); or 10 ^ floor(log10(cvt[inps[1]] * cvt[inp]) + .5) for dual-unit inputs. this corrects the accuracy of result so that it usually has same significant figures&lt;br /&gt;
			[&#039;mi&#039;] = 1,&lt;br /&gt;
			[&#039;ch&#039;] = 10,&lt;br /&gt;
			[&#039;mi;ch&#039;] = .01,&lt;br /&gt;
			[&#039;m&#039;] = 1,&lt;br /&gt;
			[&#039;yd&#039;] = 1,&lt;br /&gt;
			[&#039;ft&#039;] = .1,&lt;br /&gt;
		}&lt;br /&gt;
		if not inp then inp = &#039;mi&#039; end&lt;br /&gt;
		inp = string.lower(trim(inp))&lt;br /&gt;
		if inp == &#039;ch&#039; or inp == &#039;yd&#039; or inp == &#039;ft&#039; then -- output unit&lt;br /&gt;
			outp = &#039;m&#039;&lt;br /&gt;
		elseif inp == &#039;m&#039; then&lt;br /&gt;
			outp = &#039;yd&#039;&lt;br /&gt;
		else&lt;br /&gt;
			if inp ~= &#039;mi;ch&#039; then inp = &#039;mi&#039; end&lt;br /&gt;
			outp = &#039;km&#039;&lt;br /&gt;
		end&lt;br /&gt;
		local pos = string.find(v1, &#039;%.&#039;)&lt;br /&gt;
		if not pos then&lt;br /&gt;
			mult = 1&lt;br /&gt;
		else&lt;br /&gt;
			mult = 10 ^ (string.len(v1) - pos)&lt;br /&gt;
		end&lt;br /&gt;
		local inps = string.find(inp, &#039;;&#039;)&lt;br /&gt;
		if inps then&lt;br /&gt;
			inps = split(inp, &#039;;&#039;)&lt;br /&gt;
			if swap then&lt;br /&gt;
				t1 = v1..&#039;&amp;amp;nbsp;&#039;..outp&lt;br /&gt;
				v1 = tonumber(v1)&lt;br /&gt;
				t2 = floor(v1 / cvt[inps[1]])..&#039;&amp;amp;nbsp;&#039;..inps[1]..&#039;&amp;amp;nbsp;&#039;..floor(v1 % cvt[inps[1]] / cvt[inps[1]] * cvt[inp] * mult * sf[inp] + .5) / mult / sf[inp]..&#039;&amp;amp;nbsp;&#039;..inps[2]&lt;br /&gt;
			else&lt;br /&gt;
				v1 = split(trim(v1), &#039;;&#039;)&lt;br /&gt;
				t1 = v1[1]..&#039;&amp;amp;nbsp;&#039;..inps[1]..&#039;&amp;amp;nbsp;&#039;..v1[2]..&#039;&amp;amp;nbsp;&#039;..inps[2]&lt;br /&gt;
				t2 = floor((tonumber(v1[1]) * cvt[inps[1]] + tonumber(v1[2]) * cvt[inps[1]] / cvt[inp]) * mult / sf[inp] + .5) / mult * sf[inp]..&#039;&amp;amp;nbsp;&#039;..outp&lt;br /&gt;
			end&lt;br /&gt;
		else&lt;br /&gt;
			if swap then&lt;br /&gt;
				v2 = floor(tonumber(v1) / cvt[inp] * mult * sf[inp] + .5) / mult / sf[inp]&lt;br /&gt;
				inp, outp = outp, inp&lt;br /&gt;
			else&lt;br /&gt;
				v2 = floor(tonumber(v1) * cvt[inp] * mult / sf[inp] + .5) / mult * sf[inp]&lt;br /&gt;
			end&lt;br /&gt;
			t1 = v1..&#039;&amp;amp;nbsp;&#039;..inp&lt;br /&gt;
			t2 = v2..&#039;&amp;amp;nbsp;&#039;..outp&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if t1 then&lt;br /&gt;
		if link then&lt;br /&gt;
			result = result..&#039;[[&#039;..link..&#039;|&#039;..t1..&#039;]]&#039;&lt;br /&gt;
		else&lt;br /&gt;
			result = result..t1&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local rowend = &#039;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&#039;&lt;br /&gt;
	result = result..rowend..rowstart..lh&lt;br /&gt;
	if bg2 then&lt;br /&gt;
		result = result..bgpad..bgtext(bg2)..&#039;;background-color:&#039;..bg2&lt;br /&gt;
	elseif bg1 then&lt;br /&gt;
		result = result..bgpad&lt;br /&gt;
	end&lt;br /&gt;
	if fs2 then result = result..&#039;;font-size:&#039;..fs2 end&lt;br /&gt;
	if (it ~= &#039;off&#039; and bs == &#039;to&#039;) or it2 == &#039;italic&#039; then&lt;br /&gt;
		result = result..&#039;;font-style:italic&#039;&lt;br /&gt;
	elseif it == &#039;off&#039; then&lt;br /&gt;
		result = result..&#039;;font-style:normal&#039;&lt;br /&gt;
	end&lt;br /&gt;
	result = result..&#039;&amp;quot;&amp;gt;&#039;&lt;br /&gt;
	if t2 then&lt;br /&gt;
		if link then&lt;br /&gt;
			result = result..&#039;[[&#039;..link..&#039;|&#039;..t2..&#039;]]&#039;&lt;br /&gt;
		else&lt;br /&gt;
			result = result..t2&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	result = result..rowend..&#039;&amp;lt;/table&amp;gt;&amp;amp;#32;&#039;&lt;br /&gt;
	if bs == &#039;to&#039; or bs == &#039;srws&#039; then&lt;br /&gt;
		if t1 == &#039;&amp;amp;nbsp;&#039; or t2 == &#039;&amp;amp;nbsp;&#039; then result = result..(i18n[&#039;error-categories&#039;][&#039;missing-text-values&#039;] or i18n[&#039;error-categories&#039;].default) end&lt;br /&gt;
	end&lt;br /&gt;
	if string.find(t1, &#039;&amp;lt;br ?/?&amp;gt;&#039;) ~= nil or string.find(t2, &#039;&amp;lt;br ?/?&amp;gt;&#039;) ~= nil then result = result..(i18n[&#039;error-categories&#039;][&#039;br-tags&#039;] or i18n[&#039;error-categories&#039;].default) end&lt;br /&gt;
	if bs == &#039;split&#039; then&lt;br /&gt;
		if link and t1 and t2 then&lt;br /&gt;
			if string.find(link, &#039;^&#039;..t1..&#039; &#039;..t2..&#039; &#039;) then result = result..(i18n[&#039;error-categories&#039;][&#039;srws&#039;] or i18n[&#039;error-categories&#039;].default) end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return result&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.BSto = makeInvokeFunction(&#039;_BSto&#039;)&lt;br /&gt;
&lt;br /&gt;
function p._BSto(args)&lt;br /&gt;
	args[3] = args[3] or args.L&lt;br /&gt;
	args[4] = args[4] or args.it or args.i&lt;br /&gt;
	args[5] = args[5] or args.b&lt;br /&gt;
	return base(args[1],args[2],args[3],nil,nil,args[4],nil,args[5],args.align,args.style,args.bg1,args.bg2,args.line,&#039;105%&#039;,&#039;92%&#039;,&#039;.9&#039;,nil,nil,nil,&#039;to&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.BSsplit = makeInvokeFunction(&#039;_BSsplit&#039;)&lt;br /&gt;
&lt;br /&gt;
function p._BSsplit(args)&lt;br /&gt;
	args[3] = args[3] or args.L&lt;br /&gt;
	args[4] = args[4] or args.it or args.i&lt;br /&gt;
	args[5] = args[5] or args.b&lt;br /&gt;
	return base(args[1],args[2],args[3],nil,args[4],nil,nil,args[5],args.align,args.style,args.bg1,args.bg2,args.line,&#039;inherit&#039;,&#039;inherit&#039;,&#039;.9&#039;,nil,nil,nil,&#039;split&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.BSsrws = makeInvokeFunction(&#039;_BSsrws&#039;)&lt;br /&gt;
&lt;br /&gt;
function p._BSsrws(args)&lt;br /&gt;
	args[3] = args[3] or args.S&lt;br /&gt;
	args[4] = args[4] or args.it or args.i&lt;br /&gt;
	args[5] = args[5] or args.b&lt;br /&gt;
	return base(args[1],args[2],nil,args[3],args[4],nil,nil,args[5],args.align,args.style,args.bg1,args.bg2,args.line,&#039;inherit&#039;,&#039;inherit&#039;,&#039;.9&#039;,nil,nil,nil,&#039;srws&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.BScvt = makeInvokeFunction(&#039;_BScvt&#039;)&lt;br /&gt;
&lt;br /&gt;
function p._BScvt(args)&lt;br /&gt;
	return base(nil,nil,nil,nil,nil,nil,args.alt,nil,args.align,args.style,args.bg1,args.bg2,args.line,&#039;inherit&#039;,&#039;inherit&#039;,&#039;.9&#039;,args[1],args[2],args[&#039;in&#039;],&#039;cvt&#039;)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.rmri = makeInvokeFunction(&#039;_rmri&#039;)&lt;br /&gt;
&lt;br /&gt;
function p._rmri(args)--[[&lt;br /&gt;
&lt;br /&gt;
Displays a blue arrow pointing in one of eight directions.&lt;br /&gt;
Implemented in the RoutemapRouteIcon template.&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
	local directions, result = {&lt;br /&gt;
	[&#039;Up&#039;]         = {&#039;u&#039;, &#039;up&#039;},&lt;br /&gt;
	[&#039;Down&#039;]       = {&#039;d&#039;, &#039;dn&#039;, &#039;down&#039;},&lt;br /&gt;
	[&#039;Left&#039;]       = {&#039;l&#039;, &#039;left&#039;},&lt;br /&gt;
	[&#039;Right&#039;]      = {&#039;r&#039;, &#039;right&#039;},&lt;br /&gt;
	[&#039;UpperRight&#039;] = {&#039;ur&#039;, &#039;ne&#039;, &#039;c1&#039;, &#039;upperright&#039;},&lt;br /&gt;
	[&#039;LowerRight&#039;] = {&#039;lr&#039;, &#039;se&#039;, &#039;c2&#039;, &#039;lowerright&#039;},&lt;br /&gt;
	[&#039;LowerLeft&#039;]  = {&#039;ll&#039;, &#039;sw&#039;, &#039;c3&#039;, &#039;lowerleft&#039;},&lt;br /&gt;
	[&#039;UpperLeft&#039;]  = {&#039;ul&#039;, &#039;nw&#039;, &#039;c4&#039;, &#039;upperleft&#039;},&lt;br /&gt;
	}&lt;br /&gt;
	local d, link, size = args[1], args[2], args[3]&lt;br /&gt;
	if not d then&lt;br /&gt;
		if args[4] ~= &#039; &#039; then d, link, size = args[2], args[3], &#039;s&#039; end&lt;br /&gt;
	end&lt;br /&gt;
	for k, v in pairs(directions) do&lt;br /&gt;
		for _, name in ipairs(v) do&lt;br /&gt;
			if d:lower() == name then&lt;br /&gt;
				if size == &#039;s&#039; then&lt;br /&gt;
					size = &#039;7&#039;&lt;br /&gt;
				elseif not size then&lt;br /&gt;
					size = &#039;10&#039;&lt;br /&gt;
				end&lt;br /&gt;
				if not link then link = &#039;&#039; end&lt;br /&gt;
				result = &#039;[[File:Arrow Blue &#039;..k..&#039; 001.svg|&#039;..size..&#039;px|alt=&#039;..k..&#039; arrow|link=&#039;..link..&#039;]]&#039;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if not result then&lt;br /&gt;
		return &#039;&amp;lt;span style=&amp;quot;color:#f00&amp;quot;&amp;gt;Invalid [[Template:RoutemapRoute]] arrow value &amp;quot;&amp;lt;span style=&amp;quot;font-style:italic&amp;quot;&amp;gt;&#039;..d..&#039;&amp;lt;/span&amp;gt;&amp;quot;.&amp;lt;/span&amp;gt;&#039;..(i18n[&#039;error-categories&#039;][&#039;rmr-error&#039;] or i18n[&#039;error-categories&#039;].default)&lt;br /&gt;
	else&lt;br /&gt;
		return result&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.rmr = makeInvokeFunction(&#039;_rmr&#039;)&lt;br /&gt;
&lt;br /&gt;
function p._rmr(args)--[[&lt;br /&gt;
&lt;br /&gt;
Displays text between two blue arrows (or to the left/right side of one).&lt;br /&gt;
Text can be split with an en dash if entered in both first and second numbered parameters.&lt;br /&gt;
Implemented in the RoutemapRoute template.&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
	args.l = args.l or args.Licon or args.licon or args.L&lt;br /&gt;
	args.r = args.r or args.Ricon or args.ricon or args.R&lt;br /&gt;
	if args.l then args.l = p._rmri{args.l,args.llink,(args.lsize or args.size),&#039; &#039;}..&#039;&amp;amp;nbsp;&#039; else args.l = &#039;&#039; end&lt;br /&gt;
	if args.r then args.r = &#039;&amp;amp;nbsp;&#039;..p._rmri{args.r,args.rlink,(args.rsize or args.size),&#039; &#039;} else args.r = &#039;&#039; end&lt;br /&gt;
	if args[1] then&lt;br /&gt;
		if args[2] then args[1] = args[1]..&#039;&amp;amp;nbsp;–&amp;amp;nbsp;&#039;..args[2] end&lt;br /&gt;
	else&lt;br /&gt;
		args[1] = args[2] or &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
	if args[1] == &#039;&#039; or args.enclosed == &#039;no&#039; then&lt;br /&gt;
		args.b1, args.b2 = &#039;&#039;, &#039;&#039;&lt;br /&gt;
	else&lt;br /&gt;
		args.b1, args.b2 = &#039;(&#039;, &#039;)&#039;&lt;br /&gt;
	end&lt;br /&gt;
	return args.b1..args.l..args[1]..args.r..args.b2&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.BSrow(frame)&lt;br /&gt;
	local args = getArgs(frame, {&lt;br /&gt;
		parentOnly = true,&lt;br /&gt;
		removeBlanks = false,&lt;br /&gt;
	})&lt;br /&gt;
	return p._BSrow(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._BSrow(args)--[[&lt;br /&gt;
&lt;br /&gt;
Creates Routemap syntax for a diagram row based on parameters.&lt;br /&gt;
Implemented in the RDTr template.&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
	args.n = tonumber(args.n or &#039;&#039;)&lt;br /&gt;
	if not args.n then&lt;br /&gt;
		local icontotal = getArgNums(&#039;&#039;, args)&lt;br /&gt;
		table.sort(icontotal)&lt;br /&gt;
		args.n = icontotal[#icontotal] or 1&lt;br /&gt;
	end&lt;br /&gt;
	local count, icons, overlaps, overlapCalc = tonumber(args[&#039;$count&#039;]) or 1, {}, {}, math.log10(args.n)&lt;br /&gt;
	local text = (args.text and &#039;*&#039;) or &#039;&#039;&lt;br /&gt;
	if overlapCalc == math.floor(overlapCalc) then overlapCalc = 10^(overlapCalc) else overlapCalc = 10^(math.floor(overlapCalc) + 1) end&lt;br /&gt;
	while count &amp;lt;= args.n do&lt;br /&gt;
		local cellparams, overlapn = {}, (string.match(count/overlapCalc, &#039;%.(0+)&#039;) or &#039;&#039;)..count&lt;br /&gt;
		table.insert(icons, (text..(args[count] or &#039;&#039;)))&lt;br /&gt;
		if args[&#039;O&#039;..overlapn] then&lt;br /&gt;
			local iconparams, overlapparams, overlapt = {}, {}, {}&lt;br /&gt;
			for k, v in pairs({bg = (args[&#039;O&#039;..overlapn..&#039;0-bg&#039;] or args[&#039;O&#039;..overlapn..&#039;0-background&#039;] or args[&#039;O&#039;..overlapn..&#039;0-bgcolor&#039;]), color = (args[&#039;O&#039;..overlapn..&#039;0-color&#039;] or args[&#039;O&#039;..overlapn..&#039;0-colour&#039;]), b = (args[&#039;O&#039;..overlapn..&#039;0-b&#039;] or args[&#039;O&#039;..overlapn..&#039;0-bold&#039;]), i = (args[&#039;O&#039;..overlapn..&#039;0-i&#039;] or args[&#039;O&#039;..overlapn..&#039;0-it&#039;] or args[&#039;O&#039;..overlapn..&#039;0-italic&#039;]), align = args[&#039;O&#039;..overlapn..&#039;0-align&#039;], fontsize = args[&#039;O&#039;..overlapn..&#039;0-fontsize&#039;], abbr = args[&#039;O&#039;..overlapn..&#039;0-abbr&#039;], style = args[&#039;O&#039;..overlapn..&#039;0-style&#039;]}) do&lt;br /&gt;
				if v then table.insert(iconparams, k..&#039;=&#039;..v) end&lt;br /&gt;
			end&lt;br /&gt;
			if iconparams[1] then icons[count] = icons[count]..&#039;__&#039;..table.concat(iconparams, &#039;,&#039;) end&lt;br /&gt;
			for k, v in pairs({bg = (args[&#039;O&#039;..overlapn..&#039;-bg&#039;] or args[&#039;O&#039;..overlapn..&#039;-background&#039;] or args[&#039;O&#039;..overlapn..&#039;-bgcolor&#039;]), color = (args[&#039;O&#039;..overlapn..&#039;-color&#039;] or args[&#039;O&#039;..overlapn..&#039;-colour&#039;]), b = (args[&#039;O&#039;..overlapn..&#039;-b&#039;] or args[&#039;O&#039;..overlapn..&#039;-bold&#039;]), i = (args[&#039;O&#039;..overlapn..&#039;-i&#039;] or args[&#039;O&#039;..overlapn..&#039;-it&#039;] or args[&#039;O&#039;..overlapn..&#039;-italic&#039;]), align = args[&#039;O&#039;..overlapn..&#039;-align&#039;], fontsize = args[&#039;O&#039;..overlapn..&#039;-fontsize&#039;], abbr = args[&#039;O&#039;..overlapn..&#039;-abbr&#039;], style = args[&#039;O&#039;..overlapn..&#039;-style&#039;]}) do&lt;br /&gt;
				if v then table.insert(overlapparams, k..&#039;=&#039;..v) end&lt;br /&gt;
			end&lt;br /&gt;
			if overlapparams[1] then args[&#039;O&#039;..overlapn] = args[&#039;O&#039;..overlapn]..&#039;__&#039;..table.concat(overlapparams, &#039;,&#039;) end&lt;br /&gt;
			overlaps = getArgNums(&#039;O&#039;..overlapn, args) or {}&lt;br /&gt;
			table.sort(overlaps)&lt;br /&gt;
			if overlaps[1] then&lt;br /&gt;
				for i, v in ipairs(overlaps) do&lt;br /&gt;
					overlapparams = {}&lt;br /&gt;
					for k, v2 in pairs({bg = (args[&#039;O&#039;..overlapn..v..&#039;-bg&#039;] or args[&#039;O&#039;..overlapn..v..&#039;-background&#039;] or args[&#039;O&#039;..overlapn..v..&#039;-bgcolor&#039;]), color = (args[&#039;O&#039;..overlapn..v..&#039;-color&#039;] or args[&#039;O&#039;..overlapn..v..&#039;-colour&#039;]), b = (args[&#039;O&#039;..overlapn..v..&#039;-b&#039;] or args[&#039;O&#039;..overlapn..v..&#039;-bold&#039;]), i = (args[&#039;O&#039;..overlapn..v..&#039;-i&#039;] or args[&#039;O&#039;..overlapn..v..&#039;-it&#039;] or args[&#039;O&#039;..overlapn..v..&#039;-italic&#039;]), align = args[&#039;O&#039;..overlapn..v..&#039;-align&#039;], fontsize = args[&#039;O&#039;..overlapn..v..&#039;-fontsize&#039;], abbr = args[&#039;O&#039;..overlapn..v..&#039;-abbr&#039;], style = args[&#039;O&#039;..overlapn..v..&#039;-style&#039;]}) do&lt;br /&gt;
						if v2 then table.insert(overlapparams, k..&#039;=&#039;..v2) end&lt;br /&gt;
					end&lt;br /&gt;
					if overlapparams[1] then args[&#039;O&#039;..overlapn..v] = args[&#039;O&#039;..overlapn..v]..&#039;__&#039;..table.concat(overlapparams, &#039;,&#039;) end&lt;br /&gt;
					table.insert(overlapt, text..args[&#039;O&#039;..overlapn..v])&lt;br /&gt;
				end&lt;br /&gt;
				overlaps = &#039;!~&#039;..text..args[&#039;O&#039;..overlapn]..&#039;!~&#039;..table.concat(overlapt, &#039;!~&#039;)&lt;br /&gt;
			else&lt;br /&gt;
				overlaps = &#039;!~&#039;..text..args[&#039;O&#039;..overlapn]&lt;br /&gt;
			end&lt;br /&gt;
			icons[count] = icons[count]..overlaps&lt;br /&gt;
		else&lt;br /&gt;
			if args[count..&#039;-abbr&#039;] then table.insert(cellparams, &#039;abbr=&#039;..args[count..&#039;-abbr&#039;]) end&lt;br /&gt;
		end&lt;br /&gt;
		if args[count..&#039;-link&#039;] then icons[count] = icons[count]..&#039;!@&#039;..args[count..&#039;-link&#039;] end&lt;br /&gt;
		for k, v in pairs({bg = (args[count..&#039;-bg&#039;] or args[count..&#039;-background&#039;] or args[count..&#039;-bgcolor&#039;]), color = (args[count..&#039;-color&#039;] or args[count..&#039;-colour&#039;]), b = (args[count..&#039;-b&#039;] or args[count..&#039;-bold&#039;]), i = (args[count..&#039;-i&#039;] or args[count..&#039;-it&#039;] or args[count..&#039;-italic&#039;]), align = args[count..&#039;-align&#039;], fontsize = args[count..&#039;-fontsize&#039;], style = args[count..&#039;-style&#039;]}) do&lt;br /&gt;
			if v then table.insert(cellparams, k..&#039;=&#039;..v) end&lt;br /&gt;
		end&lt;br /&gt;
		if cellparams[1] then icons[count] = icons[count]..&#039;!_&#039;..table.concat(cellparams, &#039;,&#039;) end&lt;br /&gt;
		count = count + 1&lt;br /&gt;
	end&lt;br /&gt;
	local row, rowparams, left, right = table.concat(icons, &#039;\\&#039;), {}&lt;br /&gt;
	for k, v in pairs({bg = (args.bg or args.background or args.bgcolor), color = (args.color or args.colour), b = (args.b or args.bold), i = (args.i or args.it or args.italic), align = args.align, fontsize = args.fontsize, style = args.style}) do&lt;br /&gt;
		if v then table.insert(rowparams, k..&#039;=&#039;..v) end&lt;br /&gt;
	end&lt;br /&gt;
	if rowparams[1] then args.R5 = table.concat(rowparams, &#039;,&#039;) end&lt;br /&gt;
	for i, v in ipairs({&#039;R1&#039;, &#039;R2&#039;, &#039;R3&#039;, &#039;R4&#039;, &#039;R5&#039;, &#039;L1&#039;, &#039;L2&#039;, &#039;L3&#039;, &#039;L4&#039;}) do&lt;br /&gt;
		if not args[v] or string.find(args[v], &#039;^%s*$&#039;) then args[v] = nil end&lt;br /&gt;
	end&lt;br /&gt;
	if args.R5 then&lt;br /&gt;
		right = {(args.R1 or &#039; &#039;), (args.R2 or &#039; &#039;), (args.R3 or &#039; &#039;), (args.R4 or &#039; &#039;), args.R5}&lt;br /&gt;
	elseif args.R4 then&lt;br /&gt;
		right = {(args.R1 or &#039; &#039;), (args.R2 or &#039; &#039;), (args.R3 or &#039; &#039;), args.R4}&lt;br /&gt;
	elseif args.R3 then&lt;br /&gt;
		right = {(args.R1 or &#039; &#039;), (args.R2 or &#039; &#039;), args.R3}&lt;br /&gt;
	elseif args.R1 then&lt;br /&gt;
		right = {args.R1, (args.R2 or &#039;&#039;)}&lt;br /&gt;
	elseif args.R2 then&lt;br /&gt;
		right = {args.R2}&lt;br /&gt;
	end&lt;br /&gt;
	if right then row = row..&#039;~~&#039;..table.concat(right, &#039;~~&#039;) end&lt;br /&gt;
	if args.L4 then&lt;br /&gt;
		left = {args.L4, (args.L3 or &#039; &#039;), (args.L2 or &#039; &#039;), (args.L1 or &#039;&#039;)}&lt;br /&gt;
	elseif args.L3 then&lt;br /&gt;
		left = {args.L3, (args.L2 or &#039; &#039;), (args.L1 or &#039;&#039;)}&lt;br /&gt;
	elseif args.L1 then&lt;br /&gt;
		left = {(args.L2 or &#039;&#039;), args.L1}&lt;br /&gt;
	elseif args.L2 then&lt;br /&gt;
		left = {args.L2}&lt;br /&gt;
	end&lt;br /&gt;
	if left then row = table.concat(left, &#039;~~&#039;)..&#039;! !&#039;..row end&lt;br /&gt;
	return row&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.BSrow_lite(frame)&lt;br /&gt;
	local args = getArgs(frame, {&lt;br /&gt;
		removeBlanks = false,&lt;br /&gt;
	})&lt;br /&gt;
	return p._BSrow_lite(args)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._BSrow_lite(args)--[[&lt;br /&gt;
&lt;br /&gt;
Creates Routemap syntax for a diagram row based on parameters.&lt;br /&gt;
Intended to be used to substitute legacy templates.&lt;br /&gt;
Note that for compatibility the link and sidebar parameter names are different.&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
	args.n = tonumber(args.n or &#039;&#039;)&lt;br /&gt;
	if not args.n then&lt;br /&gt;
		local icontotal = getArgNums(&#039;&#039;, args)&lt;br /&gt;
		table.sort(icontotal)&lt;br /&gt;
		args.n = icontotal[#icontotal] or 1&lt;br /&gt;
	end&lt;br /&gt;
	local count, icons, overlaps, overlapCalc = tonumber(args[&#039;$count&#039;]) or 1, {}, {}, math.log10(args.n)&lt;br /&gt;
	local text = (args.text and &#039;*&#039;) or &#039;&#039;&lt;br /&gt;
	if overlapCalc == math.floor(overlapCalc) then overlapCalc = 10^(overlapCalc) else overlapCalc = 10^(math.floor(overlapCalc) + 1) end&lt;br /&gt;
	while count &amp;lt;= args.n do&lt;br /&gt;
		local cellparams, overlapn = {}, (string.match(count/overlapCalc, &#039;%.(0+)&#039;) or &#039;&#039;)..count&lt;br /&gt;
		table.insert(icons, (text..(args[count] or &#039;&#039;)))&lt;br /&gt;
		if args[&#039;O&#039;..overlapn] then&lt;br /&gt;
			local overlapt = {}&lt;br /&gt;
			overlaps = getArgNums(&#039;O&#039;..overlapn, args) or {}&lt;br /&gt;
			table.sort(overlaps)&lt;br /&gt;
			if overlaps[1] then&lt;br /&gt;
				for i, v in ipairs(overlaps) do table.insert(overlapt, text..args[&#039;O&#039;..overlapn..v]) end&lt;br /&gt;
				overlaps = &#039;!~&#039;..text..args[&#039;O&#039;..overlapn]..&#039;!~&#039;..table.concat(overlapt, &#039;!~&#039;)&lt;br /&gt;
			else&lt;br /&gt;
				overlaps = &#039;!~&#039;..text..args[&#039;O&#039;..overlapn]&lt;br /&gt;
			end&lt;br /&gt;
			icons[count] = icons[count]..overlaps&lt;br /&gt;
		end&lt;br /&gt;
		if args[&#039;L&#039;..count] then icons[count] = icons[count]..&#039;!@&#039;..args[&#039;L&#039;..count] end&lt;br /&gt;
		count = count + 1&lt;br /&gt;
	end&lt;br /&gt;
	local row, rowparams, left, right = table.concat(icons, &#039;\\&#039;), {}&lt;br /&gt;
	for k, v in pairs({bg = (args.bg or args.background or args.bgcolor), style = args.style}) do&lt;br /&gt;
		if v then table.insert(rowparams, k..&#039;=&#039;..v) end&lt;br /&gt;
	end&lt;br /&gt;
	if rowparams[1] then args.r5 = table.concat(rowparams, &#039;,&#039;) end&lt;br /&gt;
	for i, v in ipairs({&#039;r1&#039;, &#039;r2&#039;, &#039;r3&#039;, &#039;r4&#039;, &#039;r5&#039;, &#039;l1&#039;, &#039;l2&#039;, &#039;l3&#039;, &#039;l4&#039;}) do&lt;br /&gt;
		if not args[v] or string.find(args[v], &#039;^%s*$&#039;) then args[v] = nil end&lt;br /&gt;
	end&lt;br /&gt;
	if args.r5 then&lt;br /&gt;
		right = {(args.r1 or &#039; &#039;), (args.r2 or &#039; &#039;), (args.r3 or &#039; &#039;), (args.r4 or &#039; &#039;), args.r5}&lt;br /&gt;
	elseif args.r4 then&lt;br /&gt;
		right = {(args.r1 or &#039; &#039;), (args.r2 or &#039; &#039;), (args.r3 or &#039; &#039;), args.r4}&lt;br /&gt;
	elseif args.r3 then&lt;br /&gt;
		right = {(args.r1 or &#039; &#039;), (args.r2 or &#039; &#039;), args.r3}&lt;br /&gt;
	elseif args.r1 then&lt;br /&gt;
		right = {args.r1, (args.r2 or &#039;&#039;)}&lt;br /&gt;
	elseif args.r2 then&lt;br /&gt;
		right = {args.r2}&lt;br /&gt;
	end&lt;br /&gt;
	if right then row = row..&#039;~~&#039;..table.concat(right, &#039;~~&#039;) end&lt;br /&gt;
	if args.l4 then&lt;br /&gt;
		left = {args.l4, (args.l3 or &#039; &#039;), (args.l2 or &#039; &#039;), (args.l1 or &#039;&#039;)}&lt;br /&gt;
	elseif args.l3 then&lt;br /&gt;
		left = {args.l3, (args.l2 or &#039; &#039;), (args.l1 or &#039;&#039;)}&lt;br /&gt;
	elseif args.l1 then&lt;br /&gt;
		left = {(args.l2 or &#039;&#039;), args.l1}&lt;br /&gt;
	elseif args.l2 then&lt;br /&gt;
		left = {args.l2}&lt;br /&gt;
	end&lt;br /&gt;
	if left then row = table.concat(left, &#039;~~&#039;)..&#039;! !&#039;..row end&lt;br /&gt;
	return row&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function pre_block(text)&lt;br /&gt;
	-- Pre tags returned by a module do not act like wikitext &amp;lt;pre&amp;gt;...&amp;lt;/pre&amp;gt;.&lt;br /&gt;
	return &#039;&amp;lt;pre&amp;gt;&#039; ..&lt;br /&gt;
		mw.text.nowiki(text) ..&lt;br /&gt;
		(text:sub(-1) == &#039;\n&#039; and &#039;&#039; or &#039;\n&#039;) ..&lt;br /&gt;
		&#039;&amp;lt;/pre&amp;gt;\n&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.convertbs(frame)--[[&lt;br /&gt;
&lt;br /&gt;
Converts a legacy route diagram into Routemap format.&lt;br /&gt;
Code to be used is displayed in preview mode or after saving the page, above the original code.&lt;br /&gt;
&lt;br /&gt;
{{#invoke:Routemap|convertbs|&amp;lt;nowiki&amp;gt;&lt;br /&gt;
(Original diagram)&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
]]&lt;br /&gt;
	local org = mw.text.unstripNoWiki(frame.args[1]) or &#039;Paste legacy RDT markups between the nowiki tags&#039;&lt;br /&gt;
	local res = org&lt;br /&gt;
	res = string.gsub(res, &#039;{{[Bb][Ss]%-?map&#039;, &#039;{{Routemap&#039;) -- &amp;quot;%-&amp;quot; is an escape for hyphen which is used as &amp;quot;between&amp;quot; in pattern.&lt;br /&gt;
	res = string.gsub(res, &#039;{|%s?{{[Rr]ailway line header}}&#039;, &#039;{{Routemap&#039;)&lt;br /&gt;
	res = string.gsub(res, &#039;{{[Bb][Ss]%-header%d?|&#039;, &#039;{{safesubst:BS-header/safesubst|&#039;) -- &amp;quot;%d?&amp;quot; means optional digit in case use of variant template like BS-header3.&lt;br /&gt;
	res = string.gsub(res, &#039;{{[Bb][Ss]%-table%d?}}&#039;, &#039;|map =&#039;)&lt;br /&gt;
	res = string.gsub(res, &#039;{{[Bb][Ss](%d?)(%d?)|&#039;, &#039;{{safesubst:BS%1%2/safesubst|&#039;)&lt;br /&gt;
	res = string.gsub(res, &#039;{{[Bb][Ss](%d?)(%d?)%-replace|&#039;, &#039;!replace{{safesubst:BS%1%2/safesubst|&#039;)&lt;br /&gt;
	res = string.gsub(res, &#039;{{[Bb][Ss](%d?)(%d?)%-startCollapsible|&#039;, &#039;-startCollapsible-collapsed\n{{safesubst:BS%1%2/safesubst|&#039;)&lt;br /&gt;
	res = string.gsub(res, &#039;{{[Bb][Ss](%d?)(%d?)%-sc|&#039;, &#039;-startCollapsible-collapsed\n{{safesubst:BS%1%2/safesubst|&#039;)&lt;br /&gt;
	res = string.gsub(res, &#039;{{[Bb][Ss](%d?)(%d?)%text|&#039;, &#039;{{safesubst:BS%1%2text/safesubst|&#039;)&lt;br /&gt;
	res = string.gsub(res, &#039;{{[Bb][Ss](%d?)(%d?)%-2|&#039;, &#039;{{safesubst:BS%1%2-2/safesubst|&#039;)&lt;br /&gt;
	res = string.gsub(res, &#039;{{[Bb][Ss](%d?)(%d?)%-2replace|&#039;, &#039;!replace{{safesubst:BS%1%2-2|&#039;)&lt;br /&gt;
	res = string.gsub(res, &#039;{{[Bb][Ss](%d?)(%d?)%-2sc|&#039;, &#039;-startCollapsible-collapsed\n{{safesubst:BS%1%2-2|&#039;)&lt;br /&gt;
	res = string.gsub(res, &#039;{{!}}}&#039;, &#039;-endCollapsible-&#039;)&lt;br /&gt;
	res = string.gsub(res, &#039;{{[Ee]nd}}&#039;, &#039;-endCollapsible-&#039;)&lt;br /&gt;
	res = string.gsub(res, &#039;|}\n?|}&#039;, &#039;}}&#039;) -- Replace ending of Railway line header map setup.&lt;br /&gt;
	res = string.gsub(res, &#039;{{[Bb][Ss]%-colspan}}\n{{safesubst&#039;, &#039;{{safesubst&#039;) -- BS-colspan is unnecessary and would cause error in Routemap.&lt;br /&gt;
	res = string.gsub(res, &#039;{{[Bb][Ss]%-colspan}}\n%-%-%-%-&#039;, &#039;-colspan-2\n----&#039;)&lt;br /&gt;
	res = string.gsub(res, &#039;&amp;amp;lt;&#039;, &#039;&amp;lt;&#039;)&lt;br /&gt;
	res = string.gsub(res, &#039;&amp;amp;gt;&#039;, &#039;&amp;gt;&#039;)&lt;br /&gt;
	if string.find(res, &#039;!replace&#039;) or string.find(res, &#039;|%s*bg%s*=&#039;) then&lt;br /&gt;
		local restable = mw.text.split(res, &#039;\n&#039;)&lt;br /&gt;
		for i, v in ipairs(restable) do&lt;br /&gt;
			if string.find(v, &#039;!replace&#039;) then&lt;br /&gt;
				restable[i] = string.gsub(restable[i], &#039;!replace&#039;, &#039;&#039;)&lt;br /&gt;
				restable[i-2] = string.gsub(restable[i-2], &#039;collapsed&#039;, &#039;collapsed-replace&#039;)&lt;br /&gt;
			end&lt;br /&gt;
			if (string.find(v, &#039;|%s*bg%s*=%s*#?[a-zA-Z0-9]+&#039;) or string.find(v, &#039;|%s*bg%s*=%s*#?{{[^{}]+}}%s*|&#039;) or string.find(v, &#039;|%s*bg%s*=%s*#?{{[^{}]+}}%s*}}&#039;)) and string.find(restable[i-1], &#039;^-startCollapsible&#039;) then&lt;br /&gt;
				local bg = string.match(v, &#039;|%s*bg%s*=%s*(#?[a-zA-Z0-9]+)&#039;) or string.find(v, &#039;|%s*bg%s*=%s*(#?{{[^{}]+}})%s*|&#039;) or string.find(v, &#039;|%s*bg%s*=%s*(#?{{[^{}]+}})%s*}}&#039;)&lt;br /&gt;
				restable[i] = string.gsub(restable[i], &#039;|%s*bg%s*=%s*&#039;..bg, &#039;&#039;)&lt;br /&gt;
				restable[i-1] = string.gsub(restable[i-1], &#039;%-?$&#039;, &#039;--bg=&#039;)..bg&lt;br /&gt;
				if string.find(restable[i+1], &#039;!replace&#039;) then&lt;br /&gt;
					restable[i+1] = string.gsub(restable[i+1], &#039;!replace&#039;, &#039;&#039;)&lt;br /&gt;
					restable[i-1] = string.gsub(restable[i-1], &#039;collapsed%-&#039;, &#039;collapsed-replace&#039;)&lt;br /&gt;
					if (string.find(restable[i+1], &#039;|%s*bg%s*=%s*#?[a-zA-Z0-9]+&#039;) or string.find(restable[i+1], &#039;|%s*bg%s*=%s*#?{{[^{}]+}}%s*|&#039;) or string.find(restable[i+1], &#039;|%s*bg%s*=%s*#?{{[^{}]+}}%s*}}&#039;)) then&lt;br /&gt;
						local bg2 = string.match(restable[i+1], &#039;|%s*bg%s*=%s*(#?[a-zA-Z0-9]+)&#039;) or string.find(restable[i+1], &#039;|%s*bg%s*=%s*(#?{{[^{}]+}})%s*|&#039;) or string.find(restable[i+1], &#039;|%s*bg%s*=%s*(#?{{[^{}]+}})%s*}}&#039;)&lt;br /&gt;
						if bg2 == bg then restable[i+1] = string.gsub(restable[i], &#039;|%s*bg%s*=%s*&#039;..bg2, &#039;&#039;) end&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		res = table.concat(restable, &#039;\n&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	return &amp;quot;\n&#039;&#039;&#039;Safe substitution&#039;&#039;&#039;:\n&amp;quot; .. pre_block(res) .. &amp;quot;&#039;&#039;&#039;&#039;&#039;Original&#039;&#039;&#039;&#039;&#039;:\n&amp;quot; .. pre_block(org)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:RTLtimeline&amp;diff=5177</id>
		<title>יחידה:RTLtimeline</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:RTLtimeline&amp;diff=5177"/>
		<updated>2024-06-26T21:08:35Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: גרסה אחת יובאה&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local rev = function( text )&lt;br /&gt;
&lt;br /&gt;
    local tab = mw.text.split( text or &#039;&#039;, &#039;&#039; )&lt;br /&gt;
    local restab = {}&lt;br /&gt;
    for i = #tab, 1, -1 do table.insert( restab, tab[i] ) end&lt;br /&gt;
    return table.concat( restab )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.timeline( frame )&lt;br /&gt;
	-- reverse RTL strings in timeline. warning: doesn&#039;t work for RTL combined with latin/number chars&lt;br /&gt;
	local timeline_code = frame.args[&#039;content&#039;]&lt;br /&gt;
	timeline_code = mw.ustring.gsub( timeline_code, &#039;&amp;quot;[א-ת ]-&amp;quot;&#039;, rev)&lt;br /&gt;
	return frame:extensionTag{ name = &#039;timeline&#039;, content = timeline_code }&lt;br /&gt;
end&lt;br /&gt;
 &lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:Protection_banner/config&amp;diff=5175</id>
		<title>יחידה:Protection banner/config</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:Protection_banner/config&amp;diff=5175"/>
		<updated>2024-06-26T21:08:34Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: גרסה אחת יובאה&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module provides configuration data for [[Module:Protection banner]].&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
--&lt;br /&gt;
--                                BANNER DATA&lt;br /&gt;
--&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
-- Banner data consists of six fields:&lt;br /&gt;
-- * text - the main protection text that appears at the top of protection&lt;br /&gt;
--   banners.&lt;br /&gt;
-- * explanation - the text that appears below the main protection text, used&lt;br /&gt;
--   to explain the details of the protection.&lt;br /&gt;
-- * tooltip - the tooltip text you see when you move the mouse over a small&lt;br /&gt;
--   padlock icon.&lt;br /&gt;
-- * link - the page that the small padlock icon links to.&lt;br /&gt;
-- * alt - the alt text for the small padlock icon. This is also used as tooltip&lt;br /&gt;
--   text for the large protection banners.&lt;br /&gt;
-- * image - the padlock image used in both protection banners and small padlock&lt;br /&gt;
--   icons.&lt;br /&gt;
--&lt;br /&gt;
-- The module checks in three separate tables to find a value for each field.&lt;br /&gt;
-- First it checks the banners table, which has values specific to the reason&lt;br /&gt;
-- for the page being protected. Then the module checks the defaultBanners&lt;br /&gt;
-- table, which has values specific to each protection level. Finally, the&lt;br /&gt;
-- module checks the masterBanner table, which holds data for protection&lt;br /&gt;
-- templates to use if no data has been found in the previous two tables.&lt;br /&gt;
--&lt;br /&gt;
-- The values in the banner data can take parameters. These are specified&lt;br /&gt;
-- using ${TEXTLIKETHIS} (a dollar sign preceding a parameter name&lt;br /&gt;
-- enclosed in curly braces).&lt;br /&gt;
--&lt;br /&gt;
--                          Available parameters:&lt;br /&gt;
--&lt;br /&gt;
-- ${CURRENTVERSION} - a link to the page history or the move log, with the&lt;br /&gt;
-- display message &amp;quot;current-version-edit-display&amp;quot; or&lt;br /&gt;
-- &amp;quot;current-version-move-display&amp;quot;.&lt;br /&gt;
--&lt;br /&gt;
-- ${EDITREQUEST} - a link to create an edit request for the current page.&lt;br /&gt;
--&lt;br /&gt;
-- ${EXPLANATIONBLURB} - an explanation blurb, e.g. &amp;quot;Please discuss any changes&lt;br /&gt;
-- on the talk page; you may submit a request to ask an administrator to make&lt;br /&gt;
-- an edit if it is minor or supported by consensus.&amp;quot;&lt;br /&gt;
--&lt;br /&gt;
-- ${IMAGELINK} - a link to set the image to, depending on the protection&lt;br /&gt;
-- action and protection level.&lt;br /&gt;
--&lt;br /&gt;
-- ${INTROBLURB} - the PROTECTIONBLURB parameter, plus the expiry if an expiry&lt;br /&gt;
-- is set. E.g. &amp;quot;Editing of this page by new or unregistered users is currently &lt;br /&gt;
-- disabled until dd Month YYYY.&amp;quot;&lt;br /&gt;
--&lt;br /&gt;
-- ${INTROFRAGMENT} - the same as ${INTROBLURB}, but without final punctuation&lt;br /&gt;
-- so that it can be used in run-on sentences.&lt;br /&gt;
--&lt;br /&gt;
-- ${PAGETYPE} - the type of the page, e.g. &amp;quot;article&amp;quot; or &amp;quot;template&amp;quot;.&lt;br /&gt;
-- Defined in the cfg.pagetypes table.&lt;br /&gt;
--&lt;br /&gt;
-- ${PROTECTIONBLURB} - a blurb explaining the protection level of the page, e.g.&lt;br /&gt;
-- &amp;quot;Editing of this page by new or unregistered users is currently disabled&amp;quot;&lt;br /&gt;
--&lt;br /&gt;
-- ${PROTECTIONDATE} - the protection date, if it has been supplied to the&lt;br /&gt;
-- template.&lt;br /&gt;
--&lt;br /&gt;
-- ${PROTECTIONLEVEL} - the protection level, e.g. &amp;quot;fully protected&amp;quot; or&lt;br /&gt;
-- &amp;quot;semi-protected&amp;quot;.&lt;br /&gt;
--&lt;br /&gt;
-- ${PROTECTIONLOG} - a link to the protection log or the pending changes log,&lt;br /&gt;
-- depending on the protection action.&lt;br /&gt;
--&lt;br /&gt;
-- ${TALKPAGE} - a link to the talk page. If a section is specified, links&lt;br /&gt;
-- straight to that talk page section.&lt;br /&gt;
--&lt;br /&gt;
-- ${TOOLTIPBLURB} - uses the PAGETYPE, PROTECTIONTYPE and EXPIRY parameters to&lt;br /&gt;
-- create a blurb like &amp;quot;This template is semi-protected&amp;quot;, or &amp;quot;This article is&lt;br /&gt;
-- move-protected until DD Month YYYY&amp;quot;.&lt;br /&gt;
--&lt;br /&gt;
-- ${VANDAL} - links for the specified username (or the root page name)&lt;br /&gt;
-- using Module:Vandal-m.&lt;br /&gt;
--&lt;br /&gt;
--                                 Functions&lt;br /&gt;
--&lt;br /&gt;
-- For advanced users, it is possible to use Lua functions instead of strings&lt;br /&gt;
-- in the banner config tables. Using functions gives flexibility that is not&lt;br /&gt;
-- possible just by using parameters. Functions take two arguments, the&lt;br /&gt;
-- protection object and the template arguments, and they must output a string.&lt;br /&gt;
--&lt;br /&gt;
-- For example:&lt;br /&gt;
--&lt;br /&gt;
-- text = function (protectionObj, args)&lt;br /&gt;
--     if protectionObj.level == &#039;autoconfirmed&#039; then&lt;br /&gt;
--         return &#039;foo&#039;&lt;br /&gt;
--     else&lt;br /&gt;
--         return &#039;bar&#039;&lt;br /&gt;
--     end&lt;br /&gt;
-- end&lt;br /&gt;
--&lt;br /&gt;
-- Some protection object properties and methods that may be useful:&lt;br /&gt;
-- protectionObj.action - the protection action&lt;br /&gt;
-- protectionObj.level - the protection level&lt;br /&gt;
-- protectionObj.reason - the protection reason&lt;br /&gt;
-- protectionObj.expiry - the expiry. Nil if unset, the string &amp;quot;indef&amp;quot; if set&lt;br /&gt;
--     to indefinite, and the protection time in unix time if temporary.&lt;br /&gt;
-- protectionObj.protectionDate - the protection date in unix time, or nil if&lt;br /&gt;
--     unspecified.&lt;br /&gt;
-- protectionObj.bannerConfig - the banner config found by the module. Beware&lt;br /&gt;
--     of editing the config field used by the function, as it could create an&lt;br /&gt;
--     infinite loop.&lt;br /&gt;
-- protectionObj:isProtected - returns a boolean showing whether the page is&lt;br /&gt;
--     protected.&lt;br /&gt;
-- protectionObj:isTemporary - returns a boolean showing whether the expiry is&lt;br /&gt;
--     temporary.&lt;br /&gt;
-- protectionObj:isIncorrect - returns a boolean showing whether the protection&lt;br /&gt;
--     template is incorrect.&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
-- The master banner data, used if no values have been found in banners or&lt;br /&gt;
-- defaultBanners.&lt;br /&gt;
masterBanner = {&lt;br /&gt;
	text = &#039;${INTROBLURB}&#039;,&lt;br /&gt;
	explanation = &#039;${EXPLANATIONBLURB}&#039;,&lt;br /&gt;
	tooltip = &#039;${TOOLTIPBLURB}&#039;,&lt;br /&gt;
	link = &#039;${IMAGELINK}&#039;,&lt;br /&gt;
	alt = &#039;Page ${PROTECTIONLEVEL}&#039;&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
-- The default banner data. This holds banner data for different protection&lt;br /&gt;
-- levels.&lt;br /&gt;
-- *required* - this table needs edit, move, autoreview and upload subtables.&lt;br /&gt;
defaultBanners = {&lt;br /&gt;
	edit = {},&lt;br /&gt;
	move = {},&lt;br /&gt;
	autoreview = {&lt;br /&gt;
		default = {&lt;br /&gt;
			alt = &#039;Page protected with pending changes&#039;,&lt;br /&gt;
			tooltip = &#039;All edits by unregistered and new users are subject to review prior to becoming visible to unregistered users&#039;,&lt;br /&gt;
			image = &#039;Pending-protection-shackle.svg&#039;&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	upload = {}&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
-- The banner data. This holds banner data for different protection reasons.&lt;br /&gt;
-- In fact, the reasons specified in this table control which reasons are&lt;br /&gt;
-- valid inputs to the first positional parameter.&lt;br /&gt;
--&lt;br /&gt;
-- There is also a non-standard &amp;quot;description&amp;quot; field that can be used for items&lt;br /&gt;
-- in this table. This is a description of the protection reason for use in the&lt;br /&gt;
-- module documentation.&lt;br /&gt;
--&lt;br /&gt;
-- *required* - this table needs edit, move, autoreview and upload subtables.&lt;br /&gt;
banners = {&lt;br /&gt;
	edit = {&lt;br /&gt;
		blp = {&lt;br /&gt;
			description = &#039;For pages protected to promote compliance with the&#039;&lt;br /&gt;
				.. &#039; [[Wikipedia:Biographies of living persons&#039;&lt;br /&gt;
				.. &#039;|biographies of living persons]] policy&#039;,&lt;br /&gt;
			text = &#039;${INTROFRAGMENT} to promote compliance with&#039;&lt;br /&gt;
				.. &#039; [[Wikipedia:Biographies of living persons&#039;&lt;br /&gt;
				.. &amp;quot;|Wikipedia&#039;s&amp;amp;nbsp;policy on&amp;amp;nbsp;the&amp;amp;nbsp;biographies&amp;quot;&lt;br /&gt;
				.. &#039; of&amp;amp;nbsp;living&amp;amp;nbsp;people]].&#039;,&lt;br /&gt;
			tooltip = &#039;${TOOLTIPFRAGMENT} to promote compliance with the policy on&#039;&lt;br /&gt;
				.. &#039; biographies of living persons&#039;,&lt;br /&gt;
		},&lt;br /&gt;
		dmca = {&lt;br /&gt;
			description = &#039;For pages protected by the Wikimedia Foundation&#039;&lt;br /&gt;
				.. &#039; due to [[Digital Millennium Copyright Act]] takedown requests&#039;,&lt;br /&gt;
			explanation = function (protectionObj, args)&lt;br /&gt;
				local ret = &#039;Pursuant to a rights owner notice under the Digital&#039;&lt;br /&gt;
					.. &#039; Millennium Copyright Act (DMCA) regarding some content&#039;&lt;br /&gt;
					.. &#039; in this article, the Wikimedia Foundation acted under&#039;&lt;br /&gt;
					.. &#039; applicable law and took down and restricted the content&#039;&lt;br /&gt;
					.. &#039; in question.&#039;&lt;br /&gt;
				if args.notice then&lt;br /&gt;
					ret = ret .. &#039; A copy of the received notice can be found here: &#039;&lt;br /&gt;
						.. args.notice .. &#039;.&#039;&lt;br /&gt;
				end&lt;br /&gt;
				ret = ret .. &#039; For more information, including websites discussing&#039;&lt;br /&gt;
					.. &#039; how to file a counter-notice, please see&#039;&lt;br /&gt;
					.. &amp;quot; [[Wikipedia:Office actions]] and the article&#039;s ${TALKPAGE}.&amp;quot;&lt;br /&gt;
					.. &amp;quot;&#039;&#039;&#039;Do not remove this template from the article until the&amp;quot;&lt;br /&gt;
					.. &amp;quot; restrictions are withdrawn&#039;&#039;&#039;.&amp;quot;&lt;br /&gt;
				return ret&lt;br /&gt;
			end,&lt;br /&gt;
			image = &#039;Office-protection-shackle.svg&#039;,&lt;br /&gt;
		},&lt;br /&gt;
		dispute = {&lt;br /&gt;
			description = &#039;For pages protected due to editing disputes&#039;,&lt;br /&gt;
			text = function (protectionObj, args)&lt;br /&gt;
				-- Find the value of &amp;quot;disputes&amp;quot;.&lt;br /&gt;
				local display = &#039;disputes&#039;&lt;br /&gt;
				local disputes&lt;br /&gt;
				if args.section then&lt;br /&gt;
					disputes = string.format(&lt;br /&gt;
						&#039;[[%s:%s#%s|%s]]&#039;,&lt;br /&gt;
						mw.site.namespaces[protectionObj.title.namespace].talk.name,&lt;br /&gt;
						protectionObj.title.text,&lt;br /&gt;
						args.section,&lt;br /&gt;
						display&lt;br /&gt;
					)&lt;br /&gt;
				else&lt;br /&gt;
					disputes = display&lt;br /&gt;
				end&lt;br /&gt;
&lt;br /&gt;
				-- Make the blurb, depending on the expiry.&lt;br /&gt;
				local msg&lt;br /&gt;
				if type(protectionObj.expiry) == &#039;number&#039; then&lt;br /&gt;
					msg = &#039;${INTROFRAGMENT} or until editing %s have been resolved.&#039;&lt;br /&gt;
				else&lt;br /&gt;
					msg = &#039;${INTROFRAGMENT} until editing %s have been resolved.&#039;&lt;br /&gt;
				end&lt;br /&gt;
				return string.format(msg, disputes)&lt;br /&gt;
			end,&lt;br /&gt;
			explanation = &amp;quot;This protection is &#039;&#039;&#039;not&#039;&#039;&#039; an endorsement of the&amp;quot;&lt;br /&gt;
				.. &#039; ${CURRENTVERSION}. ${EXPLANATIONBLURB}&#039;,&lt;br /&gt;
			tooltip = &#039;${TOOLTIPFRAGMENT} due to editing disputes&#039;,&lt;br /&gt;
		},&lt;br /&gt;
		ecp = {&lt;br /&gt;
			description = &#039;For articles in topic areas authorized by&#039;&lt;br /&gt;
				.. &#039; [[Wikipedia:Arbitration Committee|ArbCom]] or&#039;&lt;br /&gt;
				.. &#039; meets the criteria for community use&#039;,&lt;br /&gt;
			tooltip = &#039;This ${PAGETYPE} is extended-confirmed protected&#039;,&lt;br /&gt;
			alt = &#039;Extended-protected ${PAGETYPE}&#039;,&lt;br /&gt;
		},&lt;br /&gt;
		mainpage = {&lt;br /&gt;
			description = &#039;For pages protected for being displayed on the [[Main Page]]&#039;,&lt;br /&gt;
			text = &#039;This file is currently&#039;&lt;br /&gt;
				.. &#039; [[Wikipedia:This page is protected|protected]] from&#039;&lt;br /&gt;
				.. &#039; editing because it is currently or will soon be displayed&#039;&lt;br /&gt;
				.. &#039; on the [[Main Page]].&#039;,&lt;br /&gt;
			explanation = &#039;Images on the Main Page are protected due to their high&#039;&lt;br /&gt;
				.. &#039; visibility. Please discuss any necessary changes on the ${TALKPAGE}.&#039;&lt;br /&gt;
				.. &#039;&amp;lt;br /&amp;gt;&amp;lt;span style=&amp;quot;font-size:90%;&amp;quot;&amp;gt;&#039;&lt;br /&gt;
				.. &amp;quot;&#039;&#039;&#039;Administrators:&#039;&#039;&#039; Once this image is definitely off the Main Page,&amp;quot;&lt;br /&gt;
				.. &#039; please unprotect this file, or reduce to semi-protection,&#039;&lt;br /&gt;
				.. &#039; as appropriate.&amp;lt;/span&amp;gt;&#039;,&lt;br /&gt;
		},&lt;br /&gt;
		office = {&lt;br /&gt;
			description = &#039;For pages protected by the Wikimedia Foundation&#039;,&lt;br /&gt;
			text = function (protectionObj, args)&lt;br /&gt;
				local ret = &#039;This ${PAGETYPE} is currently under the&#039;&lt;br /&gt;
					.. &#039; scrutiny of the&#039;&lt;br /&gt;
					.. &#039; [[Wikipedia:Office actions|Wikimedia Foundation Office]]&#039;&lt;br /&gt;
					.. &#039; and is protected.&#039;&lt;br /&gt;
				if protectionObj.protectionDate then&lt;br /&gt;
					ret = ret .. &#039; It has been protected since ${PROTECTIONDATE}.&#039;&lt;br /&gt;
				end&lt;br /&gt;
				return ret&lt;br /&gt;
			end,&lt;br /&gt;
			explanation = &amp;quot;If you can edit this page, please discuss all changes and&amp;quot;&lt;br /&gt;
				.. &amp;quot; additions on the ${TALKPAGE} first. &#039;&#039;&#039;Do not remove protection from this&amp;quot;&lt;br /&gt;
				.. &amp;quot; page unless you are authorized by the Wikimedia Foundation to do&amp;quot;&lt;br /&gt;
				.. &amp;quot; so.&#039;&#039;&#039;&amp;quot;,&lt;br /&gt;
			image = &#039;Office-protection-shackle.svg&#039;,&lt;br /&gt;
		},&lt;br /&gt;
		reset = {&lt;br /&gt;
			description = &#039;For pages protected by the Wikimedia Foundation and&#039;&lt;br /&gt;
				.. &#039; &amp;quot;reset&amp;quot; to a bare-bones version&#039;,&lt;br /&gt;
 			text = &#039;This ${PAGETYPE} is currently under the&#039;&lt;br /&gt;
					.. &#039; scrutiny of the&#039;&lt;br /&gt;
					.. &#039; [[Wikipedia:Office actions|Wikimedia Foundation Office]]&#039;&lt;br /&gt;
					.. &#039; and is protected.&#039;,&lt;br /&gt;
			explanation = function (protectionObj, args)&lt;br /&gt;
				local ret = &#039;&#039;&lt;br /&gt;
				if protectionObj.protectionDate then&lt;br /&gt;
					ret = ret .. &#039;On ${PROTECTIONDATE} this ${PAGETYPE} was&#039;&lt;br /&gt;
				else&lt;br /&gt;
					ret = ret .. &#039;This ${PAGETYPE} has been&#039;&lt;br /&gt;
				end&lt;br /&gt;
				ret = ret .. &#039; reduced to a&#039;&lt;br /&gt;
				.. &#039; simplified, &amp;quot;bare bones&amp;quot; version so that it may be completely&#039;&lt;br /&gt;
				.. &#039; rewritten to ensure it meets the policies of&#039;&lt;br /&gt;
				.. &#039; [[WP:NPOV|Neutral Point of View]] and [[WP:V|Verifiability]].&#039;&lt;br /&gt;
				.. &#039; Standard Wikipedia policies will apply to its rewriting—which&#039;&lt;br /&gt;
				.. &#039; will eventually be open to all editors—and will be strictly&#039;&lt;br /&gt;
				.. &#039; enforced. The ${PAGETYPE} has been ${PROTECTIONLEVEL} while&#039;&lt;br /&gt;
				.. &#039; it is being rebuilt.\n\n&#039;&lt;br /&gt;
				.. &#039;Any insertion of material directly from&#039;&lt;br /&gt;
				.. &#039; pre-protection revisions of the ${PAGETYPE} will be removed, as&#039;&lt;br /&gt;
				.. &#039; will any material added to the ${PAGETYPE} that is not properly&#039;&lt;br /&gt;
				.. &#039; sourced. The associated talk page(s) were also cleared on the&#039;&lt;br /&gt;
				.. &amp;quot; same date.\n\n&amp;quot;&lt;br /&gt;
				.. &amp;quot;If you can edit this page, please discuss all changes and&amp;quot;&lt;br /&gt;
				.. &amp;quot; additions on the ${TALKPAGE} first. &#039;&#039;&#039;Do not override&amp;quot;&lt;br /&gt;
				.. &amp;quot; this action, and do not remove protection from this page,&amp;quot;&lt;br /&gt;
				.. &amp;quot; unless you are authorized by the Wikimedia Foundation&amp;quot;&lt;br /&gt;
				.. &amp;quot; to do so. No editor may remove this notice.&#039;&#039;&#039;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
				return ret&lt;br /&gt;
			end,&lt;br /&gt;
			image = &#039;Office-protection-shackle.svg&#039;,&lt;br /&gt;
		},&lt;br /&gt;
		sock = {&lt;br /&gt;
			description = &#039;For pages protected due to&#039;&lt;br /&gt;
				.. &#039; [[Wikipedia:Sock puppetry|sock puppetry]]&#039;,&lt;br /&gt;
			text = &#039;${INTROFRAGMENT} to prevent [[Wikipedia:Sock puppetry|sock puppets]] of&#039;&lt;br /&gt;
				.. &#039; [[Wikipedia:Blocking policy|blocked]] or&#039;&lt;br /&gt;
				.. &#039; [[Wikipedia:Banning policy|banned users]]&#039;&lt;br /&gt;
				.. &#039; from editing it.&#039;,&lt;br /&gt;
			tooltip = &#039;${TOOLTIPFRAGMENT} to prevent sock puppets of blocked or banned users from&#039;&lt;br /&gt;
				.. &#039; editing it&#039;,&lt;br /&gt;
		},&lt;br /&gt;
		template = {&lt;br /&gt;
			description = &#039;For [[Wikipedia:High-risk templates|high-risk]]&#039;&lt;br /&gt;
				.. &#039; templates and Lua modules&#039;,&lt;br /&gt;
			text = &#039;This is a permanently [[Help:Protection|protected]] ${PAGETYPE},&#039;&lt;br /&gt;
				.. &#039; as it is [[Wikipedia:High-risk templates|high-risk]].&#039;,&lt;br /&gt;
			explanation = &#039;Please discuss any changes on the ${TALKPAGE}; you may&#039;&lt;br /&gt;
				.. &#039; ${EDITREQUEST} to ask an&#039;&lt;br /&gt;
				.. &#039; [[Wikipedia:Administrators|administrator]] or&#039;&lt;br /&gt;
				.. &#039; [[Wikipedia:Template editor|template editor]] to make an edit if&#039;&lt;br /&gt;
				.. &#039; it is [[Help:Minor edit#When to mark an edit as a minor edit&#039;&lt;br /&gt;
				.. &#039;|uncontroversial]] or supported by&#039;&lt;br /&gt;
				.. &#039; [[Wikipedia:Consensus|consensus]]. You can also&#039;&lt;br /&gt;
				.. &#039; [[Wikipedia:Requests for page protection|request]] that the page be&#039;&lt;br /&gt;
				.. &#039; unprotected.&#039;,&lt;br /&gt;
			tooltip = &#039;This high-risk ${PAGETYPE} is permanently ${PROTECTIONLEVEL}&#039;&lt;br /&gt;
				.. &#039; to prevent vandalism&#039;,&lt;br /&gt;
			alt = &#039;Permanently protected ${PAGETYPE}&#039;,&lt;br /&gt;
		},&lt;br /&gt;
		usertalk = {&lt;br /&gt;
			description = &#039;For pages protected against disruptive edits by a&#039;&lt;br /&gt;
				.. &#039; particular user&#039;,&lt;br /&gt;
			text = &#039;${INTROFRAGMENT} to prevent ${VANDAL} from using it to make disruptive edits,&#039;&lt;br /&gt;
				.. &#039; such as abusing the&#039;&lt;br /&gt;
				.. &#039; &amp;amp;#123;&amp;amp;#123;[[Template:unblock|unblock]]&amp;amp;#125;&amp;amp;#125; template.&#039;,&lt;br /&gt;
			explanation = &#039;If you cannot edit this user talk page and you need to&#039;&lt;br /&gt;
				.. &#039; make a change or leave a message, you can&#039;&lt;br /&gt;
				.. &#039; [[Wikipedia:Requests for page protection&#039;&lt;br /&gt;
				.. &#039;#Current requests for edits to a protected page&#039;&lt;br /&gt;
				.. &#039;|request an edit]],&#039;&lt;br /&gt;
				.. &#039; [[Wikipedia:Requests for page protection&#039;&lt;br /&gt;
				.. &#039;#Current requests for reduction in protection level&#039;&lt;br /&gt;
				.. &#039;|request unprotection]],&#039;&lt;br /&gt;
				.. &#039; [[Special:Userlogin|log in]],&#039;&lt;br /&gt;
				.. &#039; or [[Special:UserLogin/signup|create an account]].&#039;,&lt;br /&gt;
		},&lt;br /&gt;
		vandalism = {&lt;br /&gt;
			description = &#039;For pages protected against&#039;&lt;br /&gt;
				.. &#039; [[Wikipedia:Vandalism|vandalism]]&#039;,&lt;br /&gt;
			text = &#039;${INTROFRAGMENT} due to [[Wikipedia:Vandalism|vandalism]].&#039;,&lt;br /&gt;
			explanation = function (protectionObj, args)&lt;br /&gt;
				local ret = &#039;&#039;&lt;br /&gt;
				if protectionObj.level == &#039;sysop&#039; then&lt;br /&gt;
					ret = ret .. &amp;quot;This protection is &#039;&#039;&#039;not&#039;&#039;&#039; an endorsement of the&amp;quot;&lt;br /&gt;
						.. &#039; ${CURRENTVERSION}. &#039;&lt;br /&gt;
				end&lt;br /&gt;
				return ret .. &#039;${EXPLANATIONBLURB}&#039;&lt;br /&gt;
			end,&lt;br /&gt;
			tooltip = &#039;${TOOLTIPFRAGMENT} due to vandalism&#039;,&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	move = {&lt;br /&gt;
		dispute = {&lt;br /&gt;
			description = &#039;For pages protected against page moves due to&#039;&lt;br /&gt;
				.. &#039; disputes over the page title&#039;,&lt;br /&gt;
			explanation = &amp;quot;This protection is &#039;&#039;&#039;not&#039;&#039;&#039; an endorsement of the&amp;quot;&lt;br /&gt;
				.. &#039; ${CURRENTVERSION}. ${EXPLANATIONBLURB}&#039;,&lt;br /&gt;
			image = &#039;Move-protection-shackle.svg&#039;&lt;br /&gt;
		},&lt;br /&gt;
		vandalism = {&lt;br /&gt;
			description = &#039;For pages protected against&#039;&lt;br /&gt;
				.. &#039; [[Wikipedia:Vandalism#Page-move vandalism&#039;&lt;br /&gt;
				.. &#039; |page-move vandalism]]&#039;&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	autoreview = {},&lt;br /&gt;
	upload = {}&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
--&lt;br /&gt;
--                            GENERAL DATA TABLES&lt;br /&gt;
--&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Protection blurbs&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This table produces the protection blurbs available with the&lt;br /&gt;
-- ${PROTECTIONBLURB} parameter. It is sorted by protection action and&lt;br /&gt;
-- protection level, and is checked by the module in the following order:&lt;br /&gt;
-- 1. page&#039;s protection action, page&#039;s protection level&lt;br /&gt;
-- 2. page&#039;s protection action, default protection level&lt;br /&gt;
-- 3. &amp;quot;edit&amp;quot; protection action, default protection level&lt;br /&gt;
--&lt;br /&gt;
-- It is possible to use banner parameters inside this table.&lt;br /&gt;
-- *required* - this table needs edit, move, autoreview and upload subtables.&lt;br /&gt;
protectionBlurbs = {&lt;br /&gt;
	edit = {&lt;br /&gt;
		default = &#039;This ${PAGETYPE} is currently [[Help:Protection|&#039;&lt;br /&gt;
			.. &#039;protected]] from editing&#039;,&lt;br /&gt;
		autoconfirmed = &#039;Editing of this ${PAGETYPE} by [[Wikipedia:User access&#039;&lt;br /&gt;
			.. &#039; levels#New users|new]] or [[Wikipedia:User access levels#Unregistered&#039;&lt;br /&gt;
			.. &#039; users|unregistered]] users is currently [[Help:Protection|disabled]]&#039;,&lt;br /&gt;
		extendedconfirmed = &#039;This ${PAGETYPE} is currently under extended confirmed protection&#039;,&lt;br /&gt;
	},&lt;br /&gt;
	move = {&lt;br /&gt;
		default = &#039;This ${PAGETYPE} is currently [[Help:Protection|protected]]&#039;&lt;br /&gt;
			.. &#039; from [[Help:Moving a page|page moves]]&#039;&lt;br /&gt;
	},&lt;br /&gt;
	autoreview = {&lt;br /&gt;
		default = &#039;All edits made to this ${PAGETYPE} by&#039;&lt;br /&gt;
			.. &#039; [[Wikipedia:User access levels#New users|new]] or&#039;&lt;br /&gt;
			.. &#039; [[Wikipedia:User access levels#Unregistered users|unregistered]]&#039;&lt;br /&gt;
			.. &#039; users are currently&#039;&lt;br /&gt;
			.. &#039; [[Wikipedia:Pending changes|subject to review]]&#039;&lt;br /&gt;
	},&lt;br /&gt;
	upload = {&lt;br /&gt;
		default = &#039;Uploading new versions of this ${PAGETYPE} is currently disabled&#039;&lt;br /&gt;
	}&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Explanation blurbs&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This table produces the explanation blurbs available with the&lt;br /&gt;
-- ${EXPLANATIONBLURB} parameter. It is sorted by protection action,&lt;br /&gt;
-- protection level, and whether the page is a talk page or not. If the page is&lt;br /&gt;
-- a talk page it will have a talk key of &amp;quot;talk&amp;quot;; otherwise it will have a talk&lt;br /&gt;
-- key of &amp;quot;subject&amp;quot;. The table is checked in the following order:&lt;br /&gt;
-- 1. page&#039;s protection action, page&#039;s protection level, page&#039;s talk key&lt;br /&gt;
-- 2. page&#039;s protection action, page&#039;s protection level, default talk key&lt;br /&gt;
-- 3. page&#039;s protection action, default protection level, page&#039;s talk key&lt;br /&gt;
-- 4. page&#039;s protection action, default protection level, default talk key&lt;br /&gt;
--&lt;br /&gt;
-- It is possible to use banner parameters inside this table.&lt;br /&gt;
-- *required* - this table needs edit, move, autoreview and upload subtables.&lt;br /&gt;
explanationBlurbs = {&lt;br /&gt;
	edit = {&lt;br /&gt;
		autoconfirmed = {&lt;br /&gt;
			subject = &#039;See the [[Wikipedia:Protection policy|&#039;&lt;br /&gt;
				.. &#039;protection policy]] and ${PROTECTIONLOG} for more details. If you&#039;&lt;br /&gt;
				.. &#039; cannot edit this ${PAGETYPE} and you wish to make a change, you can&#039;&lt;br /&gt;
				.. &#039; ${EDITREQUEST}, discuss changes on the ${TALKPAGE},&#039;&lt;br /&gt;
				.. &#039; [[Wikipedia:Requests for page protection&#039;&lt;br /&gt;
				.. &#039;#Current requests for reduction in protection level&#039;&lt;br /&gt;
				.. &#039;|request unprotection]], [[Special:Userlogin|log in]], or&#039;&lt;br /&gt;
				.. &#039; [[Special:UserLogin/signup|create an account]].&#039;,&lt;br /&gt;
			default = &#039;See the [[Wikipedia:Protection policy|&#039;&lt;br /&gt;
				.. &#039;protection policy]] and ${PROTECTIONLOG} for more details. If you&#039;&lt;br /&gt;
				.. &#039; cannot edit this ${PAGETYPE} and you wish to make a change, you can&#039;&lt;br /&gt;
				.. &#039; [[Wikipedia:Requests for page protection&#039;&lt;br /&gt;
				.. &#039;#Current requests for reduction in protection level&#039;&lt;br /&gt;
				.. &#039;|request unprotection]], [[Special:Userlogin|log in]], or&#039;&lt;br /&gt;
				.. &#039; [[Special:UserLogin/signup|create an account]].&#039;,&lt;br /&gt;
		},&lt;br /&gt;
		extendedconfirmed = {&lt;br /&gt;
			default = &#039;Extended confirmed protection prevents edits from all unregistered editors&#039;&lt;br /&gt;
				.. &#039; and registered users with fewer than 30 days tenure and 500 edits.&#039;&lt;br /&gt;
				.. &#039; The [[Wikipedia:Protection policy#extended|policy on community use]]&#039;&lt;br /&gt;
				.. &#039; specifies that extended confirmed protection can be applied to combat&#039;&lt;br /&gt;
				.. &#039; disruption, if semi-protection has proven to be ineffective.&#039;&lt;br /&gt;
				.. &#039; Extended confirmed protection may also be applied to enforce&#039;&lt;br /&gt;
				.. &#039; [[Wikipedia:Arbitration Committee|arbitration sanctions]].&#039;&lt;br /&gt;
				.. &#039; Please discuss any changes on the ${TALKPAGE}; you may&#039;&lt;br /&gt;
				.. &#039; ${EDITREQUEST} to ask for uncontroversial changes supported by&#039;&lt;br /&gt;
				.. &#039; [[Wikipedia:Consensus|consensus]].&#039;&lt;br /&gt;
		},&lt;br /&gt;
		default = {&lt;br /&gt;
			subject = &#039;See the [[Wikipedia:Protection policy|&#039;&lt;br /&gt;
				.. &#039;protection policy]] and ${PROTECTIONLOG} for more details.&#039;&lt;br /&gt;
				.. &#039; Please discuss any changes on the ${TALKPAGE}; you&#039;&lt;br /&gt;
				.. &#039; may ${EDITREQUEST} to ask an&#039;&lt;br /&gt;
				.. &#039; [[Wikipedia:Administrators|administrator]] to make an edit if it&#039;&lt;br /&gt;
				.. &#039; is [[Help:Minor edit#When to mark an edit as a minor edit&#039;&lt;br /&gt;
				.. &#039;|uncontroversial]] or supported by [[Wikipedia:Consensus&#039;&lt;br /&gt;
				.. &#039;|consensus]]. You may also [[Wikipedia:Requests for&#039;&lt;br /&gt;
				.. &#039; page protection#Current requests for reduction in protection level&#039;&lt;br /&gt;
				.. &#039;|request]] that this page be unprotected.&#039;,&lt;br /&gt;
			default = &#039;See the [[Wikipedia:Protection policy|&#039;&lt;br /&gt;
				.. &#039;protection policy]] and ${PROTECTIONLOG} for more details.&#039;&lt;br /&gt;
				.. &#039; You may [[Wikipedia:Requests for page&#039;&lt;br /&gt;
				.. &#039; protection#Current requests for edits to a protected page|request an&#039;&lt;br /&gt;
				.. &#039; edit]] to this page, or [[Wikipedia:Requests for&#039;&lt;br /&gt;
				.. &#039; page protection#Current requests for reduction in protection level&#039;&lt;br /&gt;
				.. &#039;|ask]] for it to be unprotected.&#039;&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	move = {&lt;br /&gt;
		default = {&lt;br /&gt;
			subject = &#039;See the [[Wikipedia:Protection policy|&#039;&lt;br /&gt;
				.. &#039;protection policy]] and ${PROTECTIONLOG} for more details.&#039;&lt;br /&gt;
				.. &#039; The page may still be edited but cannot be moved&#039;&lt;br /&gt;
				.. &#039; until unprotected. Please discuss any suggested moves on the&#039;&lt;br /&gt;
				.. &#039; ${TALKPAGE} or at [[Wikipedia:Requested moves]]. You can also&#039;&lt;br /&gt;
				.. &#039; [[Wikipedia:Requests for page protection|request]] that the page be&#039;&lt;br /&gt;
				.. &#039; unprotected.&#039;,&lt;br /&gt;
			default = &#039;See the [[Wikipedia:Protection policy|&#039;&lt;br /&gt;
				.. &#039;protection policy]] and ${PROTECTIONLOG} for more details.&#039;&lt;br /&gt;
				.. &#039; The page may still be edited but cannot be moved&#039;&lt;br /&gt;
				.. &#039; until unprotected. Please discuss any suggested moves at&#039;&lt;br /&gt;
				.. &#039; [[Wikipedia:Requested moves]]. You can also&#039;&lt;br /&gt;
				.. &#039; [[Wikipedia:Requests for page protection|request]] that the page be&#039;&lt;br /&gt;
				.. &#039; unprotected.&#039;&lt;br /&gt;
		}&lt;br /&gt;
	},&lt;br /&gt;
	autoreview = {&lt;br /&gt;
		default = {&lt;br /&gt;
			default = &#039;See the [[Wikipedia:Protection policy|&#039;&lt;br /&gt;
				.. &#039;protection policy]] and ${PROTECTIONLOG} for more details.&#039;&lt;br /&gt;
				.. &#039; Edits to this ${PAGETYPE} by new and unregistered users&#039;&lt;br /&gt;
				.. &#039; will not be visible to readers until they are accepted by&#039;&lt;br /&gt;
				.. &#039; a reviewer. To avoid the need for your edits to be&#039;&lt;br /&gt;
				.. &#039; reviewed, you may&#039;&lt;br /&gt;
				.. &#039; [[Wikipedia:Requests for page protection&#039;&lt;br /&gt;
				.. &#039;#Current requests for reduction in protection level&#039;&lt;br /&gt;
				.. &#039;|request unprotection]], [[Special:Userlogin|log in]], or&#039;&lt;br /&gt;
				.. &#039; [[Special:UserLogin/signup|create an account]].&#039;&lt;br /&gt;
		},&lt;br /&gt;
	},&lt;br /&gt;
	upload = {&lt;br /&gt;
		default = {&lt;br /&gt;
			default = &#039;See the [[Wikipedia:Protection policy|&#039;&lt;br /&gt;
				.. &#039;protection policy]] and ${PROTECTIONLOG} for more details.&#039;&lt;br /&gt;
				.. &#039; The page may still be edited but new versions of the file&#039;&lt;br /&gt;
				.. &#039; cannot be uploaded until it is unprotected. You can&#039;&lt;br /&gt;
				.. &#039; request that a new version be uploaded by using a&#039;&lt;br /&gt;
				.. &#039; [[Wikipedia:Edit requests|protected edit request]], or you&#039;&lt;br /&gt;
				.. &#039; can  [[Wikipedia:Requests for page protection|request]]&#039;&lt;br /&gt;
				.. &#039; that the file be unprotected.&#039;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Protection levels&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This table provides the data for the ${PROTECTIONLEVEL} parameter, which&lt;br /&gt;
-- produces a short label for different protection levels. It is sorted by&lt;br /&gt;
-- protection action and protection level, and is checked in the following&lt;br /&gt;
-- order:&lt;br /&gt;
-- 1. page&#039;s protection action, page&#039;s protection level&lt;br /&gt;
-- 2. page&#039;s protection action, default protection level&lt;br /&gt;
-- 3. &amp;quot;edit&amp;quot; protection action, default protection level&lt;br /&gt;
--&lt;br /&gt;
-- It is possible to use banner parameters inside this table.&lt;br /&gt;
-- *required* - this table needs edit, move, autoreview and upload subtables.&lt;br /&gt;
protectionLevels = {&lt;br /&gt;
	edit = {&lt;br /&gt;
		default = &#039;protected&#039;,&lt;br /&gt;
		templateeditor = &#039;template-protected&#039;,&lt;br /&gt;
		extendedconfirmed = &#039;extended-protected&#039;,&lt;br /&gt;
		autoconfirmed = &#039;semi-protected&#039;,&lt;br /&gt;
	},&lt;br /&gt;
	move = {&lt;br /&gt;
		default = &#039;move-protected&#039;&lt;br /&gt;
	},&lt;br /&gt;
	autoreview = {&lt;br /&gt;
	},&lt;br /&gt;
	upload = {&lt;br /&gt;
		default = &#039;upload-protected&#039;&lt;br /&gt;
	}&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Images&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This table lists different padlock images for each protection action and&lt;br /&gt;
-- protection level. It is used if an image is not specified in any of the&lt;br /&gt;
-- banner data tables, and if the page does not satisfy the conditions for using&lt;br /&gt;
-- the [&#039;image-filename-indef&#039;] image. It is checked in the following order:&lt;br /&gt;
-- 1. page&#039;s protection action, page&#039;s protection level&lt;br /&gt;
-- 2. page&#039;s protection action, default protection level&lt;br /&gt;
images = {&lt;br /&gt;
	edit = {&lt;br /&gt;
		default = &#039;Full-protection-shackle.svg&#039;,&lt;br /&gt;
		templateeditor = &#039;Template-protection-shackle.svg&#039;,&lt;br /&gt;
		extendedconfirmed = &#039;Extended-protection-shackle.svg&#039;,&lt;br /&gt;
		autoconfirmed = &#039;Semi-protection-shackle.svg&#039;&lt;br /&gt;
	},&lt;br /&gt;
	move = {&lt;br /&gt;
		default = &#039;Move-protection-shackle.svg&#039;,&lt;br /&gt;
	},&lt;br /&gt;
	autoreview = {&lt;br /&gt;
		default = &#039;Pending-protection-shackle.svg&#039;&lt;br /&gt;
	},&lt;br /&gt;
	upload = {&lt;br /&gt;
		default = &#039;Upload-protection-shackle.svg&#039;&lt;br /&gt;
	}&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
-- Pages with a reason specified in this table will show the special &amp;quot;indef&amp;quot;&lt;br /&gt;
-- padlock, defined in the &#039;image-filename-indef&#039; message, if no expiry is set.&lt;br /&gt;
indefImageReasons = {&lt;br /&gt;
	template = true&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Image links&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This table provides the data for the ${IMAGELINK} parameter, which gets&lt;br /&gt;
-- the image link for small padlock icons based on the page&#039;s protection action&lt;br /&gt;
-- and protection level. It is checked in the following order:&lt;br /&gt;
-- 1. page&#039;s protection action, page&#039;s protection level&lt;br /&gt;
-- 2. page&#039;s protection action, default protection level&lt;br /&gt;
-- 3. &amp;quot;edit&amp;quot; protection action, default protection level&lt;br /&gt;
--&lt;br /&gt;
-- It is possible to use banner parameters inside this table.&lt;br /&gt;
-- *required* - this table needs edit, move, autoreview and upload subtables.&lt;br /&gt;
imageLinks = {&lt;br /&gt;
	edit = {&lt;br /&gt;
		default = &#039;Wikipedia:Protection policy#full&#039;,&lt;br /&gt;
		templateeditor = &#039;Wikipedia:Protection policy#template&#039;,&lt;br /&gt;
		extendedconfirmed = &#039;Wikipedia:Protection policy#extended&#039;,&lt;br /&gt;
		autoconfirmed = &#039;Wikipedia:Protection policy#semi&#039;&lt;br /&gt;
	},&lt;br /&gt;
	move = {&lt;br /&gt;
		default = &#039;Wikipedia:Protection policy#move&#039;&lt;br /&gt;
	},&lt;br /&gt;
	autoreview = {&lt;br /&gt;
		default = &#039;Wikipedia:Protection policy#pending&#039;&lt;br /&gt;
	},&lt;br /&gt;
	upload = {&lt;br /&gt;
		default = &#039;Wikipedia:Protection policy#upload&#039;&lt;br /&gt;
	}&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Padlock indicator names&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This table provides the &amp;quot;name&amp;quot; attribute for the &amp;lt;indicator&amp;gt; extension tag&lt;br /&gt;
-- with which small padlock icons are generated. All indicator tags on a page&lt;br /&gt;
-- are displayed in alphabetical order based on this attribute, and with&lt;br /&gt;
-- indicator tags with duplicate names, the last tag on the page wins.&lt;br /&gt;
-- The attribute is chosen based on the protection action; table keys must be a&lt;br /&gt;
-- protection action name or the string &amp;quot;default&amp;quot;.&lt;br /&gt;
padlockIndicatorNames = {&lt;br /&gt;
	autoreview = &#039;pp-autoreview&#039;,&lt;br /&gt;
	default = &#039;pp-default&#039;&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Protection categories&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
--[[&lt;br /&gt;
-- The protection categories are stored in the protectionCategories table.&lt;br /&gt;
-- Keys to this table are made up of the following strings:&lt;br /&gt;
--&lt;br /&gt;
-- 1. the expiry date&lt;br /&gt;
-- 2. the namespace&lt;br /&gt;
-- 3. the protection reason (e.g. &amp;quot;dispute&amp;quot; or &amp;quot;vandalism&amp;quot;)&lt;br /&gt;
-- 4. the protection level (e.g. &amp;quot;sysop&amp;quot; or &amp;quot;autoconfirmed&amp;quot;)&lt;br /&gt;
-- 5. the action (e.g. &amp;quot;edit&amp;quot; or &amp;quot;move&amp;quot;)&lt;br /&gt;
-- &lt;br /&gt;
-- When the module looks up a category in the table, first it will will check to&lt;br /&gt;
-- see a key exists that corresponds to all five parameters. For example, a&lt;br /&gt;
-- user page semi-protected from vandalism for two weeks would have the key&lt;br /&gt;
-- &amp;quot;temp-user-vandalism-autoconfirmed-edit&amp;quot;. If no match is found, the module&lt;br /&gt;
-- changes the first part of the key to &amp;quot;all&amp;quot; and checks the table again. It&lt;br /&gt;
-- keeps checking increasingly generic key combinations until it finds the&lt;br /&gt;
-- field, or until it reaches the key &amp;quot;all-all-all-all-all&amp;quot;.&lt;br /&gt;
--&lt;br /&gt;
-- The module uses a binary matrix to determine the order in which to search.&lt;br /&gt;
-- This is best demonstrated by a table. In this table, the &amp;quot;0&amp;quot; values&lt;br /&gt;
-- represent &amp;quot;all&amp;quot;, and the &amp;quot;1&amp;quot; values represent the original data (e.g.&lt;br /&gt;
-- &amp;quot;indef&amp;quot; or &amp;quot;file&amp;quot; or &amp;quot;vandalism&amp;quot;).&lt;br /&gt;
--&lt;br /&gt;
--        expiry    namespace reason   level     action&lt;br /&gt;
-- order&lt;br /&gt;
-- 1      1         1         1        1         1&lt;br /&gt;
-- 2      0         1         1        1         1&lt;br /&gt;
-- 3      1         0         1        1         1&lt;br /&gt;
-- 4      0         0         1        1         1&lt;br /&gt;
-- 5      1         1         0        1         1&lt;br /&gt;
-- 6      0         1         0        1         1&lt;br /&gt;
-- 7      1         0         0        1         1&lt;br /&gt;
-- 8      0         0         0        1         1&lt;br /&gt;
-- 9      1         1         1        0         1&lt;br /&gt;
-- 10     0         1         1        0         1&lt;br /&gt;
-- 11     1         0         1        0         1&lt;br /&gt;
-- 12     0         0         1        0         1&lt;br /&gt;
-- 13     1         1         0        0         1&lt;br /&gt;
-- 14     0         1         0        0         1&lt;br /&gt;
-- 15     1         0         0        0         1&lt;br /&gt;
-- 16     0         0         0        0         1&lt;br /&gt;
-- 17     1         1         1        1         0&lt;br /&gt;
-- 18     0         1         1        1         0&lt;br /&gt;
-- 19     1         0         1        1         0&lt;br /&gt;
-- 20     0         0         1        1         0&lt;br /&gt;
-- 21     1         1         0        1         0&lt;br /&gt;
-- 22     0         1         0        1         0&lt;br /&gt;
-- 23     1         0         0        1         0&lt;br /&gt;
-- 24     0         0         0        1         0&lt;br /&gt;
-- 25     1         1         1        0         0&lt;br /&gt;
-- 26     0         1         1        0         0&lt;br /&gt;
-- 27     1         0         1        0         0&lt;br /&gt;
-- 28     0         0         1        0         0&lt;br /&gt;
-- 29     1         1         0        0         0&lt;br /&gt;
-- 30     0         1         0        0         0&lt;br /&gt;
-- 31     1         0         0        0         0&lt;br /&gt;
-- 32     0         0         0        0         0&lt;br /&gt;
--&lt;br /&gt;
-- In this scheme the action has the highest priority, as it is the last&lt;br /&gt;
-- to change, and the expiry has the least priority, as it changes the most.&lt;br /&gt;
-- The priorities of the expiry, the protection level and the action are&lt;br /&gt;
-- fixed, but the priorities of the reason and the namespace can be swapped&lt;br /&gt;
-- through the use of the cfg.bannerDataNamespaceHasPriority table.&lt;br /&gt;
--]]&lt;br /&gt;
&lt;br /&gt;
-- If the reason specified to the template is listed in this table,&lt;br /&gt;
-- namespace data will take priority over reason data in the protectionCategories&lt;br /&gt;
-- table.&lt;br /&gt;
reasonsWithNamespacePriority = {&lt;br /&gt;
	vandalism = true,&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
-- The string to use as a namespace key for the protectionCategories table for each&lt;br /&gt;
-- namespace number.&lt;br /&gt;
categoryNamespaceKeys = {&lt;br /&gt;
	[  2] = &#039;user&#039;,&lt;br /&gt;
	[  3] = &#039;user&#039;,&lt;br /&gt;
	[  4] = &#039;project&#039;,&lt;br /&gt;
	[  6] = &#039;file&#039;,&lt;br /&gt;
	[  8] = &#039;mediawiki&#039;,&lt;br /&gt;
	[ 10] = &#039;template&#039;,&lt;br /&gt;
	[ 12] = &#039;project&#039;,&lt;br /&gt;
	[ 14] = &#039;category&#039;,&lt;br /&gt;
	[100] = &#039;portal&#039;,&lt;br /&gt;
	[828] = &#039;module&#039;,&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
protectionCategories = {&lt;br /&gt;
	[&#039;all|all|all|all|all&#039;]                     = &#039;Wikipedia fully protected pages&#039;,&lt;br /&gt;
	[&#039;all|all|office|all|all&#039;]                  = &#039;Wikipedia Office-protected pages&#039;,&lt;br /&gt;
	[&#039;all|all|reset|all|all&#039;]                   = &#039;Wikipedia Office-protected pages&#039;,&lt;br /&gt;
	[&#039;all|all|dmca|all|all&#039;]                    = &#039;Wikipedia Office-protected pages&#039;,&lt;br /&gt;
	[&#039;all|all|mainpage|all|all&#039;]                = &#039;Wikipedia fully-protected main page files&#039;,&lt;br /&gt;
	[&#039;all|all|all|extendedconfirmed|all&#039;]       = &#039;Wikipedia extended-confirmed-protected pages&#039;,&lt;br /&gt;
	[&#039;all|all|ecp|extendedconfirmed|all&#039;]       = &#039;Wikipedia extended-confirmed-protected pages&#039;,&lt;br /&gt;
	[&#039;all|template|all|all|edit&#039;]               = &#039;Wikipedia fully protected templates&#039;,&lt;br /&gt;
	[&#039;all|all|all|autoconfirmed|edit&#039;]          = &#039;Wikipedia semi-protected pages&#039;,&lt;br /&gt;
	[&#039;indef|all|all|autoconfirmed|edit&#039;]        = &#039;Wikipedia indefinitely semi-protected pages&#039;,&lt;br /&gt;
	[&#039;all|all|blp|autoconfirmed|edit&#039;]          = &#039;Wikipedia indefinitely semi-protected biographies of living people&#039;,&lt;br /&gt;
	[&#039;temp|all|blp|autoconfirmed|edit&#039;]         = &#039;Wikipedia temporarily semi-protected biographies of living people&#039;,&lt;br /&gt;
	[&#039;all|all|dispute|autoconfirmed|edit&#039;]      = &#039;Wikipedia pages semi-protected due to dispute&#039;,&lt;br /&gt;
	[&#039;all|all|sock|autoconfirmed|edit&#039;]         = &#039;Wikipedia pages semi-protected from banned users&#039;,&lt;br /&gt;
	[&#039;all|all|vandalism|autoconfirmed|edit&#039;]    = &#039;Wikipedia pages semi-protected against vandalism&#039;,&lt;br /&gt;
	[&#039;all|category|all|autoconfirmed|edit&#039;]     = &#039;Wikipedia semi-protected categories&#039;,&lt;br /&gt;
	[&#039;all|file|all|autoconfirmed|edit&#039;]         = &#039;Wikipedia semi-protected files&#039;,&lt;br /&gt;
	[&#039;all|portal|all|autoconfirmed|edit&#039;]       = &#039;Wikipedia semi-protected portals&#039;,&lt;br /&gt;
	[&#039;all|project|all|autoconfirmed|edit&#039;]      = &#039;Wikipedia semi-protected project pages&#039;,&lt;br /&gt;
	[&#039;all|talk|all|autoconfirmed|edit&#039;]         = &#039;Wikipedia semi-protected talk pages&#039;,&lt;br /&gt;
	[&#039;all|template|all|autoconfirmed|edit&#039;]     = &#039;Wikipedia semi-protected templates&#039;,&lt;br /&gt;
	[&#039;all|user|all|autoconfirmed|edit&#039;]         = &#039;Wikipedia semi-protected user and user talk pages&#039;,&lt;br /&gt;
	[&#039;all|template|all|templateeditor|edit&#039;]    = &#039;Wikipedia template-protected templates&#039;,&lt;br /&gt;
	[&#039;all|template|all|templateeditor|move&#039;]    = &#039;Wikipedia template-protected templates&#039;, -- move-protected templates&lt;br /&gt;
	[&#039;all|all|blp|sysop|edit&#039;]                  = &#039;Wikipedia indefinitely protected biographies of living people&#039;,&lt;br /&gt;
	[&#039;temp|all|blp|sysop|edit&#039;]                 = &#039;Wikipedia temporarily protected biographies of living people&#039;,&lt;br /&gt;
	[&#039;all|all|dispute|sysop|edit&#039;]              = &#039;Wikipedia pages protected due to dispute&#039;,&lt;br /&gt;
	[&#039;all|all|sock|sysop|edit&#039;]                 = &#039;Wikipedia pages protected from banned users&#039;,&lt;br /&gt;
	[&#039;all|all|vandalism|sysop|edit&#039;]            = &#039;Wikipedia pages protected against vandalism&#039;,&lt;br /&gt;
	[&#039;all|category|all|sysop|edit&#039;]             = &#039;Wikipedia fully protected categories&#039;,&lt;br /&gt;
	[&#039;all|file|all|sysop|edit&#039;]                 = &#039;Wikipedia fully-protected files&#039;,&lt;br /&gt;
	[&#039;all|project|all|sysop|edit&#039;]              = &#039;Wikipedia fully-protected project pages&#039;,&lt;br /&gt;
	[&#039;all|talk|all|sysop|edit&#039;]                 = &#039;Wikipedia fully-protected talk pages&#039;,&lt;br /&gt;
	[&#039;all|template|all|extendedconfirmed|edit&#039;] = &#039;Wikipedia extended-confirmed-protected templates&#039;,&lt;br /&gt;
	[&#039;all|template|all|sysop|edit&#039;]             = &#039;Wikipedia fully protected templates&#039;,&lt;br /&gt;
	[&#039;all|user|all|sysop|edit&#039;]                 = &#039;Wikipedia fully protected user and user talk pages&#039;,&lt;br /&gt;
	[&#039;all|module|all|all|edit&#039;]                 = &#039;Wikipedia fully-protected modules&#039;,&lt;br /&gt;
	[&#039;all|module|all|templateeditor|edit&#039;]      = &#039;Wikipedia template-protected modules&#039;,&lt;br /&gt;
	[&#039;all|module|all|autoconfirmed|edit&#039;]       = &#039;Wikipedia semi-protected modules&#039;,&lt;br /&gt;
	[&#039;all|all|all|sysop|move&#039;]                  = &#039;Wikipedia move-protected pages&#039;,&lt;br /&gt;
	[&#039;indef|all|all|sysop|move&#039;]                = &#039;Wikipedia indefinitely move-protected pages&#039;,&lt;br /&gt;
	[&#039;all|all|dispute|sysop|move&#039;]              = &#039;Wikipedia pages move-protected due to dispute&#039;,&lt;br /&gt;
	[&#039;all|all|vandalism|sysop|move&#039;]            = &#039;Wikipedia pages move-protected due to vandalism&#039;,&lt;br /&gt;
	[&#039;all|portal|all|sysop|move&#039;]               = &#039;Wikipedia move-protected portals&#039;,&lt;br /&gt;
	[&#039;all|project|all|sysop|move&#039;]              = &#039;Wikipedia move-protected project pages&#039;,&lt;br /&gt;
	[&#039;all|talk|all|sysop|move&#039;]                 = &#039;Wikipedia move-protected talk pages&#039;,&lt;br /&gt;
	[&#039;all|template|all|sysop|move&#039;]             = &#039;Wikipedia move-protected templates&#039;,&lt;br /&gt;
	[&#039;all|user|all|sysop|move&#039;]                 = &#039;Wikipedia move-protected user and user talk pages&#039;,&lt;br /&gt;
	[&#039;all|all|all|autoconfirmed|autoreview&#039;]    = &#039;Wikipedia pending changes protected pages&#039;,&lt;br /&gt;
	[&#039;all|file|all|all|upload&#039;]                 = &#039;Wikipedia upload-protected files&#039;,&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Expiry category config&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This table configures the expiry category behaviour for each protection&lt;br /&gt;
-- action.&lt;br /&gt;
-- * If set to true, setting that action will always categorise the page if&lt;br /&gt;
--   an expiry parameter is not set.&lt;br /&gt;
-- * If set to false, setting that action will never categorise the page.&lt;br /&gt;
-- * If set to nil, the module will categorise the page if:&lt;br /&gt;
--   1) an expiry parameter is not set, and&lt;br /&gt;
--   2) a reason is provided, and&lt;br /&gt;
--   3) the specified reason is not blacklisted in the reasonsWithoutExpiryCheck&lt;br /&gt;
--      table.&lt;br /&gt;
&lt;br /&gt;
expiryCheckActions = {&lt;br /&gt;
	edit = nil,&lt;br /&gt;
	move = false,&lt;br /&gt;
	autoreview = true,&lt;br /&gt;
	upload = false&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
reasonsWithoutExpiryCheck = {&lt;br /&gt;
	blp = true,&lt;br /&gt;
	template = true,&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Pagetypes&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This table produces the page types available with the ${PAGETYPE} parameter.&lt;br /&gt;
-- Keys are namespace numbers, or the string &amp;quot;default&amp;quot; for the default value.&lt;br /&gt;
pagetypes = {&lt;br /&gt;
	[0] = &#039;article&#039;,&lt;br /&gt;
	[6] = &#039;file&#039;,&lt;br /&gt;
	[10] = &#039;template&#039;,&lt;br /&gt;
	[14] = &#039;category&#039;,&lt;br /&gt;
	[828] = &#039;module&#039;,&lt;br /&gt;
	default = &#039;page&#039;&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Strings marking indefinite protection&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This table contains values passed to the expiry parameter that mean the page&lt;br /&gt;
-- is protected indefinitely.&lt;br /&gt;
indefStrings = {&lt;br /&gt;
	[&#039;indef&#039;] = true,&lt;br /&gt;
	[&#039;indefinite&#039;] = true,&lt;br /&gt;
	[&#039;indefinitely&#039;] = true,&lt;br /&gt;
	[&#039;infinite&#039;] = true,&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Group hierarchy&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This table maps each group to all groups that have a superset of the original&lt;br /&gt;
-- group&#039;s page editing permissions.&lt;br /&gt;
hierarchy = {&lt;br /&gt;
	sysop = {},&lt;br /&gt;
	reviewer = {&#039;sysop&#039;},&lt;br /&gt;
	filemover = {&#039;sysop&#039;},&lt;br /&gt;
	templateeditor = {&#039;sysop&#039;},&lt;br /&gt;
	extendedconfirmed = {&#039;sysop&#039;},&lt;br /&gt;
	autoconfirmed = {&#039;reviewer&#039;, &#039;filemover&#039;, &#039;templateeditor&#039;, &#039;extendedconfirmed&#039;},&lt;br /&gt;
	user = {&#039;autoconfirmed&#039;},&lt;br /&gt;
	[&#039;*&#039;] = {&#039;user&#039;}&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Wrapper templates and their default arguments&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This table contains wrapper templates used with the module, and their&lt;br /&gt;
-- default arguments. Templates specified in this table should contain the&lt;br /&gt;
-- following invocation, and no other template content:&lt;br /&gt;
--&lt;br /&gt;
-- {{#invoke:Protection banner|main}}&lt;br /&gt;
--&lt;br /&gt;
-- If other content is desired, it can be added between&lt;br /&gt;
-- &amp;lt;noinclude&amp;gt;...&amp;lt;/noinclude&amp;gt; tags.&lt;br /&gt;
--&lt;br /&gt;
-- When a user calls one of these wrapper templates, they will use the&lt;br /&gt;
-- default arguments automatically. However, users can override any of the&lt;br /&gt;
-- arguments.&lt;br /&gt;
wrappers = {&lt;br /&gt;
	[&#039;Template:Pp&#039;]                         = {},&lt;br /&gt;
	[&#039;Template:Pp-extended&#039;]                = {&#039;ecp&#039;},&lt;br /&gt;
	[&#039;Template:Pp-blp&#039;]                     = {&#039;blp&#039;},&lt;br /&gt;
	-- we don&#039;t need Template:Pp-create&lt;br /&gt;
	[&#039;Template:Pp-dispute&#039;]                 = {&#039;dispute&#039;},&lt;br /&gt;
	[&#039;Template:Pp-main-page&#039;]               = {&#039;mainpage&#039;},&lt;br /&gt;
	[&#039;Template:Pp-move&#039;]                    = {action = &#039;move&#039;, catonly = &#039;yes&#039;},&lt;br /&gt;
	[&#039;Template:Pp-move-dispute&#039;]            = {&#039;dispute&#039;, action = &#039;move&#039;, catonly = &#039;yes&#039;},&lt;br /&gt;
	-- we don&#039;t need Template:Pp-move-indef&lt;br /&gt;
	[&#039;Template:Pp-move-vandalism&#039;]          = {&#039;vandalism&#039;, action = &#039;move&#039;, catonly = &#039;yes&#039;},&lt;br /&gt;
	[&#039;Template:Pp-office&#039;]                  = {&#039;office&#039;},&lt;br /&gt;
	[&#039;Template:Pp-office-dmca&#039;]             = {&#039;dmca&#039;},&lt;br /&gt;
	[&#039;Template:Pp-pc&#039;]                      = {action = &#039;autoreview&#039;, small = true},&lt;br /&gt;
	[&#039;Template:Pp-pc1&#039;]                     = {action = &#039;autoreview&#039;, small = true},&lt;br /&gt;
	[&#039;Template:Pp-reset&#039;]                   = {&#039;reset&#039;},&lt;br /&gt;
	[&#039;Template:Pp-semi-indef&#039;]              = {small = true},&lt;br /&gt;
	[&#039;Template:Pp-sock&#039;]                    = {&#039;sock&#039;},&lt;br /&gt;
	[&#039;Template:Pp-template&#039;]                = {&#039;template&#039;, small = true},&lt;br /&gt;
	[&#039;Template:Pp-upload&#039;]                  = {action = &#039;upload&#039;},&lt;br /&gt;
	[&#039;Template:Pp-usertalk&#039;]                = {&#039;usertalk&#039;},&lt;br /&gt;
	[&#039;Template:Pp-vandalism&#039;]               = {&#039;vandalism&#039;},&lt;br /&gt;
},&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- &lt;br /&gt;
--                                 MESSAGES&lt;br /&gt;
-- &lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
msg = {&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Intro blurb and intro fragment&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- These messages specify what is produced by the ${INTROBLURB} and&lt;br /&gt;
-- ${INTROFRAGMENT} parameters. If the protection is temporary they use the&lt;br /&gt;
-- intro-blurb-expiry or intro-fragment-expiry, and if not they use&lt;br /&gt;
-- intro-blurb-noexpiry or intro-fragment-noexpiry.&lt;br /&gt;
-- It is possible to use banner parameters in these messages.&lt;br /&gt;
[&#039;intro-blurb-expiry&#039;] = &#039;${PROTECTIONBLURB} until ${EXPIRY}.&#039;,&lt;br /&gt;
[&#039;intro-blurb-noexpiry&#039;] = &#039;${PROTECTIONBLURB}.&#039;,&lt;br /&gt;
[&#039;intro-fragment-expiry&#039;] = &#039;${PROTECTIONBLURB} until ${EXPIRY},&#039;,&lt;br /&gt;
[&#039;intro-fragment-noexpiry&#039;] = &#039;${PROTECTIONBLURB}&#039;,&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Tooltip blurb&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- These messages specify what is produced by the ${TOOLTIPBLURB} parameter.&lt;br /&gt;
-- If the protection is temporary the tooltip-blurb-expiry message is used, and&lt;br /&gt;
-- if not the tooltip-blurb-noexpiry message is used.&lt;br /&gt;
-- It is possible to use banner parameters in these messages.&lt;br /&gt;
[&#039;tooltip-blurb-expiry&#039;] = &#039;This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY}.&#039;,&lt;br /&gt;
[&#039;tooltip-blurb-noexpiry&#039;] = &#039;This ${PAGETYPE} is ${PROTECTIONLEVEL}.&#039;,&lt;br /&gt;
[&#039;tooltip-fragment-expiry&#039;] = &#039;This ${PAGETYPE} is ${PROTECTIONLEVEL} until ${EXPIRY},&#039;,&lt;br /&gt;
[&#039;tooltip-fragment-noexpiry&#039;] = &#039;This ${PAGETYPE} is ${PROTECTIONLEVEL}&#039;,&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Special explanation blurb&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- An explanation blurb for pages that cannot be unprotected, e.g. for pages&lt;br /&gt;
-- in the MediaWiki namespace.&lt;br /&gt;
-- It is possible to use banner parameters in this message.&lt;br /&gt;
[&#039;explanation-blurb-nounprotect&#039;] = &#039;See the [[Wikipedia:Protection policy|&#039;&lt;br /&gt;
	.. &#039;protection policy]] and ${PROTECTIONLOG} for more details.&#039;&lt;br /&gt;
	.. &#039; Please discuss any changes on the ${TALKPAGE}; you&#039;&lt;br /&gt;
	.. &#039; may ${EDITREQUEST} to ask an&#039;&lt;br /&gt;
	.. &#039; [[Wikipedia:Administrators|administrator]] to make an edit if it&#039;&lt;br /&gt;
	.. &#039; is [[Help:Minor edit#When to mark an edit as a minor edit&#039;&lt;br /&gt;
	.. &#039;|uncontroversial]] or supported by [[Wikipedia:Consensus&#039;&lt;br /&gt;
	.. &#039;|consensus]].&#039;,&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Protection log display values&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- These messages determine the display values for the protection log link&lt;br /&gt;
-- or the pending changes log link produced by the ${PROTECTIONLOG} parameter.&lt;br /&gt;
-- It is possible to use banner parameters in these messages.&lt;br /&gt;
[&#039;protection-log-display&#039;] = &#039;protection log&#039;,&lt;br /&gt;
[&#039;pc-log-display&#039;] = &#039;pending changes log&#039;,&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Current version display values&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- These messages determine the display values for the page history link&lt;br /&gt;
-- or the move log link produced by the ${CURRENTVERSION} parameter.&lt;br /&gt;
-- It is possible to use banner parameters in these messages.&lt;br /&gt;
[&#039;current-version-move-display&#039;] = &#039;current title&#039;,&lt;br /&gt;
[&#039;current-version-edit-display&#039;] = &#039;current version&#039;,&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Talk page&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This message determines the display value of the talk page link produced&lt;br /&gt;
-- with the ${TALKPAGE} parameter.&lt;br /&gt;
-- It is possible to use banner parameters in this message.&lt;br /&gt;
[&#039;talk-page-link-display&#039;] = &#039;talk page&#039;,&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Edit requests&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This message determines the display value of the edit request link produced&lt;br /&gt;
-- with the ${EDITREQUEST} parameter.&lt;br /&gt;
-- It is possible to use banner parameters in this message.&lt;br /&gt;
[&#039;edit-request-display&#039;] = &#039;submit an edit request&#039;,&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Expiry date format&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- This is the format for the blurb expiry date. It should be valid input for&lt;br /&gt;
-- the first parameter of the #time parser function.&lt;br /&gt;
[&#039;expiry-date-format&#039;] = &#039;F j, Y &amp;quot;at&amp;quot; H:i e&#039;,&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Tracking categories&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- These messages determine which tracking categories the module outputs.&lt;br /&gt;
[&#039;tracking-category-incorrect&#039;] = &#039;Wikipedia pages with incorrect protection templates&#039;,&lt;br /&gt;
[&#039;tracking-category-template&#039;] = &#039;Wikipedia template-protected pages other than templates and modules&#039;,&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Images&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- These are images that are not defined by their protection action and protection level.&lt;br /&gt;
[&#039;image-filename-indef&#039;] = &#039;Full-protection-shackle.svg&#039;,&lt;br /&gt;
[&#039;image-filename-default&#039;] = &#039;Transparent.gif&#039;,&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- End messages&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- End configuration&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:Protection_banner&amp;diff=5173</id>
		<title>יחידה:Protection banner</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:Protection_banner&amp;diff=5173"/>
		<updated>2024-06-26T21:08:34Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: גרסה אחת יובאה&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This module implements {{pp-meta}} and its daughter templates such as&lt;br /&gt;
-- {{pp-dispute}}, {{pp-vandalism}} and {{pp-sock}}.&lt;br /&gt;
&lt;br /&gt;
-- Initialise necessary modules.&lt;br /&gt;
require(&#039;Module:No globals&#039;)&lt;br /&gt;
local makeFileLink = require(&#039;Module:File link&#039;)._main&lt;br /&gt;
local effectiveProtectionLevel = require(&#039;Module:Effective protection level&#039;)._main&lt;br /&gt;
local effectiveProtectionExpiry = require(&#039;Module:Effective protection expiry&#039;)._main&lt;br /&gt;
local yesno = require(&#039;Module:Yesno&#039;)&lt;br /&gt;
&lt;br /&gt;
-- Lazily initialise modules and objects we don&#039;t always need.&lt;br /&gt;
local getArgs, makeMessageBox, lang&lt;br /&gt;
&lt;br /&gt;
-- Set constants.&lt;br /&gt;
local CONFIG_MODULE = &#039;Module:Protection banner/config&#039;&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Helper functions&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function makeCategoryLink(cat, sort)&lt;br /&gt;
	if cat then&lt;br /&gt;
		return string.format(&lt;br /&gt;
			&#039;[[%s:%s|%s]]&#039;,&lt;br /&gt;
			mw.site.namespaces[14].name,&lt;br /&gt;
			cat,&lt;br /&gt;
			sort&lt;br /&gt;
		)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Validation function for the expiry and the protection date&lt;br /&gt;
local function validateDate(dateString, dateType)&lt;br /&gt;
	if not lang then&lt;br /&gt;
		lang = mw.language.getContentLanguage()&lt;br /&gt;
	end&lt;br /&gt;
	local success, result = pcall(lang.formatDate, lang, &#039;U&#039;, dateString)&lt;br /&gt;
	if success then&lt;br /&gt;
		result = tonumber(result)&lt;br /&gt;
		if result then&lt;br /&gt;
			return result&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	error(string.format(&lt;br /&gt;
		&#039;invalid %s: %s&#039;,&lt;br /&gt;
		dateType,&lt;br /&gt;
		tostring(dateString)&lt;br /&gt;
	), 4)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function makeFullUrl(page, query, display)&lt;br /&gt;
	return string.format(&lt;br /&gt;
		&#039;[%s %s]&#039;,&lt;br /&gt;
		tostring(mw.uri.fullUrl(page, query)),&lt;br /&gt;
		display&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Given a directed graph formatted as node -&amp;gt; table of direct successors,&lt;br /&gt;
-- get a table of all nodes reachable from a given node (though always&lt;br /&gt;
-- including the given node).&lt;br /&gt;
local function getReachableNodes(graph, start)&lt;br /&gt;
	local toWalk, retval = {[start] = true}, {}&lt;br /&gt;
	while true do&lt;br /&gt;
		-- Can&#039;t use pairs() since we&#039;re adding and removing things as we&#039;re iterating&lt;br /&gt;
		local k = next(toWalk) -- This always gets the &amp;quot;first&amp;quot; key&lt;br /&gt;
		if k == nil then&lt;br /&gt;
			return retval&lt;br /&gt;
		end&lt;br /&gt;
		toWalk[k] = nil&lt;br /&gt;
		retval[k] = true&lt;br /&gt;
		for _,v in ipairs(graph[k]) do&lt;br /&gt;
			if not retval[v] then&lt;br /&gt;
				toWalk[v] = true&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Protection class&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local Protection = {}&lt;br /&gt;
Protection.__index = Protection&lt;br /&gt;
&lt;br /&gt;
Protection.supportedActions = {&lt;br /&gt;
	edit = true,&lt;br /&gt;
	move = true,&lt;br /&gt;
	autoreview = true,&lt;br /&gt;
	upload = true&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
Protection.bannerConfigFields = {&lt;br /&gt;
	&#039;text&#039;,&lt;br /&gt;
	&#039;explanation&#039;,&lt;br /&gt;
	&#039;tooltip&#039;,&lt;br /&gt;
	&#039;alt&#039;,&lt;br /&gt;
	&#039;link&#039;,&lt;br /&gt;
	&#039;image&#039;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function Protection.new(args, cfg, title)&lt;br /&gt;
	local obj = {}&lt;br /&gt;
	obj._cfg = cfg&lt;br /&gt;
	obj.title = title or mw.title.getCurrentTitle()&lt;br /&gt;
&lt;br /&gt;
	-- Set action&lt;br /&gt;
	if not args.action then&lt;br /&gt;
		obj.action = &#039;edit&#039;&lt;br /&gt;
	elseif Protection.supportedActions[args.action] then&lt;br /&gt;
		obj.action = args.action&lt;br /&gt;
	else&lt;br /&gt;
		error(string.format(&lt;br /&gt;
			&#039;invalid action: %s&#039;,&lt;br /&gt;
			tostring(args.action)&lt;br /&gt;
		), 3)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Set level&lt;br /&gt;
	obj.level = args.demolevel or effectiveProtectionLevel(obj.action, obj.title)&lt;br /&gt;
	if not obj.level or (obj.action == &#039;move&#039; and obj.level == &#039;autoconfirmed&#039;) then&lt;br /&gt;
		-- Users need to be autoconfirmed to move pages anyway, so treat&lt;br /&gt;
		-- semi-move-protected pages as unprotected.&lt;br /&gt;
		obj.level = &#039;*&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Set expiry&lt;br /&gt;
	local effectiveExpiry = effectiveProtectionExpiry(obj.action, obj.title)&lt;br /&gt;
	if effectiveExpiry == &#039;infinity&#039; then&lt;br /&gt;
		obj.expiry = &#039;indef&#039;&lt;br /&gt;
	elseif effectiveExpiry ~= &#039;unknown&#039; then&lt;br /&gt;
		obj.expiry = validateDate(effectiveExpiry, &#039;expiry date&#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Set reason&lt;br /&gt;
	if args[1] then&lt;br /&gt;
		obj.reason = mw.ustring.lower(args[1])&lt;br /&gt;
		if obj.reason:find(&#039;|&#039;) then&lt;br /&gt;
			error(&#039;reasons cannot contain the pipe character (&amp;quot;|&amp;quot;)&#039;, 3)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Set protection date&lt;br /&gt;
	if args.date then&lt;br /&gt;
		obj.protectionDate = validateDate(args.date, &#039;protection date&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Set banner config&lt;br /&gt;
	do&lt;br /&gt;
		obj.bannerConfig = {}&lt;br /&gt;
		local configTables = {}&lt;br /&gt;
		if cfg.banners[obj.action] then&lt;br /&gt;
			configTables[#configTables + 1] = cfg.banners[obj.action][obj.reason]&lt;br /&gt;
		end&lt;br /&gt;
		if cfg.defaultBanners[obj.action] then&lt;br /&gt;
			configTables[#configTables + 1] = cfg.defaultBanners[obj.action][obj.level]&lt;br /&gt;
			configTables[#configTables + 1] = cfg.defaultBanners[obj.action].default&lt;br /&gt;
		end&lt;br /&gt;
		configTables[#configTables + 1] = cfg.masterBanner&lt;br /&gt;
		for i, field in ipairs(Protection.bannerConfigFields) do&lt;br /&gt;
			for j, t in ipairs(configTables) do&lt;br /&gt;
				if t[field] then&lt;br /&gt;
					obj.bannerConfig[field] = t[field]&lt;br /&gt;
					break&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return setmetatable(obj, Protection)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Protection:isUserScript()&lt;br /&gt;
	-- Whether the page is a user JavaScript or CSS page.&lt;br /&gt;
	local title = self.title&lt;br /&gt;
	return title.namespace == 2 and (&lt;br /&gt;
		title.contentModel == &#039;javascript&#039; or title.contentModel == &#039;css&#039;&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Protection:isProtected()&lt;br /&gt;
	return self.level ~= &#039;*&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Protection:shouldShowLock()&lt;br /&gt;
	-- Whether we should output a banner/padlock&lt;br /&gt;
	return self:isProtected() and not self:isUserScript()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Whether this page needs a protection category.&lt;br /&gt;
Protection.shouldHaveProtectionCategory = Protection.shouldShowLock&lt;br /&gt;
&lt;br /&gt;
function Protection:isTemporary()&lt;br /&gt;
	return type(self.expiry) == &#039;number&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Protection:makeProtectionCategory()&lt;br /&gt;
	if not self:shouldHaveProtectionCategory() then&lt;br /&gt;
		return &#039;&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local cfg = self._cfg&lt;br /&gt;
	local title = self.title&lt;br /&gt;
	&lt;br /&gt;
	-- Get the expiry key fragment.&lt;br /&gt;
	local expiryFragment&lt;br /&gt;
	if self.expiry == &#039;indef&#039; then&lt;br /&gt;
		expiryFragment = self.expiry&lt;br /&gt;
	elseif type(self.expiry) == &#039;number&#039; then&lt;br /&gt;
		expiryFragment = &#039;temp&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Get the namespace key fragment.&lt;br /&gt;
	local namespaceFragment = cfg.categoryNamespaceKeys[title.namespace]&lt;br /&gt;
	if not namespaceFragment and title.namespace % 2 == 1 then&lt;br /&gt;
			namespaceFragment = &#039;talk&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Define the order that key fragments are tested in. This is done with an&lt;br /&gt;
	-- array of tables containing the value to be tested, along with its&lt;br /&gt;
	-- position in the cfg.protectionCategories table.&lt;br /&gt;
	local order = {&lt;br /&gt;
		{val = expiryFragment,    keypos = 1},&lt;br /&gt;
		{val = namespaceFragment, keypos = 2},&lt;br /&gt;
		{val = self.reason,       keypos = 3},&lt;br /&gt;
		{val = self.level,        keypos = 4},&lt;br /&gt;
		{val = self.action,       keypos = 5}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	--[[&lt;br /&gt;
	-- The old protection templates used an ad-hoc protection category system,&lt;br /&gt;
	-- with some templates prioritising namespaces in their categories, and&lt;br /&gt;
	-- others prioritising the protection reason. To emulate this in this module&lt;br /&gt;
	-- we use the config table cfg.reasonsWithNamespacePriority to set the&lt;br /&gt;
	-- reasons for which namespaces have priority over protection reason.&lt;br /&gt;
	-- If we are dealing with one of those reasons, move the namespace table to&lt;br /&gt;
	-- the end of the order table, i.e. give it highest priority. If not, the&lt;br /&gt;
	-- reason should have highest priority, so move that to the end of the table&lt;br /&gt;
	-- instead.&lt;br /&gt;
	--]]&lt;br /&gt;
	table.insert(order, table.remove(order, self.reason and cfg.reasonsWithNamespacePriority[self.reason] and 2 or 3))&lt;br /&gt;
 &lt;br /&gt;
	--[[&lt;br /&gt;
	-- Define the attempt order. Inactive subtables (subtables with nil &amp;quot;value&amp;quot;&lt;br /&gt;
	-- fields) are moved to the end, where they will later be given the key&lt;br /&gt;
	-- &amp;quot;all&amp;quot;. This is to cut down on the number of table lookups in&lt;br /&gt;
	-- cfg.protectionCategories, which grows exponentially with the number of&lt;br /&gt;
	-- non-nil keys. We keep track of the number of active subtables with the&lt;br /&gt;
	-- noActive parameter.&lt;br /&gt;
	--]]&lt;br /&gt;
	local noActive, attemptOrder&lt;br /&gt;
	do&lt;br /&gt;
		local active, inactive = {}, {}&lt;br /&gt;
		for i, t in ipairs(order) do&lt;br /&gt;
			if t.val then&lt;br /&gt;
				active[#active + 1] = t&lt;br /&gt;
			else&lt;br /&gt;
				inactive[#inactive + 1] = t&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		noActive = #active&lt;br /&gt;
		attemptOrder = active&lt;br /&gt;
		for i, t in ipairs(inactive) do&lt;br /&gt;
			attemptOrder[#attemptOrder + 1] = t&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
 &lt;br /&gt;
	--[[&lt;br /&gt;
	-- Check increasingly generic key combinations until we find a match. If a&lt;br /&gt;
	-- specific category exists for the combination of key fragments we are&lt;br /&gt;
	-- given, that match will be found first. If not, we keep trying different&lt;br /&gt;
	-- key fragment combinations until we match using the key&lt;br /&gt;
	-- &amp;quot;all-all-all-all-all&amp;quot;.&lt;br /&gt;
	--&lt;br /&gt;
	-- To generate the keys, we index the key subtables using a binary matrix&lt;br /&gt;
	-- with indexes i and j. j is only calculated up to the number of active&lt;br /&gt;
	-- subtables. For example, if there were three active subtables, the matrix&lt;br /&gt;
	-- would look like this, with 0 corresponding to the key fragment &amp;quot;all&amp;quot;, and&lt;br /&gt;
	-- 1 corresponding to other key fragments.&lt;br /&gt;
	-- &lt;br /&gt;
	--   j 1  2  3&lt;br /&gt;
	-- i  &lt;br /&gt;
	-- 1   1  1  1&lt;br /&gt;
	-- 2   0  1  1&lt;br /&gt;
	-- 3   1  0  1&lt;br /&gt;
	-- 4   0  0  1&lt;br /&gt;
	-- 5   1  1  0&lt;br /&gt;
	-- 6   0  1  0&lt;br /&gt;
	-- 7   1  0  0&lt;br /&gt;
	-- 8   0  0  0&lt;br /&gt;
	-- &lt;br /&gt;
	-- Values of j higher than the number of active subtables are set&lt;br /&gt;
	-- to the string &amp;quot;all&amp;quot;.&lt;br /&gt;
	--&lt;br /&gt;
	-- A key for cfg.protectionCategories is constructed for each value of i.&lt;br /&gt;
	-- The position of the value in the key is determined by the keypos field in&lt;br /&gt;
	-- each subtable.&lt;br /&gt;
	--]]&lt;br /&gt;
	local cats = cfg.protectionCategories&lt;br /&gt;
	for i = 1, 2^noActive do&lt;br /&gt;
		local key = {}&lt;br /&gt;
		for j, t in ipairs(attemptOrder) do&lt;br /&gt;
			if j &amp;gt; noActive then&lt;br /&gt;
				key[t.keypos] = &#039;all&#039;&lt;br /&gt;
			else&lt;br /&gt;
				local quotient = i / 2 ^ (j - 1)&lt;br /&gt;
				quotient = math.ceil(quotient)&lt;br /&gt;
				if quotient % 2 == 1 then&lt;br /&gt;
					key[t.keypos] = t.val&lt;br /&gt;
				else&lt;br /&gt;
					key[t.keypos] = &#039;all&#039;&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		key = table.concat(key, &#039;|&#039;)&lt;br /&gt;
		local attempt = cats[key]&lt;br /&gt;
		if attempt then&lt;br /&gt;
			return makeCategoryLink(attempt, title.text)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return &#039;&#039;&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Protection:isIncorrect()&lt;br /&gt;
	local expiry = self.expiry&lt;br /&gt;
	return not self:shouldHaveProtectionCategory()&lt;br /&gt;
		or type(expiry) == &#039;number&#039; and expiry &amp;lt; os.time()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Protection:isTemplateProtectedNonTemplate()&lt;br /&gt;
	local action, namespace = self.action, self.title.namespace&lt;br /&gt;
	return self.level == &#039;templateeditor&#039;&lt;br /&gt;
		and (&lt;br /&gt;
			(action ~= &#039;edit&#039; and action ~= &#039;move&#039;)&lt;br /&gt;
			or (namespace ~= 10 and namespace ~= 828)&lt;br /&gt;
		)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Protection:makeCategoryLinks()&lt;br /&gt;
	local msg = self._cfg.msg&lt;br /&gt;
	local ret = {self:makeProtectionCategory()}&lt;br /&gt;
	if self:isIncorrect() then&lt;br /&gt;
		ret[#ret + 1] = makeCategoryLink(&lt;br /&gt;
			msg[&#039;tracking-category-incorrect&#039;],&lt;br /&gt;
			self.title.text&lt;br /&gt;
		)&lt;br /&gt;
	end&lt;br /&gt;
	if self:isTemplateProtectedNonTemplate() then&lt;br /&gt;
		ret[#ret + 1] = makeCategoryLink(&lt;br /&gt;
			msg[&#039;tracking-category-template&#039;],&lt;br /&gt;
			self.title.text&lt;br /&gt;
		)&lt;br /&gt;
	end&lt;br /&gt;
	return table.concat(ret)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Blurb class&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local Blurb = {}&lt;br /&gt;
Blurb.__index = Blurb&lt;br /&gt;
&lt;br /&gt;
Blurb.bannerTextFields = {&lt;br /&gt;
	text = true,&lt;br /&gt;
	explanation = true,&lt;br /&gt;
	tooltip = true,&lt;br /&gt;
	alt = true,&lt;br /&gt;
	link = true&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function Blurb.new(protectionObj, args, cfg)&lt;br /&gt;
	return setmetatable({&lt;br /&gt;
		_cfg = cfg,&lt;br /&gt;
		_protectionObj = protectionObj,&lt;br /&gt;
		_args = args&lt;br /&gt;
	}, Blurb)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Private methods --&lt;br /&gt;
&lt;br /&gt;
function Blurb:_formatDate(num)&lt;br /&gt;
	-- Formats a Unix timestamp into dd Month, YYYY format.&lt;br /&gt;
	lang = lang or mw.language.getContentLanguage()&lt;br /&gt;
	local success, date = pcall(&lt;br /&gt;
		lang.formatDate,&lt;br /&gt;
		lang,&lt;br /&gt;
		self._cfg.msg[&#039;expiry-date-format&#039;] or &#039;j F Y&#039;,&lt;br /&gt;
		&#039;@&#039; .. tostring(num)&lt;br /&gt;
	)&lt;br /&gt;
	if success then&lt;br /&gt;
		return date&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Blurb:_getExpandedMessage(msgKey)&lt;br /&gt;
	return self:_substituteParameters(self._cfg.msg[msgKey])&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Blurb:_substituteParameters(msg)&lt;br /&gt;
	if not self._params then&lt;br /&gt;
		local parameterFuncs = {}&lt;br /&gt;
&lt;br /&gt;
		parameterFuncs.CURRENTVERSION     = self._makeCurrentVersionParameter&lt;br /&gt;
		parameterFuncs.EDITREQUEST        = self._makeEditRequestParameter&lt;br /&gt;
		parameterFuncs.EXPIRY             = self._makeExpiryParameter&lt;br /&gt;
		parameterFuncs.EXPLANATIONBLURB   = self._makeExplanationBlurbParameter&lt;br /&gt;
		parameterFuncs.IMAGELINK          = self._makeImageLinkParameter&lt;br /&gt;
		parameterFuncs.INTROBLURB         = self._makeIntroBlurbParameter&lt;br /&gt;
		parameterFuncs.INTROFRAGMENT      = self._makeIntroFragmentParameter&lt;br /&gt;
		parameterFuncs.PAGETYPE           = self._makePagetypeParameter&lt;br /&gt;
		parameterFuncs.PROTECTIONBLURB    = self._makeProtectionBlurbParameter&lt;br /&gt;
		parameterFuncs.PROTECTIONDATE     = self._makeProtectionDateParameter&lt;br /&gt;
		parameterFuncs.PROTECTIONLEVEL    = self._makeProtectionLevelParameter&lt;br /&gt;
		parameterFuncs.PROTECTIONLOG      = self._makeProtectionLogParameter&lt;br /&gt;
		parameterFuncs.TALKPAGE           = self._makeTalkPageParameter&lt;br /&gt;
		parameterFuncs.TOOLTIPBLURB       = self._makeTooltipBlurbParameter&lt;br /&gt;
		parameterFuncs.TOOLTIPFRAGMENT    = self._makeTooltipFragmentParameter&lt;br /&gt;
		parameterFuncs.VANDAL             = self._makeVandalTemplateParameter&lt;br /&gt;
		&lt;br /&gt;
		self._params = setmetatable({}, {&lt;br /&gt;
			__index = function (t, k)&lt;br /&gt;
				local param&lt;br /&gt;
				if parameterFuncs[k] then&lt;br /&gt;
					param = parameterFuncs[k](self)&lt;br /&gt;
				end&lt;br /&gt;
				param = param or &#039;&#039;&lt;br /&gt;
				t[k] = param&lt;br /&gt;
				return param&lt;br /&gt;
			end&lt;br /&gt;
		})&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	msg = msg:gsub(&#039;${(%u+)}&#039;, self._params)&lt;br /&gt;
	return msg&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Blurb:_makeCurrentVersionParameter()&lt;br /&gt;
	-- A link to the page history or the move log, depending on the kind of&lt;br /&gt;
	-- protection.&lt;br /&gt;
	local pagename = self._protectionObj.title.prefixedText&lt;br /&gt;
	if self._protectionObj.action == &#039;move&#039; then&lt;br /&gt;
		-- We need the move log link.&lt;br /&gt;
		return makeFullUrl(&lt;br /&gt;
			&#039;Special:Log&#039;,&lt;br /&gt;
			{type = &#039;move&#039;, page = pagename},&lt;br /&gt;
			self:_getExpandedMessage(&#039;current-version-move-display&#039;)&lt;br /&gt;
		)&lt;br /&gt;
	else&lt;br /&gt;
		-- We need the history link.&lt;br /&gt;
		return makeFullUrl(&lt;br /&gt;
			pagename,&lt;br /&gt;
			{action = &#039;history&#039;},&lt;br /&gt;
			self:_getExpandedMessage(&#039;current-version-edit-display&#039;)&lt;br /&gt;
		)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Blurb:_makeEditRequestParameter()&lt;br /&gt;
	local mEditRequest = require(&#039;Module:Submit an edit request&#039;)&lt;br /&gt;
	local action = self._protectionObj.action&lt;br /&gt;
	local level = self._protectionObj.level&lt;br /&gt;
	&lt;br /&gt;
	-- Get the edit request type.&lt;br /&gt;
	local requestType&lt;br /&gt;
	if action == &#039;edit&#039; then&lt;br /&gt;
		if level == &#039;autoconfirmed&#039; then&lt;br /&gt;
			requestType = &#039;semi&#039;&lt;br /&gt;
		elseif level == &#039;extendedconfirmed&#039; then&lt;br /&gt;
			requestType = &#039;extended&#039;&lt;br /&gt;
		elseif level == &#039;templateeditor&#039; then&lt;br /&gt;
			requestType = &#039;template&#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	requestType = requestType or &#039;full&#039;&lt;br /&gt;
	&lt;br /&gt;
	-- Get the display value.&lt;br /&gt;
	local display = self:_getExpandedMessage(&#039;edit-request-display&#039;)&lt;br /&gt;
&lt;br /&gt;
	return mEditRequest._link{type = requestType, display = display}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Blurb:_makeExpiryParameter()&lt;br /&gt;
	local expiry = self._protectionObj.expiry&lt;br /&gt;
	if type(expiry) == &#039;number&#039; then&lt;br /&gt;
		return self:_formatDate(expiry)&lt;br /&gt;
	else&lt;br /&gt;
		return expiry&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Blurb:_makeExplanationBlurbParameter()&lt;br /&gt;
	-- Cover special cases first.&lt;br /&gt;
	if self._protectionObj.title.namespace == 8 then&lt;br /&gt;
		-- MediaWiki namespace&lt;br /&gt;
		return self:_getExpandedMessage(&#039;explanation-blurb-nounprotect&#039;)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Get explanation blurb table keys&lt;br /&gt;
	local action = self._protectionObj.action&lt;br /&gt;
	local level = self._protectionObj.level&lt;br /&gt;
	local talkKey = self._protectionObj.title.isTalkPage and &#039;talk&#039; or &#039;subject&#039;&lt;br /&gt;
&lt;br /&gt;
	-- Find the message in the explanation blurb table and substitute any&lt;br /&gt;
	-- parameters.&lt;br /&gt;
	local explanations = self._cfg.explanationBlurbs&lt;br /&gt;
	local msg&lt;br /&gt;
	if explanations[action][level] and explanations[action][level][talkKey] then&lt;br /&gt;
		msg = explanations[action][level][talkKey]&lt;br /&gt;
	elseif explanations[action][level] and explanations[action][level].default then&lt;br /&gt;
		msg = explanations[action][level].default&lt;br /&gt;
	elseif explanations[action].default and explanations[action].default[talkKey] then&lt;br /&gt;
		msg = explanations[action].default[talkKey]&lt;br /&gt;
	elseif explanations[action].default and explanations[action].default.default then&lt;br /&gt;
		msg = explanations[action].default.default&lt;br /&gt;
	else&lt;br /&gt;
		error(string.format(&lt;br /&gt;
			&#039;could not find explanation blurb for action &amp;quot;%s&amp;quot;, level &amp;quot;%s&amp;quot; and talk key &amp;quot;%s&amp;quot;&#039;,&lt;br /&gt;
			action,&lt;br /&gt;
			level,&lt;br /&gt;
			talkKey&lt;br /&gt;
		), 8)&lt;br /&gt;
	end&lt;br /&gt;
	return self:_substituteParameters(msg)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Blurb:_makeImageLinkParameter()&lt;br /&gt;
	local imageLinks = self._cfg.imageLinks&lt;br /&gt;
	local action = self._protectionObj.action&lt;br /&gt;
	local level = self._protectionObj.level&lt;br /&gt;
	local msg&lt;br /&gt;
	if imageLinks[action][level] then&lt;br /&gt;
		msg = imageLinks[action][level]&lt;br /&gt;
	elseif imageLinks[action].default then&lt;br /&gt;
		msg = imageLinks[action].default&lt;br /&gt;
	else&lt;br /&gt;
		msg = imageLinks.edit.default&lt;br /&gt;
	end&lt;br /&gt;
	return self:_substituteParameters(msg)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Blurb:_makeIntroBlurbParameter()&lt;br /&gt;
	if self._protectionObj:isTemporary() then&lt;br /&gt;
		return self:_getExpandedMessage(&#039;intro-blurb-expiry&#039;)&lt;br /&gt;
	else&lt;br /&gt;
		return self:_getExpandedMessage(&#039;intro-blurb-noexpiry&#039;)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Blurb:_makeIntroFragmentParameter()&lt;br /&gt;
	if self._protectionObj:isTemporary() then&lt;br /&gt;
		return self:_getExpandedMessage(&#039;intro-fragment-expiry&#039;)&lt;br /&gt;
	else&lt;br /&gt;
		return self:_getExpandedMessage(&#039;intro-fragment-noexpiry&#039;)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Blurb:_makePagetypeParameter()&lt;br /&gt;
	local pagetypes = self._cfg.pagetypes&lt;br /&gt;
	return pagetypes[self._protectionObj.title.namespace]&lt;br /&gt;
		or pagetypes.default&lt;br /&gt;
		or error(&#039;no default pagetype defined&#039;, 8)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Blurb:_makeProtectionBlurbParameter()&lt;br /&gt;
	local protectionBlurbs = self._cfg.protectionBlurbs&lt;br /&gt;
	local action = self._protectionObj.action&lt;br /&gt;
	local level = self._protectionObj.level&lt;br /&gt;
	local msg&lt;br /&gt;
	if protectionBlurbs[action][level] then&lt;br /&gt;
		msg = protectionBlurbs[action][level]&lt;br /&gt;
	elseif protectionBlurbs[action].default then&lt;br /&gt;
		msg = protectionBlurbs[action].default&lt;br /&gt;
	elseif protectionBlurbs.edit.default then&lt;br /&gt;
		msg = protectionBlurbs.edit.default&lt;br /&gt;
	else&lt;br /&gt;
		error(&#039;no protection blurb defined for protectionBlurbs.edit.default&#039;, 8)&lt;br /&gt;
	end&lt;br /&gt;
	return self:_substituteParameters(msg)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Blurb:_makeProtectionDateParameter()&lt;br /&gt;
	local protectionDate = self._protectionObj.protectionDate&lt;br /&gt;
	if type(protectionDate) == &#039;number&#039; then&lt;br /&gt;
		return self:_formatDate(protectionDate)&lt;br /&gt;
	else&lt;br /&gt;
		return protectionDate&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Blurb:_makeProtectionLevelParameter()&lt;br /&gt;
	local protectionLevels = self._cfg.protectionLevels&lt;br /&gt;
	local action = self._protectionObj.action&lt;br /&gt;
	local level = self._protectionObj.level&lt;br /&gt;
	local msg&lt;br /&gt;
	if protectionLevels[action][level] then&lt;br /&gt;
		msg = protectionLevels[action][level]&lt;br /&gt;
	elseif protectionLevels[action].default then&lt;br /&gt;
		msg = protectionLevels[action].default&lt;br /&gt;
	elseif protectionLevels.edit.default then&lt;br /&gt;
		msg = protectionLevels.edit.default&lt;br /&gt;
	else&lt;br /&gt;
		error(&#039;no protection level defined for protectionLevels.edit.default&#039;, 8)&lt;br /&gt;
	end&lt;br /&gt;
	return self:_substituteParameters(msg)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Blurb:_makeProtectionLogParameter()&lt;br /&gt;
	local pagename = self._protectionObj.title.prefixedText&lt;br /&gt;
	if self._protectionObj.action == &#039;autoreview&#039; then&lt;br /&gt;
		-- We need the pending changes log.&lt;br /&gt;
		return makeFullUrl(&lt;br /&gt;
			&#039;Special:Log&#039;,&lt;br /&gt;
			{type = &#039;stable&#039;, page = pagename},&lt;br /&gt;
			self:_getExpandedMessage(&#039;pc-log-display&#039;)&lt;br /&gt;
		)&lt;br /&gt;
	else&lt;br /&gt;
		-- We need the protection log.&lt;br /&gt;
		return makeFullUrl(&lt;br /&gt;
			&#039;Special:Log&#039;,&lt;br /&gt;
			{type = &#039;protect&#039;, page = pagename},&lt;br /&gt;
			self:_getExpandedMessage(&#039;protection-log-display&#039;)&lt;br /&gt;
		)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Blurb:_makeTalkPageParameter()&lt;br /&gt;
	return string.format(&lt;br /&gt;
		&#039;[[%s:%s#%s|%s]]&#039;,&lt;br /&gt;
		mw.site.namespaces[self._protectionObj.title.namespace].talk.name,&lt;br /&gt;
		self._protectionObj.title.text,&lt;br /&gt;
		self._args.section or &#039;top&#039;,&lt;br /&gt;
		self:_getExpandedMessage(&#039;talk-page-link-display&#039;)&lt;br /&gt;
	)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Blurb:_makeTooltipBlurbParameter()&lt;br /&gt;
	if self._protectionObj:isTemporary() then&lt;br /&gt;
		return self:_getExpandedMessage(&#039;tooltip-blurb-expiry&#039;)&lt;br /&gt;
	else&lt;br /&gt;
		return self:_getExpandedMessage(&#039;tooltip-blurb-noexpiry&#039;)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Blurb:_makeTooltipFragmentParameter()&lt;br /&gt;
	if self._protectionObj:isTemporary() then&lt;br /&gt;
		return self:_getExpandedMessage(&#039;tooltip-fragment-expiry&#039;)&lt;br /&gt;
	else&lt;br /&gt;
		return self:_getExpandedMessage(&#039;tooltip-fragment-noexpiry&#039;)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Blurb:_makeVandalTemplateParameter()&lt;br /&gt;
	return mw.getCurrentFrame():expandTemplate{&lt;br /&gt;
		title=&amp;quot;vandal-m&amp;quot;,&lt;br /&gt;
		args={self._args.user or self._protectionObj.title.baseText}&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
-- Public methods --&lt;br /&gt;
&lt;br /&gt;
function Blurb:makeBannerText(key)&lt;br /&gt;
	-- Validate input.&lt;br /&gt;
	if not key or not Blurb.bannerTextFields[key] then&lt;br /&gt;
		error(string.format(&lt;br /&gt;
			&#039;&amp;quot;%s&amp;quot; is not a valid banner config field&#039;,&lt;br /&gt;
			tostring(key)&lt;br /&gt;
		), 2)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Generate the text.&lt;br /&gt;
	local msg = self._protectionObj.bannerConfig[key]&lt;br /&gt;
	if type(msg) == &#039;string&#039; then&lt;br /&gt;
		return self:_substituteParameters(msg)&lt;br /&gt;
	elseif type(msg) == &#039;function&#039; then&lt;br /&gt;
		msg = msg(self._protectionObj, self._args)&lt;br /&gt;
		if type(msg) ~= &#039;string&#039; then&lt;br /&gt;
			error(string.format(&lt;br /&gt;
				&#039;bad output from banner config function with key &amp;quot;%s&amp;quot;&#039;&lt;br /&gt;
					.. &#039; (expected string, got %s)&#039;,&lt;br /&gt;
				tostring(key),&lt;br /&gt;
				type(msg)&lt;br /&gt;
			), 4)&lt;br /&gt;
		end&lt;br /&gt;
		return self:_substituteParameters(msg)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- BannerTemplate class&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local BannerTemplate = {}&lt;br /&gt;
BannerTemplate.__index = BannerTemplate&lt;br /&gt;
&lt;br /&gt;
function BannerTemplate.new(protectionObj, cfg)&lt;br /&gt;
	local obj = {}&lt;br /&gt;
	obj._cfg = cfg&lt;br /&gt;
&lt;br /&gt;
	-- Set the image filename.&lt;br /&gt;
	local imageFilename = protectionObj.bannerConfig.image&lt;br /&gt;
	if imageFilename then&lt;br /&gt;
		obj._imageFilename = imageFilename&lt;br /&gt;
	else&lt;br /&gt;
		-- If an image filename isn&#039;t specified explicitly in the banner config,&lt;br /&gt;
		-- generate it from the protection status and the namespace.&lt;br /&gt;
		local action = protectionObj.action&lt;br /&gt;
		local level = protectionObj.level&lt;br /&gt;
		local namespace = protectionObj.title.namespace&lt;br /&gt;
		local reason = protectionObj.reason&lt;br /&gt;
		&lt;br /&gt;
		-- Deal with special cases first.&lt;br /&gt;
		if (&lt;br /&gt;
			namespace == 10&lt;br /&gt;
			or namespace == 828&lt;br /&gt;
			or reason and obj._cfg.indefImageReasons[reason]&lt;br /&gt;
			)&lt;br /&gt;
			and action == &#039;edit&#039;&lt;br /&gt;
			and level == &#039;sysop&#039;&lt;br /&gt;
			and not protectionObj:isTemporary()&lt;br /&gt;
		then&lt;br /&gt;
			-- Fully protected modules and templates get the special red &amp;quot;indef&amp;quot;&lt;br /&gt;
			-- padlock.&lt;br /&gt;
			obj._imageFilename = obj._cfg.msg[&#039;image-filename-indef&#039;]&lt;br /&gt;
		else&lt;br /&gt;
			-- Deal with regular protection types.&lt;br /&gt;
			local images = obj._cfg.images&lt;br /&gt;
			if images[action] then&lt;br /&gt;
				if images[action][level] then&lt;br /&gt;
					obj._imageFilename = images[action][level]&lt;br /&gt;
				elseif images[action].default then&lt;br /&gt;
					obj._imageFilename = images[action].default&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	return setmetatable(obj, BannerTemplate)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function BannerTemplate:renderImage()&lt;br /&gt;
	local filename = self._imageFilename&lt;br /&gt;
		or self._cfg.msg[&#039;image-filename-default&#039;]&lt;br /&gt;
		or &#039;Transparent.gif&#039;&lt;br /&gt;
	return makeFileLink{&lt;br /&gt;
		file = filename,&lt;br /&gt;
		size = (self.imageWidth or 20) .. &#039;px&#039;,&lt;br /&gt;
		alt = self._imageAlt,&lt;br /&gt;
		link = self._imageLink,&lt;br /&gt;
		caption = self.imageCaption&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Banner class&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local Banner = setmetatable({}, BannerTemplate)&lt;br /&gt;
Banner.__index = Banner&lt;br /&gt;
&lt;br /&gt;
function Banner.new(protectionObj, blurbObj, cfg)&lt;br /&gt;
	local obj = BannerTemplate.new(protectionObj, cfg) -- This doesn&#039;t need the blurb.&lt;br /&gt;
	obj.imageWidth = 40&lt;br /&gt;
	obj.imageCaption = blurbObj:makeBannerText(&#039;alt&#039;) -- Large banners use the alt text for the tooltip.&lt;br /&gt;
	obj._reasonText = blurbObj:makeBannerText(&#039;text&#039;)&lt;br /&gt;
	obj._explanationText = blurbObj:makeBannerText(&#039;explanation&#039;)&lt;br /&gt;
	obj._page = protectionObj.title.prefixedText -- Only makes a difference in testing.&lt;br /&gt;
	return setmetatable(obj, Banner)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Banner:__tostring()&lt;br /&gt;
	-- Renders the banner.&lt;br /&gt;
	makeMessageBox = makeMessageBox or require(&#039;Module:Message box&#039;).main&lt;br /&gt;
	local reasonText = self._reasonText or error(&#039;no reason text set&#039;, 2)&lt;br /&gt;
	local explanationText = self._explanationText&lt;br /&gt;
	local mbargs = {&lt;br /&gt;
		page = self._page,&lt;br /&gt;
		type = &#039;protection&#039;,&lt;br /&gt;
		image = self:renderImage(),&lt;br /&gt;
		text = string.format(&lt;br /&gt;
			&amp;quot;&#039;&#039;&#039;%s&#039;&#039;&#039;%s&amp;quot;,&lt;br /&gt;
			reasonText,&lt;br /&gt;
			explanationText and &#039;&amp;lt;br /&amp;gt;&#039; .. explanationText or &#039;&#039;&lt;br /&gt;
		)&lt;br /&gt;
	}&lt;br /&gt;
	return makeMessageBox(&#039;mbox&#039;, mbargs)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Padlock class&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local Padlock = setmetatable({}, BannerTemplate)&lt;br /&gt;
Padlock.__index = Padlock&lt;br /&gt;
&lt;br /&gt;
function Padlock.new(protectionObj, blurbObj, cfg)&lt;br /&gt;
	local obj = BannerTemplate.new(protectionObj, cfg) -- This doesn&#039;t need the blurb.&lt;br /&gt;
	obj.imageWidth = 20&lt;br /&gt;
	obj.imageCaption = blurbObj:makeBannerText(&#039;tooltip&#039;)&lt;br /&gt;
	obj._imageAlt = blurbObj:makeBannerText(&#039;alt&#039;)&lt;br /&gt;
	obj._imageLink = blurbObj:makeBannerText(&#039;link&#039;)&lt;br /&gt;
	obj._indicatorName = cfg.padlockIndicatorNames[protectionObj.action]&lt;br /&gt;
		or cfg.padlockIndicatorNames.default&lt;br /&gt;
		or &#039;pp-default&#039;&lt;br /&gt;
	return setmetatable(obj, Padlock)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function Padlock:__tostring()&lt;br /&gt;
	local frame = mw.getCurrentFrame()&lt;br /&gt;
	-- The nowiki tag helps prevent whitespace at the top of articles.&lt;br /&gt;
	return frame:extensionTag{name = &#039;nowiki&#039;} .. frame:extensionTag{&lt;br /&gt;
		name = &#039;indicator&#039;,&lt;br /&gt;
		args = {name = self._indicatorName},&lt;br /&gt;
		content = self:renderImage()&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Exports&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local p = {}&lt;br /&gt;
&lt;br /&gt;
function p._exportClasses()&lt;br /&gt;
	-- This is used for testing purposes.&lt;br /&gt;
	return {&lt;br /&gt;
		Protection = Protection,&lt;br /&gt;
		Blurb = Blurb,&lt;br /&gt;
		BannerTemplate = BannerTemplate,&lt;br /&gt;
		Banner = Banner,&lt;br /&gt;
		Padlock = Padlock,&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._main(args, cfg, title)&lt;br /&gt;
	args = args or {}&lt;br /&gt;
	cfg = cfg or require(CONFIG_MODULE)&lt;br /&gt;
&lt;br /&gt;
	local protectionObj = Protection.new(args, cfg, title)&lt;br /&gt;
&lt;br /&gt;
	local ret = {}&lt;br /&gt;
&lt;br /&gt;
	-- If a page&#039;s edit protection is equally or more restrictive than its&lt;br /&gt;
	-- protection from some other action, then don&#039;t bother displaying anything&lt;br /&gt;
	-- for the other action (except categories).&lt;br /&gt;
	if not yesno(args.catonly) and (protectionObj.action == &#039;edit&#039; or&lt;br /&gt;
		args.demolevel or&lt;br /&gt;
		not getReachableNodes(&lt;br /&gt;
			cfg.hierarchy,&lt;br /&gt;
			protectionObj.level&lt;br /&gt;
		)[effectiveProtectionLevel(&#039;edit&#039;, protectionObj.title)])&lt;br /&gt;
	then&lt;br /&gt;
		-- Initialise the blurb object&lt;br /&gt;
		local blurbObj = Blurb.new(protectionObj, args, cfg)&lt;br /&gt;
	&lt;br /&gt;
		-- Render the banner&lt;br /&gt;
		if protectionObj:shouldShowLock() then&lt;br /&gt;
			ret[#ret + 1] = tostring(&lt;br /&gt;
				(yesno(args.small) and Padlock or Banner)&lt;br /&gt;
				.new(protectionObj, blurbObj, cfg)&lt;br /&gt;
			)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Render the categories&lt;br /&gt;
	if yesno(args.category) ~= false then&lt;br /&gt;
		ret[#ret + 1] = protectionObj:makeCategoryLinks()&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	return table.concat(ret)	&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(frame, cfg)&lt;br /&gt;
	cfg = cfg or require(CONFIG_MODULE)&lt;br /&gt;
&lt;br /&gt;
	-- Find default args, if any.&lt;br /&gt;
	local parent = frame.getParent and frame:getParent()&lt;br /&gt;
	local defaultArgs = parent and cfg.wrappers[parent:getTitle():gsub(&#039;/sandbox$&#039;, &#039;&#039;)]&lt;br /&gt;
&lt;br /&gt;
	-- Find user args, and use the parent frame if we are being called from a&lt;br /&gt;
	-- wrapper template.&lt;br /&gt;
	getArgs = getArgs or require(&#039;Module:Arguments&#039;).getArgs&lt;br /&gt;
	local userArgs = getArgs(frame, {&lt;br /&gt;
		parentOnly = defaultArgs,&lt;br /&gt;
		frameOnly = not defaultArgs&lt;br /&gt;
	})&lt;br /&gt;
&lt;br /&gt;
	-- Build the args table. User-specified args overwrite default args.&lt;br /&gt;
	local args = {}&lt;br /&gt;
	for k, v in pairs(defaultArgs or {}) do&lt;br /&gt;
		args[k] = v&lt;br /&gt;
	end&lt;br /&gt;
	for k, v in pairs(userArgs) do&lt;br /&gt;
		args[k] = v&lt;br /&gt;
	end&lt;br /&gt;
	return p._main(args, cfg)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:ParamValidator/%D7%AA%D7%99%D7%A2%D7%95%D7%93&amp;diff=5169</id>
		<title>יחידה:ParamValidator/תיעוד</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:ParamValidator/%D7%AA%D7%99%D7%A2%D7%95%D7%93&amp;diff=5169"/>
		<updated>2024-06-26T21:08:33Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: גרסה אחת יובאה&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
This module is based on idea and original code of [[User:IKhitron]].&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
the source of this module is in //he.wikipedia.org/wiki/Module:ParamValidator&lt;br /&gt;
&lt;br /&gt;
This module exports two functions: calculateViolations( frame, subpages ), and validateParams( frame ). &lt;br /&gt;
&lt;br /&gt;
calculateViolations( frame, subpages ) finds templatedata, in template page or in one of its subpages in the list, if provided.&lt;br /&gt;
it returns a table with the violations. if there are none, the table is empty. otherwise it has the structure&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	violation1 = { param1 = value1, param2 = value2 },&lt;br /&gt;
	violation2 = { ... },&lt;br /&gt;
	...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
violation1, violation2 etc. are one of the names of specific violations, as described below. &lt;br /&gt;
param1, param2 etc. are either the names of parameter passed to the template, or defined in templatedata.&lt;br /&gt;
value1, value2 etc. are the values passed to the template, or an empty string if no such parameter was passed.&lt;br /&gt;
&lt;br /&gt;
the different violations are as follow:&lt;br /&gt;
* &#039;&#039;&#039;no-templatedata&#039;&#039;&#039;&amp;lt;br/&amp;gt;no valid tempaltedata was found in tempalte page, or documentation subpage&lt;br /&gt;
* &#039;&#039;&#039;undeclared&#039;&#039;&#039;&amp;lt;br/&amp;gt;named parameters with non-empty value, does not exist in templatedata&lt;br /&gt;
* &#039;&#039;&#039;empty-undeclared&#039;&#039;&#039;&amp;lt;br/&amp;gt;named parameters with empty value, does not exist in templatedata&lt;br /&gt;
* &#039;&#039;&#039;undeclared-numeric&#039;&#039;&#039;&amp;lt;br/&amp;gt;numeric parameters with non-empty value, does not exist in templatedata&lt;br /&gt;
* &#039;&#039;&#039;empty-undeclared-numeric&#039;&#039;&#039;&amp;lt;br/&amp;gt;numeric parameters with empty value, does not exist in templatedata&lt;br /&gt;
* &#039;&#039;&#039;deprecated&#039;&#039;&#039;&amp;lt;br/&amp;gt;parameters with non-empty value, marked as &amp;quot;deprecated&amp;quot; in tempaltedata&lt;br /&gt;
* &#039;&#039;&#039;empty-deprecated&#039;&#039;&#039;&amp;lt;br/&amp;gt;parameters with empty value, marked as &amp;quot;deprecated&amp;quot; in tempaltedata&lt;br /&gt;
* &#039;&#039;&#039;empty-required&#039;&#039;&#039;&amp;lt;br/&amp;gt;missing or empty parameter marked as &amp;quot;required&amp;quot; in tempaltedata&lt;br /&gt;
* &#039;&#039;&#039;incompatible&#039;&#039;&#039;&amp;lt;br/&amp;gt;a non-empty parameter passed to the template, incompatible with the parameter type defined in templatedata &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The second function, validateParams( frame ), can be called from the tempalte&#039; using #invoke.&lt;br /&gt;
it expects a parameter named &amp;quot;options&amp;quot;, which contains the definition of the output. typically, it&#039;s used by placing something like so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{#invoke:ParamValidator | validateParams | options = {{PV default options}} }}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
at the top of the template (be mindful not to add extra spaces and newlines to the template).&lt;br /&gt;
&lt;br /&gt;
the options parameter should be a JSON-encoded string, defining the output, and some special behaviors. &lt;br /&gt;
the example above assumes that a wiki page named &#039;&#039;&#039;&amp;lt;code&amp;gt;Template:PV default options&amp;lt;/code&amp;gt;&#039;&#039;&#039; exists, and contains valid JSON string. &lt;br /&gt;
for each of the violations defined above, &amp;quot;options&amp;quot; may define an output string, so basically, &amp;quot;options&amp;quot; looks like so:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
	violation1: outputstring1,&lt;br /&gt;
	violation2: outputstring2,&lt;br /&gt;
	.... ,&lt;br /&gt;
	behavior1: some value,&lt;br /&gt;
	....&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
not all violations have to be defined. a violation not defined in &amp;quot;options&amp;quot; will be ignored.&lt;br /&gt;
&lt;br /&gt;
when invoked, it extract &amp;quot;subpages&amp;quot; from the options parameter, and calls:&lt;br /&gt;
* calculateViolations( frame, subpages )&lt;br /&gt;
if the returned table is empty, no violation were found, and an empty string is returned and nothing else happens.&lt;br /&gt;
&lt;br /&gt;
otherwise, for each of the violations, i.e., the keys of the returned table, when &amp;quot;options&amp;quot; contains this key,&lt;br /&gt;
the corresonding value is appended to the output.&lt;br /&gt;
&lt;br /&gt;
some further processing is done:&lt;br /&gt;
# several tokens are replaced with calculated values. these are described below.&lt;br /&gt;
# some &amp;quot;meta&amp;quot; violations are calculated: when any none-ignored violation occured, the &amp;quot;any&amp;quot; meta-violation is added to the output in the same way, i.e. the string keyed by &amp;quot;any&amp;quot; in the options is appended to output with appropriate substitutions. 	similarly, &amp;quot;multiple&amp;quot; meta-violation is created when more than one type of non-ignored violations occured.&lt;br /&gt;
# if the output is not empty, a prefix and suffix strings are prepended and appended to it. &lt;br /&gt;
&lt;br /&gt;
these are the tokens and the replacement. &lt;br /&gt;
* &#039;&#039;&#039;templatename&#039;&#039;&#039;&amp;lt;br/&amp;gt;full template name, including namespace.&lt;br /&gt;
* &#039;&#039;&#039;tname_naked&#039;&#039;&#039;&amp;lt;br/&amp;gt;template name without namespace.&lt;br /&gt;
* &#039;&#039;&#039;paramname&#039;&#039;&#039;&amp;lt;br/&amp;gt;comma-separated list of parameters&lt;br /&gt;
* &#039;&#039;&#039;paramandvalue&#039;&#039;&#039;&amp;lt;br/&amp;gt;is replaced by comma-separated list of &amp;quot;name: value&amp;quot; pairs of parameters and values&lt;br /&gt;
the first two are applied to the whole output, including the suffux and prefix,&lt;br /&gt;
and the rest are applied to the individual violations, each with its own list of offending parameters and values.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
the rest of the if the value of some keys is null, this error condition will be ignored, and not counted when calculating &amp;quot;any&amp;quot; and &amp;quot;multiple&amp;quot; conditions.&lt;br /&gt;
&lt;br /&gt;
some other optional fields can be passed via options:&lt;br /&gt;
* &#039;&#039;&#039;doc-subpage&#039;&#039;&#039;&amp;lt;br/&amp;gt;can be either a string, or a list (in square bracktes) of strings, indicating subpages of the template 		that may contain templatedata. &lt;br /&gt;
* &#039;&#039;&#039;ignore&#039;&#039;&#039;&amp;lt;br/&amp;gt;list of patterns. any parameter whose name matches any pattern, will not considered in violation of any of the rules.&lt;br /&gt;
* &#039;&#039;&#039;skip-empty-numeric&#039;&#039;&#039;&amp;lt;br/&amp;gt;if a quoted number, the module will ignore non-declared empty numeric parameters up to this number&lt;br /&gt;
* &#039;&#039;&#039;wrapper-prefix&#039;&#039;&#039;&amp;lt;br/&amp;gt;openning wrapper element of outpot (defaults to &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;div class = &#039;paramvalidator-wrapper&#039;&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;) &lt;br /&gt;
* &#039;&#039;&#039;wrapper-suffix&#039;&#039;&#039;&amp;lt;br/&amp;gt;closing wrapper element of output (defaults to &amp;quot;&amp;lt;nowiki&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;quot;) &lt;br /&gt;
&lt;br /&gt;
additional option parameters, named options1, options2, etc. can be passed. any entry defined in these options will &lt;br /&gt;
override the previous value. a typical use may be like so:&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
typically, this JSON structure will be placed in a separate template, and retrieved for the module-use as shown above.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;{{#invoke:ParamValidator | validateParams | options = {{PV default options}} | options1 = {&amp;quot;key&amp;quot;:&amp;quot;value&amp;quot;} }}&amp;lt;/includeonly&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;quot;key&amp;quot; can override any of the options fields described above.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;includeonly&amp;gt;[[קטגוריה:ניהול פרמטרים|*]]&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:Message_box&amp;diff=5159</id>
		<title>יחידה:Message box</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:Message_box&amp;diff=5159"/>
		<updated>2024-06-26T21:08:31Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: גרסה אחת יובאה&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- This is a meta-module for producing message box templates, including&lt;br /&gt;
-- {{mbox}}, {{ambox}}, {{imbox}}, {{tmbox}}, {{ombox}}, {{cmbox}} and {{fmbox}}.&lt;br /&gt;
&lt;br /&gt;
-- Load necessary modules.&lt;br /&gt;
require(&#039;Module:No globals&#039;)&lt;br /&gt;
local getArgs&lt;br /&gt;
local yesno = require(&#039;Module:Yesno&#039;)&lt;br /&gt;
&lt;br /&gt;
-- Get a language object for formatDate and ucfirst.&lt;br /&gt;
local lang = mw.language.getContentLanguage()&lt;br /&gt;
&lt;br /&gt;
-- Define constants&lt;br /&gt;
local CONFIG_MODULE = &#039;Module:Message box/configuration&#039;&lt;br /&gt;
local DEMOSPACES = {talk = &#039;tmbox&#039;, image = &#039;imbox&#039;, file = &#039;imbox&#039;, category = &#039;cmbox&#039;, article = &#039;ambox&#039;, main = &#039;ambox&#039;}&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Helper functions&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local function getTitleObject(...)&lt;br /&gt;
	-- Get the title object, passing the function through pcall&lt;br /&gt;
	-- in case we are over the expensive function count limit.&lt;br /&gt;
	local success, title = pcall(mw.title.new, ...)&lt;br /&gt;
	if success then&lt;br /&gt;
		return title&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function union(t1, t2)&lt;br /&gt;
	-- Returns the union of two arrays.&lt;br /&gt;
	local vals = {}&lt;br /&gt;
	for i, v in ipairs(t1) do&lt;br /&gt;
		vals[v] = true&lt;br /&gt;
	end&lt;br /&gt;
	for i, v in ipairs(t2) do&lt;br /&gt;
		vals[v] = true&lt;br /&gt;
	end&lt;br /&gt;
	local ret = {}&lt;br /&gt;
	for k in pairs(vals) do&lt;br /&gt;
		table.insert(ret, k)&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(ret)&lt;br /&gt;
	return ret&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function getArgNums(args, prefix)&lt;br /&gt;
	local nums = {}&lt;br /&gt;
	for k, v in pairs(args) do&lt;br /&gt;
		local num = mw.ustring.match(tostring(k), &#039;^&#039; .. prefix .. &#039;([1-9]%d*)$&#039;)&lt;br /&gt;
		if num then&lt;br /&gt;
			table.insert(nums, tonumber(num))&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	table.sort(nums)&lt;br /&gt;
	return nums&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Box class definition&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local MessageBox = {}&lt;br /&gt;
MessageBox.__index = MessageBox&lt;br /&gt;
&lt;br /&gt;
function MessageBox.new(boxType, args, cfg)&lt;br /&gt;
	args = args or {}&lt;br /&gt;
	local obj = {}&lt;br /&gt;
&lt;br /&gt;
	-- Set the title object and the namespace.&lt;br /&gt;
	obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()&lt;br /&gt;
&lt;br /&gt;
	-- Set the config for our box type.&lt;br /&gt;
	obj.cfg = cfg[boxType]&lt;br /&gt;
	if not obj.cfg then&lt;br /&gt;
		local ns = obj.title.namespace&lt;br /&gt;
		-- boxType is &amp;quot;mbox&amp;quot; or invalid input&lt;br /&gt;
		if args.demospace and args.demospace ~= &#039;&#039; then&lt;br /&gt;
			-- implement demospace parameter of mbox&lt;br /&gt;
			local demospace = string.lower(args.demospace)&lt;br /&gt;
			if DEMOSPACES[demospace] then&lt;br /&gt;
				-- use template from DEMOSPACES&lt;br /&gt;
				obj.cfg = cfg[DEMOSPACES[demospace]]&lt;br /&gt;
			elseif string.find( demospace, &#039;talk&#039; ) then&lt;br /&gt;
				-- demo as a talk page&lt;br /&gt;
				obj.cfg = cfg.tmbox&lt;br /&gt;
			else&lt;br /&gt;
				-- default to ombox&lt;br /&gt;
				obj.cfg = cfg.ombox&lt;br /&gt;
			end&lt;br /&gt;
		elseif ns == 0 then&lt;br /&gt;
			obj.cfg = cfg.ambox -- main namespace&lt;br /&gt;
		elseif ns == 6 then&lt;br /&gt;
			obj.cfg = cfg.imbox -- file namespace&lt;br /&gt;
		elseif ns == 14 then&lt;br /&gt;
			obj.cfg = cfg.cmbox -- category namespace&lt;br /&gt;
		else&lt;br /&gt;
			local nsTable = mw.site.namespaces[ns]&lt;br /&gt;
			if nsTable and nsTable.isTalk then&lt;br /&gt;
				obj.cfg = cfg.tmbox -- any talk namespace&lt;br /&gt;
			else&lt;br /&gt;
				obj.cfg = cfg.ombox -- other namespaces or invalid input&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Set the arguments, and remove all blank arguments except for the ones&lt;br /&gt;
	-- listed in cfg.allowBlankParams.&lt;br /&gt;
	do&lt;br /&gt;
		local newArgs = {}&lt;br /&gt;
		for k, v in pairs(args) do&lt;br /&gt;
			if v ~= &#039;&#039; then&lt;br /&gt;
				newArgs[k] = v&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		for i, param in ipairs(obj.cfg.allowBlankParams or {}) do&lt;br /&gt;
			newArgs[param] = args[param]&lt;br /&gt;
		end&lt;br /&gt;
		obj.args = newArgs&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Define internal data structure.&lt;br /&gt;
	obj.categories = {}&lt;br /&gt;
	obj.classes = {}&lt;br /&gt;
	-- For lazy loading of [[Module:Category handler]].&lt;br /&gt;
	obj.hasCategories = false&lt;br /&gt;
&lt;br /&gt;
	return setmetatable(obj, MessageBox)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:addCat(ns, cat, sort)&lt;br /&gt;
	if not cat then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	if sort then&lt;br /&gt;
		cat = string.format(&#039;[[Category:%s|%s]]&#039;, cat, sort)&lt;br /&gt;
	else&lt;br /&gt;
		cat = string.format(&#039;[[Category:%s]]&#039;, cat)&lt;br /&gt;
	end&lt;br /&gt;
	self.hasCategories = true&lt;br /&gt;
	self.categories[ns] = self.categories[ns] or {}&lt;br /&gt;
	table.insert(self.categories[ns], cat)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:addClass(class)&lt;br /&gt;
	if not class then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
	table.insert(self.classes, class)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:setParameters()&lt;br /&gt;
	local args = self.args&lt;br /&gt;
	local cfg = self.cfg&lt;br /&gt;
&lt;br /&gt;
	-- Get type data.&lt;br /&gt;
	self.type = args.type&lt;br /&gt;
	local typeData = cfg.types[self.type]&lt;br /&gt;
	self.invalidTypeError = cfg.showInvalidTypeError&lt;br /&gt;
		and self.type&lt;br /&gt;
		and not typeData&lt;br /&gt;
	typeData = typeData or cfg.types[cfg.default]&lt;br /&gt;
	self.typeClass = typeData.class&lt;br /&gt;
	self.typeImage = typeData.image&lt;br /&gt;
&lt;br /&gt;
	-- Find if the box has been wrongly substituted.&lt;br /&gt;
	self.isSubstituted = cfg.substCheck and args.subst == &#039;SUBST&#039;&lt;br /&gt;
&lt;br /&gt;
	-- Find whether we are using a small message box.&lt;br /&gt;
	self.isSmall = cfg.allowSmall and (&lt;br /&gt;
		cfg.smallParam and args.small == cfg.smallParam&lt;br /&gt;
		or not cfg.smallParam and yesno(args.small)&lt;br /&gt;
	)&lt;br /&gt;
&lt;br /&gt;
	-- Add attributes, classes and styles.&lt;br /&gt;
	self.id = args.id&lt;br /&gt;
	self.name = args.name&lt;br /&gt;
	if self.name then&lt;br /&gt;
		self:addClass(&#039;box-&#039; .. string.gsub(self.name,&#039; &#039;,&#039;_&#039;))&lt;br /&gt;
	end&lt;br /&gt;
	if yesno(args.plainlinks) ~= false then&lt;br /&gt;
		self:addClass(&#039;plainlinks&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	for _, class in ipairs(cfg.classes or {}) do&lt;br /&gt;
		self:addClass(class)&lt;br /&gt;
	end&lt;br /&gt;
	if self.isSmall then&lt;br /&gt;
		self:addClass(cfg.smallClass or &#039;mbox-small&#039;)&lt;br /&gt;
	end&lt;br /&gt;
	self:addClass(self.typeClass)&lt;br /&gt;
	self:addClass(args.class)&lt;br /&gt;
	self.style = args.style&lt;br /&gt;
	self.attrs = args.attrs&lt;br /&gt;
&lt;br /&gt;
	-- Set text style.&lt;br /&gt;
	self.textstyle = args.textstyle&lt;br /&gt;
&lt;br /&gt;
	-- Find if we are on the template page or not. This functionality is only&lt;br /&gt;
	-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory&lt;br /&gt;
	-- and cfg.templateCategoryRequireName are set.&lt;br /&gt;
	self.useCollapsibleTextFields = cfg.useCollapsibleTextFields&lt;br /&gt;
	if self.useCollapsibleTextFields&lt;br /&gt;
		or cfg.templateCategory&lt;br /&gt;
		and cfg.templateCategoryRequireName&lt;br /&gt;
	then&lt;br /&gt;
		if self.name then&lt;br /&gt;
			local templateName = mw.ustring.match(&lt;br /&gt;
				self.name,&lt;br /&gt;
				&#039;^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$&#039;&lt;br /&gt;
			) or self.name&lt;br /&gt;
			templateName = &#039;Template:&#039; .. templateName&lt;br /&gt;
			self.templateTitle = getTitleObject(templateName)&lt;br /&gt;
		end&lt;br /&gt;
		self.isTemplatePage = self.templateTitle&lt;br /&gt;
			and mw.title.equals(self.title, self.templateTitle)&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	-- Process data for collapsible text fields. At the moment these are only&lt;br /&gt;
	-- used in {{ambox}}.&lt;br /&gt;
	if self.useCollapsibleTextFields then&lt;br /&gt;
		-- Get the self.issue value.&lt;br /&gt;
		if self.isSmall and args.smalltext then&lt;br /&gt;
			self.issue = args.smalltext&lt;br /&gt;
		else&lt;br /&gt;
			local sect&lt;br /&gt;
			if args.sect == &#039;&#039; then&lt;br /&gt;
				sect = &#039;This &#039; .. (cfg.sectionDefault or &#039;page&#039;)&lt;br /&gt;
			elseif type(args.sect) == &#039;string&#039; then&lt;br /&gt;
				sect = &#039;This &#039; .. args.sect&lt;br /&gt;
			end&lt;br /&gt;
			local issue = args.issue&lt;br /&gt;
			issue = type(issue) == &#039;string&#039; and issue ~= &#039;&#039; and issue or nil&lt;br /&gt;
			local text = args.text&lt;br /&gt;
			text = type(text) == &#039;string&#039; and text or nil&lt;br /&gt;
			local issues = {}&lt;br /&gt;
			table.insert(issues, sect)&lt;br /&gt;
			table.insert(issues, issue)&lt;br /&gt;
			table.insert(issues, text)&lt;br /&gt;
			self.issue = table.concat(issues, &#039; &#039;)&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Get the self.talk value.&lt;br /&gt;
		local talk = args.talk&lt;br /&gt;
		-- Show talk links on the template page or template subpages if the talk&lt;br /&gt;
		-- parameter is blank.&lt;br /&gt;
		if talk == &#039;&#039;&lt;br /&gt;
			and self.templateTitle&lt;br /&gt;
			and (&lt;br /&gt;
				mw.title.equals(self.templateTitle, self.title)&lt;br /&gt;
				or self.title:isSubpageOf(self.templateTitle)&lt;br /&gt;
			)&lt;br /&gt;
		then&lt;br /&gt;
			talk = &#039;#&#039;&lt;br /&gt;
		elseif talk == &#039;&#039; then&lt;br /&gt;
			talk = nil&lt;br /&gt;
		end&lt;br /&gt;
		if talk then&lt;br /&gt;
			-- If the talk value is a talk page, make a link to that page. Else&lt;br /&gt;
			-- assume that it&#039;s a section heading, and make a link to the talk&lt;br /&gt;
			-- page of the current page with that section heading.&lt;br /&gt;
			local talkTitle = getTitleObject(talk)&lt;br /&gt;
			local talkArgIsTalkPage = true&lt;br /&gt;
			if not talkTitle or not talkTitle.isTalkPage then&lt;br /&gt;
				talkArgIsTalkPage = false&lt;br /&gt;
				talkTitle = getTitleObject(&lt;br /&gt;
					self.title.text,&lt;br /&gt;
					mw.site.namespaces[self.title.namespace].talk.id&lt;br /&gt;
				)&lt;br /&gt;
			end&lt;br /&gt;
			if talkTitle and talkTitle.exists then&lt;br /&gt;
				local talkText = &#039;Relevant discussion may be found on&#039;&lt;br /&gt;
				if talkArgIsTalkPage then&lt;br /&gt;
					talkText = string.format(&lt;br /&gt;
						&#039;%s [[%s|%s]].&#039;,&lt;br /&gt;
						talkText,&lt;br /&gt;
						talk,&lt;br /&gt;
						talkTitle.prefixedText&lt;br /&gt;
					)&lt;br /&gt;
				else&lt;br /&gt;
					talkText = string.format(&lt;br /&gt;
						&#039;%s the [[%s#%s|talk page]].&#039;,&lt;br /&gt;
						talkText,&lt;br /&gt;
						talkTitle.prefixedText,&lt;br /&gt;
						talk&lt;br /&gt;
					)&lt;br /&gt;
				end&lt;br /&gt;
				self.talk = talkText&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Get other values.&lt;br /&gt;
		self.fix = args.fix ~= &#039;&#039; and args.fix or nil&lt;br /&gt;
		local date&lt;br /&gt;
		if args.date and args.date ~= &#039;&#039; then&lt;br /&gt;
			date = args.date&lt;br /&gt;
		elseif args.date == &#039;&#039; and self.isTemplatePage then&lt;br /&gt;
			date = lang:formatDate(&#039;F Y&#039;)&lt;br /&gt;
		end&lt;br /&gt;
		if date then&lt;br /&gt;
			self.date = string.format(&amp;quot; &amp;lt;small class=&#039;date-container&#039;&amp;gt;&#039;&#039;(&amp;lt;span class=&#039;date&#039;&amp;gt;%s&amp;lt;/span&amp;gt;)&#039;&#039;&amp;lt;/small&amp;gt;&amp;quot;, date)&lt;br /&gt;
		end&lt;br /&gt;
		self.info = args.info&lt;br /&gt;
		if yesno(args.removalnotice) then&lt;br /&gt;
			self.removalNotice = cfg.removalNotice&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Set the non-collapsible text field. At the moment this is used by all box&lt;br /&gt;
	-- types other than ambox, and also by ambox when small=yes.&lt;br /&gt;
	if self.isSmall then&lt;br /&gt;
		self.text = args.smalltext or args.text&lt;br /&gt;
	else&lt;br /&gt;
		self.text = args.text&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Set the below row.&lt;br /&gt;
	self.below = cfg.below and args.below&lt;br /&gt;
&lt;br /&gt;
	-- General image settings.&lt;br /&gt;
	self.imageCellDiv = not self.isSmall and cfg.imageCellDiv&lt;br /&gt;
	self.imageEmptyCell = cfg.imageEmptyCell&lt;br /&gt;
	if cfg.imageEmptyCellStyle then&lt;br /&gt;
		self.imageEmptyCellStyle = &#039;border:none;padding:0px;width:1px&#039;&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Left image settings.&lt;br /&gt;
	local imageLeft = self.isSmall and args.smallimage or args.image&lt;br /&gt;
	if cfg.imageCheckBlank and imageLeft ~= &#039;blank&#039; and imageLeft ~= &#039;none&#039;&lt;br /&gt;
		or not cfg.imageCheckBlank and imageLeft ~= &#039;none&#039;&lt;br /&gt;
	then&lt;br /&gt;
		self.imageLeft = imageLeft&lt;br /&gt;
		if not imageLeft then&lt;br /&gt;
			local imageSize = self.isSmall&lt;br /&gt;
				and (cfg.imageSmallSize or &#039;30x30px&#039;)&lt;br /&gt;
				or &#039;40x40px&#039;&lt;br /&gt;
			self.imageLeft = string.format(&#039;[[File:%s|%s|link=|alt=]]&#039;, self.typeImage&lt;br /&gt;
				or &#039;Imbox notice.png&#039;, imageSize)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Right image settings.&lt;br /&gt;
	local imageRight = self.isSmall and args.smallimageright or args.imageright&lt;br /&gt;
	if not (cfg.imageRightNone and imageRight == &#039;none&#039;) then&lt;br /&gt;
		self.imageRight = imageRight&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:setMainspaceCategories()&lt;br /&gt;
	local args = self.args&lt;br /&gt;
	local cfg = self.cfg&lt;br /&gt;
&lt;br /&gt;
	if not cfg.allowMainspaceCategories then&lt;br /&gt;
		return nil&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local nums = {}&lt;br /&gt;
	for _, prefix in ipairs{&#039;cat&#039;, &#039;category&#039;, &#039;all&#039;} do&lt;br /&gt;
		args[prefix .. &#039;1&#039;] = args[prefix]&lt;br /&gt;
		nums = union(nums, getArgNums(args, prefix))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- The following is roughly equivalent to the old {{Ambox/category}}.&lt;br /&gt;
	local date = args.date&lt;br /&gt;
	date = type(date) == &#039;string&#039; and date&lt;br /&gt;
	local preposition = &#039;from&#039;&lt;br /&gt;
	for _, num in ipairs(nums) do&lt;br /&gt;
		local mainCat = args[&#039;cat&#039; .. tostring(num)]&lt;br /&gt;
			or args[&#039;category&#039; .. tostring(num)]&lt;br /&gt;
		local allCat = args[&#039;all&#039; .. tostring(num)]&lt;br /&gt;
		mainCat = type(mainCat) == &#039;string&#039; and mainCat&lt;br /&gt;
		allCat = type(allCat) == &#039;string&#039; and allCat&lt;br /&gt;
		if mainCat and date and date ~= &#039;&#039; then&lt;br /&gt;
			local catTitle = string.format(&#039;%s %s %s&#039;, mainCat, preposition, date)&lt;br /&gt;
			self:addCat(0, catTitle)&lt;br /&gt;
			catTitle = getTitleObject(&#039;Category:&#039; .. catTitle)&lt;br /&gt;
			if not catTitle or not catTitle.exists then&lt;br /&gt;
				self:addCat(0, &#039;Articles with invalid date parameter in template&#039;)&lt;br /&gt;
			end&lt;br /&gt;
		elseif mainCat and (not date or date == &#039;&#039;) then&lt;br /&gt;
			self:addCat(0, mainCat)&lt;br /&gt;
		end&lt;br /&gt;
		if allCat then&lt;br /&gt;
			self:addCat(0, allCat)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:setTemplateCategories()&lt;br /&gt;
	local args = self.args&lt;br /&gt;
	local cfg = self.cfg&lt;br /&gt;
&lt;br /&gt;
	-- Add template categories.&lt;br /&gt;
	if cfg.templateCategory then&lt;br /&gt;
		if cfg.templateCategoryRequireName then&lt;br /&gt;
			if self.isTemplatePage then&lt;br /&gt;
				self:addCat(10, cfg.templateCategory)&lt;br /&gt;
			end&lt;br /&gt;
		elseif not self.title.isSubpage then&lt;br /&gt;
			self:addCat(10, cfg.templateCategory)&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add template error categories.&lt;br /&gt;
	if cfg.templateErrorCategory then&lt;br /&gt;
		local templateErrorCategory = cfg.templateErrorCategory&lt;br /&gt;
		local templateCat, templateSort&lt;br /&gt;
		if not self.name and not self.title.isSubpage then&lt;br /&gt;
			templateCat = templateErrorCategory&lt;br /&gt;
		elseif self.isTemplatePage then&lt;br /&gt;
			local paramsToCheck = cfg.templateErrorParamsToCheck or {}&lt;br /&gt;
			local count = 0&lt;br /&gt;
			for i, param in ipairs(paramsToCheck) do&lt;br /&gt;
				if not args[param] then&lt;br /&gt;
					count = count + 1&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
			if count &amp;gt; 0 then&lt;br /&gt;
				templateCat = templateErrorCategory&lt;br /&gt;
				templateSort = tostring(count)&lt;br /&gt;
			end&lt;br /&gt;
			if self.categoryNums and #self.categoryNums &amp;gt; 0 then&lt;br /&gt;
				templateCat = templateErrorCategory&lt;br /&gt;
				templateSort = &#039;C&#039;&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
		self:addCat(10, templateCat, templateSort)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:setAllNamespaceCategories()&lt;br /&gt;
	-- Set categories for all namespaces.&lt;br /&gt;
	if self.invalidTypeError then&lt;br /&gt;
		local allSort = (self.title.namespace == 0 and &#039;Main:&#039; or &#039;&#039;) .. self.title.prefixedText&lt;br /&gt;
		self:addCat(&#039;all&#039;, &#039;Wikipedia message box parameter needs fixing&#039;, allSort)&lt;br /&gt;
	end&lt;br /&gt;
	if self.isSubstituted then&lt;br /&gt;
		self:addCat(&#039;all&#039;, &#039;Pages with incorrectly substituted templates&#039;)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:setCategories()&lt;br /&gt;
	if self.title.namespace == 0 then&lt;br /&gt;
		self:setMainspaceCategories()&lt;br /&gt;
	elseif self.title.namespace == 10 then&lt;br /&gt;
		self:setTemplateCategories()&lt;br /&gt;
	end&lt;br /&gt;
	self:setAllNamespaceCategories()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:renderCategories()&lt;br /&gt;
	if not self.hasCategories then&lt;br /&gt;
		-- No categories added, no need to pass them to Category handler so,&lt;br /&gt;
		-- if it was invoked, it would return the empty string.&lt;br /&gt;
		-- So we shortcut and return the empty string.&lt;br /&gt;
		return &amp;quot;&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
	-- Convert category tables to strings and pass them through&lt;br /&gt;
	-- [[Module:Category handler]].&lt;br /&gt;
	return require(&#039;Module:Category handler&#039;)._main{&lt;br /&gt;
		main = table.concat(self.categories[0] or {}),&lt;br /&gt;
		template = table.concat(self.categories[10] or {}),&lt;br /&gt;
		all = table.concat(self.categories.all or {}),&lt;br /&gt;
		nocat = self.args.nocat,&lt;br /&gt;
		page = self.args.page&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function MessageBox:export()&lt;br /&gt;
	local root = mw.html.create()&lt;br /&gt;
&lt;br /&gt;
	-- Add the subst check error.&lt;br /&gt;
	if self.isSubstituted and self.name then&lt;br /&gt;
		root:tag(&#039;b&#039;)&lt;br /&gt;
			:addClass(&#039;error&#039;)&lt;br /&gt;
			:wikitext(string.format(&lt;br /&gt;
				&#039;Template &amp;lt;code&amp;gt;%s[[Template:%s|%s]]%s&amp;lt;/code&amp;gt; has been incorrectly substituted.&#039;,&lt;br /&gt;
				mw.text.nowiki(&#039;{{&#039;), self.name, self.name, mw.text.nowiki(&#039;}}&#039;)&lt;br /&gt;
			))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Create the box table.&lt;br /&gt;
	local boxTable = root:tag(&#039;table&#039;)&lt;br /&gt;
	boxTable:attr(&#039;id&#039;, self.id or nil)&lt;br /&gt;
	for i, class in ipairs(self.classes or {}) do&lt;br /&gt;
		boxTable:addClass(class or nil)&lt;br /&gt;
	end&lt;br /&gt;
	boxTable&lt;br /&gt;
		:cssText(self.style or nil)&lt;br /&gt;
		:attr(&#039;role&#039;, &#039;presentation&#039;)&lt;br /&gt;
&lt;br /&gt;
	if self.attrs then&lt;br /&gt;
		boxTable:attr(self.attrs)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add the left-hand image.&lt;br /&gt;
	local row = boxTable:tag(&#039;tr&#039;)&lt;br /&gt;
	if self.imageLeft then&lt;br /&gt;
		local imageLeftCell = row:tag(&#039;td&#039;):addClass(&#039;mbox-image&#039;)&lt;br /&gt;
		if self.imageCellDiv then&lt;br /&gt;
			-- If we are using a div, redefine imageLeftCell so that the image&lt;br /&gt;
			-- is inside it. Divs use style=&amp;quot;width: 52px;&amp;quot;, which limits the&lt;br /&gt;
			-- image width to 52px. If any images in a div are wider than that,&lt;br /&gt;
			-- they may overlap with the text or cause other display problems.&lt;br /&gt;
			imageLeftCell = imageLeftCell:tag(&#039;div&#039;):css(&#039;width&#039;, &#039;52px&#039;)&lt;br /&gt;
		end&lt;br /&gt;
		imageLeftCell:wikitext(self.imageLeft or nil)&lt;br /&gt;
	elseif self.imageEmptyCell then&lt;br /&gt;
		-- Some message boxes define an empty cell if no image is specified, and&lt;br /&gt;
		-- some don&#039;t. The old template code in templates where empty cells are&lt;br /&gt;
		-- specified gives the following hint: &amp;quot;No image. Cell with some width&lt;br /&gt;
		-- or padding necessary for text cell to have 100% width.&amp;quot;&lt;br /&gt;
		row:tag(&#039;td&#039;)&lt;br /&gt;
			:addClass(&#039;mbox-empty-cell&#039;)&lt;br /&gt;
			:cssText(self.imageEmptyCellStyle or nil)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add the text.&lt;br /&gt;
	local textCell = row:tag(&#039;td&#039;):addClass(&#039;mbox-text&#039;)&lt;br /&gt;
	if self.useCollapsibleTextFields then&lt;br /&gt;
		-- The message box uses advanced text parameters that allow things to be&lt;br /&gt;
		-- collapsible. At the moment, only ambox uses this.&lt;br /&gt;
		textCell:cssText(self.textstyle or nil)&lt;br /&gt;
		local textCellDiv = textCell:tag(&#039;div&#039;)&lt;br /&gt;
		textCellDiv&lt;br /&gt;
			:addClass(&#039;mbox-text-span&#039;)&lt;br /&gt;
			:wikitext(self.issue or nil)&lt;br /&gt;
		if (self.talk or self.fix) and not self.isSmall then&lt;br /&gt;
			textCellDiv:tag(&#039;span&#039;)&lt;br /&gt;
				:addClass(&#039;hide-when-compact&#039;)&lt;br /&gt;
				:wikitext(self.talk and (&#039; &#039; .. self.talk) or nil)&lt;br /&gt;
				:wikitext(self.fix and (&#039; &#039; .. self.fix) or nil)&lt;br /&gt;
		end&lt;br /&gt;
		textCellDiv:wikitext(self.date and (&#039; &#039; .. self.date) or nil)&lt;br /&gt;
		if self.info and not self.isSmall then&lt;br /&gt;
			textCellDiv&lt;br /&gt;
				:tag(&#039;span&#039;)&lt;br /&gt;
				:addClass(&#039;hide-when-compact&#039;)&lt;br /&gt;
				:wikitext(self.info and (&#039; &#039; .. self.info) or nil)&lt;br /&gt;
		end&lt;br /&gt;
		if self.removalNotice then&lt;br /&gt;
			textCellDiv:tag(&#039;small&#039;)&lt;br /&gt;
				:addClass(&#039;hide-when-compact&#039;)&lt;br /&gt;
				:tag(&#039;i&#039;)&lt;br /&gt;
					:wikitext(string.format(&amp;quot; (%s)&amp;quot;, self.removalNotice))&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		-- Default text formatting - anything goes.&lt;br /&gt;
		textCell&lt;br /&gt;
			:cssText(self.textstyle or nil)&lt;br /&gt;
			:wikitext(self.text or nil)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add the right-hand image.&lt;br /&gt;
	if self.imageRight then&lt;br /&gt;
		local imageRightCell = row:tag(&#039;td&#039;):addClass(&#039;mbox-imageright&#039;)&lt;br /&gt;
		if self.imageCellDiv then&lt;br /&gt;
			-- If we are using a div, redefine imageRightCell so that the image&lt;br /&gt;
			-- is inside it.&lt;br /&gt;
			imageRightCell = imageRightCell:tag(&#039;div&#039;):css(&#039;width&#039;, &#039;52px&#039;)&lt;br /&gt;
		end&lt;br /&gt;
		imageRightCell&lt;br /&gt;
			:wikitext(self.imageRight or nil)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add the below row.&lt;br /&gt;
	if self.below then&lt;br /&gt;
		boxTable:tag(&#039;tr&#039;)&lt;br /&gt;
			:tag(&#039;td&#039;)&lt;br /&gt;
				:attr(&#039;colspan&#039;, self.imageRight and &#039;3&#039; or &#039;2&#039;)&lt;br /&gt;
				:addClass(&#039;mbox-text&#039;)&lt;br /&gt;
				:cssText(self.textstyle or nil)&lt;br /&gt;
				:wikitext(self.below or nil)&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add error message for invalid type parameters.&lt;br /&gt;
	if self.invalidTypeError then&lt;br /&gt;
		root:tag(&#039;div&#039;)&lt;br /&gt;
			:css(&#039;text-align&#039;, &#039;center&#039;)&lt;br /&gt;
			:wikitext(string.format(&lt;br /&gt;
				&#039;This message box is using an invalid &amp;quot;type=%s&amp;quot; parameter and needs fixing.&#039;,&lt;br /&gt;
				self.type or &#039;&#039;&lt;br /&gt;
			))&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	-- Add categories.&lt;br /&gt;
	root:wikitext(self:renderCategories() or nil)&lt;br /&gt;
&lt;br /&gt;
	return tostring(root)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
-- Exports&lt;br /&gt;
--------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
local p, mt = {}, {}&lt;br /&gt;
&lt;br /&gt;
function p._exportClasses()&lt;br /&gt;
	-- For testing.&lt;br /&gt;
	return {&lt;br /&gt;
		MessageBox = MessageBox&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p.main(boxType, args, cfgTables)&lt;br /&gt;
	local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE))&lt;br /&gt;
	box:setParameters()&lt;br /&gt;
	box:setCategories()&lt;br /&gt;
	return box:export()&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function mt.__index(t, k)&lt;br /&gt;
	return function (frame)&lt;br /&gt;
		if not getArgs then&lt;br /&gt;
			getArgs = require(&#039;Module:Arguments&#039;).getArgs&lt;br /&gt;
		end&lt;br /&gt;
		return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return setmetatable(p, mt)&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:InfoboxImage&amp;diff=5155</id>
		<title>יחידה:InfoboxImage</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:InfoboxImage&amp;diff=5155"/>
		<updated>2024-06-26T21:08:30Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: גרסה אחת יובאה&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;-- Inputs:&lt;br /&gt;
--    image - Can either be a bare filename (with or without the File:/Image: prefix) or a fully formatted image link&lt;br /&gt;
--    size - size to display the image&lt;br /&gt;
--    maxsize - maximum size for image&lt;br /&gt;
--    sizedefault - default size to display the image if size param is blank&lt;br /&gt;
--    alt - alt text for image&lt;br /&gt;
--    title - title text for image&lt;br /&gt;
--    border - set to yes if border&lt;br /&gt;
--    center - set to yes, if the image has to be centered&lt;br /&gt;
--    upright - upright image param&lt;br /&gt;
--    suppressplaceholder - if yes then checks to see if image is a placeholder and suppresses it&lt;br /&gt;
--    link - page to visit when clicking on image&lt;br /&gt;
-- Outputs:&lt;br /&gt;
--    Formatted image.&lt;br /&gt;
-- More details available at the &amp;quot;Module:InfoboxImage/doc&amp;quot; page&lt;br /&gt;
&lt;br /&gt;
local i = {};&lt;br /&gt;
&lt;br /&gt;
local placeholder_image = {&lt;br /&gt;
    &amp;quot;Blue - Replace this image female.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Blue - Replace this image male.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Female no free image yet.png&amp;quot;,&lt;br /&gt;
    &amp;quot;Flag of None (square).svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Flag of None.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Flag of.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Green - Replace this image female.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Green - Replace this image male.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Image is needed female.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Image is needed male.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Location map of None.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Male no free image yet.png&amp;quot;,&lt;br /&gt;
    &amp;quot;Missing flag.png&amp;quot;,&lt;br /&gt;
    &amp;quot;No flag.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;No free portrait.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;No portrait (female).svg&amp;quot;,&lt;br /&gt;
    &amp;quot;No portrait (male).svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Red - Replace this image female.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Red - Replace this image male.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Replace this image female (blue).svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Replace this image female.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Replace this image male (blue).svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Replace this image male.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Silver - Replace this image female.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Silver - Replace this image male.svg&amp;quot;,&lt;br /&gt;
    &amp;quot;Replace this image.svg&amp;quot;,&lt;br /&gt;
	&amp;quot;Cricket no pic.png&amp;quot;,&lt;br /&gt;
	&amp;quot;CarersLogo.gif&amp;quot;,&lt;br /&gt;
	&amp;quot;Diagram Needed.svg&amp;quot;,&lt;br /&gt;
	&amp;quot;Example.jpg&amp;quot;,&lt;br /&gt;
	&amp;quot;Image placeholder.png&amp;quot;,&lt;br /&gt;
	&amp;quot;No male portrait.svg&amp;quot;,&lt;br /&gt;
	&amp;quot;Nocover-upload.png&amp;quot;,&lt;br /&gt;
	&amp;quot;NoDVDcover copy.png&amp;quot;,&lt;br /&gt;
	&amp;quot;Noribbon.svg&amp;quot;,&lt;br /&gt;
	&amp;quot;No portrait-BFD-test.svg&amp;quot;,&lt;br /&gt;
	&amp;quot;Placeholder barnstar ribbon.png&amp;quot;,&lt;br /&gt;
	&amp;quot;Project Trains no image.png&amp;quot;,&lt;br /&gt;
	&amp;quot;Image-request.png&amp;quot;,&lt;br /&gt;
	&amp;quot;Sin bandera.svg&amp;quot;,&lt;br /&gt;
	&amp;quot;Sin escudo.svg&amp;quot;,&lt;br /&gt;
	&amp;quot;Replace this image - temple.png&amp;quot;,&lt;br /&gt;
	&amp;quot;Replace this image butterfly.png&amp;quot;,&lt;br /&gt;
	&amp;quot;Replace this image.svg&amp;quot;,&lt;br /&gt;
	&amp;quot;Replace this image1.svg&amp;quot;,&lt;br /&gt;
	&amp;quot;Resolution angle.png&amp;quot;,&lt;br /&gt;
	&amp;quot;Image-No portrait-text-BFD-test.svg&amp;quot;,&lt;br /&gt;
	&amp;quot;Insert image here.svg&amp;quot;,&lt;br /&gt;
	&amp;quot;No image available.png&amp;quot;,&lt;br /&gt;
	&amp;quot;NO IMAGE YET square.png&amp;quot;,&lt;br /&gt;
	&amp;quot;NO IMAGE YET.png&amp;quot;,&lt;br /&gt;
	&amp;quot;No Photo Available.svg&amp;quot;,&lt;br /&gt;
	&amp;quot;No Screenshot.svg&amp;quot;,&lt;br /&gt;
	&amp;quot;No-image-available.jpg&amp;quot;,&lt;br /&gt;
	&amp;quot;Null.png&amp;quot;,&lt;br /&gt;
	&amp;quot;PictureNeeded.gif&amp;quot;,&lt;br /&gt;
	&amp;quot;Place holder.jpg&amp;quot;,&lt;br /&gt;
	&amp;quot;Unbenannt.JPG&amp;quot;,&lt;br /&gt;
	&amp;quot;UploadACopyrightFreeImage.svg&amp;quot;,&lt;br /&gt;
	&amp;quot;UploadAnImage.gif&amp;quot;,&lt;br /&gt;
	&amp;quot;UploadAnImage.svg&amp;quot;,&lt;br /&gt;
	&amp;quot;UploadAnImageShort.svg&amp;quot;,&lt;br /&gt;
	&amp;quot;CarersLogo.gif&amp;quot;,&lt;br /&gt;
	&amp;quot;Diagram Needed.svg&amp;quot;,&lt;br /&gt;
	&amp;quot;No male portrait.svg&amp;quot;,&lt;br /&gt;
	&amp;quot;NoDVDcover copy.png&amp;quot;,&lt;br /&gt;
	&amp;quot;Placeholder barnstar ribbon.png&amp;quot;,&lt;br /&gt;
	&amp;quot;Project Trains no image.png&amp;quot;,&lt;br /&gt;
	&amp;quot;Image-request.png&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function i.IsPlaceholder(image)&lt;br /&gt;
    -- change underscores to spaces&lt;br /&gt;
    image = mw.ustring.gsub(image, &amp;quot;_&amp;quot;, &amp;quot; &amp;quot;);&lt;br /&gt;
    assert(image ~= nil, &#039;mw.ustring.gsub(image, &amp;quot;_&amp;quot;, &amp;quot; &amp;quot;) must not return nil&#039;)&lt;br /&gt;
    -- if image starts with [[ then remove that and anything after |&lt;br /&gt;
    if mw.ustring.sub(image,1,2) == &amp;quot;[[&amp;quot; then&lt;br /&gt;
        image = mw.ustring.sub(image,3);&lt;br /&gt;
        image = mw.ustring.gsub(image, &amp;quot;([^|]*)|.*&amp;quot;, &amp;quot;%1&amp;quot;);&lt;br /&gt;
        assert(image ~= nil, &#039;mw.ustring.gsub(image, &amp;quot;([^|]*)|.*&amp;quot;, &amp;quot;%1&amp;quot;) must not return nil&#039;)&lt;br /&gt;
    end&lt;br /&gt;
    -- Trim spaces&lt;br /&gt;
    image = mw.ustring.gsub(image, &#039;^[ ]*(.-)[ ]*$&#039;, &#039;%1&#039;);&lt;br /&gt;
    assert(image ~= nil, &amp;quot;mw.ustring.gsub(image, &#039;^[ ]*(.-)[ ]*$&#039;, &#039;%1&#039;) must not return nil&amp;quot;)&lt;br /&gt;
    -- remove prefix if exists&lt;br /&gt;
    local allNames = mw.site.namespaces[6].aliases&lt;br /&gt;
    allNames[#allNames + 1] = mw.site.namespaces[6].name&lt;br /&gt;
    allNames[#allNames + 1] = mw.site.namespaces[6].canonicalName&lt;br /&gt;
    for i, name in ipairs(allNames) do&lt;br /&gt;
        if mw.ustring.lower(mw.ustring.sub(image, 1, mw.ustring.len(name) + 1)) == mw.ustring.lower(name .. &amp;quot;:&amp;quot;) then&lt;br /&gt;
            image = mw.ustring.sub(image, mw.ustring.len(name) + 2);&lt;br /&gt;
            break&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    -- Trim spaces&lt;br /&gt;
    image = mw.ustring.gsub(image, &#039;^[ ]*(.-)[ ]*$&#039;, &#039;%1&#039;);&lt;br /&gt;
    -- capitalise first letter&lt;br /&gt;
    image = mw.ustring.upper(mw.ustring.sub(image,1,1)) .. mw.ustring.sub(image,2);&lt;br /&gt;
&lt;br /&gt;
    for i,j in pairs(placeholder_image) do&lt;br /&gt;
        if image == j then&lt;br /&gt;
            return true&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return false&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function i.InfoboxImage(frame)&lt;br /&gt;
    local image = frame.args[&amp;quot;image&amp;quot;];&lt;br /&gt;
    &lt;br /&gt;
    if image == &amp;quot;&amp;quot; or image == nil then&lt;br /&gt;
        return &amp;quot;&amp;quot;;&lt;br /&gt;
    end&lt;br /&gt;
    if image == &amp;quot;&amp;amp;nbsp;&amp;quot; then&lt;br /&gt;
        return image;&lt;br /&gt;
    end&lt;br /&gt;
    if frame.args[&amp;quot;suppressplaceholder&amp;quot;] ~= &amp;quot;no&amp;quot; then&lt;br /&gt;
        if i.IsPlaceholder(image) == true then&lt;br /&gt;
            return &amp;quot;&amp;quot;;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if mw.ustring.lower(mw.ustring.sub(image,1,5)) == &amp;quot;http:&amp;quot; then&lt;br /&gt;
        return &amp;quot;&amp;quot;;&lt;br /&gt;
    end&lt;br /&gt;
    if mw.ustring.lower(mw.ustring.sub(image,1,6)) == &amp;quot;[http:&amp;quot; then&lt;br /&gt;
        return &amp;quot;&amp;quot;;&lt;br /&gt;
    end&lt;br /&gt;
    if mw.ustring.lower(mw.ustring.sub(image,1,7)) == &amp;quot;[[http:&amp;quot; then&lt;br /&gt;
        return &amp;quot;&amp;quot;;&lt;br /&gt;
    end&lt;br /&gt;
    if mw.ustring.lower(mw.ustring.sub(image,1,6)) == &amp;quot;https:&amp;quot; then&lt;br /&gt;
        return &amp;quot;&amp;quot;;&lt;br /&gt;
    end&lt;br /&gt;
    if mw.ustring.lower(mw.ustring.sub(image,1,7)) == &amp;quot;[https:&amp;quot; then&lt;br /&gt;
        return &amp;quot;&amp;quot;;&lt;br /&gt;
    end&lt;br /&gt;
    if mw.ustring.lower(mw.ustring.sub(image,1,8)) == &amp;quot;[[https:&amp;quot; then&lt;br /&gt;
        return &amp;quot;&amp;quot;;&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    if mw.ustring.sub(image,1,2) == &amp;quot;[[&amp;quot; then&lt;br /&gt;
        -- search for thumbnail images and add to tracking cat if found&lt;br /&gt;
        if mw.title.getCurrentTitle().namespace == 0 and (mw.ustring.find(image, &amp;quot;|%s*thumb%s*[|%]]&amp;quot;) or mw.ustring.find(image, &amp;quot;|%s*thumbnail%s*[|%]]&amp;quot;)) then&lt;br /&gt;
            return image .. &amp;quot;[[Category:Pages using infoboxes with thumbnail images]]&amp;quot;;&lt;br /&gt;
        else&lt;br /&gt;
            return image;&lt;br /&gt;
        end&lt;br /&gt;
    elseif mw.ustring.sub(image,1,2) == &amp;quot;{{&amp;quot; and mw.ustring.sub(image,1,3) ~= &amp;quot;{{{&amp;quot; then&lt;br /&gt;
        return image;&lt;br /&gt;
    elseif mw.ustring.sub(image,1,1) == &amp;quot;&amp;lt;&amp;quot; then&lt;br /&gt;
        return image;&lt;br /&gt;
    elseif mw.ustring.sub(image,1,5) == mw.ustring.char(127)..&amp;quot;UNIQ&amp;quot; then&lt;br /&gt;
        -- Found strip marker at begining, so pass don&#039;t process at all&lt;br /&gt;
        return image;&lt;br /&gt;
    else&lt;br /&gt;
        local result = &amp;quot;&amp;quot;;&lt;br /&gt;
        local size = frame.args[&amp;quot;size&amp;quot;];&lt;br /&gt;
        local maxsize = frame.args[&amp;quot;maxsize&amp;quot;];&lt;br /&gt;
        local sizedefault = frame.args[&amp;quot;sizedefault&amp;quot;];&lt;br /&gt;
        local alt = frame.args[&amp;quot;alt&amp;quot;];&lt;br /&gt;
        local link = frame.args[&amp;quot;link&amp;quot;];&lt;br /&gt;
        local title = frame.args[&amp;quot;title&amp;quot;];&lt;br /&gt;
        local border = frame.args[&amp;quot;border&amp;quot;];&lt;br /&gt;
        local upright = frame.args[&amp;quot;upright&amp;quot;] or &amp;quot;&amp;quot;;&lt;br /&gt;
        local thumbtime = frame.args[&amp;quot;thumbtime&amp;quot;] or &amp;quot;&amp;quot;;&lt;br /&gt;
        local center= frame.args[&amp;quot;center&amp;quot;];&lt;br /&gt;
        &lt;br /&gt;
        -- remove prefix if exists&lt;br /&gt;
        local allNames = mw.site.namespaces[6].aliases&lt;br /&gt;
        allNames[#allNames + 1] = mw.site.namespaces[6].name&lt;br /&gt;
        allNames[#allNames + 1] = mw.site.namespaces[6].canonicalName&lt;br /&gt;
        for i, name in ipairs(allNames) do&lt;br /&gt;
            if mw.ustring.lower(mw.ustring.sub(image, 1, mw.ustring.len(name) + 1)) == mw.ustring.lower(name .. &amp;quot;:&amp;quot;) then&lt;br /&gt;
                image = mw.ustring.sub(image, mw.ustring.len(name) + 2);&lt;br /&gt;
                break&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        if maxsize ~= &amp;quot;&amp;quot; and maxsize ~= nil then&lt;br /&gt;
            -- if no sizedefault then set to maxsize&lt;br /&gt;
            if sizedefault == &amp;quot;&amp;quot; or sizedefault == nil then&lt;br /&gt;
                sizedefault = maxsize&lt;br /&gt;
            end&lt;br /&gt;
            -- check to see if size bigger than maxsize&lt;br /&gt;
            if size ~= &amp;quot;&amp;quot; and size ~= nil then&lt;br /&gt;
                local sizenumber = tonumber(mw.ustring.match(size,&amp;quot;%d*&amp;quot;)) or 0;&lt;br /&gt;
                local maxsizenumber = tonumber(mw.ustring.match(maxsize,&amp;quot;%d*&amp;quot;)) or 0;&lt;br /&gt;
                if sizenumber&amp;gt;maxsizenumber and maxsizenumber&amp;gt;0 then&lt;br /&gt;
                    size = maxsize;&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        -- add px to size if just a number&lt;br /&gt;
        if (tonumber(size) or 0) &amp;gt; 0 then&lt;br /&gt;
            size = size .. &amp;quot;px&amp;quot;;&lt;br /&gt;
        end&lt;br /&gt;
        &lt;br /&gt;
        result = &amp;quot;[[File:&amp;quot; .. image;&lt;br /&gt;
        if size ~= &amp;quot;&amp;quot; and size ~= nil then&lt;br /&gt;
            result = result .. &amp;quot;|&amp;quot; .. size;&lt;br /&gt;
        elseif sizedefault ~= &amp;quot;&amp;quot; and sizedefault ~= nil then&lt;br /&gt;
            result = result .. &amp;quot;|&amp;quot; .. sizedefault;&lt;br /&gt;
        else&lt;br /&gt;
            result = result .. &amp;quot;|frameless&amp;quot;;&lt;br /&gt;
        end&lt;br /&gt;
        if center == &amp;quot;yes&amp;quot; then&lt;br /&gt;
            result = result .. &amp;quot;|center&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
        if alt ~= &amp;quot;&amp;quot; and alt ~= nil then&lt;br /&gt;
            result = result .. &amp;quot;|alt=&amp;quot; .. alt;&lt;br /&gt;
        end&lt;br /&gt;
        if link ~= &amp;quot;&amp;quot; and link ~= nil then&lt;br /&gt;
            result = result .. &amp;quot;|link=&amp;quot; .. link;&lt;br /&gt;
        end&lt;br /&gt;
        if border == &amp;quot;yes&amp;quot; then&lt;br /&gt;
            result = result .. &amp;quot;|border&amp;quot;;&lt;br /&gt;
        end&lt;br /&gt;
        if upright ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            result = result .. &amp;quot;|upright=&amp;quot; .. upright;&lt;br /&gt;
        end&lt;br /&gt;
        if thumbtime ~= &amp;quot;&amp;quot; then&lt;br /&gt;
            result = result .. &amp;quot;|thumbtime=&amp;quot; .. thumbtime;&lt;br /&gt;
        end&lt;br /&gt;
        if title ~= &amp;quot;&amp;quot; and title ~= nil then&lt;br /&gt;
            result = result .. &amp;quot;|&amp;quot; .. title;&lt;br /&gt;
        elseif alt ~= &amp;quot;&amp;quot; and alt ~= nil then&lt;br /&gt;
            result = result .. &amp;quot;|&amp;quot; .. alt;&lt;br /&gt;
        end&lt;br /&gt;
        result = result .. &amp;quot;]]&amp;quot;;&lt;br /&gt;
        &lt;br /&gt;
        return result;&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return i;&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:PV-options&amp;diff=5121</id>
		<title>יחידה:PV-options</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%99%D7%97%D7%99%D7%93%D7%94:PV-options&amp;diff=5121"/>
		<updated>2024-06-26T21:04:50Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;function create(cat, msg) &lt;br /&gt;
	return mw.ustring.format(&amp;quot;[[קטגוריה:שגיאות פרמטריות %s]]&amp;quot;, cat) .. create_message(msg)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function create_message(msg) &lt;br /&gt;
	return mw.ustring.format(&amp;quot;&amp;lt;span class=&#039;paramvalidator-error&#039;&amp;gt;&amp;lt;br/&amp;gt;%s&amp;lt;/span&amp;gt;&amp;quot;, msg)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local options_0 = {&lt;br /&gt;
        [&amp;quot;no-templatedata&amp;quot;] = create(&amp;quot;אין templatedata תקין&amp;quot;,&lt;br /&gt;
					&amp;quot;לא נמצא templatedata תקין&amp;quot;),&lt;br /&gt;
        [&amp;quot;undeclared&amp;quot;] = create(&amp;quot;שם שגוי&amp;quot;,&lt;br /&gt;
					&amp;quot;פרמטרים [ paramname ] לא מופיעים בהגדרת התבנית&amp;quot;),&lt;br /&gt;
        [&amp;quot;empty-undeclared&amp;quot;] = create(&amp;quot;שם שגוי ריק&amp;quot;,&lt;br /&gt;
					&amp;quot;פרמטרים ריקים [ paramname ] לא מופיעים בהגדרת התבנית&amp;quot;),&lt;br /&gt;
        [&amp;quot;undeclared-numeric&amp;quot;] = create(&amp;quot;מספר סודר שגוי&amp;quot;,&lt;br /&gt;
					&amp;quot;פרמטרים [ paramname ] לא מופיעים בהגדרת התבנית&amp;quot;),&lt;br /&gt;
        [&amp;quot;empty-undeclared-numeric&amp;quot;] = create(&amp;quot;מספר סודר שגוי ריק&amp;quot;,&lt;br /&gt;
					&amp;quot;פרמטרים ריקים [ paramname ] לא מופיעים בהגדרת התבנית&amp;quot;),&lt;br /&gt;
        [&amp;quot;empty-required&amp;quot;] = create(&amp;quot;פרמטר חובה חסר&amp;quot;,&lt;br /&gt;
					&amp;quot;פרמטרי חובה  [ paramname ] חסרים&amp;quot;),&lt;br /&gt;
        [&amp;quot;deprecated&amp;quot;] = create(&amp;quot;שימוש בפרמטר מיושן&amp;quot;,&lt;br /&gt;
					&amp;quot;שימוש בפרמטרים מיושנים [ paramname ]&amp;quot;),&lt;br /&gt;
        [&amp;quot;empty-deprecated&amp;quot;] = create(&amp;quot;שימוש בפרמטר מיושן ריק&amp;quot;,&lt;br /&gt;
					&amp;quot;שימוש בפרמטרים מיושנים ריקים [ paramname ]&amp;quot;),&lt;br /&gt;
        [&amp;quot;incompatible&amp;quot;] = create(&amp;quot;סוג לא תואם&amp;quot;,&lt;br /&gt;
					&amp;quot;סוג לא תואם [ paramname ]&amp;quot;),&lt;br /&gt;
        [&amp;quot;duplicate&amp;quot;] = create(&amp;quot;כפילות פרמטרים&amp;quot;,&lt;br /&gt;
					&amp;quot;כפילות פרמטרים [ paramname ]&amp;quot;),&lt;br /&gt;
        [&amp;quot;multiple&amp;quot;] = &amp;quot;[[קטגוריה:שגיאות פרמטריות שגיאות ממספר סוגים]]&amp;quot;,&lt;br /&gt;
        [&amp;quot;any&amp;quot;] = &amp;quot;[[קטגוריה:שגיאות פרמטריות]][[קטגוריה:שגיאות פרמטריות בתבנית tname_naked]]&amp;quot;,&lt;br /&gt;
        [&amp;quot;doc-subpage&amp;quot;] = &amp;quot;תיעוד&amp;quot;,&lt;br /&gt;
        [&amp;quot;wrapper-prefix&amp;quot;] = &amp;quot;&amp;lt;span class=&#039;paramvalidator-wrapper&#039;&amp;gt;&amp;lt;span class=&#039;paramvalidator-error&#039; style=&#039;text-align:center;&#039;&amp;gt;&amp;lt;br/&amp;gt;שגיאות פרמטריות ב[[templatename]] &amp;lt;/span&amp;gt;&amp;quot;,&lt;br /&gt;
        [&amp;quot;wrapper-suffix&amp;quot;] = &amp;quot; &amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
local options_rest = {&lt;br /&gt;
        [&amp;quot;no-templatedata&amp;quot;] = create_message(&amp;quot;לא נמצא templatedata תקין&amp;quot;),&lt;br /&gt;
        [&amp;quot;undeclared&amp;quot;] = create_message(&amp;quot;פרמטרים [ paramname ] לא מופיעים בהגדרת התבנית&amp;quot;),&lt;br /&gt;
        [&amp;quot;empty-undeclared&amp;quot;] = create_message(&amp;quot;פרמטרים ריקים [ paramname ] לא מופיעים בהגדרת התבנית&amp;quot;),&lt;br /&gt;
        [&amp;quot;undeclared-numeric&amp;quot;] = create_message(&amp;quot;פרמטרים [ paramname ] לא מופיעים בהגדרת התבנית&amp;quot;),&lt;br /&gt;
        [&amp;quot;empty-undeclared-numeric&amp;quot;] = create_message(&amp;quot;פרמטרים ריקים [ paramname ] לא מופיעים בהגדרת התבנית&amp;quot;),&lt;br /&gt;
        [&amp;quot;empty-required&amp;quot;] = create_message(&amp;quot;פרמטרי חובה  [ paramname ] חסרים&amp;quot;),&lt;br /&gt;
        [&amp;quot;deprecated&amp;quot;] = create_message(&amp;quot;שימוש בפרמטרים מיושנים [ paramname ]&amp;quot;),&lt;br /&gt;
        [&amp;quot;empty-deprecated&amp;quot;] = create_message(&amp;quot;שימוש בפרמטרים מיושנים ריקים [ paramname ]&amp;quot;),&lt;br /&gt;
        [&amp;quot;incompatible&amp;quot;] = create_message(&amp;quot;סוג לא תואם [ paramname ]&amp;quot;),&lt;br /&gt;
        [&amp;quot;duplicate&amp;quot;] = create_message(&amp;quot;כפילות פרמטרים [ paramname ]&amp;quot;),&lt;br /&gt;
        [&amp;quot;multiple&amp;quot;] = &amp;quot;&amp;quot;,&lt;br /&gt;
        [&amp;quot;any&amp;quot;] = &amp;quot;[[קטגוריה:שגיאות פרמטריות מחוץ למרחב הערכים]]&amp;quot;,&lt;br /&gt;
        [&amp;quot;doc-subpage&amp;quot;] = &amp;quot;תיעוד&amp;quot;,&lt;br /&gt;
        [&amp;quot;skip-empty-numeric&amp;quot;] = &amp;quot;0&amp;quot;,&lt;br /&gt;
        [&amp;quot;wrapper-prefix&amp;quot;] = &amp;quot;&amp;lt;span class=&#039;paramvalidator-wrapper&#039;&amp;gt;&amp;lt;span class=&#039;paramvalidator-error&#039; style=&#039;text-align:center;&#039;&amp;gt;&amp;lt;br/&amp;gt;שגיאות פרמטריות ב[[templatename]] &amp;lt;/span&amp;gt;&amp;quot;,&lt;br /&gt;
        [&amp;quot;wrapper-suffix&amp;quot;] = &amp;quot; &amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
local result = {&lt;br /&gt;
	[0] = options_0,		-- דף ציטוט&lt;br /&gt;
	[2] = options_rest,		-- משתמש	&lt;br /&gt;
	[4] = options_rest,		-- חב&amp;quot;דציטוט&lt;br /&gt;
	[6] = options_0,		-- קובץ&lt;br /&gt;
	[10] = options_0,		-- תבנית&lt;br /&gt;
	[12] = options_rest,	-- עזרה&lt;br /&gt;
	[14] = options_0,		-- קטגוריה&lt;br /&gt;
	[100] = options_0,		-- פורטל&lt;br /&gt;
	[108] = options_rest,	-- ספר	&lt;br /&gt;
	[118] = options_rest,	-- טיוטה&lt;br /&gt;
	[446] = options_rest,	-- הוראה&lt;br /&gt;
	[828] = options_rest,	-- יחידה&lt;br /&gt;
	[2300] = options_rest,	-- גאדג&#039;ט&lt;br /&gt;
	[2302] = options_rest,	-- הגדרת גאדג&#039;ט&lt;br /&gt;
	[2600] = options_rest,	-- נושא&lt;br /&gt;
}&lt;br /&gt;
return result&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%A9%D7%AA%D7%9E%D7%A9:%D7%99%D7%95%D7%A1%D7%A3_%D7%91%D7%9F_%D7%9E%D7%9C%D7%9E%D7%93/%D7%AA%D7%91%D7%A0%D7%99%D7%AA&amp;diff=5066</id>
		<title>משתמש:יוסף בן מלמד/תבנית</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%A9%D7%AA%D7%9E%D7%A9:%D7%99%D7%95%D7%A1%D7%A3_%D7%91%D7%9F_%D7%9E%D7%9C%D7%9E%D7%93/%D7%AA%D7%91%D7%A0%D7%99%D7%AA&amp;diff=5066"/>
		<updated>2024-06-26T16:42:04Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{אא|עברית=כן|ציטוט=כן}}&lt;br /&gt;
יחי המלך המשיח!&lt;br /&gt;
&lt;br /&gt;
ברוכים הבאים למיזם &#039;&#039;&#039;חב&amp;quot;דציטוט&#039;&#039;&#039; המשמש כאתר ויקי למאגר ציטוטים חב&amp;quot;דים. האתר כעת בעבודה וייפתח בקרוב אם ירצה ה&#039;.&lt;br /&gt;
&lt;br /&gt;
הצעות, הארות והערות אפשר לכתוב בשמחה בדף שיחתי או במייל שלי 586YBM@GMAIL.COM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ טקסט הכותרת&lt;br /&gt;
|-&lt;br /&gt;
! שם האתר !! {{SITENAME}}&lt;br /&gt;
|-&lt;br /&gt;
| מספר דפי ציטוט || {{NUMBEROFARTICLES}}&lt;br /&gt;
|-&lt;br /&gt;
| מספר כלל הדפים || {{NUMBEROFPAGES}}&lt;br /&gt;
|-&lt;br /&gt;
| מספר קבצים || {{NUMBEROFFILES}}&lt;br /&gt;
|-&lt;br /&gt;
| מספר משתמשים || {{NUMBEROFUSERS}}&lt;br /&gt;
|-&lt;br /&gt;
| מספר משתמשים פעילים || {{NUMBEROFACTIVEUSERS}}&lt;br /&gt;
|-&lt;br /&gt;
| מספר מפעילי מערכת || {{NUMBEROFADMINS}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{סטטיסטיקה 2}}&lt;br /&gt;
{{תחזוקה}}&lt;br /&gt;
{{סטטיסטיקה}}&lt;br /&gt;
&lt;br /&gt;
{{משתמש:יוסף בן מלמד/דפים שצריך ליצור}}&lt;br /&gt;
&amp;lt;!--[[הבעל שם טוב]]*[[אדמו&amp;quot;ר הזקן]]*[[הצמח צדק]]*[[הסבא משפולי]]*[[המגיד ממעזריטש]]*[[הרבי המהר&amp;quot;ש]]*[[אדמו&amp;quot;ר הריי&amp;quot;צ]][[קובץ:מדליה.png|23px|]]*[[אדמו&amp;quot;ר האמצעי]]*[[ספר התניא]]*[[ר&#039; מענדל פוטרפאס]][[קובץ:מדליה.png|23px|]]*[[לוי יצחק שניאורסון]]*[[דוד חנזין]]*[[ראובן דונין]]*[[רבי הלל מפאריטש]]*[[מבצע תורה]]*[[מבצע צדקה]]*[[אדמו&amp;quot;רי חב&amp;quot;ד (פירושונים)]]*[[זלמן משה היצחקי]]*[[אהבת ישראל]]*[[השגחה פרטית]]*[[תורת החסידות]]*[[רב]]*[[נסיעה לרבי]]*[[שמחה]]*[[עשה לך רב]]*[[התוועדות חסידית]]*[[אידיש]]*[[ישיבת תומכי תמימים]]*[[תהלוכה]]*[[ספר תורה הכללי]]*[[מנהגי רבותינו נשיאנו]]*[[אימוץ]]&lt;br /&gt;
}} --!&amp;gt;&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%A9%D7%AA%D7%9E%D7%A9:%D7%99%D7%95%D7%A1%D7%A3_%D7%91%D7%9F_%D7%9E%D7%9C%D7%9E%D7%93/%D7%AA%D7%91%D7%A0%D7%99%D7%AA&amp;diff=5065</id>
		<title>משתמש:יוסף בן מלמד/תבנית</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%A9%D7%AA%D7%9E%D7%A9:%D7%99%D7%95%D7%A1%D7%A3_%D7%91%D7%9F_%D7%9E%D7%9C%D7%9E%D7%93/%D7%AA%D7%91%D7%A0%D7%99%D7%AA&amp;diff=5065"/>
		<updated>2024-06-26T16:38:59Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{אא|עברית=כן|ציטוט=כן}}&lt;br /&gt;
יחי המלך המשיח!&lt;br /&gt;
&lt;br /&gt;
ברוכים הבאים למיזם &#039;&#039;&#039;חב&amp;quot;דציטוט&#039;&#039;&#039; המשמש כאתר ויקי למאגר ציטוטים חב&amp;quot;דים. האתר כעת בעבודה וייפתח בקרוב אם ירצה ה&#039;.&lt;br /&gt;
&lt;br /&gt;
הצעות, הארות והערות אפשר לכתוב בשמחה בדף שיחתי או במייל שלי 586YBM@GMAIL.COM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ טקסט הכותרת&lt;br /&gt;
|-&lt;br /&gt;
! שם האתר !! {{SITENAME}}&lt;br /&gt;
|-&lt;br /&gt;
| מספר דפי ציטוט || {{NUMBEROFARTICLES}}&lt;br /&gt;
|-&lt;br /&gt;
| מספר כלל הדפים || {{NUMBEROFPAGES}}&lt;br /&gt;
|-&lt;br /&gt;
| מספר קבצים || {{NUMBEROFFILES}}&lt;br /&gt;
|-&lt;br /&gt;
| מספר משתמשים || {{NUMBEROFUSERS}}&lt;br /&gt;
|-&lt;br /&gt;
| מספר משתמשים פעילים || {{NUMBEROFACTIVEUSERS}}&lt;br /&gt;
|-&lt;br /&gt;
| מספר מפעילי מערכת || {{NUMBEROFADMINS}}&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{סטטיסטיקה 2}}&lt;br /&gt;
{{תחזוקה}}&lt;br /&gt;
{{סטטיסטיקה}}&lt;br /&gt;
&lt;br /&gt;
{{משתמש:יוסף בן מלמד/דפים שצריך ליצור}}&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%A9%D7%AA%D7%9E%D7%A9:%D7%99%D7%95%D7%A1%D7%A3_%D7%91%D7%9F_%D7%9E%D7%9C%D7%9E%D7%93&amp;diff=5064</id>
		<title>משתמש:יוסף בן מלמד</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%A9%D7%AA%D7%9E%D7%A9:%D7%99%D7%95%D7%A1%D7%A3_%D7%91%D7%9F_%D7%9E%D7%9C%D7%9E%D7%93&amp;diff=5064"/>
		<updated>2024-06-26T16:37:22Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{משתמש:יוסף בן מלמד/תבנית}}&lt;br /&gt;
{{אא|עברית=כן|ציטוט=כן}}&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%A7%D7%98%D7%92%D7%95%D7%A8%D7%99%D7%94:%D7%97%D7%91%22%D7%93%D7%A6%D7%99%D7%98%D7%95%D7%98:_%D7%93%D7%A4%D7%99_%D7%A6%D7%99%D7%98%D7%95%D7%98%D7%99%D7%9D_%D7%94%D7%93%D7%95%D7%A8%D7%A9%D7%99%D7%9D_%D7%94%D7%A9%D7%9C%D7%9E%D7%94&amp;diff=5052</id>
		<title>קטגוריה:חב&quot;דציטוט: דפי ציטוטים הדורשים השלמה</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%A7%D7%98%D7%92%D7%95%D7%A8%D7%99%D7%94:%D7%97%D7%91%22%D7%93%D7%A6%D7%99%D7%98%D7%95%D7%98:_%D7%93%D7%A4%D7%99_%D7%A6%D7%99%D7%98%D7%95%D7%98%D7%99%D7%9D_%D7%94%D7%93%D7%95%D7%A8%D7%A9%D7%99%D7%9D_%D7%94%D7%A9%D7%9C%D7%9E%D7%94&amp;diff=5052"/>
		<updated>2024-06-26T13:12:47Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: החלפת טקסט – &amp;quot;ערכים&amp;quot; ב־&amp;quot;דפי ציטוט&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;קטגוריה זו מרכזת דפי ציטוט שנדרש להרחיבם.&lt;br /&gt;
&lt;br /&gt;
דף ציטוט יסומן כדף ציטוט הזקוק להשלמה אם כותבו או עורך שעבר בדף ציטוט סבור שפרקים מהותיים חסרים בו. בשני המקרים, רצוי להשאיר בדף ציטוט ראשי-פרקים ריקים (כותרות) שיבהירו לעורכים אחריכם מהם פערי המידע הנדרשים, ו/או לציין זאת בדף השיחה. אין טעם לסמן דף ציטוט בתבנית ללא הצבעה על החסר.&lt;br /&gt;
[[קטגוריה:חב&amp;quot;דציטוט - תחזוקה]]&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:Movepagetext-noredirectfixer&amp;diff=5051</id>
		<title>מדיה ויקי:Movepagetext-noredirectfixer</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:Movepagetext-noredirectfixer&amp;diff=5051"/>
		<updated>2024-06-26T13:12:36Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: החלפת טקסט – &amp;quot;ערכים&amp;quot; ב־&amp;quot;דפי ציטוט&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;הטופס שלהלן נועד לשינוי שמו של דף, והעברת כל ההיסטוריה שלו לשם החדש. השם הישן יהפוך לדף הפניה אל הדף עם השם החדש.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;לתשומת לבכם&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
# אנא ודאו שאין [[Special:DoubleRedirects|הפניות כפולות]] או [[Special:BrokenRedirects|שבורות]].&lt;br /&gt;
# הדף &#039;&#039;&#039;לא&#039;&#039;&#039; יועבר אם כבר יש דף תחת השם החדש, אלא אם הדף הזה הוא הפניה ואין לו היסטוריית עריכות קודמות.&lt;br /&gt;
# &#039;&#039;&#039;קודם&#039;&#039;&#039; ביצוע הפעולה &#039;&#039;&#039;יש לבדוק&#039;&#039;&#039; האם יש במרחב הדפי ציטוט קישורים פנימיים שהובילו לדף המקורי, ולעדכן אותם לשם החדש כך שלא יוותרו קישורים שגויים לדף שנמחק. ניתן להיעזר לשם כך ב[[מיוחד:דפים המקושרים לכאן/{{#titleparts:{{שם הדף המלא}}||2}}|דפים המקושרים לכאן]]. אם ישנם קישורים רבים לשם הדף שנמחק, ניתן [[חב&amp;quot;דציטוט:בקשות ממפעילים|לבקש ממפעילי מערכת]] לבצע החלפה אוטומטית של כל הקישורים.&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:Recentchangestext&amp;diff=5050</id>
		<title>מדיה ויקי:Recentchangestext</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:Recentchangestext&amp;diff=5050"/>
		<updated>2024-06-26T13:12:24Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: החלפת טקסט – &amp;quot;ערכים&amp;quot; ב־&amp;quot;דפי ציטוט&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|  border=&amp;quot;8&amp;quot; cellspacing=&amp;quot;8&amp;quot; cellpadding=&amp;quot;0&amp;quot; class=&amp;quot;plainlinks&amp;quot; style=&amp;quot;border:2px solid #dfdfdf; font-size:95%; width:90%;&amp;quot;&lt;br /&gt;
|-valign=&amp;quot;top&amp;quot;&lt;br /&gt;
|align=&amp;quot;indigo &amp;quot;|&amp;lt;span style=&#039;color: crimson&#039;&amp;gt;&#039;&#039;&#039;דפי ציטוט לטיפול&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
|{{רווח}}[[:קטגוריה:חב&amp;quot;דציטוט: דפי ציטוט הדורשים עריכה|לעריכה]] · [[:קטגוריה:דפי ציטוט חסרים|להשלמה]] · [[:קטגוריה:דפים מועמדים למחיקה|למחיקה]] · [[:קטגוריה:חב&amp;quot;דציטוט: דפי ציטוט שיש להבהיר את מעמדם|דפי ציטוט עם תבנית חשיבות]] · [[מיוחד:דפים מוזנחים|דפים מוזנחים]] · [[מיוחד:דפים חסרי קטגוריה|דפים חסרי קטגוריה]] · [[מיוחד:דפים יתומים|דפים יתומים]]&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;|&amp;lt;span style=&#039;color: crimson&#039;&amp;gt;&#039;&#039;&#039;קהילה&amp;lt;/span&amp;gt;&lt;br /&gt;
|{{רווח}}[[חב&amp;quot;דציטוט:אולם דיונים|אולם דיונים]] · [[חב&amp;quot;דציטוט:לוח מודעות|לוח מודעות]] · [[חב&amp;quot;דציטוט:חממה|חממה]] · [[חב&amp;quot;דציטוט:בקשות ממפעילים|בקשות ממפעילים]] · [[חב&amp;quot;דציטוט:בקשת דפי ציטוט‏|בקשת דפי ציטוט]] · [[חב&amp;quot;דציטוט:בקשת דפי ציטוט/מקורות|מקורות לכתיבת דפי ציטוט]] · [[חב&amp;quot;דציטוט:א חסידישע פארבריינגען|התוועדות חסידית וירטואלית]] · [[שיחת חב&amp;quot;דציטוט:פיתוח התשתית|פיתוח התשתית]] · [[חב&amp;quot;דציטוט:Mobile Extension Feedback|משובים]]&lt;br /&gt;
|-&lt;br /&gt;
|crimsonalign=&amp;quot;right&amp;quot;|&amp;lt;span style=&#039;color:crimson&#039;&amp;gt;&#039;&#039;&#039;מיזמים&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
|{{רווח}}[[חב&amp;quot;דציטוט:דפי ציטוט מובחרים/דיונים|דפי ציטוט מובחרים]] · [[חב&amp;quot;דציטוט:מיזמים/דבר מלכות|דבר מלכות]] · [[חב&amp;quot;דציטוט:מיזמים/תהלים|תהלים]] · [[חב&amp;quot;דציטוט:מיזמים/ספר התניא|תניא]] · [[חב&amp;quot;דציטוט:מיזמים/חב&amp;quot;ד בישראל|בתי חב&amp;quot;ד בישראל]]&lt;br /&gt;
|-&lt;br /&gt;
|align=&amp;quot;right&amp;quot;|&amp;lt;span style=&#039;color: crimson&#039;&amp;gt;&#039;&#039;&#039;מידע&#039;&#039;&#039;&amp;lt;/span&amp;gt;&lt;br /&gt;
|{{רווח}}[[מיוחד:סטטיסטיקות|סטטיסטיקות]] · דפי ציטוט - [[מיוחד:דפים חדשים|חדשים]] · [[מיוחד:דפים ארוכים|ארוכים]] · [[מיוחד:דפים קצרים|קצרים]]&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:Spam-whitelist&amp;diff=5048</id>
		<title>מדיה ויקי:Spam-whitelist</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:Spam-whitelist&amp;diff=5048"/>
		<updated>2024-06-26T13:12:23Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: החלפת טקסט – &amp;quot;ערכים&amp;quot; ב־&amp;quot;דפי ציטוט&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; #&amp;lt;!-- נא להשאיר שורה זו בדיוק כפי שהיא --&amp;gt; &amp;lt;pre&amp;gt;&lt;br /&gt;
 # כתובות URL חיצוניות המופיעות ברשימה זו *לא* ייחסמו אפילו אם יש להן דף ציטוט ברשימת הכתובות האסורות.&lt;br /&gt;
 #&lt;br /&gt;
 # יש להוסיף קישורים המתאימים לחסידות חב&amp;quot;ד / קישורים הנוגעים באופן ישיר לדפי ציטוט בחב&amp;quot;דציטוט.&lt;br /&gt;
 # אין להוסיף אתר עם תמונות נשים, גם כאשר מדובר בבתי חב&amp;quot;ד וכדו&#039;.&lt;br /&gt;
 # ישנה אפשרות להוסיף קישור חיצוני עבור דף בודד, זאת באמצעות הוספת כתובת חיצונית לדף זה, הוספתה לדף המיועד ולאחר מכן הסרתה מדף זה.&lt;br /&gt;
 #&lt;br /&gt;
 # התחביר הוא כדלקמן:&lt;br /&gt;
 # כל שורה היא קטע מביטוי רגולרי שיתאים לשמות המתחם של כתובות URL&lt;br /&gt;
 # יש להעתיק את הקישור ללא הקידומת &#039;www&#039; או &#039;http&#039; &lt;br /&gt;
 # יש להשתמש ב-\ לפני נקודה&lt;br /&gt;
 # בתחילת השורה ובסוף השורה יש להוסיף את התווים \b&lt;br /&gt;
 # יש להחליף מופעים של \ בכתובת האינטרנט ל /&lt;br /&gt;
 # בכדי להציב הערה יש להשתמש ב&#039;#&#039; ורווח לפניה - כל דבר מתו &amp;quot;#&amp;quot; לסוף השורה הוא הערה&lt;br /&gt;
 #&lt;br /&gt;
 # דוגמאות לאתרים עם סיומות שונות, והדרך בה מוסיפים אותם: &lt;br /&gt;
 # * hebrewbooks.org יש להוסיף כך: \bhebrewbooks\.org\b&lt;br /&gt;
 # * 770live.com  יש להוסיף כך: \b770live\.com\b&lt;br /&gt;
 # * chabadpedia.co.il יש להוסיף כך: \bchabadpedia\.co\.il\b&lt;br /&gt;
 #&amp;lt;/pre&amp;gt; &amp;lt;!-- נא להשאיר שורה זו בדיוק כפי שהיא --&amp;gt;&lt;br /&gt;
 #&amp;lt;pre dir=&amp;quot;ltr&amp;quot;&amp;gt; &amp;lt;!-- נא להשאיר שורה זו בדיוק כפי שהיא --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
\btext\.chabadpedia.com\b&lt;br /&gt;
\bzitut\.chabadpedia.com\b&lt;br /&gt;
\bchabad\.info\b&lt;br /&gt;
\bmedia\.chabad\.info\b&lt;br /&gt;
\bmedia\.chabad\.info\chabadinfoheb\b&lt;br /&gt;
\bmedia\.chabad\.info/chabadinfoheb/wp-content/uploads\b&lt;br /&gt;
\bhealth\.gov\.il\b&lt;br /&gt;
\brambam-medicine\.org\.il\b&lt;br /&gt;
\bbiurim\.co\.il\b&lt;br /&gt;
\byetzialeshlichut\.link\b&lt;br /&gt;
\byomiolami\.org\b&lt;br /&gt;
\bcly\.vic\.edu\.au\b&lt;br /&gt;
\bjabad\.org\.ar\b&lt;br /&gt;
\bklm\.org\.il\b&lt;br /&gt;
\bchabadnevezeev\.co\.il\b&lt;br /&gt;
\byomiolami\.org\b&lt;br /&gt;
\bbarmitzva\.ravpage\.co\.il\b&lt;br /&gt;
\biggudhashluchim\.com\b&lt;br /&gt;
\bchabadindia770\.com\b&lt;br /&gt;
\bfindagrave\.com\b&lt;br /&gt;
\byeshivatchabad\.co\.il\b&lt;br /&gt;
\bvienemashiaj\.com\b&lt;br /&gt;
\bjewishjamaica\.com\b&lt;br /&gt;
\bchabadmoscow\.com\b&lt;br /&gt;
\bjewishvietnam\.com\b&lt;br /&gt;
\bchalukashashasmachne\.com\b&lt;br /&gt;
\bkramim\.Info\b&lt;br /&gt;
\bmaor\.org\b&lt;br /&gt;
\bbechabad\.org\b&lt;br /&gt;
\bsinun770\.org\b&lt;br /&gt;
\bmymaor\.org\b&lt;br /&gt;
\bcba\.org\.il\b&lt;br /&gt;
\bsefertora\.org\.il\b&lt;br /&gt;
\b.jstor\.org\b&lt;br /&gt;
\b.rabbisalliance\.org\b&lt;br /&gt;
\bmachanaym\.com\b&lt;br /&gt;
\bthedailysicha\.com\b&lt;br /&gt;
\btzachlist\.com\b&lt;br /&gt;
\bahblicklive\b.com\b&lt;br /&gt;
\bs3\.wasabisys\.com\b&lt;br /&gt;
\brabbinicalcollege\.edu\.au\b&lt;br /&gt;
\bhm-news\.co\.il\b&lt;br /&gt;
\bicount\.co\.il\b&lt;br /&gt;
\baleph3\.libnet\.ac\.il\b&lt;br /&gt;
\bmerhav\.nli\.org\.il\b&lt;br /&gt;
\borb\.org\.il\b&lt;br /&gt;
\bgoshenlaw\.org\b&lt;br /&gt;
\bweb\.nli\.org\.il\b&lt;br /&gt;
\bdaat\.ac\.il\b&lt;br /&gt;
\btkc\.co\.il\b&lt;br /&gt;
\bdaat\.co\.il\b&lt;br /&gt;
\btoratyosef\.co\.il\b&lt;br /&gt;
\bdvarmalchus\.org\.il\b&lt;br /&gt;
\bsefaria\.org\.il\b&lt;br /&gt;
\bspecial\.org\.il\b&lt;br /&gt;
\baharit\.com\b&lt;br /&gt;
\bhayedion\.com\b&lt;br /&gt;
\b770rebbe\.com\b&lt;br /&gt;
\bchabadshop\.com\b&lt;br /&gt;
\blecfl\.com\b&lt;br /&gt;
\bmosadharavkook\.com\b&lt;br /&gt;
\btotrashlats\.com\b&lt;br /&gt;
\bshulchanharav\.com\b&lt;br /&gt;
\bshluchim\.org\b&lt;br /&gt;
\bybdsnewhaven\.org\b&lt;br /&gt;
\bbmoshiach\.org\b&lt;br /&gt;
\banash\.org\b &lt;br /&gt;
\bchabadjapan\.org\b&lt;br /&gt;
\bmountofolives\.co\.il\b&lt;br /&gt;
\bchabadcampus\.co\.il\b&lt;br /&gt;
\bbarditchev\.co\.il\b&lt;br /&gt;
\bravdori\.co\.il\b&lt;br /&gt;
\blimudtora\.co\.il\b&lt;br /&gt;
\bnichoach\.blogspot\.com\b&lt;br /&gt;
\bchabadairportcity\.com\b&lt;br /&gt;
\bblogspot\.com\b&lt;br /&gt;
\bchassidutbehirah\.com\b&lt;br /&gt;
\btorasmoshiach\.com\b&lt;br /&gt;
\btmimim\.com\b&lt;br /&gt;
\brebbedrive\.com\b&lt;br /&gt;
\bsearch\.rsl\.ru\b&lt;br /&gt;
\bradiomoshiach\.com\b&lt;br /&gt;
\bvaa770\.org\b&lt;br /&gt;
\bchabadjapan\.org\b&lt;br /&gt;
\bkupasrabeinu\.org\b&lt;br /&gt;
\bvideolan\.org\b&lt;br /&gt;
\bbeit-hamikdash\.co\.il\b&lt;br /&gt;
\bachot770\.co\.il\b&lt;br /&gt;
\bnakdan.dicta\.org\.il\b&lt;br /&gt;
\btzemachtzedekshul\.org\b&lt;br /&gt;
\byadvashem\.org\b&lt;br /&gt;
\bparasha\.ooil.co\b&lt;br /&gt;
\brambam\.ooil.co\b&lt;br /&gt;
\btalmudit18\.com\b&lt;br /&gt;
\bonline.fliphtml5\.com\b&lt;br /&gt;
\bnigrijewishonlineschool\.com\b&lt;br /&gt;
\bchabad\.org.il\b&lt;br /&gt;
\bkfar-chabad\.com\b&lt;br /&gt;
\bsmichanet\.com\b&lt;br /&gt;
\bigrot\.org.il\b&lt;br /&gt;
\blemaanyilmedo\.org\b&lt;br /&gt;
\bmechon-mamre\.org\b&lt;br /&gt;
\bbeismoshiach\.co\.il\b&lt;br /&gt;
\bchish\.co\.il\b&lt;br /&gt;
\bsadna-jew\.com\b&lt;br /&gt;
\botzerhachassidus\.com\b&lt;br /&gt;
\b\bjewishmusic\.fm\b &lt;br /&gt;
\b\breshetch\.org\b &lt;br /&gt;
\breshetch\.org.il\b&lt;br /&gt;
\bph.yhb.org.il\b&lt;br /&gt;
\bwpengine\.netdna-cdn\.com\b&lt;br /&gt;
\blink\.myjewishpage\.com\b&lt;br /&gt;
\bmerkazanash\.com\b&lt;br /&gt;
\bmerkazanash\.com\b&lt;br /&gt;
\bbeverlyhillschabad\.com\b&lt;br /&gt;
\bidstorahorg\.clhosting.org\b&lt;br /&gt;
\btag=%D7%97%D7%91%D7%93\b&lt;br /&gt;
\b\bpnimi\.org\.il/Hebrew\b &lt;br /&gt;
\b\binner\.org\b &lt;br /&gt;
\bmalchuty\.org\b&lt;br /&gt;
\bchabad-elkana\.org\b&lt;br /&gt;
\b\bodyosefchai\.org\.il\b&lt;br /&gt;
\b\bdaat\.org\.il\b&lt;br /&gt;
\b\blubavitch\.org\.il\b&lt;br /&gt;
\bhe\.rabbiasi\.com\b&lt;br /&gt;
\bgallery\.mailchimp\.com\b&lt;br /&gt;
\bkidstorah\.org\b&lt;br /&gt;
\bigrut\.blogspot\.com\b&lt;br /&gt;
\bkikar\.co\.il\b&lt;br /&gt;
\bchabadashdod\.co\.il\b&lt;br /&gt;
\bblogspot\.co\.il\b&lt;br /&gt;
\bchabadsrilanka\.co\.il\b&lt;br /&gt;
\bcourts\.state\.ny\.us\b&lt;br /&gt;
\bigrot\.org\b&lt;br /&gt;
\bigrot\.com\b&lt;br /&gt;
\btheonlinerabbi\.com\b&lt;br /&gt;
\bhalacha\.co\b&lt;br /&gt;
\b/default\.asp\b&lt;br /&gt;
\bderher\.org\b&lt;br /&gt;
\btosfosinenglish\.com\b&lt;br /&gt;
\btosfosinenglish\.com\b&lt;br /&gt;
\bderher\.org\b&lt;br /&gt;
\bgeulahvod\.com\b&lt;br /&gt;
\bMyencounterblog\.com\b &lt;br /&gt;
\bpanoramio\.com\b&lt;br /&gt;
\bgeulahvod\.com\b&lt;br /&gt;
\bmatzevot\.net\b&lt;br /&gt;
\bagada\.me/vendor/bookmz\b&lt;br /&gt;
\bmyencounterblog\.com\b&lt;br /&gt;
\bMyencounterblog\.com\b&lt;br /&gt;
\bwashingtonpost\.com\b&lt;br /&gt;
\bmatzevot\.net\b&lt;br /&gt;
\bjemedia\.org\b&lt;br /&gt;
\bkehuna\.org\b&lt;br /&gt;
\bhalachabrura\.org/alephlink\.htm\b&lt;br /&gt;
\byeladim\.org\.il\b&lt;br /&gt;
\bchabadyadeliyahu\.wix\.com\b&lt;br /&gt;
\bchild\.co\.il\b&lt;br /&gt;
\bemes\.co\.il\b&lt;br /&gt;
\btidhar\.tourolib\.org\b&lt;br /&gt;
\bchabadholon\.com\b&lt;br /&gt;
\bchabadashkelon\.com\b&lt;br /&gt;
\bheichalmenachemmonsey\.org\b&lt;br /&gt;
\bsichos\.com\b&lt;br /&gt;
\support\.google\.com\b&lt;br /&gt;
\bgroups\.google\.com\b&lt;br /&gt;
\bmaps\.google\.co\.il\b&lt;br /&gt;
\banalytics\.google\.com\b&lt;br /&gt;
\bdocs.google\.com\b&lt;br /&gt;
\bgoogle\.co\.il\b&lt;br /&gt;
\bgoogle\.com\b&lt;br /&gt;
\bbooks\.google\.co\.il\b&lt;br /&gt;
\bdrive\.google\.com\b&lt;br /&gt;
\bplay\.google\.com\b&lt;br /&gt;
\bphotos\.app\.goo\.gl/fpq9dM165zmYkhRx9\b&lt;br /&gt;
\bcommons\wikimedia\.org\b&lt;br /&gt;
\bmeta\.wikimedia\.org\b&lt;br /&gt;
\bwikipedia\.org\b&lt;br /&gt;
\bmediawiki\.org\b&lt;br /&gt;
\bwiki\.js\b&lt;br /&gt;
\bwikitech\.wikimedia\.org\b&lt;br /&gt;
\bwikidata\.org\b&lt;br /&gt;
\bupload\.wikimedia\.org\b&lt;br /&gt;
\btorahcafe\.com\b&lt;br /&gt;
\bvideo\.chasidut\.net\b&lt;br /&gt;
\bchabadhungary\.com\b&lt;br /&gt;
\bhageula\.com\b&lt;br /&gt;
\bbcl770\.org\b&lt;br /&gt;
\btzivoshashem\.org\b&lt;br /&gt;
\bchabadzefat\.com\b&lt;br /&gt;
\bdjc\.com\.ua\b&lt;br /&gt;
\bmimaal\.co\.il\b&lt;br /&gt;
\basif\.co\.il\b&lt;br /&gt;
\breshet\.org\.il\b&lt;br /&gt;
\bzalmonjaffeencounters\.com\b&lt;br /&gt;
\bns2\.ivelt\.com/forum\b&lt;br /&gt;
\bdmag\.co\.il/pub/tzach\b&lt;br /&gt;
\bshturem\.org/index.php\b&lt;br /&gt;
\bcollive\.com\b&lt;br /&gt;
\blivingwiththerebbe\.com\b&lt;br /&gt;
\bhitat\.co\.il\b&lt;br /&gt;
\bjewishcontent\.org\b&lt;br /&gt;
\bb shteeble.com\.rav\b&lt;br /&gt;
\byahadut\.tv\b&lt;br /&gt;
\bmashiach\.org.il\b&lt;br /&gt;
\bpiyut\.org.il\b&lt;br /&gt;
\brambish\.org.il\b&lt;br /&gt;
\bjewishcherkassy\.org\b&lt;br /&gt;
\bagudaschassideichabad\.com\b&lt;br /&gt;
\babc770\.org\b&lt;br /&gt;
\bhisachdus.co\.il\b &lt;br /&gt;
\bdlib.rsl\.ru\b&lt;br /&gt;
\bsie\.org\b&lt;br /&gt;
\bhe-date\.info\b&lt;br /&gt;
\bladaat\.info\b&lt;br /&gt;
\bkolhalashon\.com\b&lt;br /&gt;
\barihalberstam\.com\b&lt;br /&gt;
\bjcm\.museum\b&lt;br /&gt;
\bchabadisraeli\.com\b&lt;br /&gt;
\bmusaf-shabbat\.com\b&lt;br /&gt;
\bwww.yehadut\.tv\b&lt;br /&gt;
\bwww\.jem\.co\.il\b&lt;br /&gt;
\bhome\.jemedia\.org\b&lt;br /&gt;
\bw.beit-chabad\.net\b &lt;br /&gt;
\blikras\.org\b  &lt;br /&gt;
\bbeitchana\.org\b&lt;br /&gt;
\byoffner\.com\b&lt;br /&gt;
\barielzilber\.com\b&lt;br /&gt;
\bkikarhashabat\.co\.il\b&lt;br /&gt;
\bmishnetorah\.com\b&lt;br /&gt;
\brambam-lanoar\.co\.il\b&lt;br /&gt;
\bchabadhouse\.org.il\b&lt;br /&gt;
\billustratedmaps\.com\b&lt;br /&gt;
\bhidabroot\.org\b&lt;br /&gt;
\btzivoshashem\.net\b&lt;br /&gt;
\bhitbonenut\.net\b&lt;br /&gt;
\bchasidut\.net\b&lt;br /&gt;
\baskila\.net\b&lt;br /&gt;
\bchabad-netanya\.org\b&lt;br /&gt;
\bbhol-forums\.co\.il\b&lt;br /&gt;
\bmakom-m\.cet\.ac\.il\b&lt;br /&gt;
\bbhol\.co\.il\b&lt;br /&gt;
\btzivos-hashem\.org\b&lt;br /&gt;
\bchasidinews\.com\b&lt;br /&gt;
\bcomputerhope\.com\b&lt;br /&gt;
\bchabadbeitar\.com\b&lt;br /&gt;
\bshlager\.net\b&lt;br /&gt;
\bchabadk\.com\b&lt;br /&gt;
\b770florida\.com\b&lt;br /&gt;
\bledorot\.co\.il\b &lt;br /&gt;
\bresponsa\.co\.il\b &lt;br /&gt;
\bsafranim\.wordpress\.com\b&lt;br /&gt;
\bjewishmalta\.com\b&lt;br /&gt;
\bchabadinfo\.com\b&lt;br /&gt;
\btora\.co\.il\b &lt;br /&gt;
\bbeiteliezer\.org\b&lt;br /&gt;
\bsem40\.ru\b&lt;br /&gt;
\bchabad\.il\b&lt;br /&gt;
\bmamesh\.org\b&lt;br /&gt;
\bshluchimcenter\.org\b&lt;br /&gt;
\byagdiltorah\.org\b&lt;br /&gt;
\btoolserver\.org\b&lt;br /&gt;
\bchabadpt\.org\b&lt;br /&gt;
\byagdiltorah\.org\b&lt;br /&gt;
\btheshomron770\.org\b&lt;br /&gt;
\bvideo\.yahadoot\.com\b&lt;br /&gt;
\btoratchabad\.com\b&lt;br /&gt;
\byomanim\.com\b&lt;br /&gt;
\bhebrewbooks\.org\b&lt;br /&gt;
\bchabadlibrary\.org\b&lt;br /&gt;
\bchabad\.co\.il\b&lt;br /&gt;
\bchabadworld\.net\b&lt;br /&gt;
\botzar770\.com\b&lt;br /&gt;
\bchabadlibrarybooks\.com\b&lt;br /&gt;
\b770live\.com\b&lt;br /&gt;
\byeshiva.org\.il\b&lt;br /&gt;
\bpnimiyut\.org\b&lt;br /&gt;
\bhageula\.com\b&lt;br /&gt;
\bshturem\.net\b&lt;br /&gt;
\bcol\.org\.il\b&lt;br /&gt;
\bpsakdin\.net\b&lt;br /&gt;
\bkaduri\.net\b&lt;br /&gt;
\bzadikim\.org\b&lt;br /&gt;
\bchabadpedia\.co\.il\b&lt;br /&gt;
\beismoshiachmagazine\.org\b&lt;br /&gt;
\bsoferpedia\.com\b&lt;br /&gt;
\bmoshiachpalace\.com\b&lt;br /&gt;
\bbeismoshiach\.org\b&lt;br /&gt;
\bbeismoshiachmagazine\.org\b&lt;br /&gt;
\bneshei.com\b&lt;br /&gt;
\bjewish-education\.info\b&lt;br /&gt;
\botzar\.org\b&lt;br /&gt;
\bchabad\.kz\b&lt;br /&gt;
\bchazak\.co\.il\b&lt;br /&gt;
\bchabad\.org\.il\b&lt;br /&gt;
\bgnu\.org\b&lt;br /&gt;
\bcreativecommons\.org\b&lt;br /&gt;
\bscribd.com\b&lt;br /&gt;
\bdaat\.ac\.il\b&lt;br /&gt;
\bjewishvenice\.org\b&lt;br /&gt;
\blahak\.org\b&lt;br /&gt;
\byomanim\.com\b&lt;br /&gt;
\bchabadonweb\.com\b&lt;br /&gt;
\bchabad\.org\b&lt;br /&gt;
\blubavitch\.ru\b&lt;br /&gt;
\byadlshliach\.org\b&lt;br /&gt;
\bitanya\.mobi\b&lt;br /&gt;
\bteshura\.com\b&lt;br /&gt;
\bhaoros\.com\b&lt;br /&gt;
\bchabadshop\.com\b&lt;br /&gt;
\bcms\.education\.gov\.il\b&lt;br /&gt;
\bmoshiach\.ru\b&lt;br /&gt;
\bgeula\.ru\b&lt;br /&gt;
\bchabad\.fm\b&lt;br /&gt;
\bkipa\.co\.il\b&lt;br /&gt;
\bchabad-il\.org\b&lt;br /&gt;
\byoman770\.com\b&lt;br /&gt;
\btorah4blind\.org\b&lt;br /&gt;
\bshiduryashir\.com\b&lt;br /&gt;
\bscribd\.com\b&lt;br /&gt;
\bchabadraanana\.com\b&lt;br /&gt;
\bjdn\.co\.il\b&lt;br /&gt;
\byadharavherzog\.org\b&lt;br /&gt;
\bchasidut\.tv\b&lt;br /&gt;
\bcow\.org\.il\b&lt;br /&gt;
\bsomethingforshabbat.blogspot\.co\.il\b&lt;br /&gt;
\bsichosinenglish\.org\b&lt;br /&gt;
\bsafa-ivrit\.org\b&lt;br /&gt;
\bchabadpuneindia\.com\b&lt;br /&gt;
\bapp\.box\.com\b&lt;br /&gt;
\bqarov\.org\b&lt;br /&gt;
\bcrownheights\.info\b&lt;br /&gt;
\bch10\.co\.il\b&lt;br /&gt;
\bshulchanharav\.com\b&lt;br /&gt;
\bmylubavitch\.org\b&lt;br /&gt;
\bkiddushhachodesh\.net\b&lt;br /&gt;
\bapps\.education\.gov\.il\/imsnet\/mosdot.aspx\b&lt;br /&gt;
\bsmslarav\.co\.il\b&lt;br /&gt;
\b4ysc01p1vhw140bqmvpyqhpw.wpengine\.netdna-cdn\.com\b&lt;br /&gt;
\btools\.wmflabs\.org\b&lt;br /&gt;
\boro\.org\.il\b&lt;br /&gt;
\bchassidutbehirah\.com\b&lt;br /&gt;
\bhatzalah\.ch\b&lt;br /&gt;
\btzvigreenwald\.com\b&lt;br /&gt;
\bhamichlol\.org\.il\b&lt;br /&gt;
\bchassidusapplied\.com\b&lt;br /&gt;
\balysefer\.com\b&lt;br /&gt;
\btorashageula\.org\b&lt;br /&gt;
\bmachonso\.org\b&lt;br /&gt;
\bmerkazato\.co\.il\b&lt;br /&gt;
\bsinun\.org\b&lt;br /&gt;
\bmafteiach\.app\b&lt;br /&gt;
\brabbi24\.com\b&lt;br /&gt;
\bkehot\.org\b&lt;br /&gt;
\brce\.eu\.com\b&lt;br /&gt;
\bchabadof770\.com\b&lt;br /&gt;
\btoratchabad\.com\b&lt;br /&gt;
\byafutzu\.org\b&lt;br /&gt;
\badeyad\.org\b&lt;br /&gt;
\bkerenm\.org\b&lt;br /&gt;
\bbetsefernet\.com\b&lt;br /&gt;
\bchassidus\.com\b&lt;br /&gt;
\byemot\.co\.il\b&lt;br /&gt;
\bsichathageula\.com\b&lt;br /&gt;
\byuhrzeit\.com\b&lt;br /&gt;
\bmatamoshiach\.org\b&lt;br /&gt;
\bbit\.ly/2m15qj0\b&lt;br /&gt;
\bashreinu\.app\b&lt;br /&gt;
\bchabad-ty\.com\b&lt;br /&gt;
\bichossid\.com\b&lt;br /&gt;
\bhabad\.org\.il\b&lt;br /&gt;
\bchabadisraeli\.info\b&lt;br /&gt;
\bhe\.chabad\.org\b&lt;br /&gt;
\btotrashlats\.com\b&lt;br /&gt;
\byeshivamh\.org\b&lt;br /&gt;
\bygmiami\.com\b&lt;br /&gt;
\bbat-melech\.co\.il\b&lt;br /&gt;
\bprojectlikkuteisichos\.org\b&lt;br /&gt;
\byounglamplighters\.com\b&lt;br /&gt;
\b4ysc01p1vhw140bqmvpyqhpw-wpengine\.netdna-ssl\.com\b&lt;br /&gt;
\bkore\.co\.il\/viewArticle\/75208\b&lt;br /&gt;
\bth770\.co\.il\b&lt;br /&gt;
\bzachor\.michlala\.edu\b&lt;br /&gt;
\bncl\.org\.il\b&lt;br /&gt;
\bmoshiachkidsonline\.org\b&lt;br /&gt;
\bsynagoge-karlsruhe\.de\b&lt;br /&gt;
\bhasidicarchives\.com\b&lt;br /&gt;
\bolamot\.net\b&lt;br /&gt;
\bkerenanash\.com\b&lt;br /&gt;
\bmaoschitim\.org\b&lt;br /&gt;
\bjemcentral\.org\b&lt;br /&gt;
\bdvarmalchus\.org\b&lt;br /&gt;
\bdmag\.co\.il\b&lt;br /&gt;
\bkerenhamazon\.com\b&lt;br /&gt;
\basktherav\.com\b&lt;br /&gt;
\bkovtzimdrive\.com\b&lt;br /&gt;
\bsichos\.net\b&lt;br /&gt;
\bchabadwimbledon\.com\b&lt;br /&gt;
\bchabadindia\.in\b&lt;br /&gt;
\btemple\.org\.il\b&lt;br /&gt;
\bkinus\.info\b&lt;br /&gt;
\bzadikim\.com\b&lt;br /&gt;
\bulyop\.com\b&lt;br /&gt;
\bstumptherabbi\.org\b&lt;br /&gt;
\bgithub\.com\b&lt;br /&gt;
\bfaxasicha\.wordpress\.com\b&lt;br /&gt;
\bavepdf\.com\b&lt;br /&gt;
\btmimim\.co\.il\b&lt;br /&gt;
\bthelivingarchive\.org\b&lt;br /&gt;
\btemple\.org\.il\b&lt;br /&gt;
\bmbakodesh\.org\.il\b&lt;br /&gt;
\bbeithoraah\.org\b&lt;br /&gt;
\byaadudes\.com\b&lt;br /&gt;
\b60d5f97551d9b\.site123\.me\b&lt;br /&gt;
\bnehora.zone/kinot\b&lt;br /&gt;
\bjemtv\.page\.link\b&lt;br /&gt;
\btorath-emeth\.org\b&lt;br /&gt;
\bkarmyshely\.org\b&lt;br /&gt;
\bchabadcharish\.org\b&lt;br /&gt;
\bseminaire\.bethrivkah\.fr\b&lt;br /&gt;
\bganisrael\.co\.il\b&lt;br /&gt;
\byahad\.org\b&lt;br /&gt;
\byoslbloy\.info\b&lt;br /&gt;
\bhavineini\.co\.il\b&lt;br /&gt;
\bmagbis\.org\b&lt;br /&gt;
\bkedem-auctions\.com\/he\b&lt;br /&gt;
\bjewishrsm\.com\b&lt;br /&gt;
\bkevarim\.com\b&lt;br /&gt;
\bwhois\.toolforge\.org\b&lt;br /&gt;
\bcentralops\.net\b&lt;br /&gt;
\bdan\.me\.uk\b&lt;br /&gt;
\bmatamoshiach\.org\b&lt;br /&gt;
\bchabadofaqim\.org\.il\b&lt;br /&gt;
\bmaayanot\.com\.br\b&lt;br /&gt;
\bmichlalachabad\.com\b&lt;br /&gt;
\bsichotkodesh\.org\b&lt;br /&gt;
\binyeshiva\.ru\b&lt;br /&gt;
\bweb\.archive\.org\b&lt;br /&gt;
\bchabadpedia\.miraheze\.org\b&lt;br /&gt;
\barh-uk\.com\b&lt;br /&gt;
\bchabadofuk\.com\b&lt;br /&gt;
\bcp-en\.menta770\.com\b&lt;br /&gt;
\borchayalive\.org\.il\b&lt;br /&gt;
\bcnl\.org\.il\b&lt;br /&gt;
\bnayadotchabad\.co\.il\b&lt;br /&gt;
\bachot\.co\.il\b&lt;br /&gt;
\bchabadyavne\.com\b&lt;br /&gt;
\bchabadg\.co\.il\b&lt;br /&gt;
\bjames\.padolsey\.com\b&lt;br /&gt;
\b770shul\.org\b&lt;br /&gt;
\bdmag-pub\.com\b&lt;br /&gt;
\bkarovel\.co\.il\b&lt;br /&gt;
\bchabadgilo\.net\b&lt;br /&gt;
\bchabadbrussels\.com\b&lt;br /&gt;
\bganisraelhadera\.org\.il\b&lt;br /&gt;
\bmatzotchabad\.co\.il\b&lt;br /&gt;
\bkore\.co\.il\b&lt;br /&gt;
\bsynagogue-154\.business\.site\b&lt;br /&gt;
\bkcm\.co\.il\b&lt;br /&gt;
\bchabadtlv\.org\b&lt;br /&gt;
\ben\.calameo\.com\b&lt;br /&gt;
\bvaadhatmimim\.org\b&lt;br /&gt;
\blubavitch\.com\b&lt;br /&gt;
\brebbedrive\.org\b&lt;br /&gt;
\bmikdash3\.co\.il\b&lt;br /&gt;
\bchabadi\.022\.co\.il\b&lt;br /&gt;
\bchabad-rh\.co\.il\b&lt;br /&gt;
\bnetov\.net\b&lt;br /&gt;
\bforms\.gle\/7HpcN8hv5cQ3rt7Q8\b&lt;br /&gt;
\bpneimelech\.com\b&lt;br /&gt;
\bexpand770\.com\b&lt;br /&gt;
\byomi\.org\.il\b&lt;br /&gt;
\bmachon-modzitz\.co\.il\b&lt;br /&gt;
\bchabad-givatshmuel\.org\b&lt;br /&gt;
\bfeor\.ru/xenophobia\b&lt;br /&gt;
\bhamishpatim\.co\.il\b&lt;br /&gt;
\besicha\.org\b&lt;br /&gt;
\byeshivatchabad\.co\.il\b&lt;br /&gt;
\bchshmira\.org\b&lt;br /&gt;
\bvaad-nachle\.com\b&lt;br /&gt;
\brchabad\.org\b&lt;br /&gt;
\bbezikaron\.co\.il\b&lt;br /&gt;
\bhamodia\.com\b&lt;br /&gt;
\bbaalhatanya\.org\.il\b&lt;br /&gt;
\bchabadyeshiva\.com\b&lt;br /&gt;
\bttchabadkg\.org\.il\b&lt;br /&gt;
\boholeitorah\.com\b&lt;br /&gt;
\bchabadkg\.org\.il\b&lt;br /&gt;
\bkscvk\.org\b&lt;br /&gt;
\byttl\.org\b&lt;br /&gt;
\byttpoconos\.com\b&lt;br /&gt;
\bbrisavrohom\.org\b&lt;br /&gt;
\btotalkg\.org\.il\b&lt;br /&gt;
\byeshivalubavitch\.com\b&lt;br /&gt;
\beshelcenter\.weebly\.com\b&lt;br /&gt;
\bmoshiachchidon\.com\b&lt;br /&gt;
\bwikimedia\.org\b&lt;br /&gt;
#&amp;lt;/pre&amp;gt;  &amp;lt;!-- נא להשאיר שורה זו בדיוק כפי שהיא--&amp;gt;&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:Newarticletext/%D7%A7%D7%98%D7%92%D7%95%D7%A8%D7%99%D7%94&amp;diff=5047</id>
		<title>מדיה ויקי:Newarticletext/קטגוריה</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:Newarticletext/%D7%A7%D7%98%D7%92%D7%95%D7%A8%D7%99%D7%94&amp;diff=5047"/>
		<updated>2024-06-26T13:12:13Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: החלפת טקסט – &amp;quot;ערכים&amp;quot; ב־&amp;quot;דפי ציטוט&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div  style=&amp;quot;border: 1px solid #aaaaaa; background-color: #fafafa; padding: 5px;&amp;quot; class=&amp;quot;plainlinks&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-bottom: 1px dashed #AAAAAA; font-size: 115%;&amp;quot;&amp;gt;&#039;&#039;&#039;{{מגדר:|הגעת|הגעת|הגעתם}} לקטגוריה שעדיין אינה קיימת.&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
כדי ליצור קטגוריה חדשה, {{מגדר:|היעזר|היעזרי|היעזרו}} בהנחיות שלהלן ({{מגדר:|ראה|ראי|ראו}} את [[עזרה:קטגוריה|דף העזרה]] למידע נוסף). אם {{מגדר:|הגעת|הגעת|הגעתם}} לכאן בטעות, {{מגדר:|לחץ|לחצי|לחצו}} על כפתור ה&amp;lt;strong&amp;gt;חזרה&amp;lt;/strong&amp;gt; (Back) בדפדפן {{מגדר:|שלך|שלך|שלכם}}.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;לפני יצירת קטגוריה חדשה:&#039;&#039;&#039;&amp;lt;/u&amp;gt;&lt;br /&gt;
* {{מגדר:|ודא|ודאי|ודאו}} שלא קיימת כבר קטגוריה בשם דומה, וששם הקטגוריה תואם לכללים.&lt;br /&gt;
* {{מגדר:|ודא|ודאי|ודאו}} שהקטגוריה &#039;&#039;&#039;יכולה להכיל לפחות חמישה דפי ציטוט או דפים פוטנציאליים&#039;&#039;&#039;. אחרת, יש להימנע מיצירת הקטגוריה.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;ביצירת קטגוריה חדשה:&#039;&#039;&#039;&amp;lt;/u&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;שיוך לקטגוריות אם&#039;&#039;&#039;: {{מגדר:|שייך|שייכי|שייכו}} את הקטגוריה לקטגוריית אם אחת או יותר באמצעות התחביר &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[קטגוריה:שם קטגוריית האם]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
* &#039;&#039;&#039;הוספת הסבר&#039;&#039;&#039;: {{מגדר:|הוסף|הוסיפי|הוסיפו}} הסבר קצר על מהות הקטגוריה. אם יש דף ציטוט ראשי לקטגוריה, {{מגדר:|הוסף|הוסיפי|הוסיפו}} תקציר של הדף ציטוט עם הפניה אליו.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;לאחר שמירת הקטגוריה:&#039;&#039;&#039;&amp;lt;/u&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;יצירת קטגוריה לא משייכת דפים לקטגוריה&#039;&#039;&#039;. אל {{מגדר:|תשכח|תשכחי|תשכחו}} לשייך דפים מתאימים לקטגוריה. שיוך דפים לקטגוריה נעשה באופן הבא:&lt;br /&gt;
*:– {{מגדר:|הוסף|הוסיפי|הוסיפו}} את הטקסט &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[&amp;lt;/nowiki&amp;gt;{{FULLPAGENAME}}]]&amp;lt;/code&amp;gt; בסוף הדף ש{{מגדר:|ברצונך|ברצונך|ברצונכם}} לשייך לקטגוריה.&lt;br /&gt;
:לעזרה נוספת בשיוך דפים לקטגוריה, {{מגדר:|ראה|ראי|ראו}} [[עזרה:קטגוריה#צירוף דף ציטוט לקטגוריה|צירוף דף ציטוט לקטגוריה]].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%A2%D7%96%D7%A8%D7%94:%D7%9C%D7%9E%D7%94_%D7%9C%D7%99%D7%A6%D7%95%D7%A8_%D7%97%D7%A9%D7%91%D7%95%D7%9F&amp;diff=5046</id>
		<title>עזרה:למה ליצור חשבון</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%A2%D7%96%D7%A8%D7%94:%D7%9C%D7%9E%D7%94_%D7%9C%D7%99%D7%A6%D7%95%D7%A8_%D7%97%D7%A9%D7%91%D7%95%D7%9F&amp;diff=5046"/>
		<updated>2024-06-26T13:12:12Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: החלפת טקסט – &amp;quot;ערכים&amp;quot; ב־&amp;quot;דפי ציטוט&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;אין צורך ליצור חשבון כדי לקרוא ולערוך ציטוטים ודפים בחב&amp;quot;דציטוט. אך למרות זאת, הרשמה היא תהליך מהיר, חופשי ובלתי-פוגעני, ויש סיבות רבות לבצעה.&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;small&amp;gt;הערה: כדי להירשם כבר עכשיו, היכנסו ל[[מיוחד:Userlogin|דף ההרשמה / כניסה לחשבון]]&amp;lt;/small&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
רשומים לחב&amp;quot;דציטוט מקבלים &#039;&#039;&#039;שם משתמש&#039;&#039;&#039; שלזכותו נזקף קרדיט על העריכות שהמשתמש מבצע. זאת אומרת שכרשומים תזכו לקרדיט מלא על עבודתכם בדף הגרסאות הקודמות (כאשר אינכם פועלים באופן רשום, כל העריכות משוייכות לכתובת ה-IP שלכם). יש באפשרותכם גם לצפות בכל תרומותיכם על־ידי לחיצה על הקישור &amp;quot;תרומות&amp;quot; שממוקם לצד שם המשתמש שלכם, המופיע רק כאשר אתם מחוברים.&lt;br /&gt;
&lt;br /&gt;
יהיה לכם גם דף משתמש משל עצמכם, שבו תוכלו לכתוב קצת על עצמכם - התאריך בו נרשמתם, מהציפיות שלכם מחב&amp;quot;דציטוט, לאחסן במקום אחד מידע חיוני אחר על חב&amp;quot;דציטוט (קישורים שימושיים, רשימות וכדומה).&lt;br /&gt;
&lt;br /&gt;
בנוסף, יהיה לכם גם דף שיחת משתמש, בו יוכלו משתמשים אחרים ליצור עמכם קשר. בכל פעם שמישהו יכתוב לכם הודעה בדף השיחה, תקבלו על כך הודעה מיוחדת. אי קיומו של דף כזה עבור משתמשים אנונימיים עלול לגרום למחיקת עבודתכם בשל בעיות של חוסר בהירות שאין אפשרות ללבן אותן איתכם.&lt;br /&gt;
&lt;br /&gt;
אם תרצו להזין למערכת כתובת דואר אלקטרוני, משתמשים אחרים יוכלו לשלוח לכם הודעות דואר אלקטרוני בלי לצפות בכתובתכם באופן ישיר.&lt;br /&gt;
&lt;br /&gt;
מאפיין נוסף שמשתמשים רשומים צפויים להשתמש בו באופן נרחב הוא רשימת המעקב. בכל דף תופיע לשונית נוספת, &amp;quot;מעקב&amp;quot;, ותיבת סימון בתחתית דף העריכה, שלחיצה על אחת מהן תוביל להוספת הדף לרשימת המעקב. רשימת המעקב היא גרסה מקוצרת של רשימת השינויים האחרונים שמראה רק את השינויים האחרונים שבוצעו בדפים שהוספתם לרשימה. בנוסף, מאמרים שעליהם הופעל מעקב מופיעים בכתב מודגש בדף השינויים האחרונים. בצורה זו, אתם יכולים לעקוב אחר כל המאמרים החשובים לכם בלי לבדוק כל אחד מהשינויים שבוצעו בהם.&lt;br /&gt;
&lt;br /&gt;
==שינויי תצוגה==&lt;br /&gt;
משתמשים רשומים יכולים לשנות מאפיינים רבים של הדרך בה חב&amp;quot;דציטוט מוצגת: כל משתמש רשום יכול לבחור מבין סקינים שונים, לשנות את תצוגת הנוסחאות המתמטיות, לקבוע את יישור הפסקאות, את רוחב תיבת העריכה ועוד.&lt;br /&gt;
&lt;br /&gt;
==הצבעות ודיונים==&lt;br /&gt;
בדיונים העוסקים בדפי ציטוט, במחיקה ומדיניות כל המשתמשים רשאים להביע את דעתם, אך דעתו של משתמש רשום תחשב יותר, משום שמשתמש שכזה מראה על רצון אמיתי יותר לתרום לחב&amp;quot;דציטוט, וגם משום שהאנונימיות שבכתובות ה-IP מאפשרת יצירת &amp;quot;בובות קש&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
בהצבעות, אין למשתמשים אנונימיים אפשרות להצביע כלל.&lt;br /&gt;
&lt;br /&gt;
{{שאלה}}&lt;br /&gt;
&lt;br /&gt;
[[קטגוריה:חב&amp;quot;דציטוט - עזרה|חב&amp;quot;דציטוט - עזרה]]&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:Newarticletext/%D7%9E%D7%A8%D7%97%D7%91_%D7%94%D7%93%D7%A4%D7%99_%D7%A6%D7%99%D7%98%D7%95%D7%98%D7%99%D7%9D&amp;diff=5044</id>
		<title>מדיה ויקי:Newarticletext/מרחב הדפי ציטוטים</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:Newarticletext/%D7%9E%D7%A8%D7%97%D7%91_%D7%94%D7%93%D7%A4%D7%99_%D7%A6%D7%99%D7%98%D7%95%D7%98%D7%99%D7%9D&amp;diff=5044"/>
		<updated>2024-06-26T13:12:07Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: החלפת טקסט – &amp;quot;ערכים&amp;quot; ב־&amp;quot;דפי ציטוט&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;new_page_warning&amp;quot;&amp;gt;&lt;br /&gt;
{| style=&amp;quot;border: 1px solid #aaaaaa; background-color: #fafafa; padding: 3px;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;font-size: 115%;&amp;quot; |&#039;&#039;&#039;הגעתם לדף שעדיין איננו קיים.&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;border-top: 1px dashed #AAAAAA; border-left:1px dashed #AAAAAA;width:50%;&amp;quot; |&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color: Blue&amp;quot;&amp;gt;&#039;&#039;&#039;ליצירת דף חדש, כתבו את התוכן שלכם בתיבת הטקסט למטה ([[עזרה:איך לערוך דף|לעזרה נוספת]]).&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;לפני פרסום דף ציטוט חדש&#039;&#039;&#039;&amp;lt;/u&amp;gt;:&lt;br /&gt;
*אם ברצונכם לראות &amp;quot;איך זה עובד&amp;quot;, עשו זאת בבקשה ב[[חב&amp;quot;דציטוט:ארגז החול|ארגז החול]].&lt;br /&gt;
*[[מיוחד:חיפוש/{{שם הדף}}|בדקו]] שלא קיים כבר דף בנושא, וששם הדף תואם את הקווים המנחים ל[[חב&amp;quot;דציטוט:מדיניות חב&amp;quot;דציטוט|מתן שמות לדפי ציטוט]].&lt;br /&gt;
*ודאו שנושא הדף ציטוט מתאים לדף ציטוט אנציקלופדי.&lt;br /&gt;
* ניתן גם [[חב&amp;quot;דציטוט:בקשת דפי ציטוט|לבקש את כתיבת דף ציטוט זה]] מכותבים אחרים.&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-top: 1px dashed #AAAAAA;&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;אחרי פרסום דף ציטוט:&#039;&#039;&#039;&amp;lt;/u&amp;gt; [[עזרה:איך ליצור קישור|קשרו]] אל הדף ציטוט מדפי ציטוט אחרים וצרו [[עזרה:דף הפניה|הפניות]] אם נחוץ.&lt;br /&gt;
| rowspan=2 valign=top style=&amp;quot;border-top: 1px dashed #AAAAAA; background-color:#fbfbfb; padding: 3px&amp;quot; | &lt;br /&gt;
&amp;lt;u&amp;gt;&#039;&#039;&#039;לכותבים חדשים&#039;&#039;&#039;&amp;lt;/u&amp;gt;: &lt;br /&gt;
*[[חב&amp;quot;דציטוט:תבנית דף|בְּנוּ]] את הדף ו[[עזרה:איך לערוך דף|עצבו]] אותו. הקפידו להוסיף קישורים באופן הבא: &amp;lt;nowiki&amp;gt;[[קישור]]&amp;lt;/nowiki&amp;gt;. &lt;br /&gt;
*השתמשו בכפתור &amp;quot;תצוגה מקדימה&amp;quot; כדי לראות כיצד ייראה הדף לאחר עריכתכם.&lt;br /&gt;
&lt;br /&gt;
עריכתכם תפורסם כשתלחצו על כפתור השמירה. לפני כן, ודאו כי הטקסט ראוי לפרסום, אינו מכיל שגיאות, אין בו תוכן פוגעני ואינו מפר [[חב&amp;quot;דציטוט:זכויות יוצרים|זכויות יוצרים]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&amp;lt;span style=&amp;quot;color: Blue&amp;quot;&amp;gt;&#039;&#039;&#039;אם הגעתם לכאן בטעות, לחצו על מקש ה־Back בדפדפן שלכם.&#039;&#039;&#039;&amp;lt;/span&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%AA%D7%91%D7%A0%D7%99%D7%AA:%D7%A7%D7%98%D7%92%D7%95%D7%A8%D7%99%D7%94_%D7%A8%D7%99%D7%A7%D7%94/%D7%AA%D7%95%D7%9B%D7%9F&amp;diff=5043</id>
		<title>תבנית:קטגוריה ריקה/תוכן</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%AA%D7%91%D7%A0%D7%99%D7%AA:%D7%A7%D7%98%D7%92%D7%95%D7%A8%D7%99%D7%94_%D7%A8%D7%99%D7%A7%D7%94/%D7%AA%D7%95%D7%9B%D7%9F&amp;diff=5043"/>
		<updated>2024-06-26T13:12:03Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: החלפת טקסט – &amp;quot;ערכים&amp;quot; ב־&amp;quot;דפי ציטוט&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{אזהרה כללית|&lt;br /&gt;
&#039;&#039;&#039;מפעילי המערכת – נא לא למחוק את הקטגוריה הזו גם אם היא ריקה!&#039;&#039;&#039;{{ש}}זוהי קטגוריית תחזוקה אשר יכולה להיות ריקה או עם דפי ציטוט ולכן אין למחוק אותה גם כאשר היא ריקה.{{ש}}{{{1|}}}&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[קטגוריה:תבניות עזר לתבניות]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:Newarticletext/%D7%AA%D7%91%D7%A0%D7%99%D7%AA&amp;diff=5042</id>
		<title>מדיה ויקי:Newarticletext/תבנית</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:Newarticletext/%D7%AA%D7%91%D7%A0%D7%99%D7%AA&amp;diff=5042"/>
		<updated>2024-06-26T13:11:58Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: החלפת טקסט – &amp;quot;ערכים&amp;quot; ב־&amp;quot;דפי ציטוט&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div  style=&amp;quot;border: 1px solid #aaaaaa; background-color: #fafafa; padding: 5px;&amp;quot; class=&amp;quot;plainlinks&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border-bottom: 1px dashed #AAAAAA;font-size: 115%;&amp;quot;&amp;gt;&#039;&#039;&#039;{{מגדר:|הגעת|הגעת|הגעתם}} לתבנית שעדיין אינה קיימת.&#039;&#039;&#039;&amp;lt;/div&amp;gt;&lt;br /&gt;
כדי ליצור תבנית חדשה, {{מגדר:|הקלד|הקלידי|הקלידו}} את התוכן שלה בתיבת הטקסט שלמטה ({{מגדר:|ראה|ראי|ראו}} את [[עזרה:תבניות|דף העזרה]] למידע נוסף). אם {{מגדר:|הגעת|הגעת|הגעתם}} לכאן בטעות, {{מגדר:|לחץ|לחצי|לחצו}} על כפתור ה&amp;lt;strong&amp;gt;חזרה&amp;lt;/strong&amp;gt; (Back) בדפדפן {{מגדר:|שלך|שלך|שלכם}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;אנא {{מגדר:|הקפד|הקפידי|הקפידו}} על הכללים הבאים ביצירת תבנית חדשה:&#039;&#039;&#039;&lt;br /&gt;
*  &#039;&#039;&#039;מתן שם לתבנית:&#039;&#039;&#039;&lt;br /&gt;
*:– שמות של תבניות מידע צריכים להיות בלשון &amp;lt;u&amp;gt;יחיד&amp;lt;/u&amp;gt; (לדוגמה: &amp;quot;[[תבנית:דמות]]&amp;quot; ו&#039;&#039;&#039;לא&#039;&#039;&#039; &amp;quot;תבנית:דמות&amp;quot;);&lt;br /&gt;
*:– שמות של תבניות ניווט צריכים להיות בלשון &amp;lt;u&amp;gt;רבים&amp;lt;/u&amp;gt; (לדוגמה: &amp;quot;[[תבנית:תנאים]]&amp;quot; ו&#039;&#039;&#039;לא&#039;&#039;&#039; &amp;quot;תבנית:תנאים&amp;quot;).&lt;br /&gt;
* {{מגדר:|ודא|ודאי|ודאו}} שלא קיימת כבר תבנית זהה או דומה בשם אחר. אם יש תבנית כזו, ייתכן שעדיף לשפר את התבנית הקיימת במקום ליצור תבנית חדשה.&lt;br /&gt;
* &#039;&#039;&#039;דיון מקדים:&#039;&#039;&#039; אם התבנית מיועדת לשימוש בדפים רבים, יש לפתוח דיון ב[[חב&amp;quot;דציטוט:אולם דיונים|אולם הדיונים]] לפני הוספתה לדפי ציטוט רבים.&lt;br /&gt;
* &#039;&#039;&#039;תיעוד:&#039;&#039;&#039; יש להוסיף תיאור קצר המסביר למה מיועדת התבנית. אם לתבנית יש פרמטרים, אנא {{מגדר:|הוסף|הוסיפי|הוסיפו}} תיעוד המתאר את הפרמטרים הזמינים.&lt;br /&gt;
: כדי להוסיף תוכן שיוצג בדף התיאור של התבנית אך לא יוכלל בתבנית עצמה, {{מגדר:|השתמש|השתמשי|השתמשו}} בתחביר הבא: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;noinclude&amp;gt; תוכן שלא יוכלל בתבנית &amp;lt;/noinclude&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%AA%D7%91%D7%A0%D7%99%D7%AA:%D7%99%D7%A9_%D7%91%D7%95%D7%A7%D7%9E%D7%A8%D7%A7%D7%9C%D7%98&amp;diff=5040</id>
		<title>תבנית:יש בוקמרקלט</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%AA%D7%91%D7%A0%D7%99%D7%AA:%D7%99%D7%A9_%D7%91%D7%95%D7%A7%D7%9E%D7%A8%D7%A7%D7%9C%D7%98&amp;diff=5040"/>
		<updated>2024-06-26T13:11:49Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: החלפת טקסט – &amp;quot;ערכים&amp;quot; ב־&amp;quot;דפי ציטוט&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;toccolours metadata&amp;quot; style=&amp;quot;float: {{#שווה:{{{יישור}}}|ימין|right|left}}; &amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;bottom&amp;quot;|&lt;br /&gt;
[[קובץ:Crystal Clear action bookmark approved.png|שמאל|40px]]&lt;br /&gt;
|align=&amp;quot;center&amp;quot;| &lt;br /&gt;
ניתן לייעל את הוספת התבנית לדפי ציטוט תוך שימוש {{ש}}ב[[חב&amp;quot;דציטוט:בוקמרקלטים|בוקמרקלטים של חב&amp;quot;דציטוט]] &lt;br /&gt;
|}&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
יש לכלול תבנית זו בתיעוד התבניות הנתמכות על ידי הבוקרמרקלטים&lt;br /&gt;
&lt;br /&gt;
[[קטגוריה:תבניות תחזוקה]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:Gadget-popup.js&amp;diff=4185</id>
		<title>מדיה ויקי:Gadget-popup.js</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:Gadget-popup.js&amp;diff=4185"/>
		<updated>2024-06-26T00:14:04Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: יצירת דף עם התוכן &amp;quot;popupStrings = { 	&amp;#039;article&amp;#039;: &amp;#039;ערך&amp;#039;, 	&amp;#039;category&amp;#039;: &amp;#039;קטגוריה&amp;#039;, 	&amp;#039;categories&amp;#039;: &amp;#039;קטגוריות&amp;#039;, 	&amp;#039;image&amp;#039;: &amp;#039;תמונה&amp;#039;, 	&amp;#039;images&amp;#039;: &amp;#039;תמונות&amp;#039;, 	&amp;#039;stub&amp;#039;: &amp;#039;קצרמר&amp;#039;, 	&amp;#039;section stub&amp;#039;: &amp;#039;פסקה להשלמה&amp;#039;, 	&amp;#039;Empty page&amp;#039;: &amp;#039;דף ריק&amp;#039;, 	&amp;#039;kB&amp;#039;: &amp;#039; אלפי תווים&amp;#039;,   // note: despite the name of this key, the gadget actually counts character, not bytes 	&amp;#039;bytes&amp;#039;: &amp;#039;תווים&amp;#039;, 	&amp;#039;day&amp;#039;: &amp;#039;יום&amp;#039;, 	&amp;#039;days&amp;#039;: &amp;#039;ימים&amp;#039;, 	&amp;#039;hour&amp;#039;: &amp;#039;שעה&amp;#039;, 	&amp;#039;hours&amp;#039;...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;popupStrings = {&lt;br /&gt;
	&#039;article&#039;: &#039;ערך&#039;,&lt;br /&gt;
	&#039;category&#039;: &#039;קטגוריה&#039;,&lt;br /&gt;
	&#039;categories&#039;: &#039;קטגוריות&#039;,&lt;br /&gt;
	&#039;image&#039;: &#039;תמונה&#039;,&lt;br /&gt;
	&#039;images&#039;: &#039;תמונות&#039;,&lt;br /&gt;
	&#039;stub&#039;: &#039;קצרמר&#039;,&lt;br /&gt;
	&#039;section stub&#039;: &#039;פסקה להשלמה&#039;,&lt;br /&gt;
	&#039;Empty page&#039;: &#039;דף ריק&#039;,&lt;br /&gt;
	&#039;kB&#039;: &#039; אלפי תווים&#039;,   // note: despite the name of this key, the gadget actually counts character, not bytes&lt;br /&gt;
	&#039;bytes&#039;: &#039;תווים&#039;,&lt;br /&gt;
	&#039;day&#039;: &#039;יום&#039;,&lt;br /&gt;
	&#039;days&#039;: &#039;ימים&#039;,&lt;br /&gt;
	&#039;hour&#039;: &#039;שעה&#039;,&lt;br /&gt;
	&#039;hours&#039;: &#039;שעות&#039;,&lt;br /&gt;
	&#039;minute&#039;: &#039;דקה&#039;,&lt;br /&gt;
	&#039;minutes&#039;: &#039;דקות&#039;,&lt;br /&gt;
	&#039;second&#039;: &#039;שנייה&#039;,&lt;br /&gt;
	&#039;seconds&#039;: &#039;שניות&#039;,&lt;br /&gt;
	&#039;week&#039;: &#039;שבוע&#039;,&lt;br /&gt;
	&#039;send thanks&#039;: &#039;תודה&#039;,&lt;br /&gt;
	&#039;ThanksHint&#039;: &#039;שליחת הודעת תודה למשתמש זה&#039;,&lt;br /&gt;
	&#039;weeks&#039;: &#039;שבועות&#039;,&lt;br /&gt;
	&#039;search&#039;: &#039;חיפוש&#039;,&lt;br /&gt;
	&#039;SearchHint&#039;: &#039;חפש בחב&amp;quot;דציטוט מאמרים הכוללים %s&#039;,&lt;br /&gt;
	&#039;web&#039;: &#039;מרשתת&#039;,&lt;br /&gt;
	&#039;global&#039;: &#039;גלובלי&#039;,&lt;br /&gt;
	&#039;globalSearchHint&#039;: &#039;חיפוש בחב&amp;quot;דציטויות אחרות אחר המחרוזת %s&#039;,&lt;br /&gt;
	&#039;googleSearchHint&#039;: &#039;חיפוש בגוגל %s&#039;,&lt;br /&gt;
	/////////////////////////////////////&lt;br /&gt;
	// article-related actions and info&lt;br /&gt;
	// (some actions also apply to user pages)&lt;br /&gt;
	/////////////////////////////////////&lt;br /&gt;
	&#039;actions&#039;: &#039;פעולות&#039;,		///// view articles and view talk&lt;br /&gt;
	&#039;popupsMenu&#039;: &#039;פופאפ&#039;,&lt;br /&gt;
	&#039;togglePreviewsHint&#039;: &#039;שנה הצגה מוקדמת&#039;,&lt;br /&gt;
	&#039;enable previews&#039;: &#039;אפשר תצוגה מוקדמת&#039;,&lt;br /&gt;
	&#039;disable previews&#039;: &#039;בטל תצוגה מוקדמת&#039;,&lt;br /&gt;
	&#039;toggle previews&#039;: &#039;שנה הצגה מוקדמת&#039;,&lt;br /&gt;
	&#039;show preview&#039;: &#039;הראה הצגה מוקדמת&#039;,&lt;br /&gt;
	&#039;reset&#039;: &#039;נקה מטמון&#039;,&lt;br /&gt;
	&#039;more...&#039;: &#039;עוד...&#039;,&lt;br /&gt;
	&#039;disable&#039;: &#039;בטל פופאפים&#039;,&lt;br /&gt;
	&#039;disablePopupsHint&#039;: &#039;בטל פופאפים בערך זה, (החזרת פופאפים על ידי רענון הדף).&#039;,&lt;br /&gt;
	&#039;historyfeedHint&#039;: &#039;RSS לשינויים אחרונים בדף זה&#039;,&lt;br /&gt;
	&#039;purgePopupsHint&#039;: &#039;נקה זיכרון מטמון לפופאפים.&#039;,&lt;br /&gt;
	&#039;PopupsHint&#039;: &#039;נקה זיכרון מטמון לפופאפים.&#039;,&lt;br /&gt;
	&#039;spacebar&#039;: &#039;מקש רווח&#039;,&lt;br /&gt;
	&#039;view&#039;: &#039;הצג&#039;,&lt;br /&gt;
	&#039;view article&#039;: &#039;הצג ערך&#039;,&lt;br /&gt;
	&#039;viewHint&#039;: &#039;עבור ל- %s&#039;,&lt;br /&gt;
	&#039;talk&#039;: &#039;דף שיחה&#039;,&lt;br /&gt;
	&#039;talk page&#039;: &#039;דף שיחה&#039;,&lt;br /&gt;
	&#039;this&amp;amp;nbsp;revision&#039;: &#039;גרסה זו&#039;,&lt;br /&gt;
	&#039;revision %s of %s&#039;: &#039;גרסה %s של %s&#039;,&lt;br /&gt;
	&#039;Revision %s of %s&#039;: &#039;גרסה %s של %s&#039;,&lt;br /&gt;
	&#039;the revision prior to revision %s of %s&#039;: &#039;גרסה קודמת לגרסה %s של %s&#039;,&lt;br /&gt;
	&#039;Toggle image size&#039;: &#039;הקש לשינוי גודל תמונה&#039;,&lt;br /&gt;
	&#039;del&#039;: &#039;מחק&#039;,				///// delete, protect, move&lt;br /&gt;
	&#039;delete&#039;: &#039;מחיקה&#039;,&lt;br /&gt;
	&#039;deleteHint&#039;: &#039;מחיקת %s&#039;,&lt;br /&gt;
	&#039;undeleteShort&#039;: &#039;שחזור&#039;,&lt;br /&gt;
	&#039;UndeleteHint&#039;: &#039;הראה היסטוריית מחיקות של %s&#039;,&lt;br /&gt;
	&#039;protect&#039;: &#039;הגנה&#039;,&lt;br /&gt;
	&#039;protectHint&#039;: &#039;הגנה על %s&#039;,&lt;br /&gt;
	&#039;unprotectShort&#039;: &#039;הסרת&#039;,&lt;br /&gt;
	&#039;unprotectHint&#039;: &#039;הסר הגנה מדף %s&#039;,&lt;br /&gt;
	&#039;move&#039;: &#039;העברה&#039;,&lt;br /&gt;
	&#039;move page&#039;: &#039;העברת הדף&#039;,&lt;br /&gt;
	&#039;MovepageHint&#039;: &#039;העברת הדף %s&#039;,&lt;br /&gt;
	&#039;edit&#039;: &#039;עריכה&#039;,			///// edit articles and talk&lt;br /&gt;
	&#039;edit article&#039;: &#039;עריכת הדף&#039;,&lt;br /&gt;
	&#039;editHint&#039;: &#039;עריכת הערך %s&#039;,&lt;br /&gt;
	&#039;edit talk&#039;: &#039;עריכת דף השיחה&#039;,&lt;br /&gt;
	&#039;new&#039;: &#039;חדש&#039;,&lt;br /&gt;
	&#039;new topic&#039;: &#039;הוספת פסקה&#039;,&lt;br /&gt;
	&#039;newSectionHint&#039;: &#039;הוספת פסקה ל-%s&#039;,&lt;br /&gt;
	&#039;null edit&#039;: &#039;רענון&#039;,&lt;br /&gt;
	&#039;nullEditHint&#039;: &#039;רענן דף %s&#039;,&lt;br /&gt;
	&#039;hist&#039;: &#039;היסטוריה&#039;,			///// history, diffs, editors, related&lt;br /&gt;
	&#039;history&#039;: &#039;היסטוריה&#039;,&lt;br /&gt;
	&#039;historyHint&#039;: &#039;שינויים אחרונים בדף %s&#039;,&lt;br /&gt;
	&#039;last&#039;: &#039;אחרון&#039;,&lt;br /&gt;
	&#039;lastEdit&#039;: &#039;עריכה אחרונה&#039;,&lt;br /&gt;
	&#039;mark patrolled&#039;: &#039;סימן עריכה כבדוקה&#039;,&lt;br /&gt;
	&#039;markpatrolledHint&#039;: &#039;סמן עריכה זו כבדוקה&#039;,&lt;br /&gt;
	&#039;show last edit&#039;: &#039;העריכה האחרונה&#039;,&lt;br /&gt;
	&#039;Show the last edit&#039;: &#039;הראה עריכה אחרונה&#039;,&lt;br /&gt;
	&#039;lastContrib&#039;: &#039;תרומה אחרונה של המשתמש/ת&#039;,&lt;br /&gt;
	&#039;last set of edits&#039;: &#039;עריכות אחרונות&#039;,&lt;br /&gt;
	&#039;lastContribHint&#039;: &#039;הראה הבדל של כל העריכות האחרונות של העורך האחרון&#039;,&lt;br /&gt;
	&#039;cur&#039;: &#039;נוכחי&#039;,&lt;br /&gt;
	&#039;diffCur&#039;: &#039;הבדל מהערך הנוכחי&#039;,&lt;br /&gt;
	&#039;Show changes since revision %s&#039;: &#039;הראה שינויים מאז גרסה %s&#039;,&lt;br /&gt;
	&#039;%s old&#039;: &#039;לפני %s&#039;, // as in 4 weeks old&lt;br /&gt;
	&#039;oldEdit&#039;: &#039;עריכה קודמת&#039;,&lt;br /&gt;
	&#039;purge&#039;: &#039;רענון&#039;,&lt;br /&gt;
	&#039;purgeHint&#039;: &#039;רענון דף %s&#039;,&lt;br /&gt;
	&#039;raw&#039;: &#039;מקור&#039;,&lt;br /&gt;
	&#039;rawHint&#039;: &#039;הורדת המקור של דף %s&#039;,&lt;br /&gt;
	&#039;render&#039;: &#039;פשוט&#039;,&lt;br /&gt;
	&#039;renderHint&#039;: &#039;הראה גרסת HTML של %s&#039;,&lt;br /&gt;
	&#039;Show the edit made to get revision&#039;: &#039;הראה עריכה כדי להגיע לגרסה&#039;,&lt;br /&gt;
	&#039;sinceMe&#039;: &#039;מאז עריכתי האחרונה&#039;,&lt;br /&gt;
	&#039;changes since mine&#039;: &#039;הראה שינויים מעריכתי האחרונה&#039;,&lt;br /&gt;
	&#039;sinceMeHint&#039;: &#039;הראה שינויים מעריכתי האחרונה&#039;,&lt;br /&gt;
	&#039;Couldn\&#039;t find an edit by %s\nin the last %s edits to\n%s&#039;: &#039;לא נמצאו עריכות של\nב- %s עריכות אחרונות של\n%s&#039;,&lt;br /&gt;
	&#039;eds&#039;: &#039;עורכים&#039;,&lt;br /&gt;
	&#039;editors&#039;: &#039;עורכים&#039;,&lt;br /&gt;
	&#039;editorListHint&#039;: &#039;רשימת העורכים של דף %s&#039;,&lt;br /&gt;
	&#039;related&#039;: &#039;מקושרים&#039;,&lt;br /&gt;
	&#039;relatedChanges&#039;: &#039;שינויים קשורים&#039;,&lt;br /&gt;
	&#039;related changes&#039;:&#039;שינויים קשורים&#039;,&lt;br /&gt;
	&#039;RecentchangeslinkedHint&#039;: &#039;הראה שינויים בערכים המקושרים ל %s&#039;,&lt;br /&gt;
	&#039;editOld&#039;: &#039;ערוך גרסה ישנה&#039;,		///// edit old version, or revert&lt;br /&gt;
	&#039;rv&#039;: &#039;שחזור&#039;,&lt;br /&gt;
	&#039;revert&#039;: &#039;שחזור&#039;,&lt;br /&gt;
	&#039;revertHint&#039;: &#039;שחזר ל %s&#039;,&lt;br /&gt;
	&#039;defaultpopupRedlinkSummary&#039;: &#039;הסרת קישורים לדף לא קיים [[%s]] בעזרת גאדג\&#039;ט פופאפ&#039;,&lt;br /&gt;
	&#039;defaultpopupFixDabsSummary&#039;: &#039;תיקון פירושונים [[%s]] ל [[%s]] בעזרת גאדג\&#039;ט פופאפ&#039;, &lt;br /&gt;
	&#039;defaultpopupFixRedirsSummary&#039;: &#039;שינוי הפניה [[%s]] ל [[%s]] בעזרת גאדג\&#039;ט פופאפ&#039;, &lt;br /&gt;
	&#039;defaultpopupExtendedRevertSummary&#039;: &#039;שחזור לגרסה מתאריך %s של %s, גרסה קודמת %s בעזרת גאדג\&#039;ט פופאפ&#039;, &lt;br /&gt;
	&#039;defaultpopupRevertToPreviousSummary&#039;: &#039;שחזור לגרסה לפני גרסה %s בעזרת גאדג\&#039;ט פופאפ&#039;, &lt;br /&gt;
	&#039;defaultpopupRevertSummary&#039;: &#039;שחזור לגרסה %s בעזרת גאדג\&#039;ט פופאפ&#039;, &lt;br /&gt;
	&#039;defaultpopupQueriedRevertToPreviousSummary&#039;: &#039;שחזור לגרסה לפני גרסה $1 מתאריך $2 של $3 בעזרת גאדג\&#039;ט פופאפ&#039;, &lt;br /&gt;
	&#039;defaultpopupQueriedRevertSummary&#039;: &#039;שחזור לגרסה $1 מתאריך $2 של $3 בעזרת גאדג\&#039;ט פופאפ&#039;, &lt;br /&gt;
	&#039;defaultpopupRmDabLinkSummary&#039;: &#039;הסרת קישור לדף [[%s]] בעזרת גאדג\&#039;ט פופאפ&#039;, &lt;br /&gt;
	&#039;Redirects&#039;: &#039;מפנה&#039;, // as in Redirects to ...&lt;br /&gt;
	&#039; to &#039;: &#039; ל &#039;,		// as in Redirects to ...&lt;br /&gt;
	&#039;Bypass redirect&#039;: &#039;עקוף הפניה&#039;,&lt;br /&gt;
	&#039;Fix this redirect&#039;: &#039;תקן הפניה&#039;,&lt;br /&gt;
	&#039;disambig&#039;: &#039;פירושונים&#039;,		///// add or remove dab etc.&lt;br /&gt;
	&#039;disambigHint&#039;: &#039;שינוי קישור לפירושונים ל-[[%s]]&#039;,&lt;br /&gt;
	&#039;Click to disambiguate this link to:&#039;: &#039;הקישו כדי לשנות קישור לפירושונים&#039;,&lt;br /&gt;
	&#039;remove this link&#039;: &#039;הסר קישור&#039;,&lt;br /&gt;
	&#039;remove all links to this page from this article&#039;: &#039;הסרת כל הקישורים לדף זה מן הערך&#039;,&lt;br /&gt;
	&#039;remove all links to this disambig page from this article&#039;: &#039;הסרת קישורים לדפי פירושונים מן הערך&#039;,&lt;br /&gt;
	&#039;mainlink&#039;: &#039;קישורית&#039;,		///// links, watch, unwatch&lt;br /&gt;
	&#039;wikiLink&#039;: &#039;קישור פנימי&#039;,&lt;br /&gt;
	&#039;wikiLinks&#039;: &#039;קישורים פנימיים&#039;,&lt;br /&gt;
	&#039;links here&#039;: &#039;מקשרים הנה&#039;,&lt;br /&gt;
	&#039;whatLinksHere&#039;: &#039;מה מקשר לכאן&#039;,&lt;br /&gt;
	&#039;what links here&#039;: &#039;מה מקשר לכאן&#039;,&lt;br /&gt;
	&#039;WhatlinkshereHint&#039;: &#039;רשימת הדפים המקושרים ל-%s&#039;,&lt;br /&gt;
	&#039;unwatchShort&#039;: &#039;הפסק ל&#039;,&lt;br /&gt;
	&#039;watchThingy&#039;: &#039;עקוב&#039;, // called watchThingy because {}.watch is a function&lt;br /&gt;
	&#039;watchHint&#039;: &#039;הוספת %s לרשימת המעקב שלי&#039;,&lt;br /&gt;
	&#039;unwatchHint&#039;: &#039;הסרת %s מרשימת המעקב שלי&#039;,&lt;br /&gt;
	&#039;Only found one editor: %s made %s edits&#039;: &#039;עורך/כת /היחיד: %s ביצע/ה %s עריכות&#039;,&lt;br /&gt;
	&#039;%s seems to be the last editor to the page %s&#039;: &#039;%s כנראה העורך/כת האחרון/נה של דף %s&#039;,&lt;br /&gt;
	&#039;rss&#039;: &#039;rss&#039;,&lt;br /&gt;
	/////////////////////////////////////&lt;br /&gt;
	// diff previews&lt;br /&gt;
	/////////////////////////////////////&lt;br /&gt;
	&#039;Diff truncated for performance reasons&#039;: &#039;ההבדל קוצץ לטובת ביצועים&#039;,&lt;br /&gt;
	&#039;Old revision&#039;: &#039;גרסה קודמת&#039;,&lt;br /&gt;
	&#039;New revision&#039;: &#039;גרסה חדשה&#039;,&lt;br /&gt;
	&#039;Something went wrong :-(&#039;: &#039;דבר מה השתבש&#039;,&lt;br /&gt;
	&#039;Empty revision, maybe non-existent&#039;: &#039;גרסה ריקה, ייתכן שזו גרסה שאינה קיימת&#039;,&lt;br /&gt;
	&#039;Unknown date&#039;: &#039;תאריך לא ידוע&#039;,&lt;br /&gt;
	/////////////////////////////////////&lt;br /&gt;
	// other special previews&lt;br /&gt;
	/////////////////////////////////////&lt;br /&gt;
	&#039;Empty category&#039;: &#039;קטגוריה ריקה&#039;,&lt;br /&gt;
	&#039;Category members (%s shown)&#039;: &#039;דפים בקטגוריה (%s מוצגים)&#039;,&lt;br /&gt;
	&#039;No image links found&#039;: &#039;לא נמצאו קישורים לתמונות&#039;,&lt;br /&gt;
	&#039;File links&#039;: &#039;קישורים לקבצים&#039;,&lt;br /&gt;
	&#039;No image found&#039;: &#039;לא נמצאו תמונות&#039;,&lt;br /&gt;
	&#039;Image from Commons&#039;: &#039;קובץ מקומונז&#039;,&lt;br /&gt;
	&#039;Description page&#039;: &#039;דף תיאור&#039;,&lt;br /&gt;
	&#039;Alt text:&#039;: &#039;טקסט אלטרנטיבי:&#039;,&lt;br /&gt;
	&#039;revdel&#039;:&#039;גרסה מוסתרת&#039;,&lt;br /&gt;
	/////////////////////////////////////&lt;br /&gt;
	// user-related actions and info&lt;br /&gt;
	/////////////////////////////////////&lt;br /&gt;
	&#039;user&#039;: &#039;משתמש/ת&#039;,			///// user page, talk, email, space&lt;br /&gt;
	&#039;user&amp;amp;nbsp;page&#039;: &#039;דף משתמש&#039;,&lt;br /&gt;
	&#039;user talk&#039;: &#039;שיחת משתמש&#039;,&lt;br /&gt;
	&#039;edit user talk&#039;: &#039;עריכת שיחת משתמש&#039;,&lt;br /&gt;
	&#039;leave comment&#039;: &#039;השאירו הערה&#039;,&lt;br /&gt;
	&#039;email&#039;: &#039;דוא&amp;quot;ל&#039;,&lt;br /&gt;
	&#039;email user&#039;: &#039;שליחת דוא&amp;quot;ל&#039;,&lt;br /&gt;
	&#039;EmailUserHint&#039;: &#039;שליחת דוא&amp;quot;ל ל-%s&#039;,&lt;br /&gt;
	&#039;space&#039;: &#039;מרחב&#039;, // short form for userSpace link&lt;br /&gt;
	&#039;PrefixIndexHint&#039;: &#039;הראה דפים במרחב המשתמש של %s&#039;,&lt;br /&gt;
	&#039;count&#039;: &#039;מספר&#039;,			///// contributions, log&lt;br /&gt;
	&#039;edit counter&#039;: &#039;מונה עריכות&#039;,&lt;br /&gt;
	&#039;editCounterLinkHint&#039;: &#039;מספר התרומות של %s&#039;,&lt;br /&gt;
	&#039;contribs&#039;: &#039;תרומות&#039;,&lt;br /&gt;
	&#039;contributions&#039;: &#039;תרומות&#039;,&lt;br /&gt;
	&#039;deletedContribs&#039;: &#039;מחיקת תרומות&#039;,&lt;br /&gt;
	&#039;DeletedcontributionsHint&#039;: &#039;הראה עריכות מחוקות של %s&#039;,&lt;br /&gt;
	&#039;ContributionsHint&#039;: &#039;הראה תרומות משתמש של %s&#039;,&lt;br /&gt;
	&#039;log&#039;: &#039;יומן&#039;,&lt;br /&gt;
	&#039;user log&#039;: &#039;יומן משתמש&#039;,&lt;br /&gt;
	&#039;userLogHint&#039;: &#039;הראה את יומן המשתמש של %s &#039;,&lt;br /&gt;
	&#039;arin&#039;: &#039;בדיקת ARIN&#039;,			///// ARIN lookup, block user or IP&lt;br /&gt;
	&#039;Look up %s in ARIN whois database&#039;: &#039;חפש את %s בבסיס הנתונים של ARIN&#039;,&lt;br /&gt;
	&#039;unblockShort&#039;: &#039;un&#039;,&lt;br /&gt;
	&#039;block&#039;: &#039;חסימה&#039;,&lt;br /&gt;
	&#039;block user&#039;: &#039;חסימת משתמש&#039;,&lt;br /&gt;
	&#039;IpblocklistHint&#039;: &#039;שחרור %s&#039;,&lt;br /&gt;
	&#039;BlockipHint&#039;: &#039;חסום את %s מביצוע עריכות&#039;,&lt;br /&gt;
	&#039;block log&#039;: &#039;יומן חסימות&#039;,&lt;br /&gt;
	&#039;blockLogHint&#039;: &#039;יומן החסימות של %s&#039;,&lt;br /&gt;
	&#039;protectLogHint&#039;: &#039;יומן הגנות של %s&#039;,&lt;br /&gt;
	&#039;pageLogHint&#039;: &#039;יומן דפים של %s&#039;,&lt;br /&gt;
	&#039;deleteLogHint&#039;: &#039;יומן מחיקות של %s&#039;,&lt;br /&gt;
	&#039;Invalid %s %s&#039;: &#039;האפשרות %s אינה תקינה: %s&#039;,&lt;br /&gt;
	&#039;No backlinks found&#039;: &#039;לא נמצאו דפים המקשרים לכאן&#039;,&lt;br /&gt;
	&#039; and more&#039;: &#039; ועוד&#039;,&lt;br /&gt;
	&#039;undo&#039;: &#039;חזור&#039;,&lt;br /&gt;
	&#039;undoHint&#039;: &#039;שחזר עריכה זו&#039;,&lt;br /&gt;
	&#039;Download preview data&#039;: &#039;הורד מידע להצגה מוקדמת&#039;,&lt;br /&gt;
	&#039;Invalid or IP user&#039;: &#039;שם משתמש לא תקין או IP&#039;,&lt;br /&gt;
	&#039;Not a registered username&#039;: &#039;לא שם משתמש רשום&#039;,&lt;br /&gt;
	&#039;BLOCKED&#039;: &#039;חסום&#039;,&lt;br /&gt;
	&#039; edits since: &#039;: &#039; עריכות מאז: &#039;,&lt;br /&gt;
	/////////////////////////////////////&lt;br /&gt;
	// Autoediting&lt;br /&gt;
	/////////////////////////////////////&lt;br /&gt;
	&#039;Enter a non-empty edit summary or press cancel to abort&#039;: &#039;הקלידו תקציר עריכה, או לחצו &amp;quot;ביטול&amp;quot;&#039;,&lt;br /&gt;
	&#039;Failed to get revision information, please edit manually.\n\n&#039;: &#039;קריאת גרסה נכשלה - אנא ערכו ידנית.\n\n&#039;,&lt;br /&gt;
	&#039;The %s button has been automatically clicked. Please wait for the next page to load.&#039;: &#039;כפתור %s נלחץ אוטומטית אנא המתינו לטעינת הדף הבא.&#039;,&lt;br /&gt;
	&#039;Could not find button %s. Please check the settings in your javascript file.&#039;: &#039;כפתור %s לא נמצא. אנא בדקו מה הבעיה.&#039;,&lt;br /&gt;
	/////////////////////////////////////&lt;br /&gt;
	// Popups setup&lt;br /&gt;
	/////////////////////////////////////&lt;br /&gt;
	&#039;Open full-size image&#039;: &#039;תמונה בגודל מלא&#039;,&lt;br /&gt;
	&#039;zxy&#039;: &#039;zxy&#039;&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// this gadget wipes the &amp;quot;title&amp;quot; attribute of links. however, Gadget cat-a-lot depends on the &amp;quot;title&amp;quot; attribute.&lt;br /&gt;
// so if we are in category space (14), and if this user also uses cat-a-lot, &lt;br /&gt;
// turn off the title-wiping behavior by setting global variable &amp;quot;removeTitles&amp;quot; to false.&lt;br /&gt;
// as explained in cat-a-lot talk page: http://commons.wikimedia.org/wiki/MediaWiki_talk:Gadget-Cat-a-lot.js&lt;br /&gt;
if (mw.config.get(&#039;wgNamespaceNumber&#039;) == 14) &lt;br /&gt;
mw.loader.using(&#039;mediawiki.user&#039;, function(){&lt;br /&gt;
    if (mw.user.options.get(&#039;gadget-Cat-a-lot&#039;))&lt;br /&gt;
        window.removeTitles = false;&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
mw.loader.load(&#039;//en.wikipedia.org/w/index.php?title=MediaWiki:Gadget-navpop.css&amp;amp;action=raw&amp;amp;ctype=text/css&#039;, &amp;quot;text/css&amp;quot;);&lt;br /&gt;
mw.loader.load(&#039;//en.wikipedia.org/w/index.php?title=MediaWiki:Gadget-popups.js&amp;amp;action=raw&amp;amp;ctype=text/javascript&#039;);&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:Spam-whitelist&amp;diff=4184</id>
		<title>מדיה ויקי:Spam-whitelist</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:Spam-whitelist&amp;diff=4184"/>
		<updated>2024-06-26T00:10:55Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt; #&amp;lt;!-- נא להשאיר שורה זו בדיוק כפי שהיא --&amp;gt; &amp;lt;pre&amp;gt;&lt;br /&gt;
 # כתובות URL חיצוניות המופיעות ברשימה זו *לא* ייחסמו אפילו אם יש להן דף ציטוט ברשימת הכתובות האסורות.&lt;br /&gt;
 #&lt;br /&gt;
 # יש להוסיף קישורים המתאימים לחסידות חב&amp;quot;ד / קישורים הנוגעים באופן ישיר לערכים בחב&amp;quot;דציטוט.&lt;br /&gt;
 # אין להוסיף אתר עם תמונות נשים, גם כאשר מדובר בבתי חב&amp;quot;ד וכדו&#039;.&lt;br /&gt;
 # ישנה אפשרות להוסיף קישור חיצוני עבור דף בודד, זאת באמצעות הוספת כתובת חיצונית לדף זה, הוספתה לדף המיועד ולאחר מכן הסרתה מדף זה.&lt;br /&gt;
 #&lt;br /&gt;
 # התחביר הוא כדלקמן:&lt;br /&gt;
 # כל שורה היא קטע מביטוי רגולרי שיתאים לשמות המתחם של כתובות URL&lt;br /&gt;
 # יש להעתיק את הקישור ללא הקידומת &#039;www&#039; או &#039;http&#039; &lt;br /&gt;
 # יש להשתמש ב-\ לפני נקודה&lt;br /&gt;
 # בתחילת השורה ובסוף השורה יש להוסיף את התווים \b&lt;br /&gt;
 # יש להחליף מופעים של \ בכתובת האינטרנט ל /&lt;br /&gt;
 # בכדי להציב הערה יש להשתמש ב&#039;#&#039; ורווח לפניה - כל דבר מתו &amp;quot;#&amp;quot; לסוף השורה הוא הערה&lt;br /&gt;
 #&lt;br /&gt;
 # דוגמאות לאתרים עם סיומות שונות, והדרך בה מוסיפים אותם: &lt;br /&gt;
 # * hebrewbooks.org יש להוסיף כך: \bhebrewbooks\.org\b&lt;br /&gt;
 # * 770live.com  יש להוסיף כך: \b770live\.com\b&lt;br /&gt;
 # * chabadpedia.co.il יש להוסיף כך: \bchabadpedia\.co\.il\b&lt;br /&gt;
 #&amp;lt;/pre&amp;gt; &amp;lt;!-- נא להשאיר שורה זו בדיוק כפי שהיא --&amp;gt;&lt;br /&gt;
 #&amp;lt;pre dir=&amp;quot;ltr&amp;quot;&amp;gt; &amp;lt;!-- נא להשאיר שורה זו בדיוק כפי שהיא --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
\btext\.chabadpedia.com\b&lt;br /&gt;
\bzitut\.chabadpedia.com\b&lt;br /&gt;
\bchabad\.info\b&lt;br /&gt;
\bmedia\.chabad\.info\b&lt;br /&gt;
\bmedia\.chabad\.info\chabadinfoheb\b&lt;br /&gt;
\bmedia\.chabad\.info/chabadinfoheb/wp-content/uploads\b&lt;br /&gt;
\bhealth\.gov\.il\b&lt;br /&gt;
\brambam-medicine\.org\.il\b&lt;br /&gt;
\bbiurim\.co\.il\b&lt;br /&gt;
\byetzialeshlichut\.link\b&lt;br /&gt;
\byomiolami\.org\b&lt;br /&gt;
\bcly\.vic\.edu\.au\b&lt;br /&gt;
\bjabad\.org\.ar\b&lt;br /&gt;
\bklm\.org\.il\b&lt;br /&gt;
\bchabadnevezeev\.co\.il\b&lt;br /&gt;
\byomiolami\.org\b&lt;br /&gt;
\bbarmitzva\.ravpage\.co\.il\b&lt;br /&gt;
\biggudhashluchim\.com\b&lt;br /&gt;
\bchabadindia770\.com\b&lt;br /&gt;
\bfindagrave\.com\b&lt;br /&gt;
\byeshivatchabad\.co\.il\b&lt;br /&gt;
\bvienemashiaj\.com\b&lt;br /&gt;
\bjewishjamaica\.com\b&lt;br /&gt;
\bchabadmoscow\.com\b&lt;br /&gt;
\bjewishvietnam\.com\b&lt;br /&gt;
\bchalukashashasmachne\.com\b&lt;br /&gt;
\bkramim\.Info\b&lt;br /&gt;
\bmaor\.org\b&lt;br /&gt;
\bbechabad\.org\b&lt;br /&gt;
\bsinun770\.org\b&lt;br /&gt;
\bmymaor\.org\b&lt;br /&gt;
\bcba\.org\.il\b&lt;br /&gt;
\bsefertora\.org\.il\b&lt;br /&gt;
\b.jstor\.org\b&lt;br /&gt;
\b.rabbisalliance\.org\b&lt;br /&gt;
\bmachanaym\.com\b&lt;br /&gt;
\bthedailysicha\.com\b&lt;br /&gt;
\btzachlist\.com\b&lt;br /&gt;
\bahblicklive\b.com\b&lt;br /&gt;
\bs3\.wasabisys\.com\b&lt;br /&gt;
\brabbinicalcollege\.edu\.au\b&lt;br /&gt;
\bhm-news\.co\.il\b&lt;br /&gt;
\bicount\.co\.il\b&lt;br /&gt;
\baleph3\.libnet\.ac\.il\b&lt;br /&gt;
\bmerhav\.nli\.org\.il\b&lt;br /&gt;
\borb\.org\.il\b&lt;br /&gt;
\bgoshenlaw\.org\b&lt;br /&gt;
\bweb\.nli\.org\.il\b&lt;br /&gt;
\bdaat\.ac\.il\b&lt;br /&gt;
\btkc\.co\.il\b&lt;br /&gt;
\bdaat\.co\.il\b&lt;br /&gt;
\btoratyosef\.co\.il\b&lt;br /&gt;
\bdvarmalchus\.org\.il\b&lt;br /&gt;
\bsefaria\.org\.il\b&lt;br /&gt;
\bspecial\.org\.il\b&lt;br /&gt;
\baharit\.com\b&lt;br /&gt;
\bhayedion\.com\b&lt;br /&gt;
\b770rebbe\.com\b&lt;br /&gt;
\bchabadshop\.com\b&lt;br /&gt;
\blecfl\.com\b&lt;br /&gt;
\bmosadharavkook\.com\b&lt;br /&gt;
\btotrashlats\.com\b&lt;br /&gt;
\bshulchanharav\.com\b&lt;br /&gt;
\bshluchim\.org\b&lt;br /&gt;
\bybdsnewhaven\.org\b&lt;br /&gt;
\bbmoshiach\.org\b&lt;br /&gt;
\banash\.org\b &lt;br /&gt;
\bchabadjapan\.org\b&lt;br /&gt;
\bmountofolives\.co\.il\b&lt;br /&gt;
\bchabadcampus\.co\.il\b&lt;br /&gt;
\bbarditchev\.co\.il\b&lt;br /&gt;
\bravdori\.co\.il\b&lt;br /&gt;
\blimudtora\.co\.il\b&lt;br /&gt;
\bnichoach\.blogspot\.com\b&lt;br /&gt;
\bchabadairportcity\.com\b&lt;br /&gt;
\bblogspot\.com\b&lt;br /&gt;
\bchassidutbehirah\.com\b&lt;br /&gt;
\btorasmoshiach\.com\b&lt;br /&gt;
\btmimim\.com\b&lt;br /&gt;
\brebbedrive\.com\b&lt;br /&gt;
\bsearch\.rsl\.ru\b&lt;br /&gt;
\bradiomoshiach\.com\b&lt;br /&gt;
\bvaa770\.org\b&lt;br /&gt;
\bchabadjapan\.org\b&lt;br /&gt;
\bkupasrabeinu\.org\b&lt;br /&gt;
\bvideolan\.org\b&lt;br /&gt;
\bbeit-hamikdash\.co\.il\b&lt;br /&gt;
\bachot770\.co\.il\b&lt;br /&gt;
\bnakdan.dicta\.org\.il\b&lt;br /&gt;
\btzemachtzedekshul\.org\b&lt;br /&gt;
\byadvashem\.org\b&lt;br /&gt;
\bparasha\.ooil.co\b&lt;br /&gt;
\brambam\.ooil.co\b&lt;br /&gt;
\btalmudit18\.com\b&lt;br /&gt;
\bonline.fliphtml5\.com\b&lt;br /&gt;
\bnigrijewishonlineschool\.com\b&lt;br /&gt;
\bchabad\.org.il\b&lt;br /&gt;
\bkfar-chabad\.com\b&lt;br /&gt;
\bsmichanet\.com\b&lt;br /&gt;
\bigrot\.org.il\b&lt;br /&gt;
\blemaanyilmedo\.org\b&lt;br /&gt;
\bmechon-mamre\.org\b&lt;br /&gt;
\bbeismoshiach\.co\.il\b&lt;br /&gt;
\bchish\.co\.il\b&lt;br /&gt;
\bsadna-jew\.com\b&lt;br /&gt;
\botzerhachassidus\.com\b&lt;br /&gt;
\b\bjewishmusic\.fm\b &lt;br /&gt;
\b\breshetch\.org\b &lt;br /&gt;
\breshetch\.org.il\b&lt;br /&gt;
\bph.yhb.org.il\b&lt;br /&gt;
\bwpengine\.netdna-cdn\.com\b&lt;br /&gt;
\blink\.myjewishpage\.com\b&lt;br /&gt;
\bmerkazanash\.com\b&lt;br /&gt;
\bmerkazanash\.com\b&lt;br /&gt;
\bbeverlyhillschabad\.com\b&lt;br /&gt;
\bidstorahorg\.clhosting.org\b&lt;br /&gt;
\btag=%D7%97%D7%91%D7%93\b&lt;br /&gt;
\b\bpnimi\.org\.il/Hebrew\b &lt;br /&gt;
\b\binner\.org\b &lt;br /&gt;
\bmalchuty\.org\b&lt;br /&gt;
\bchabad-elkana\.org\b&lt;br /&gt;
\b\bodyosefchai\.org\.il\b&lt;br /&gt;
\b\bdaat\.org\.il\b&lt;br /&gt;
\b\blubavitch\.org\.il\b&lt;br /&gt;
\bhe\.rabbiasi\.com\b&lt;br /&gt;
\bgallery\.mailchimp\.com\b&lt;br /&gt;
\bkidstorah\.org\b&lt;br /&gt;
\bigrut\.blogspot\.com\b&lt;br /&gt;
\bkikar\.co\.il\b&lt;br /&gt;
\bchabadashdod\.co\.il\b&lt;br /&gt;
\bblogspot\.co\.il\b&lt;br /&gt;
\bchabadsrilanka\.co\.il\b&lt;br /&gt;
\bcourts\.state\.ny\.us\b&lt;br /&gt;
\bigrot\.org\b&lt;br /&gt;
\bigrot\.com\b&lt;br /&gt;
\btheonlinerabbi\.com\b&lt;br /&gt;
\bhalacha\.co\b&lt;br /&gt;
\b/default\.asp\b&lt;br /&gt;
\bderher\.org\b&lt;br /&gt;
\btosfosinenglish\.com\b&lt;br /&gt;
\btosfosinenglish\.com\b&lt;br /&gt;
\bderher\.org\b&lt;br /&gt;
\bgeulahvod\.com\b&lt;br /&gt;
\bMyencounterblog\.com\b &lt;br /&gt;
\bpanoramio\.com\b&lt;br /&gt;
\bgeulahvod\.com\b&lt;br /&gt;
\bmatzevot\.net\b&lt;br /&gt;
\bagada\.me/vendor/bookmz\b&lt;br /&gt;
\bmyencounterblog\.com\b&lt;br /&gt;
\bMyencounterblog\.com\b&lt;br /&gt;
\bwashingtonpost\.com\b&lt;br /&gt;
\bmatzevot\.net\b&lt;br /&gt;
\bjemedia\.org\b&lt;br /&gt;
\bkehuna\.org\b&lt;br /&gt;
\bhalachabrura\.org/alephlink\.htm\b&lt;br /&gt;
\byeladim\.org\.il\b&lt;br /&gt;
\bchabadyadeliyahu\.wix\.com\b&lt;br /&gt;
\bchild\.co\.il\b&lt;br /&gt;
\bemes\.co\.il\b&lt;br /&gt;
\btidhar\.tourolib\.org\b&lt;br /&gt;
\bchabadholon\.com\b&lt;br /&gt;
\bchabadashkelon\.com\b&lt;br /&gt;
\bheichalmenachemmonsey\.org\b&lt;br /&gt;
\bsichos\.com\b&lt;br /&gt;
\support\.google\.com\b&lt;br /&gt;
\bgroups\.google\.com\b&lt;br /&gt;
\bmaps\.google\.co\.il\b&lt;br /&gt;
\banalytics\.google\.com\b&lt;br /&gt;
\bdocs.google\.com\b&lt;br /&gt;
\bgoogle\.co\.il\b&lt;br /&gt;
\bgoogle\.com\b&lt;br /&gt;
\bbooks\.google\.co\.il\b&lt;br /&gt;
\bdrive\.google\.com\b&lt;br /&gt;
\bplay\.google\.com\b&lt;br /&gt;
\bphotos\.app\.goo\.gl/fpq9dM165zmYkhRx9\b&lt;br /&gt;
\bcommons\wikimedia\.org\b&lt;br /&gt;
\bmeta\.wikimedia\.org\b&lt;br /&gt;
\bwikipedia\.org\b&lt;br /&gt;
\bmediawiki\.org\b&lt;br /&gt;
\bwiki\.js\b&lt;br /&gt;
\bwikitech\.wikimedia\.org\b&lt;br /&gt;
\bwikidata\.org\b&lt;br /&gt;
\bupload\.wikimedia\.org\b&lt;br /&gt;
\btorahcafe\.com\b&lt;br /&gt;
\bvideo\.chasidut\.net\b&lt;br /&gt;
\bchabadhungary\.com\b&lt;br /&gt;
\bhageula\.com\b&lt;br /&gt;
\bbcl770\.org\b&lt;br /&gt;
\btzivoshashem\.org\b&lt;br /&gt;
\bchabadzefat\.com\b&lt;br /&gt;
\bdjc\.com\.ua\b&lt;br /&gt;
\bmimaal\.co\.il\b&lt;br /&gt;
\basif\.co\.il\b&lt;br /&gt;
\breshet\.org\.il\b&lt;br /&gt;
\bzalmonjaffeencounters\.com\b&lt;br /&gt;
\bns2\.ivelt\.com/forum\b&lt;br /&gt;
\bdmag\.co\.il/pub/tzach\b&lt;br /&gt;
\bshturem\.org/index.php\b&lt;br /&gt;
\bcollive\.com\b&lt;br /&gt;
\blivingwiththerebbe\.com\b&lt;br /&gt;
\bhitat\.co\.il\b&lt;br /&gt;
\bjewishcontent\.org\b&lt;br /&gt;
\bb shteeble.com\.rav\b&lt;br /&gt;
\byahadut\.tv\b&lt;br /&gt;
\bmashiach\.org.il\b&lt;br /&gt;
\bpiyut\.org.il\b&lt;br /&gt;
\brambish\.org.il\b&lt;br /&gt;
\bjewishcherkassy\.org\b&lt;br /&gt;
\bagudaschassideichabad\.com\b&lt;br /&gt;
\babc770\.org\b&lt;br /&gt;
\bhisachdus.co\.il\b &lt;br /&gt;
\bdlib.rsl\.ru\b&lt;br /&gt;
\bsie\.org\b&lt;br /&gt;
\bhe-date\.info\b&lt;br /&gt;
\bladaat\.info\b&lt;br /&gt;
\bkolhalashon\.com\b&lt;br /&gt;
\barihalberstam\.com\b&lt;br /&gt;
\bjcm\.museum\b&lt;br /&gt;
\bchabadisraeli\.com\b&lt;br /&gt;
\bmusaf-shabbat\.com\b&lt;br /&gt;
\bwww.yehadut\.tv\b&lt;br /&gt;
\bwww\.jem\.co\.il\b&lt;br /&gt;
\bhome\.jemedia\.org\b&lt;br /&gt;
\bw.beit-chabad\.net\b &lt;br /&gt;
\blikras\.org\b  &lt;br /&gt;
\bbeitchana\.org\b&lt;br /&gt;
\byoffner\.com\b&lt;br /&gt;
\barielzilber\.com\b&lt;br /&gt;
\bkikarhashabat\.co\.il\b&lt;br /&gt;
\bmishnetorah\.com\b&lt;br /&gt;
\brambam-lanoar\.co\.il\b&lt;br /&gt;
\bchabadhouse\.org.il\b&lt;br /&gt;
\billustratedmaps\.com\b&lt;br /&gt;
\bhidabroot\.org\b&lt;br /&gt;
\btzivoshashem\.net\b&lt;br /&gt;
\bhitbonenut\.net\b&lt;br /&gt;
\bchasidut\.net\b&lt;br /&gt;
\baskila\.net\b&lt;br /&gt;
\bchabad-netanya\.org\b&lt;br /&gt;
\bbhol-forums\.co\.il\b&lt;br /&gt;
\bmakom-m\.cet\.ac\.il\b&lt;br /&gt;
\bbhol\.co\.il\b&lt;br /&gt;
\btzivos-hashem\.org\b&lt;br /&gt;
\bchasidinews\.com\b&lt;br /&gt;
\bcomputerhope\.com\b&lt;br /&gt;
\bchabadbeitar\.com\b&lt;br /&gt;
\bshlager\.net\b&lt;br /&gt;
\bchabadk\.com\b&lt;br /&gt;
\b770florida\.com\b&lt;br /&gt;
\bledorot\.co\.il\b &lt;br /&gt;
\bresponsa\.co\.il\b &lt;br /&gt;
\bsafranim\.wordpress\.com\b&lt;br /&gt;
\bjewishmalta\.com\b&lt;br /&gt;
\bchabadinfo\.com\b&lt;br /&gt;
\btora\.co\.il\b &lt;br /&gt;
\bbeiteliezer\.org\b&lt;br /&gt;
\bsem40\.ru\b&lt;br /&gt;
\bchabad\.il\b&lt;br /&gt;
\bmamesh\.org\b&lt;br /&gt;
\bshluchimcenter\.org\b&lt;br /&gt;
\byagdiltorah\.org\b&lt;br /&gt;
\btoolserver\.org\b&lt;br /&gt;
\bchabadpt\.org\b&lt;br /&gt;
\byagdiltorah\.org\b&lt;br /&gt;
\btheshomron770\.org\b&lt;br /&gt;
\bvideo\.yahadoot\.com\b&lt;br /&gt;
\btoratchabad\.com\b&lt;br /&gt;
\byomanim\.com\b&lt;br /&gt;
\bhebrewbooks\.org\b&lt;br /&gt;
\bchabadlibrary\.org\b&lt;br /&gt;
\bchabad\.co\.il\b&lt;br /&gt;
\bchabadworld\.net\b&lt;br /&gt;
\botzar770\.com\b&lt;br /&gt;
\bchabadlibrarybooks\.com\b&lt;br /&gt;
\b770live\.com\b&lt;br /&gt;
\byeshiva.org\.il\b&lt;br /&gt;
\bpnimiyut\.org\b&lt;br /&gt;
\bhageula\.com\b&lt;br /&gt;
\bshturem\.net\b&lt;br /&gt;
\bcol\.org\.il\b&lt;br /&gt;
\bpsakdin\.net\b&lt;br /&gt;
\bkaduri\.net\b&lt;br /&gt;
\bzadikim\.org\b&lt;br /&gt;
\bchabadpedia\.co\.il\b&lt;br /&gt;
\beismoshiachmagazine\.org\b&lt;br /&gt;
\bsoferpedia\.com\b&lt;br /&gt;
\bmoshiachpalace\.com\b&lt;br /&gt;
\bbeismoshiach\.org\b&lt;br /&gt;
\bbeismoshiachmagazine\.org\b&lt;br /&gt;
\bneshei.com\b&lt;br /&gt;
\bjewish-education\.info\b&lt;br /&gt;
\botzar\.org\b&lt;br /&gt;
\bchabad\.kz\b&lt;br /&gt;
\bchazak\.co\.il\b&lt;br /&gt;
\bchabad\.org\.il\b&lt;br /&gt;
\bgnu\.org\b&lt;br /&gt;
\bcreativecommons\.org\b&lt;br /&gt;
\bscribd.com\b&lt;br /&gt;
\bdaat\.ac\.il\b&lt;br /&gt;
\bjewishvenice\.org\b&lt;br /&gt;
\blahak\.org\b&lt;br /&gt;
\byomanim\.com\b&lt;br /&gt;
\bchabadonweb\.com\b&lt;br /&gt;
\bchabad\.org\b&lt;br /&gt;
\blubavitch\.ru\b&lt;br /&gt;
\byadlshliach\.org\b&lt;br /&gt;
\bitanya\.mobi\b&lt;br /&gt;
\bteshura\.com\b&lt;br /&gt;
\bhaoros\.com\b&lt;br /&gt;
\bchabadshop\.com\b&lt;br /&gt;
\bcms\.education\.gov\.il\b&lt;br /&gt;
\bmoshiach\.ru\b&lt;br /&gt;
\bgeula\.ru\b&lt;br /&gt;
\bchabad\.fm\b&lt;br /&gt;
\bkipa\.co\.il\b&lt;br /&gt;
\bchabad-il\.org\b&lt;br /&gt;
\byoman770\.com\b&lt;br /&gt;
\btorah4blind\.org\b&lt;br /&gt;
\bshiduryashir\.com\b&lt;br /&gt;
\bscribd\.com\b&lt;br /&gt;
\bchabadraanana\.com\b&lt;br /&gt;
\bjdn\.co\.il\b&lt;br /&gt;
\byadharavherzog\.org\b&lt;br /&gt;
\bchasidut\.tv\b&lt;br /&gt;
\bcow\.org\.il\b&lt;br /&gt;
\bsomethingforshabbat.blogspot\.co\.il\b&lt;br /&gt;
\bsichosinenglish\.org\b&lt;br /&gt;
\bsafa-ivrit\.org\b&lt;br /&gt;
\bchabadpuneindia\.com\b&lt;br /&gt;
\bapp\.box\.com\b&lt;br /&gt;
\bqarov\.org\b&lt;br /&gt;
\bcrownheights\.info\b&lt;br /&gt;
\bch10\.co\.il\b&lt;br /&gt;
\bshulchanharav\.com\b&lt;br /&gt;
\bmylubavitch\.org\b&lt;br /&gt;
\bkiddushhachodesh\.net\b&lt;br /&gt;
\bapps\.education\.gov\.il\/imsnet\/mosdot.aspx\b&lt;br /&gt;
\bsmslarav\.co\.il\b&lt;br /&gt;
\b4ysc01p1vhw140bqmvpyqhpw.wpengine\.netdna-cdn\.com\b&lt;br /&gt;
\btools\.wmflabs\.org\b&lt;br /&gt;
\boro\.org\.il\b&lt;br /&gt;
\bchassidutbehirah\.com\b&lt;br /&gt;
\bhatzalah\.ch\b&lt;br /&gt;
\btzvigreenwald\.com\b&lt;br /&gt;
\bhamichlol\.org\.il\b&lt;br /&gt;
\bchassidusapplied\.com\b&lt;br /&gt;
\balysefer\.com\b&lt;br /&gt;
\btorashageula\.org\b&lt;br /&gt;
\bmachonso\.org\b&lt;br /&gt;
\bmerkazato\.co\.il\b&lt;br /&gt;
\bsinun\.org\b&lt;br /&gt;
\bmafteiach\.app\b&lt;br /&gt;
\brabbi24\.com\b&lt;br /&gt;
\bkehot\.org\b&lt;br /&gt;
\brce\.eu\.com\b&lt;br /&gt;
\bchabadof770\.com\b&lt;br /&gt;
\btoratchabad\.com\b&lt;br /&gt;
\byafutzu\.org\b&lt;br /&gt;
\badeyad\.org\b&lt;br /&gt;
\bkerenm\.org\b&lt;br /&gt;
\bbetsefernet\.com\b&lt;br /&gt;
\bchassidus\.com\b&lt;br /&gt;
\byemot\.co\.il\b&lt;br /&gt;
\bsichathageula\.com\b&lt;br /&gt;
\byuhrzeit\.com\b&lt;br /&gt;
\bmatamoshiach\.org\b&lt;br /&gt;
\bbit\.ly/2m15qj0\b&lt;br /&gt;
\bashreinu\.app\b&lt;br /&gt;
\bchabad-ty\.com\b&lt;br /&gt;
\bichossid\.com\b&lt;br /&gt;
\bhabad\.org\.il\b&lt;br /&gt;
\bchabadisraeli\.info\b&lt;br /&gt;
\bhe\.chabad\.org\b&lt;br /&gt;
\btotrashlats\.com\b&lt;br /&gt;
\byeshivamh\.org\b&lt;br /&gt;
\bygmiami\.com\b&lt;br /&gt;
\bbat-melech\.co\.il\b&lt;br /&gt;
\bprojectlikkuteisichos\.org\b&lt;br /&gt;
\byounglamplighters\.com\b&lt;br /&gt;
\b4ysc01p1vhw140bqmvpyqhpw-wpengine\.netdna-ssl\.com\b&lt;br /&gt;
\bkore\.co\.il\/viewArticle\/75208\b&lt;br /&gt;
\bth770\.co\.il\b&lt;br /&gt;
\bzachor\.michlala\.edu\b&lt;br /&gt;
\bncl\.org\.il\b&lt;br /&gt;
\bmoshiachkidsonline\.org\b&lt;br /&gt;
\bsynagoge-karlsruhe\.de\b&lt;br /&gt;
\bhasidicarchives\.com\b&lt;br /&gt;
\bolamot\.net\b&lt;br /&gt;
\bkerenanash\.com\b&lt;br /&gt;
\bmaoschitim\.org\b&lt;br /&gt;
\bjemcentral\.org\b&lt;br /&gt;
\bdvarmalchus\.org\b&lt;br /&gt;
\bdmag\.co\.il\b&lt;br /&gt;
\bkerenhamazon\.com\b&lt;br /&gt;
\basktherav\.com\b&lt;br /&gt;
\bkovtzimdrive\.com\b&lt;br /&gt;
\bsichos\.net\b&lt;br /&gt;
\bchabadwimbledon\.com\b&lt;br /&gt;
\bchabadindia\.in\b&lt;br /&gt;
\btemple\.org\.il\b&lt;br /&gt;
\bkinus\.info\b&lt;br /&gt;
\bzadikim\.com\b&lt;br /&gt;
\bulyop\.com\b&lt;br /&gt;
\bstumptherabbi\.org\b&lt;br /&gt;
\bgithub\.com\b&lt;br /&gt;
\bfaxasicha\.wordpress\.com\b&lt;br /&gt;
\bavepdf\.com\b&lt;br /&gt;
\btmimim\.co\.il\b&lt;br /&gt;
\bthelivingarchive\.org\b&lt;br /&gt;
\btemple\.org\.il\b&lt;br /&gt;
\bmbakodesh\.org\.il\b&lt;br /&gt;
\bbeithoraah\.org\b&lt;br /&gt;
\byaadudes\.com\b&lt;br /&gt;
\b60d5f97551d9b\.site123\.me\b&lt;br /&gt;
\bnehora.zone/kinot\b&lt;br /&gt;
\bjemtv\.page\.link\b&lt;br /&gt;
\btorath-emeth\.org\b&lt;br /&gt;
\bkarmyshely\.org\b&lt;br /&gt;
\bchabadcharish\.org\b&lt;br /&gt;
\bseminaire\.bethrivkah\.fr\b&lt;br /&gt;
\bganisrael\.co\.il\b&lt;br /&gt;
\byahad\.org\b&lt;br /&gt;
\byoslbloy\.info\b&lt;br /&gt;
\bhavineini\.co\.il\b&lt;br /&gt;
\bmagbis\.org\b&lt;br /&gt;
\bkedem-auctions\.com\/he\b&lt;br /&gt;
\bjewishrsm\.com\b&lt;br /&gt;
\bkevarim\.com\b&lt;br /&gt;
\bwhois\.toolforge\.org\b&lt;br /&gt;
\bcentralops\.net\b&lt;br /&gt;
\bdan\.me\.uk\b&lt;br /&gt;
\bmatamoshiach\.org\b&lt;br /&gt;
\bchabadofaqim\.org\.il\b&lt;br /&gt;
\bmaayanot\.com\.br\b&lt;br /&gt;
\bmichlalachabad\.com\b&lt;br /&gt;
\bsichotkodesh\.org\b&lt;br /&gt;
\binyeshiva\.ru\b&lt;br /&gt;
\bweb\.archive\.org\b&lt;br /&gt;
\bchabadpedia\.miraheze\.org\b&lt;br /&gt;
\barh-uk\.com\b&lt;br /&gt;
\bchabadofuk\.com\b&lt;br /&gt;
\bcp-en\.menta770\.com\b&lt;br /&gt;
\borchayalive\.org\.il\b&lt;br /&gt;
\bcnl\.org\.il\b&lt;br /&gt;
\bnayadotchabad\.co\.il\b&lt;br /&gt;
\bachot\.co\.il\b&lt;br /&gt;
\bchabadyavne\.com\b&lt;br /&gt;
\bchabadg\.co\.il\b&lt;br /&gt;
\bjames\.padolsey\.com\b&lt;br /&gt;
\b770shul\.org\b&lt;br /&gt;
\bdmag-pub\.com\b&lt;br /&gt;
\bkarovel\.co\.il\b&lt;br /&gt;
\bchabadgilo\.net\b&lt;br /&gt;
\bchabadbrussels\.com\b&lt;br /&gt;
\bganisraelhadera\.org\.il\b&lt;br /&gt;
\bmatzotchabad\.co\.il\b&lt;br /&gt;
\bkore\.co\.il\b&lt;br /&gt;
\bsynagogue-154\.business\.site\b&lt;br /&gt;
\bkcm\.co\.il\b&lt;br /&gt;
\bchabadtlv\.org\b&lt;br /&gt;
\ben\.calameo\.com\b&lt;br /&gt;
\bvaadhatmimim\.org\b&lt;br /&gt;
\blubavitch\.com\b&lt;br /&gt;
\brebbedrive\.org\b&lt;br /&gt;
\bmikdash3\.co\.il\b&lt;br /&gt;
\bchabadi\.022\.co\.il\b&lt;br /&gt;
\bchabad-rh\.co\.il\b&lt;br /&gt;
\bnetov\.net\b&lt;br /&gt;
\bforms\.gle\/7HpcN8hv5cQ3rt7Q8\b&lt;br /&gt;
\bpneimelech\.com\b&lt;br /&gt;
\bexpand770\.com\b&lt;br /&gt;
\byomi\.org\.il\b&lt;br /&gt;
\bmachon-modzitz\.co\.il\b&lt;br /&gt;
\bchabad-givatshmuel\.org\b&lt;br /&gt;
\bfeor\.ru/xenophobia\b&lt;br /&gt;
\bhamishpatim\.co\.il\b&lt;br /&gt;
\besicha\.org\b&lt;br /&gt;
\byeshivatchabad\.co\.il\b&lt;br /&gt;
\bchshmira\.org\b&lt;br /&gt;
\bvaad-nachle\.com\b&lt;br /&gt;
\brchabad\.org\b&lt;br /&gt;
\bbezikaron\.co\.il\b&lt;br /&gt;
\bhamodia\.com\b&lt;br /&gt;
\bbaalhatanya\.org\.il\b&lt;br /&gt;
\bchabadyeshiva\.com\b&lt;br /&gt;
\bttchabadkg\.org\.il\b&lt;br /&gt;
\boholeitorah\.com\b&lt;br /&gt;
\bchabadkg\.org\.il\b&lt;br /&gt;
\bkscvk\.org\b&lt;br /&gt;
\byttl\.org\b&lt;br /&gt;
\byttpoconos\.com\b&lt;br /&gt;
\bbrisavrohom\.org\b&lt;br /&gt;
\btotalkg\.org\.il\b&lt;br /&gt;
\byeshivalubavitch\.com\b&lt;br /&gt;
\beshelcenter\.weebly\.com\b&lt;br /&gt;
\bmoshiachchidon\.com\b&lt;br /&gt;
\bwikimedia\.org\b&lt;br /&gt;
#&amp;lt;/pre&amp;gt;  &amp;lt;!-- נא להשאיר שורה זו בדיוק כפי שהיא--&amp;gt;&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%AA%D7%91%D7%A0%D7%99%D7%AA:%D7%91%D7%A8%D7%99%D7%A8%D7%AA_%D7%9E%D7%97%D7%93%D7%9C&amp;diff=4182</id>
		<title>תבנית:ברירת מחדל</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%AA%D7%91%D7%A0%D7%99%D7%AA:%D7%91%D7%A8%D7%99%D7%A8%D7%AA_%D7%9E%D7%97%D7%93%D7%9C&amp;diff=4182"/>
		<updated>2024-06-25T23:56:31Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: יצירת דף עם התוכן &amp;quot;&amp;lt;includeonly&amp;gt;{{#שווה:{{מרחב השם}}|{{ns:mediawiki talk}}| {{מסגרת|רקע=כחול|גבול=כחול|גאדג&amp;#039;ט זה מופעל כברירת מחדל. משתמשים רשומים יכולים לבטלו, דרך ההעדפות.}} |&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;(&amp;#039;&amp;#039;&amp;#039;ברירת מחדל&amp;#039;&amp;#039;&amp;#039;)&amp;lt;/sup&amp;gt;&amp;lt;/span&amp;gt;}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;  תבנית זו משמשת לסימון עזרה:גאדג&amp;#039;טי...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;includeonly&amp;gt;{{#שווה:{{מרחב השם}}|{{ns:mediawiki talk}}|&lt;br /&gt;
{{מסגרת|רקע=כחול|גבול=כחול|גאדג&#039;ט זה מופעל כברירת מחדל. משתמשים רשומים יכולים לבטלו, דרך ה[[מיוחד:העדפות#mw-prefsection-gadgets|העדפות]].}}&lt;br /&gt;
|&amp;lt;span style=&amp;quot;color: red;&amp;quot;&amp;gt;&amp;lt;sup&amp;gt;(&#039;&#039;&#039;ברירת מחדל&#039;&#039;&#039;)&amp;lt;/sup&amp;gt;&amp;lt;/span&amp;gt;}}&amp;lt;/includeonly&amp;gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
תבנית זו משמשת לסימון [[עזרה:גאדג&#039;טים|גאדג&#039;טים]] בדף [[מיוחד:העדפות#mw-prefsection-gadgets|העדפות =&amp;gt; גאדג&#039;טים]] המופעלים כברירת מחדל, בתווית &amp;quot; {{ברירת מחדל}} &amp;quot;.&lt;br /&gt;
&lt;br /&gt;
בנוסף, התבנית מוצבת בראש דפי ההסברים על הגאדג&#039;טים, כדי להבהיר שהגאדג&#039;ט מופעל כברירת מחדל. במקרה של הצבת התבנית בדף הסבר על גאדג&#039;ט, תתקבל ההודעה הבאה במקום התווית &amp;quot; {{ברירת מחדל}} &amp;quot;:&lt;br /&gt;
{{מסגרת|רקע=כחול|גבול=כחול|גאדג&#039;ט זה מופעל כברירת מחדל. משתמשים רשומים יכולים לבטלו, דרך ה[[מיוחד:העדפות#mw-prefsection-gadgets|העדפות]].}}&lt;br /&gt;
&lt;br /&gt;
[[קטגוריה:חב&amp;quot;דציטוט - גאדג&#039;טים]]&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:Gadget-popup&amp;diff=4180</id>
		<title>מדיה ויקי:Gadget-popup</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:Gadget-popup&amp;diff=4180"/>
		<updated>2024-06-25T23:54:51Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: יצירת דף עם התוכן &amp;quot;פופאפ המציג בהצפת העכבר מעל קישור פנימי מידע על הקישור {{ברירת מחדל}}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[שיחת מדיה ויקי:Gadget-popup|פופאפ]] המציג בהצפת העכבר מעל קישור פנימי מידע על הקישור {{ברירת מחדל}}&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:PopupCSS.css&amp;diff=4179</id>
		<title>מדיה ויקי:PopupCSS.css</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:PopupCSS.css&amp;diff=4179"/>
		<updated>2024-06-25T23:53:38Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: יצירת דף עם התוכן &amp;quot;a.popupMoreLink {   display: block;   text-align: right;   cursor: pointer; }  ins.popupDiff {   background: #afe; }  del.popupDiff {   background: #ffe6e6; }  #selectionPreview {   /*   overflow: auto;   max-height: 16ex;   */   border: 2px solid #ddd;   background-color: #eef;   padding: 6px; }  .navpopup {   border: 1px solid #bbb;   background-color: #fff;   padding: 10px;   padding-bottom: 5px;   font-size: 11px;   box-shadow: 0 3px 8px rgba( 50, 50, 5...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;a.popupMoreLink {&lt;br /&gt;
  display: block;&lt;br /&gt;
  text-align: right;&lt;br /&gt;
  cursor: pointer;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
ins.popupDiff {&lt;br /&gt;
  background: #afe;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
del.popupDiff {&lt;br /&gt;
  background: #ffe6e6;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
#selectionPreview {&lt;br /&gt;
  /*&lt;br /&gt;
  overflow: auto;&lt;br /&gt;
  max-height: 16ex;&lt;br /&gt;
  */&lt;br /&gt;
  border: 2px solid #ddd;&lt;br /&gt;
  background-color: #eef;&lt;br /&gt;
  padding: 6px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navpopup {&lt;br /&gt;
  border: 1px solid #bbb;&lt;br /&gt;
  background-color: #fff;&lt;br /&gt;
  padding: 10px;&lt;br /&gt;
  padding-bottom: 5px;&lt;br /&gt;
  font-size: 11px;&lt;br /&gt;
  box-shadow: 0 3px 8px rgba( 50, 50, 50, 0.35 );&lt;br /&gt;
  /* opacity: 0.9; */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.navpopup hr {&lt;br /&gt;
  color: #aaa !important;&lt;br /&gt;
  background-color: #aaa !important;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Configure Drag bar color */&lt;br /&gt;
.popupDrag {&lt;br /&gt;
  background-color: #ffbe20;&lt;br /&gt;
  height: 5px;&lt;br /&gt;
  margin-top: -5px;&lt;br /&gt;
  margin-bottom: 5px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.popupDragHandle {&lt;br /&gt;
  cursor: move;&lt;br /&gt;
  position: relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* menu magic - many thanks to [[User:Zocky]]! */&lt;br /&gt;
&lt;br /&gt;
/* popups */&lt;br /&gt;
.popup_menu li {&lt;br /&gt;
  margin: 0px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.popup_menu {&lt;br /&gt;
  display: none;&lt;br /&gt;
  position: absolute;&lt;br /&gt;
  left: 0;&lt;br /&gt;
  margin: 0;&lt;br /&gt;
  margin-top: 1em;&lt;br /&gt;
  line-height: 1.25em;&lt;br /&gt;
  list-style-type: none;&lt;br /&gt;
  top: 0.1em;&lt;br /&gt;
  z-index: 2;&lt;br /&gt;
  width: 10em;&lt;br /&gt;
  background: white;&lt;br /&gt;
  border: 1px solid grey;&lt;br /&gt;
  padding: 0 !important;&lt;br /&gt;
  margin-left: -6px;&lt;br /&gt;
  margin-top: 1em;&lt;br /&gt;
  border-width: 1px 1px 1px 6px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.popup_menu a {&lt;br /&gt;
  display: block;&lt;br /&gt;
  padding: 3px;&lt;br /&gt;
  color: #555;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.popup_menu_row a {&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.popup_menu_row {&lt;br /&gt;
  list-style: none;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
  margin: 0;&lt;br /&gt;
  color: #aaa;&lt;br /&gt;
  /* border: 1px solid red; */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.popup_drop {&lt;br /&gt;
  display: inline;&lt;br /&gt;
  position: relative;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.popup_drop a,&lt;br /&gt;
.popup_drop a:visited {&lt;br /&gt;
  padding: 3px;&lt;br /&gt;
  margin: 0;&lt;br /&gt;
  font-weight: bold;&lt;br /&gt;
  color: #0645ad;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.popup_drop:hover .popup_menu,&lt;br /&gt;
.popup_drop .popup_menu:hover {&lt;br /&gt;
  display: inline;&lt;br /&gt;
  background: white;&lt;br /&gt;
  padding: 2px;&lt;br /&gt;
  color: #555;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.popup_drop:hover {&lt;br /&gt;
  background: #ccf;&lt;br /&gt;
  color: #44f;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* other colours, styles and so on */&lt;br /&gt;
.popup_menu a:hover {&lt;br /&gt;
  background: grey;&lt;br /&gt;
  color: #fff;&lt;br /&gt;
  text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.popup_mainlink {&lt;br /&gt;
  font-size: 140%;&lt;br /&gt;
  font-weight: bold;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.popup_mainlink a {&lt;br /&gt;
  color: #000;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
a.popup_change_title_link {&lt;br /&gt;
  color: #152;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.popup_diff_dates {&lt;br /&gt;
  font-style: italic;&lt;br /&gt;
  background: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.popup_menu_item {&lt;br /&gt;
  list-style: none;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
  margin: 0;&lt;br /&gt;
  /* border: 1px solid green; */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.popup_menu_item a {&lt;br /&gt;
  display: block;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.popup_history_row_even {&lt;br /&gt;
  background: #eee;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.popup_history_date {&lt;br /&gt;
  font-weight: bold;&lt;br /&gt;
  font-size: 120%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* disable interwiki styling */&lt;br /&gt;
.popupPreview a.extiw,&lt;br /&gt;
.popupPreview a.extiw:active {&lt;br /&gt;
  color: #36b;&lt;br /&gt;
  background: none;&lt;br /&gt;
  padding: 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.popupPreview a.external {&lt;br /&gt;
  color: #36b;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* this can be used in the content area to switch off&lt;br /&gt;
special external link styling */&lt;br /&gt;
.popupPreview .plainlinks a {&lt;br /&gt;
  background: none !important;&lt;br /&gt;
  padding: 0 !important;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:Sitesupport&amp;diff=4178</id>
		<title>מדיה ויקי:Sitesupport</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:Sitesupport&amp;diff=4178"/>
		<updated>2024-06-25T23:52:01Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: אין צורך כרגע&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:Disclaimers&amp;diff=4177</id>
		<title>מדיה ויקי:Disclaimers</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%9E%D7%93%D7%99%D7%94_%D7%95%D7%99%D7%A7%D7%99:Disclaimers&amp;diff=4177"/>
		<updated>2024-06-25T23:48:59Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: יצירת דף ריק&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%A7%D7%98%D7%92%D7%95%D7%A8%D7%99%D7%94:%D7%AA%D7%91%D7%A0%D7%99%D7%95%D7%AA_%D7%9C%D7%A4%D7%AA%D7%A8%D7%95%D7%9F_%D7%91%D7%A2%D7%99%D7%95%D7%AA_%D7%98%D7%9B%D7%A0%D7%99%D7%95%D7%AA_%D7%91%D7%97%D7%91%22%D7%93%D7%A6%D7%99%D7%98%D7%95%D7%98&amp;diff=4171</id>
		<title>קטגוריה:תבניות לפתרון בעיות טכניות בחב&quot;דציטוט</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%A7%D7%98%D7%92%D7%95%D7%A8%D7%99%D7%94:%D7%AA%D7%91%D7%A0%D7%99%D7%95%D7%AA_%D7%9C%D7%A4%D7%AA%D7%A8%D7%95%D7%9F_%D7%91%D7%A2%D7%99%D7%95%D7%AA_%D7%98%D7%9B%D7%A0%D7%99%D7%95%D7%AA_%D7%91%D7%97%D7%91%22%D7%93%D7%A6%D7%99%D7%98%D7%95%D7%98&amp;diff=4171"/>
		<updated>2024-06-25T21:40:49Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: יוסף בן מלמד העביר את הדף קטגוריה:תבניות לפתרון בעיות טכניות בחב&amp;quot;דפדיה לשם קטגוריה:תבניות לפתרון בעיות טכניות בחב&amp;quot;דציטוט בלי להשאיר הפניה&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[קטגוריה:תבניות]]&lt;br /&gt;
&lt;br /&gt;
[[קטגוריה:תבניות]]&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
	<entry>
		<id>https://zitut.chabadpedia.com/index.php?title=%D7%AA%D7%91%D7%A0%D7%99%D7%AA:%D7%91%D7%A7%D7%A9%D7%95%D7%AA_%D7%9E%D7%9E%D7%A4%D7%A2%D7%99%D7%9C%D7%99%D7%9D/%D7%94%D7%92%D7%A0%D7%94&amp;diff=4170</id>
		<title>תבנית:בקשות ממפעילים/הגנה</title>
		<link rel="alternate" type="text/html" href="https://zitut.chabadpedia.com/index.php?title=%D7%AA%D7%91%D7%A0%D7%99%D7%AA:%D7%91%D7%A7%D7%A9%D7%95%D7%AA_%D7%9E%D7%9E%D7%A4%D7%A2%D7%99%D7%9C%D7%99%D7%9D/%D7%94%D7%92%D7%A0%D7%94&amp;diff=4170"/>
		<updated>2024-06-25T21:23:07Z</updated>

		<summary type="html">&lt;p&gt;יוסף בן מלמד: החלפת טקסט – &amp;quot;ערך&amp;quot; ב־&amp;quot;דף ציטוט&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| class=&amp;quot;toccolours&amp;quot; style=&amp;quot;clear: both; margin-left: auto; margin-right: auto; text-align: center; width: 75%;&amp;quot;&lt;br /&gt;
| רשמו כאן את שם הדפים עליהם ברצונכם להפעיל הגנה. עדיף להימנע מהטלת הגנה על דפים, ויש לעשות זאת רק במקרה של השחתות חוזרות ונשנות. אנא ציינו את רמת ההגנה אותה ברצונכם להפעיל.&lt;br /&gt;
אופן רשימת הבקשה:&#039;&#039;&#039; רשמו את שמו של הדף ציטוט בקישור פנימי. לדוגמא:&lt;br /&gt;
* [[זמרוני זליג ציק]]&lt;br /&gt;
&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[קטגוריה:תבניות בקשות ממפעילים]]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NEWSECTIONLINK__&lt;/div&gt;</summary>
		<author><name>יוסף בן מלמד</name></author>
	</entry>
</feed>