pb是什么意思| 3月9日什么星座| 男人梦见蛇是什么征兆| 什么奶粉比较好| 鸡皮肤是什么原因引起的| 晚上梦到蛇是什么意思| 麻辣拌里面都有什么菜| 念字五行属什么| 吃什么补阳气| 老虎五行属什么| 琛字五行属什么| 荥在中医读什么| 喝黑咖啡有什么好处| 什么的嘴| 大便为什么是黑色的是什么原因| 为什么梦不到死去的亲人| 老说梦话是什么原因| 11月份什么星座| 邹的左边读什么| 中校相当于政府什么官| 不孕不育的症状是什么| cfu是什么意思| 异位胰腺是什么意思| 流年花开讲的什么| 部分空蝶鞍是什么意思| 沙和尚是什么生肖| 梦见房子是什么意思| 少校军衔是什么级别| eca是什么意思| 梦见老公回来了是什么征兆| 治疗心率过快用什么药效果好| 应无所住而生其心是什么意思| 反复高烧是什么原因| 燕子喜欢吃什么| 四面受敌是什么动物| 扁桃体发炎吃什么药好| 雯五行属什么| 过敏了吃什么药好| 脾胃湿热什么症状| 石斛有什么用| 16开是什么意思| 枸杞子和什么泡水喝补肾壮阳| 减肥为什么不让吃茄子| 胳膊疼是什么原因| 什么大专好就业| 得了便宜还卖乖是什么意思| 几月初几是叫什么历| 猪鞭是什么| 低保是什么| 蜘蛛代表什么生肖| 空调嗡嗡响是什么原因| 发量多的女生适合什么发型| 看望病人买什么东西好| 焦急的什么| 经常长溃疡是什么原因引起的| 为什么拉屎会拉出血| 吃什么可以提高免疫力| 干是什么意思| 11月份是什么星座的| 合胞病毒是什么病毒| 剑兰什么时候开花| 手指发痒是什么原因| 肚脐下方疼是什么原因| 乳腺癌有什么症状| 主播是什么意思| 什么是溺水| 为什么最迷人的最危险是什么歌| 梦见龙是什么预兆| 儿白是什么意思| 倒立对身体有什么好处| 做糖耐前一天需要注意什么| 脊柱炎吃什么药效果好| 日本豆腐是什么做的| 什么散步| 疮疡是什么意思| 子宫囊肿严重吗有什么危害| vcr是什么| 番薯是什么| 养狗人容易得什么病| 属猴是什么命| 在于是什么意思| 兔儿爷是什么意思| 严重失眠挂什么科| 急腹症是什么意思| 房产证改名字需要什么手续| lo是什么意思| hippo什么意思| 线性骨折是什么意思| 回头是什么意思| 尽善尽美是什么意思| 1905年是什么朝代| 92年什么命| 9月12日是什么星座| 宝宝入盆有什么感觉| 黄大仙是保佑什么的| 总是口渴是什么原因| nt检查什么内容| 复诊是什么意思| 风凉话是什么意思| 喉咙发炎吃什么水果好| 罗京什么病| 经常射精有什么危害| 专辑是什么| 杰字属于五行属什么| 孕妇吃什么容易滑胎| 喝水不排尿是什么原因| 亦如是什么意思| 胀气吃什么食物好| 缓释片是什么意思| 胎盘成熟度2级是什么意思| 阳虚火旺吃什么中成药| 草莓像什么| 小腿酸胀是什么原因| 护士一般什么学历| 牙周炎用什么药最见效| 小路像什么| 眼睛干涩用什么眼药水好| 营养性贫血是什么意思| 二月二十五号是什么星座| beer是什么意思| 羊水浑浊是什么原因造成的| 了加一笔是什么字| 玻璃结节是什么意思| 入珠是什么意思| 口臭口苦什么原因引起的| 胆小怕事是什么生肖| 焦虑症是什么意思| 吃中药忌口都忌什么| 挚友是指什么的朋友| mdz0.2是什么药| 阴虱有什么症状| 送妈妈什么礼物好| 什么叫肾病综合征| 牙疼吃什么菜降火最快| 胎先露是什么意思| 玛卡是什么| 马躺下睡觉为什么会死| 菠萝蜜吃多了有什么坏处| rh血型D阳性是什么意思| 青岛啤酒节是什么时候| 后羿射日什么意思| 我追呀追呀是什么歌曲| 卵磷脂什么牌子好| 吃什么补血最快| 查输卵管是否堵塞要做什么检查| 染色体是由什么组成的| 玻色因是什么| 六十天打一字是什么字| me是什么基团| 今天开什么码| 宫是什么意思| 利尿剂是什么| 头顶秃了一小块是什么原因怎么办| 鲁迅的真名叫什么| 前列腺增生用什么药好| 青什么黄什么| 人人有的是什么生肖| 什么体质容易长肿瘤| 狗狗气喘吃什么药| 大便成细条状是什么病| 六月是什么星座| 尿隐血挂什么科| 福禄寿的禄是什么意思| 口蜜腹剑是什么意思| 梦见抓鱼是什么意思| 为什么突然就得肝炎了| 天网是什么意思| 未见卵黄囊是什么意思| 世界上最小的花是什么花| 一心一意是什么生肖| 血管硬化吃什么能软化| 为什么会孕酮低| 属狗和什么属相最配| 马革裹尸是什么意思| swi是什么检查| 宫腔内无回声区是什么意思| 凉皮加什么才柔软筋道| 低血钾是什么原因引起的| 什么是双数| 劫财代表什么| 肠胃不好适合喝什么茶| 什么是软饮料| 榨菜的原料菜叫什么| 脚抽筋什么原因| 大力是什么药| wuli是什么意思| 96年属鼠的是什么命| 冠心病需要做什么检查| 超敏c反应蛋白正常说明什么| 狗狗拉虫子又细又长吃什么药| 杨梅不能和什么一起吃| 糖耐什么时候做| 坐月子能吃什么| 梦见煮鱼有什么预兆| 清明节吃什么| 先知是什么意思| 6541是什么药| ABB的词语有什么| 脚水肿吃什么药| 4月26日什么星座| 数字7五行属什么| 星星为什么会眨眼| 9个月宝宝玩什么玩具| 蜘蛛最怕什么| 痛风能吃什么水果| 中度贫血吃什么补血快| 群星是什么意思| 什么时候跑步最好| 乳腺囊性结节是什么意思| 线索是什么意思| 皮疹是什么样子的| 日本牛郎是干什么的| 女人为什么会叫| 女生掉头发严重是什么原因| 八月十三什么星座| 但愿是什么意思| 高密度脂蛋白偏高是什么意思| 为什么会感染hpv| 癔病是一种什么病| 什么的月季| 肾气亏虚吃什么中成药| 银杏树叶像什么| 手麻脚麻是什么原因| ysl属于什么档次| 家中养什么鸟最干净| 什么高什么低| 预后是什么意思| 黄柏的功效与作用是什么| 为什么叫六小龄童| 陕西有什么烟| 野鸡大学是什么意思| 附睾炎是什么原因引起的| 辅料是什么意思| 承认是什么意思| 盐酸对人体有什么危害| 流产后吃什么补身体| 薄荷绿是什么颜色| 肾结石吃什么比较好| 做梦数钱是什么意思啊| 智齿为什么会长出来| 射频消融是什么手术| 月经期能吃什么水果| 大便拉不出来什么原因| 冬五行属什么| 拉肚子吃什么药| 月经期头疼是什么原因| 李连杰为什么不娶丁岚| 阑尾炎痛起来什么感觉| 尿常规是检查什么的| 什么时候同房容易怀孕| 肾痛在什么位置痛| 螯合是什么意思| 感冒输液用什么药| 石光荣是什么军衔| 蚰蜒是什么| 减肥早上吃什么比较好| 三位一体是什么生肖| 老花眼有什么症状| 脑供血不足食补吃什么| 男人是什么| 牙齿根部发黑是什么原因| 排卵是什么意思啊| 4月28号是什么星座| 下午三点到四点是什么时辰| 百度Aller au contenu

不讲理!上市四个多月 苹果AirPods依旧很难买到

Une page de Wikipédia, l'encyclopédie libre.
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 | modifier le code]
百度 美国布鲁金斯学会高级研究员、康奈尔大学教授艾斯瓦尔·普瑞萨德对本报记者表示,特朗普政府对中国发起有针对性的贸易措施,这让美国在贸易谈判中失去了优势,将招致反制措施。

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 | modifier le code]

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 | modifier le code]

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 | modifier le code]

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' }
     { 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.

    { 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.

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 | modifier le code]

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 | modifier le code]

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 | modifier le code]
{
	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 | modifier le code]

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 | modifier le code]

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

Requêtes communes

[modifier | modifier le code]

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 | modifier le code]

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)

Aide avancée des modules Lua

[modifier | modifier le code]

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.

昊字五行属什么 非私营单位是什么 艾草治什么病 7月7日是什么星座 黄鱼是什么鱼
梦见种玉米是什么意思 子宫内膜薄有什么影响 蚂蚁上树什么姿势 何辅堂是什么电视剧 脾是什么
人为什么有两个鼻孔 咸鱼什么意思 眼睛有什么颜色 尿道炎吃什么药比较好的快 舌根发硬是什么原因
涧是什么意思 早上醒来嘴苦是什么原因 蟑螂是什么样子的 弯弯的月亮像什么 beam什么意思
血小板为什么会减少hcv7jop5ns4r.cn 敛财是什么意思hcv9jop6ns5r.cn 甲沟炎有什么药hcv8jop6ns0r.cn 尿毒症是什么引起的hcv8jop4ns5r.cn 老人吃什么水果对身体好hcv9jop7ns2r.cn
菌群异常是什么意思hcv9jop1ns1r.cn 身上有斑点是什么原因hcv7jop7ns1r.cn 上焦有火吃什么中成药hcv9jop6ns3r.cn 金钱草有什么功效hcv9jop8ns0r.cn 不作为是什么意思hcv8jop4ns8r.cn
身体缺钾吃什么药hcv8jop0ns7r.cn 长期喝蜂蜜水有什么好处hcv8jop0ns1r.cn 拉肚子适合吃什么食物hcv7jop9ns5r.cn 什么人容易得梦游症hcv7jop9ns7r.cn 不吃早饭有什么危害hcv9jop1ns2r.cn
梦见被蛇咬了是什么意思hcv9jop0ns5r.cn 我想成为一个什么样的人hcv8jop2ns7r.cn 极有家是什么意思hcv9jop6ns1r.cn 南什么北什么的成语hcv9jop2ns9r.cn 女为悦己者容是什么意思hcv9jop7ns0r.cn
百度