Extension:TemplateData
TemplateData Release status: stable |
|
---|---|
Implementation | Tag , API |
Description | מאפשר לאחסן, לאחזר ולהמחיש מידע על תבניות |
Author(s) | Timo Tijhof, Moriel Schottlender, James Forrester, Trevor Parscal, Bartosz Dziewoński, Marielle Volz, ... |
Latest version | 0.1.2 (עדכונים שוטפים) |
Compatibility policy | Snapshots releases along with MediaWiki. Master is not backward compatible. |
PHP | 5.4+ |
Database changes | No |
License | GNU General Public License 2.0 or later |
Download | |
|
|
<templatedata> |
|
Quarterly downloads | 275 (Ranked 16th) |
Public wikis using | 6,971 (Ranked 24th) |
Translate the TemplateData extension if it is available at translatewiki.net | |
Issues | Open tasks · Report a bug |
התוסף TemplateData מציג את התג <templatedata>
ואת ממשק ה-API הנלווה אליו, שאיתם עורכים ידעו איך להשתמש בתבניות.
מידע זה זמין כטבלה בפורמט יפה עבור משתמשי קצה, וכ-JSON API, המאפשר להשתמש דרך מערכות אחרות (כגון VisualEditor ), וכן לבנות ממשקים עבור התבניות.
ראו Help:TemplateData לעזרה מעמיקה.
התקנה
- Download and move the extracted
TemplateData
folder to yourextensions/
directory.
Developers and code contributors should install the extension from Git instead, using:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/TemplateData - Add the following code at the bottom of your LocalSettings.php file:
wfLoadExtension( 'TemplateData' );
- Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.
עריכת מידע
התוסף TemplateData פועל באמצעות התג <templatedata>
המוגדר בקוד ויקי של הדף.
תוסף זה נבנה עבור התאמת הפריסה הנפוצה של תיעוד תבניות במיזמי הוויקימדיה.
תוכן התג <templatedata>
חייב להיות כתוב ב-JSON בפורמט המתואר להלן; יש לשים לב כי כל התיאורים חייבים להיות בטקסט רגיל.
כאשר התג <templatedata>
נכלל בדף, התוסף TemplateData מבצע את הבדיקות הבאות כאשר הדף נשמר:
- התוכן חייב להיות כתוב ב-JSON.
- כל פריט בתוך מבנה ה-JSON חייב להיות מהסוג כמפורט להלן (למשל אובייקט, מערך או פרימיטיבי).
- עבור אותם פריטים שלהם רשימה מוגדרת של ערכים אפשריים (לדוגמה, הערך
type
של פרמטר), הערך באובייקט JSON חייב להיות תואם לאחד מהערכים הללו.
אם אחת מהבדיקות הללו נכשלת, לא יתאפשר לבצע שמירה בדף שעליו בוצעה העריכה, וכן תוצג הודעת שגיאה מעל דף העריכה.
עבור ערכי autovalue
, הבעיה T4700 מונעת מ-subst:
לעבוד בכל תבנית שנמצאת בתוך התג, כולל התגיות <ref>
ו-<gallery>
.
התוסף TemplateData יישמר כראוי, אך הקוד ויקי שיתקבל לא ינותח כראוי בעת השימוש בתבנית.
יש להימנע משימוש ב-{{#tag:templatedata}}
מאחר ולא יהיה ניתן להשתמש בעורך התבניות.
פורמט
להלן גרסה חזותית של נתוני ה-JSON כפי שניתן להגדיר בדף התבנית המוקף בתגיות <templatedata></templatedata>
.
המפרט הפורמלי זמין במאגר TemplateData.
לגרסה העדכנית ביותר, ראו Specification.md.
אובייקט TemplateData
האובייקט TemplateData הוא שורש JSON המוקף באלמנט <templatedata>
בדף התבנית.
מפתח | סוג | תיאור |
---|---|---|
description
|
InterfaceText או null
|
תיאור קצר של התבנית. זה חייב להיות טקסט רגיל. לאחר שערך זה מולא, ניתן להציג אותו ככיתוב בעת עריכת תבנית בודדת וכן אפילו בתוצאות החיפוש. ברירת המחדל הוא null .
→ For more details see: description |
params
|
אובייקט הכולל רשימה של פרמטרים | אובייקט שממפה ומאפיין את כל שמות הפרמטרים של התבנית עבור הפרמטרים.
→ For more details see: params |
paramOrder
|
מערך של פרמטרים | הסדר הלוגי של הצגת הפרמטרים על ידי המערכת. המערך כולל את כל הפרמטרים שהוגדרו ב-params (כל אחד מהפרמטרים שמופיע ב-params מוגדר פעם אחת). לכל מחרוזת חייב מפתח תקין בתוך האובייקט params .
→ For more details see: paramOrder |
sets
|
מערך המכיל סטים | מערך המכיל מפרטי סט. סט הוא קבוצה של פרמטרים שיש להשתמש בהם יחד. ברירת המחדל הוא []. שימו לב שהפונקציונליות של sets עדיין בפיתוח.
|
format
|
מחרוזת, inline או block
|
הגדרה כיצד יש להציג את התבנית בקוד ויקי. ברירת המחדל הוא inline . ראו כאן עבור פורמטים אפשריים אחרים.
|
maps
|
אובייקט המכיל מפות | אובייקט שמקשר שם צרכן (כלומר Citoid, Special:MyLanguage/Wikidata וכו') לאובייקט מפה שמקושר לשם פרמטר צרכן לאחד או יותר של פרמטרי התבנית. |
פרמטרים
מפתח | סוג | ברירת מחדל | תיאור | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
label |
InterfaceText | null
|
שם קצר (מאוד) לפרמטר. יש לשמור על פחות מ-20 תווים.
→ For more details see: label | ||||||||||||||||||||||||||||
description
|
InterfaceText | null
|
תיאור קצר של הפרמטר, כדי שמשתמשים יוכלו לדעת מה לבחור מרשימת האפשרויות.
→ For more details see: description | ||||||||||||||||||||||||||||
required
|
בוליאני | false
|
האם חייב להשתמש בפרמטר כדי שהתבנית תעבוד.
→ For more details see: required | ||||||||||||||||||||||||||||
suggested
|
בוליאני | false
|
האם מוצע להשתמש בפרמטר כדי שהתבנית תעבוד.
→ For more details see: suggested | ||||||||||||||||||||||||||||
deprecated
|
בוליאני או מחרוזת | false
|
האם הפרמטר הוצא משימוש. הערך יכול להיות מחרוזת שנותנות למשתמש הנחיות מה ניתן לעשות במקום זאת או פשוט true .
→ For more details see: deprecated | ||||||||||||||||||||||||||||
aliases |
מערך של מחרוזות | [] |
רשימה של כינויים. כינוי הוא שם חלופי לפרמטר שניתן להשתמש בו במקום (לא בנוסף) לשם הראשי. כינויים אינם מתועדים באובייקט כפרמטר נפרד. אם הפרמטר מוגדר כ-deprecated, גם הכינויים שהוגדרו ייחשבו כ-deprecated.
→ For more details see: aliases | ||||||||||||||||||||||||||||
default |
InterfaceText | null |
הגדרת ערך ברירת מחדל עבור הפרמטר (במידה ולא הוקצה לו ערך).
→ For more details see: default | ||||||||||||||||||||||||||||
autovalue |
מחרוזת | null |
ערך ברירת מחדל שנוצר באופן דינמי בקוד ויקי, כגון התאריך של היום או שם המשתמש העורך; זה יכלול לעתים קרובות החלפה של קוד ויקי, כגון {{subst:CURRENTYEAR}} .
→ For more details see: autovalue | ||||||||||||||||||||||||||||
example
|
InterfaceText | null
|
טקסט לדוגמה לפרמטר, כדי לעזור למשתמשים למלא את הערך המתאים.
→ For more details see: example | ||||||||||||||||||||||||||||
type |
מחרוזת | "unknown" |
סוג הפרמטר, המרמז לסוג שלו. זה יכול להיות אחד מהבאים:
→ For more details see: type | ||||||||||||||||||||||||||||
inherits |
מחרוזת | כלום ניתן להחלפה |
מפתח השם של פרמטר אחר (חייב להיות מפתח חוקי באובייקט params ). הפרמרט הנוכחי יירש את המאפיינים של הפרמטר שצוין, כאשר המאפיינים המקומיים יגברו על אלו שעברו בירושה.
→ For more details see: inherits | ||||||||||||||||||||||||||||
suggestedvalues |
מערך של מחרוזות | []
|
מאפיין פרמטר אופציונלי. יוצר רשימה של ערכי פרמטרים שבהם משתמשים יוכלו לבחור את הערך הרצוי. בכדי שהערכים המוצעים יוצגו ב-VisualEditor, יש להגדיר את סוג הפרמטר לאחד מהערכים הבאים:
→ For more details see: suggestedvalues |
סטים
מפתח |
אובייקט או סוג פרימטיבי |
תיאור |
---|---|---|
label
|
InterfaceText | שם קצר (מאוד) לקבוצת הפרמטרים. יש לשמור על פחות מ-20 תווים. |
params
|
מערך של מחרוזות | שם אחד או יותר של פרמטרים שיש לכלול בסט (כל אחד מהם חייב להופיע באובייקט params ). הפרמטר חייב להיות במספר סטים. לא כל פרמטר חייב להיות מוגדר בסט.
|
מפות
מפות הוא מבנה נתונים אחד שמגיע לעומק של מספר רמות.
מפתח | סוג | ברירת מחדל | תיאור |
---|---|---|---|
שם הצרכן | אובייקט | {} | אובייקט שמקשר שם צרכן לאובייקט מפה שמקושר לשם פרמטר צרכן לאחד או יותר של פרמטרי התבנית.
ניתן לציין את פרמטרי התבנית כמחרוזת (שם אחד), מערך של מחרוזות (מספר שמות) או מערך של מערכים של מחרוזות (מספר קבוצות של שמות); כל אחת מהמחרוזות הללו חייבת להיות בעלת מפתח חוקי באובייקט פרמטר תבנית ספציפי עשוי להופיע במספר מפות, והוא עשוי להופיע במספר מרובה של ערכי מפתח במפה נתונה, אך לא כל פרמטר חייב להופיע במפה. הדוגמה המקוצרת הבאה הלקוחה מ-Template:Cite_news#TemplateData מוויקיפדיה האנגלית ממחישה את המבנה של מפות ב-TemplateData. { "proveit": { "main": "title", "textarea": [ "quote" ] }, "citoid": { "title": "title", "url": "url", "publisher": "publisher", "publicationTitle": "work", "date": "date", "ISSN": [ "issn" ], "ISBN": [ "isbn" ], "contributor": "others", "author": [ [ "first", "last" ], [ "first2", "last2" ], [ "first9", "last9" ] ], "editor": [ [ "editor-first", "editor-last" ] ] } } |
InterfaceText (מחרוזת או אובייקט)
טקסט חופשי בקוד ויקי או אובייקט המכיל את המחרוזות הללו הממוקמות לפי קוד שפת ויקי.
ערך ברירת המחדל עבור שדות InterfaceText הוא null
.
סוג מחרוזת
אם זו מחרוזת, היא חייבת להכיל מחרוזת לא מקומית בשפת התוכן של הוויקי המקומית.
סוג אובייקט
אם זה אובייקט, האובייקט חייב להיות ממופה כך:
מפתח | סוג | תיאור |
---|---|---|
קוד השפה של מיזם ויקימדיה | מחרוזת | מחרוזת מקומית לשימוש בוויקיפדיה בקוד השפה הקיים. |
דוגמה למיפוי שכזה:
מפתח | ערך |
---|---|
"en" | "Welcome to Wikipedia" |
"de" | "Willkommen bei Wikipedia" |
"fr" | "Bienvenue sur Wikipédia" |
"nl" | "Welkom op Wikipedia" |
"it" | "Benvenuti su Wikipedia" |
"es" | "Bienvenidos a Wikipedia" |
"ru" | "Добро пожаловать в Википедию" |
דוגמה
להלן דוגמה למבנה TemplateData כפי שנכתב בקוד ויקי של התבנית.
<templatedata>
{
"description": "Label unsigned comments in a conversation.",
"params": {
"user": {
"label": "User's name",
"type": "wiki-user-name",
"required": true,
"description": "User name of person who forgot to sign their comment.",
"aliases": ["1"]
},
"date": {
"label": "Date",
"suggested": true,
"description": {
"en": "Timestamp of when the comment was posted, in YYYY-MM-DD format."
},
"aliases": ["2"],
"autovalue": "{{subst:#time:Y-m-d}}"
},
"year": {
"label": "Year",
"type": "number"
},
"month": {
"label": "Month",
"inherits": "year"
},
"day": {
"label": "Day",
"inherits": "year"
},
"comment": {
"required": false
}
},
"sets": [
{
"label": "Date",
"params": ["year", "month", "day"]
}
],
"maps": {
"ExampleConsumer": {
"foo": "user",
"bar": ["year", "month", "day"],
"quux": [
"date",
["day", "month"],
["month", "year"],
"year"
]
}
}
}
</templatedata>
להלן כיצד הדוגמה תיראה בדף התבנית.
Label unsigned comments in a conversation.
Parameter | Description | Type | Status | |
---|---|---|---|---|
User's name | user 1 | User name of person who forgot to sign their comment. | User | required |
Date | date 2 | Timestamp of when the comment was posted, in YYYY-MM-DD format.
| Unknown | suggested |
Year | year | no description | Number | optional |
Month | month | no description | Number | optional |
Day | day | no description | Number | optional |
comment | comment | no description | Unknown | optional |
ממשק תוכנה (API)
לעזרה בנושא ראו Special:ApiHelp/templatedata. קריאה לדוגמה (מעוצבת לקריאות אנושית) היא:
זה מחזיר את נתוני התבנית עבור התבנית Template:Cite web.
הבלוק <templatedata>...</templatedata>
עבור תבנית זו נמצא בדף התיעוד של התבנית.
תוספות ושינויים ל-JSON כפי שהתקבלו מה-API
מבנה ה-JSON שמסופק כחלק מבקשת HTTP Get API שונה באופן משמעותי מזה המוגדר בבלוק <templatedata>...</templatedata>
.
בתגובה לבקשת ה-API, הרחבה TemplateData מבצעת את השינויים הבאים באובייקט JSON:
- מוסיפה שני אובייקטי עטיפה:
- אובייקט דפים המכיל לפחות אובייקט עמוד אחד או יותר.
- אובייקט עם מפתח מספרי: אובייקט עמוד.
- תוספות/שינויים בפועל לאובייקט TemplateData.
- מוסיף את המפתח
title
עם שם העמוד שממנו נתבקשו הנתונים (למשל "Template:Cite web"). - מוסיף את המפתח
sets
. - משנה את כל מופעי TemplateText שהם רק מחרוזות לאובייקטים עם מפתח יחיד עבור קוד שפת הוויקי של מיזם הוויקימדיה הנוכחי.
- מסיר את כל המפתחתות שהוגדרו כ-
inherits
.- מוסיף את כל המאפיינים מפרמטר שממנו הוגדרה ירושה שאינם מוחלפים על ידי מפתחות מוגדרים במפורש בפרמטרים של היורש.
- מוסיף ערכי ברירת מחדל עבור כל המפתחות בכל הפרמטרים שלא הוגדרו או לא עברו בירושה.
- מוסיף את המפתח
הבדלים חזותיים באובייקט TemplateData JSON שנמסר על ידי ה-API
| ||||||
|
מפתח | סוג | תיאור |
---|---|---|
title
|
מחרוזת | שם התבנית (לדוגמה: "Template:Cite web"). מפתח זה לא כלול במבנה JSON בדף התבנית. המפתח מתווסף למבנה על ידי תוכנת MediaWiki בדרך למשלוח דרך ה-API. |
sets
|
מערך המכיל סטים | מערך המכיל מפרטי סט. סט הוא קבוצה של פרמטרים שיש להשתמש בהם יחד. אם הסט לא קיים בדף התבנית, הסט מתווסף כמערך ריק למבנה ה-API. |
מפתח | סוג | תיאור |
---|---|---|
label |
InterfaceText | אם הערך לא נמצא בפורמט, הערך יוגדר כ-InterfaceText. |
required |
בוליאני | ברירת המחדל הוא false. |
description |
InterfaceText או null |
אם הערך מוגדר כמחרוזת, הערך יוגדר כ-InterfaceText. ברירת המחדל הוא null .
|
deprecated |
בוליאני או מחרוזת | ברירת המחדל הוא false. |
aliases |
מערך של מחרוזות | ברירת המחדל הוא [] (מערך ריק). |
default |
מחרוזת | ברירת המחדל הוא "". |
type |
מחרוזת | ברירת המחדל הוא "unknown". |
inherits |
(removed) | הגדר מפתחות יורשים עבור מפתח מסוים. מפתחות המוגדרים עבור הפרמטר הנוכחי מקבלים עדיפות וכל מפתח שאינו מוגדר ב-param הנוכחי או אלו שנחשבים יורשים של המפתח יקבלו את ברירת המחדל. |
מפתח | אובייקט או סוג פרימטיבי |
תיאור |
---|---|---|
אובייקט (מכיל מחרוזות מקומיות לפי קוד שפת ויקי) אם השדה TemplateData בדף התבנית מכיל מחרוזת, והוא איננו אובייקט עם מחרוזות מקומיות, MediaWiki מתרגם אותו לאובייקט InterfaceText עם מחרוזת המוקצית לשם המפתח של שפת הוויקי. ברירת המחדל עבור כל השדות של InterfaceText הוא null .
| ||
(קוד השפה) | מחרוזת | מחרוזת מקומית לשימוש בוויקיפדיה בקוד השפה הקיים. |
דוגמה לאובייקט JSON שמסופק על ידי API
ניתן לראות את אובייקט ה-JSON כפי שמסופר על ידי ה-API עבור המבנה TemplateData שמופיע בפסקה זו (מופיע למעלה):
- בפורמט HTML ראו: https://www.mediawiki.org/w/api.php?action=templatedata&titles=Extension:TemplateData&format=jsonfm
- כפי שמוצג על פי ה-API ראו: https://www.mediawiki.org/w/api.php?action=templatedata&titles=Extension:TemplateData
הגדרות
משתנה | ברירת מחדל | תיאור |
---|---|---|
$wgTemplateDataUseGUI
|
true
|
ממשק דו-שיח ניסיוני לעריכת TemplateData ב-JSON |
$wgTemplateDataEditorNamespaces
|
[ 10 ]
|
The namespaces in which the template data editor appears when creating or editing a page. (משימה T189989) |
ר' גם
- Extension:TemplateWizard – ממשק משתמש לבחירה והכנסת קוד ויקי של תבניות, וכל זאת בהתבסס על ה-TemplateData שלהן.
- GitHub: jeblad/TemplateData – גרסה חלופית בסגנון Lua.
- Translatable template
- Wikibase/Maps TemplateData
This extension is being used on one or more Wikimedia projects. This probably means that the extension is stable and works well enough to be used by such high-traffic websites. Look for this extension's name in Wikimedia's CommonSettings.php and InitialiseSettings.php configuration files to see where it's installed. A full list of the extensions installed on a particular wiki can be seen on the wiki's Special:Version page. |
This extension is included in the following wiki farms/hosts and/or packages: This is not an authoritative list. Some wiki farms/hosts and/or packages may contain this extension even if they are not listed here. Always check with your wiki farms/hosts or bundle to confirm. |