Aller au contenu

Module:Biblio/Lien vidéo

Cette page fait l’objet d’une mesure de semi-protection étendue.
Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 6 février 2024 à 20:43 et modifiée en dernier par Escargot bleu (discuter | contributions) (ébauche : code majoritairement copié de Module:Biblio/Ouvrage et ||Module:Biblio/Lien web]] pour passer Modèle:Lien vidéo en lua). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

 Documentation[voir] [modifier] [historique] [purger]

Utilisation

Fonctions exportables :

  • lienVideo(args) – affiche un lien vers une vidéo ; voir {{Lien vidéo}}

Modules externes et autres éléments dont ce module a besoin pour fonctionner :


local Video = { }

local Langue = require( 'Module:Langue' )
local Commun = require( 'Module:Biblio/Commun' )
local References = require( 'Module:Biblio/Références' )

function Video.lienVideo( args )
	-- La table wiki va recevoir tous les petits morceaux de texte, et sera concaténée à la fin.
	-- Elle utilise la meta-table de TableBuilder, permettant d'utiliser les fonctions de la
	-- librairie table comme des méthodes. minsert permet d'insérer plusieurs éléments en une
	-- seule fois en, ignorant les paramètres nil.
	local wiki = TableBuilder.new()
	
	-- validArg renvoie le premier paramètre non vide, ou nil s'ils sont tous vides.
	-- Seul les noms des paramètres doivent être transmis à la fonction.
	local validArg = function ( ... ) return Commun.validTextArg( args, ... ) or false end
	
	-- span initial (id) et libellé
	local spanInitial, spanFinal = Commun.spanInitial ( args, validArg )
	wiki.minsert( spanInitial,  Commun.libelle( args ) )
	
	-- Indication de langue
	local indicLangue, codeLangue = Commun.indicationDeLangue ( args, validArg )
	local dir, attributsLangue
	if indicLangue and indicLangue ~= '' then
		wiki.minsert( indicLangue, ' ' )
		if codeLangue then
			dir = Langue.directionLangue( codeLangue )
			if dir == 'rtl' then 
				attributsLangue = ' lang="' .. codeLangue .. '" dir="rtl"'
			else 
				dir = nil
				attributsLangue = ' lang="' .. codeLangue .. '"'
			end
		end
	end
	
	-- Émission
	local emission = validArgs('émission')
	if emission then
		wiki.minsert( ", dans ''" .. emission .. "''" )
	end
	
	-- Chaîne
	local chaine = validArgs('chaîne')
	if chaine then
		wiki.minsert( " sur " .. chaine )
	end


	-- Date
	local date = validArg('date', 'année', 'year' )
	if date then
		local lrm
		if Langue.nonLatin( wiki.concat() ) then
			lrm = '‎'
		end
		wiki.minsert( ',', lrm, ' ', Commun.inscriptionDate( args ) )
		-- le &lrm est une marque de texte gauche à droite, utile si le texte qui précède est en droite à gauche (arabe, hébreux...)
	end
	
	
	
	
	-- Lien vers l'ouvrage en ligne (isbn, issn, pmid, doi, lire en ligne, résumé...)
	wiki.minsert( References.affichageLiensExternes( args, validArg, false, true ) )

	-- Fin du span (id) et de la description de l'ouvrage
	wiki.minsert( spanFinal )
	
	-- extrait
	local extrait = validArg( 'citation', 'extrait', 'quote' )
	if citation then
		if codeLangue then
			citation = Langue.lang{ codeLangue, citation }
		end
		wiki.minsert( '\194\160: <span class="citation">« ' .. citation .. ' »</span>' )
	end

	
	return wiki.concat()
end


return Video