嘴巴长溃疡是什么原因| 算什么男人歌词| 皮肤起水泡发痒是什么病| 没有排卵是什么原因| 饱经风霜是什么生肖| 96年属于什么生肖| 什么也不懂| 男人身体怕冷是什么原因如何调理| 卵巢无回声是什么意思| 猫的尾巴有什么用处| 羊下面是什么生肖| 这是什么牌子| 藏红花可以搭配什么泡水喝| 十一月四日是什么星座| 姿态是什么意思| 男士带什么手串好| 变色龙吃什么食物| 蛇是什么动物| 蟑螂长什么样子| crp什么意思| 台湾有什么特产| 丝瓜什么时候种植最好| 麦冬有什么作用与功效| 玉皇大帝和王母娘娘是什么关系| 7月17号是什么星座| 腊梅什么时候开花| 手脚麻是什么原因| 得了梅毒会有什么症状| 化疗能吃什么水果| 生日当天忌穿什么颜色| 慢热型是什么意思| 中药什么时候喝| 女性长胡子是什么原因| 父母都是o型血孩子是什么血型| 男性吃什么可以壮阳| 氯吡格雷治什么病| 洗牙挂什么科| 肝肾不足是什么意思| 脚后跟疼是什么病| 什么是制片人| 稀饭和粥有什么区别| 前列腺增生有什么危害| 省委书记什么级别| 撅眼是什么原因造成的| 漏尿挂什么科| 什么不足| 洋葱和什么不能一起吃| 全身水肿是什么原因引起的| 胃大是什么原因造成的| 中老年补钙吃什么钙片好| gst是什么意思| 梦到僵尸是什么预兆| 大姨妈一个月来两次是什么原因| 张学友和张家辉什么关系| 水煮鱼用什么鱼| 电器着火用什么灭火器| 程门立雪是什么意思| 起眼屎是什么原因| 牡丹花什么颜色| 回绝是什么意思| 什么目什么身| 心脏病人吃什么水果好| 吃什么减肚子上的赘肉最快| 平均血红蛋白含量偏低是什么意思| 糖尿病能吃什么主食| 私处长痘痘是什么原因| 以梦为马什么意思| 肾素活性高是什么原因| 阿碧的居所叫什么名字| 10.19什么星座| 早上起床胃疼是什么原因| 零八年属什么| 平行班是什么意思| 糜烂性脚气用什么药| 头皮问题挂什么科| 子宫肌瘤手术后吃什么好| 糙米饭是什么米| 中医的望闻问切是什么意思| 桃子不能和什么一起吃| 炸毛是什么意思| 减肥头晕是什么原因| 气血虚是什么意思| d是什么单位| 鬼佬是什么意思| 丹毒用什么药膏| 斐乐属于什么档次| 门前栽什么树最好| 卧轨什么意思| 圣母什么意思| 16岁可以做什么工作| 前列腺饱满是什么意思| 感知能力是什么意思| 52年属什么生肖| 赖床什么意思| 息肉样增生是什么意思| 上呼吸道感染吃什么药| 腮腺炎是什么引起的| 潴留囊肿是什么意思| 东吴在现在什么地方| 诸葛亮长什么样| 支原体是什么病| 白细胞介素是什么| 巴沙鱼是什么鱼| 郭晶晶什么学历| 黑豆有什么功效和作用| 白英别名叫什么| 6月28日什么星座| 嗓子苦是什么原因引起的| 老是想拉尿是什么原因| moss是什么意思| 相濡以沫不如相忘于江湖是什么意思| 睡觉时间长是什么原因| 尿的酸碱度能说明什么| 女人亏气亏血吃什么补的快| 绕梁三日是什么意思| 遗传物质是什么| logo是什么| 下嘴唇发紫是什么原因| 门口放镜子有什么讲究| absolutvodka什么酒| 牙龈萎缩是什么原因| 什么的图案| 第一次世界大战是什么时候| 手心脚心发热是什么原因引起的| 古井贡酒是什么香型| 莲子有什么功效和作用| 广州有什么特产必带| 吃什么降血压最快最好方法| 小孩急性肠胃炎吃什么药| 明前茶和明后茶有什么区别| 得了艾滋病有什么症状| 小刺猬吃什么东西| 割掉胆对人有什么影响| dha什么牌子最好最安全| 四大天王是什么生肖| 晨尿浑浊是什么原因| 银屑病用什么药最好| 老年人缺钾是什么原因引起的| 丙型肝炎吃什么药最好| 担担面是什么面| 贵格是什么意思| 姊妹是什么意思| 四维和大排畸有什么区别| 知性女性是什么意思| 英红九号红茶什么档次| 什么病不能吃茄子| barry什么意思| 天哭星是什么意思| 有什么笑话| 一花一草一世界的下一句是什么| 溶血症是什么症状| 肩颈疼痛挂什么科| 防微杜渐是什么意思| 早上空腹喝淡盐水有什么好处| 悦人不如悦己什么意思| 吃什么食物能提高免疫力| 胃酸吃什么能缓解| 农历3月是什么星座| 胃食管反流挂什么科| 淋巴细胞比率低是什么意思| exp是什么函数| 四季豆不能和什么一起吃| 什么的旅行| 01年属什么生肖| 尿酸高看什么科室最好| 什么是反流性咽喉炎| 男人眉毛长代表什么| 心火旺吃什么中成药| 两肺纤维灶是什么意思| 阴道发痒是什么原因| 时光荏苒的意思是什么| 张牙舞爪是什么生肖| 月的偏旁有什么字| 阿尔兹海默症挂什么科| 怀孕了梦见蛇是什么意思| 肝火旺喝什么茶| 医学检验技术是什么| 鲻鱼是什么鱼| 50岁女人出轨为了什么| 10月3号是什么星座| 经常口臭的人是什么原因引起的| 牙龈经常发炎是什么原因| 什么是做功| 三条杠是什么牌子| 孕妇喝什么补羊水最快| 36是什么意思| 梦到牙齿掉了是什么意思| 一个米一个更念什么| 霍金是什么病| 大便为什么不成形| 痔疮的症状有些什么| 身份证更换需要带什么| 钙盐沉积是什么意思| 什么是夫妻宫| 息肉是什么| Mary英文名什么意思| 腐男是什么意思| 九天什么月| 粉玫瑰花语是什么意思| 测血糖挂号挂什么科| 什么防晒霜防晒效果好| 囊性结节是什么| 9月17日是什么星座| 重塑是什么意思| 注音是什么意思| 萎缩性胃炎什么意思| 才高八斗是什么生肖| 茉莉花茶适合什么季节喝| 一号来的月经排卵期是什么时候| 猴子是什么动物| 宫腔镜检查主要查什么| 度蜜月什么意思| 新股配号数量是什么意思| 头疼头胀是什么原因| 85年什么命| 脱敏什么意思| 上校相当于政府什么官| 什么东西只进不出| 梦见找孩子什么预兆| 折耳根什么味道| 胃火大吃什么药| 水淀粉是什么| 花千骨什么时候上映的| 若干是什么意思| 名声大噪是什么意思| 结婚唱什么歌送给新人| 打开心扉是什么意思| 萎缩性胃炎吃什么药| 寒咳嗽吃什么药止咳效果好| CA是什么激素| 龟奴是什么| 脸上脱皮是什么原因| 活性炭是什么东西| 现在是吃什么水果的季节| 月经不正常吃什么药| 补铁吃什么| 杨梅泡酒有什么功效| 少许是什么意思| 不明原因发烧挂什么科| 后壁是什么意思| 四面八方指什么生肖| gl是什么| 承蒙不弃什么意思| 鸡蛋和面粉可以做什么好吃的| 本科一批和本科二批有什么区别| 七五年属什么生肖| cos代表什么意思| 6月份出生是什么星座| 慢性非萎缩性胃炎伴糜烂是什么意思| 心有余而力不足什么意思| 火眼金睛是什么生肖| 冰箱eco是什么意思| 痰多是什么原因| 腰痛宁胶囊为什么要用黄酒送服| 腰间盘突出吃什么药好| 血性是什么意思| 甘油三酯高是什么原因| 风格是什么意思| 茹什么饮什么| 狗剩是什么意思| 睡眠好的人说明什么| 小腹胀痛男性什么原因| 慢保申请有什么条件| 切是什么偏旁| 百度

偈语是什么意思

Niveau expert
Nous vous recommandons de lire auparavant Aide:créer une infobox
Tutoriel pour la création d'une infobox en Lua.

Emplacement du code

modifier
百度 据网贷之家数据显示,逾千家平台春节7天总成交量较平时下降了近六成,大多数平台的成交量出现明显下降。

Les pages de modèles proprement dites ne font qu'appeler le module infobox Lua via l'appel en wikicode {{#invoke:}} (voir Wikipédia:Lua). Les codes eux-mêmes se trouvent sur la page Module:Infobox et sur les sous-pages particulières ? Module:Infobox/nom de l'infobox ?, par exemple Module:Infobox/Philosophe.

Structure d'un module d'infobox

modifier

Pour l'essentiel, un module d'infobox est constitué d'une table, précédée du mot "return" donnant le contenu de l'infobox. Elle peut être précédée d'importations d'autres modules ou de fonctions de soutien permettant son bon fonctionnement, par exemple :

-- importe le module Wikidata afin de pouvoir l'utiliser dans la table
local wikidata = require( 'Module:Wikidata' )
-- fonction pour aider à l'insertion des smileys 
local function makeHappy( a )
	return a .. ' :)'
end

return {
	blablablaa  -- ici : le contenu de l'infobox proprement dit
}

La partie après le "return" prend la forme d'une table Lua, c'est à dire une suite de données séparées par des virgules et mises à l'intérieur d'accolades. Sa structure générale est la suivante :

return {
	style = 'xxx',      -- style css de l'infobox (facultatif)
	maincolor = '#xxx', -- code html de la couleur à utiliser pour les titres, sous-titre, etc. (facultatif)
    categories = {'xxx','yyy'}, --- catégories de maintenance (sans préfixe) à appliquer à l'article (facultatif) 
	parts = { },        -- la partie essentielle : le contenu du l'infobox
}

La partie "parts"

modifier

La partie "parts" définit le contenu de l'infobox. Elle est elle-même constituée de tables correspondant aux différentes parties de l'infobox (titre, image, bloc de texte, etc.). Le contenu de ces sous-tables peut varier en fonction du type de données, mais il prend généralement la forme suivante :

{
	type = 'xxx',      -- type de brique ("image", "title" etc.),
	value = 'xxx',     -- valeur à retourner
	property = 'Pxxx', -- propriété Wikidata à utiliser lorsque la valeur manque sur Wikipédia (optionnel),
	wikidata = {},     -- requête Wikidata (alternative au paramètre property pour les cas plus complexes),
	default = 'xxx',   -- valeur à retourner si on ne trouve rien par les paramètres value, property et wikidata (optionnel)
	class = 'xxx',     -- classe css à utiliser (optionnel)
	style = {},        -- facultatif : style css à utiliser (voir [[mw:Extension:Scribunto/Lua reference manual/fr#mw.html:css]])
}

Les parties de parts

modifier

Les parties de parts peuvent prendre les formes suivantes :

Titre de l'infobox

{
	type = 'title', 
	value = 'nom',                -- le titre sera défini par le paramètre "nom" de l'infobox
	property = 'P1448',           -- par défaut,  le titre affiché sera la valeur de la propriété P1448 (nom officiel) sur Wikidata
	class = 'entete icon auteur', -- la classe du titre sera "entete icon auteur" qui ajoute une petite plume à c?té du nom
}

Si les clés "value", "property" et "wikidata" ne retournent aucune valeur, le titre de l'article sera utilisé.

Pour les images, blasons etc.

{
	type = 'images',
	imageparameters =  'image',   -- l'image est définie ici par le paramètre "image",
	captionparameter = 'légende', -- la légende est définie par le paramètre "légende",
	defaultimage = 'foo.jpg',     -- quand il n'y a pas d'image, monter "foo.jpg",
	defaultcaption = 'image du sujet',
	wikidata = function ( item )  -- Wikidata uniquement pour les images, pas la légende
		return wikidata.formatStatements{ entity = item, property = 'p18', returntype = 'table' }
	end,
	numval = 1,                   -- 1 image au maximum (utile essentiellement pour les requêtes Wikidata)
}

Le paramètre wikidata ne s'applique qu'à l'image. La légende ne peut pas être récupérée sur Wikidata.

Si l'on veut utiliser plusieurs images, mettre la liste des paramètres à utiliser dans une table :

{
	type = 'images',
	imageparameters = { 'image', 'logo' },
}


texte libre :

{
	type = 'text',
	value = 'citation',  -- retourne le texte donné dans le paramètre citation,
}

Une table de lignes. Une grande partie des données d'infobox sont intégrées à de telles tables.

{
	type = 'table',
	title = 'Données clés', -- titre de la table (affiché seulement si au moins une des "rows" retourne une valeur)
	rows = {
		{ type = 'row', value = 'xxx' , property = 'Pxxx', ... }, -- liste des lignes inclues dans la table
		{ type = 'row' ... },
		{ type = 'row' ... },
	},
}

Si l'on désire un formatage particulier pour le titre :

{
	type = 'table',
	title = 'Données clé', 
	titlestyle = { ['background-color'] = '#af12dd' },
	rows = {
		{ type = 'mixed' ... },
	},
}

Les lignes d'une table peuvent être de trois types différents :

  • row ou ligne simple
  • row1col pour les lignes utilisant l'ensemble des colonnes
  • succession pour ajouter un diptyque ou un triptyque de succession, à l'image de Modèle:Infobox/Succession
     { type = 'row', label = 'label', value = 'value' }
row1col
modifier
     { type = 'row1col', color = '#f9f9f9', value = 'texte' }

Le texte est affiché centré et en gras dans une ligne d'une seule cellule qui fait la largeur de l'infobox. Il est possible de mettre en couleur le mot-clé 'secondcolor' qui sera remplacé par la couleur secondaire de la charte graphique.

succession
modifier
    { type = 'succession', color = '#e6e6e6', value = 'texte' }

Ce type imite la bo?te de succession définie par Modèle:Infobox/Succession. La valeur de color est 'transparent'. 'default' correspond à la valeur '#e6e6e6', tandis que transparent s'utilise telle quelle. Il est possible de mettre une autre valeur de couleur, mais le contraste avec les flèches n'est pas garanti.

value doit être une table ayant les indices 'before', 'center' et 'after'. La présence de l'indice center produit un triptyque en affichage, et son absence un diptyque.

Exemple

modifier

Ces fonctionnalités sont utilisées par la fonction timeline() du module Module:Infobox/Fonctions/Personne

Utilisation de fonctions dans le paramètre "value"

modifier

Quand la valeur à afficher ne correspond pas simplement à la valeur d'un paramètre donné dans l'article, on peut utiliser une fonction plut?t qu'une cha?ne dans le paramètre "value". Les fonctions peuvent utiliser les paramètres de l'infobox en chargeant le module Infobox/Localdata (les valeurs des paramètres indiqués sur la page, et "item", l'élément Wikidata lié)

Par exemple la ligne mixte suivante affiche "il a écrit " suivi de la valeur du paramètre "?uvres principales" :

local localdata = require( 'Module:Infobox/Localdata' )
{
	type = 'mixed',
	label = '?uvres principales',
	value = function ( localdata ) 
		if localdata[ "?uvres principales" ] then 
			return "il a écrit " .. localdata[ "?uvres principales" ] 
		end 
	end,
}

XXX : Le callback ne re?oit pas en paramètre le localdata obtenu par le require() plus haut, mais le localdata qui est défini localement dans le Module:Infobox ; c'est-à-dire qu'il y a un variable shadowing dans le présent exemple. Ainsi, le require() est en fait inutile dans cette situation. Chercher ? local function getValue ? dans Module:Infobox.

Remarquer aussi que le callback re?oit en 2e paramètre localdata.item (l'identifiant Wikidata utilisé, voir règles de détermination dans Module:Infobox/Localdata), et en 3e paramètre params (la présente table avec "type", "label", etc.).

Utilisation de Wikidata

modifier

Dans certains cas, on peut utiliser des valeurs Wikidata à retourner en l'absence de données locales. On peut utiliser pour cela les paramètres suivants :

Paramètre "property"

modifier
{
	type = 'mixed',
	label = 'Architecte',
	value = 'architecte',
	property = 'P84',
}

Dans ce cas, si le paramètre "architecte" n'est pas renseigné dans l'article. Le modèle utilise les données de la propriété P84 de l'élément lié.

Paramètre "wikidata"

modifier

Permet une gestion plus fine de Wikidata que le paramètre "property". On passe une table d'arguments passés comme requête de Wikidata. Utilise une syntaxe similaire à celle de {{Wikidata}}. Pour plus d'informations, voir Projet:Wikidata/Atelier/Manuel.

{
	type = 'mixed',
	label = 'Architecte',
	value = 'architecte',
	wikidata = {
		property = 'P84',
		rank = valid,
		showqualifiers = {'P518'},
		entity = 'QXX' -- seulement si on veut lier à un autre élément que l'élément Wikidata utilisé par défaut par l'infobox
	}
,
}

La valeur du paramètre wikidata peut également être une fonction, pour permettre davantage de personnalisation.

{
	type = 'mixed',
	label = 'Libellé Wikidata',
	value = 'Entré Wikidata',
	wikidata = function ( item ) 
		return item.id 
	end,
}

Parfois, dans des cas encore plus délicats, il peut-être nécessaire d'intégrer la valeur wikidata à la fonction définie par le paramètre "value".

Désactivation locale de Wikidata

modifier

Pour désactiver Wikidata dans l'infobox d'un article, y ajouter wikidata = -

Requêtes communes

modifier

Pour simplifier la gestion des données complexes, certaines briques souvent utilisées sont définies dans le répertoire Module:Infobox/Fonctions et ses sous-modules et dans ses sous-module thématiques. Par exemple, si l'on veut une ligne affichant la date et le lieu de naissance d'une personne avec un formatage et une requête Wikidata standard, on peut utiliser la fonction p.birth de Module:Infobox/Fonctions/Personne. Pour cela :

local person = require( 'Module:Infobox/Fonctions/Personne' )
  • On ajoute la fonction à l'emplacement désiré :
{
	type = 'table',
	title = { value = 'Données clé', style = { ['background-color'] = '#af12dd' } },
	rows = {
		person.birth(),
		{ type = 'mixed', label = 'Nom de naissance', value = 'nom de naissance' },
	},
}

A noter : certaines fonctions prennent des paramètres dans le module d'infobox qui les appelle. Par exemple, un module d'infobox contenant la fonction suivante catégorisera les articles sans image dans Catégorie:Article à illustrer Chateau

require( 'Module:Fonctions' ).mainimage( 'Article à illustrer Chateau', 'jpg' )

Erreurs fréquentes

modifier

Comme la plupart des langages de programmation, Lua est sensible aux erreurs de majuscule, de ponctuation, etc. (mais, sauf cas particulier, pas aux sauts de lignes ou aux indentations)

Exemples

modifier

Aide avancée des modules Lua

modifier

Cette aide attend de trouver une meilleure place dans l'arbre des aides.

Le langage Lua semble très simpliste :

  • Il n'y a pas de mot object, ni class, ni new, mais tout est objet et le mot self permet d'accéder à la table qui décrit l'objet dans lequel on est.
  • Il n'y a que 6 types : nil, boolean, string, number, table et function (une table exécutable).
  • Les indices d'une table peuvent être de n'importe quel type, même table, sauf nil qui ne conduit à aucun élément.
  • La fonction pairs(table) parcourt tous les éléments d'une table, et la fonction ipairs(table) n'en parcourt que les éléments indexés de 1 à n en continu.
  • Il n'y a pas de mot "iterator" mais on peut écrire d'autres fonctions pour fournir les variables qu'on veut à un for et parcourir différemment une table.
  • L'espace global _G est la table qui collecte toutes les variables qui ne sont ni locales, ni dans la table p. d'un module.
  • pcall et xpcall permettent de traiter différemment les "exceptions", les erreurs que l'on voit lors d'une erreur d'exécution. On peut ainsi essayer un require, ou autre opération risquée, et s'il échoue en essayer un autre ou signaler l'erreur sans blocage.
  • On peut récupérer les arguments d'une fonction dans une table ..., entièrement func(...) ou partiellement func(aa, bb, ...).
  • Une fonction getfenv( f ) permet d'accéder à l'environnement dynamique d'une fonction, c'est à dire à l'espace global _G des niveaux supérieurs de la pile d'appels.
  • Les librairies et tous les modules installés par require() sont des tables collectées dans la table package.loaded.
  • On peut y inscrire dynamiquement une nouvelle librairie par package.loaded[nouveau_nom] = { fonctions et variables de la librairie }.
  • Mais si l'on veut la partager dans mediawiki Scribunto, il faut d'abord la soumettre à une série de tests répétés à chaque modification de Scribunto pour s'assurer de sa stabilité.

Pour aller plus loin : Lua Programming Gems ou Lua:demo.

8月18日什么星座 感冒低烧吃什么药 硒酵母胶囊对甲状腺的作用是什么 望周知是什么意思 花胶是什么东西
疱疹吃什么药 凭什么是什么意思 右肩膀疼痛是什么原因 mice是什么意思 pd-l1是什么
什么叫高危行为 7月有什么活动 晨尿有泡沫是什么原因 吃葡萄对身体有什么好处 曹操原名叫什么
梦魇是什么原因造成的 鼻子经常出血是什么病征兆 古天乐属什么生肖 4.7号是什么星座 扁桃体发炎挂什么科
rag什么意思hcv9jop1ns8r.cn 男人早泄吃什么药最好hcv9jop5ns7r.cn 七月一号是什么节zsyouku.com 肛门长肉球是什么原因hcv8jop0ns3r.cn 塬字五行属什么hcv9jop5ns5r.cn
olay是什么品牌hanqikai.com 火加同念什么hcv8jop9ns7r.cn 生物公司是做什么的hcv9jop1ns9r.cn 血脂高有什么症状hcv8jop3ns0r.cn 吾日三省吾身是什么意思hcv9jop4ns0r.cn
忌诸事不宜是什么意思hcv9jop0ns3r.cn 三月初一是什么星座hcv8jop9ns0r.cn 轮回是什么意思hcv8jop2ns4r.cn 平均分是什么意思jinxinzhichuang.com 鼻子干燥是什么原因hcv8jop5ns2r.cn
孩子晚上睡觉磨牙是什么原因hcv8jop1ns1r.cn 雅戈尔男装什么档次hcv9jop4ns4r.cn 什么是重心hcv8jop0ns4r.cn 前列腺回声欠均匀什么意思hcv7jop7ns4r.cn 为什么会有蚊子hcv7jop9ns0r.cn
百度