Favicon Vikidia.png
¡Vikidia te necesita!Face-wink.svg
Corazón.svg

Actualmente tenemos 6575 artículos. ¡Anímate! Face-smile.svg a crear los artículos solicitados

Módulo:Referencia

De Vikidia
Ir a la navegación Ir a la búsqueda
Test Template Info-Icon - Version (2).svg Documentación de módulo

Este módulo permite generar citas de libros, noticias, páginas web, vídeos, etc. Para ello, el módulo devuelve una cadena de texto formateada según un formato reconocido (APA, ISO, Harvard, por ejemplo). Se recomienda usar la plantilla {{Ref}} para usar las funcionalidades del módulo en los artículos.

Esta documentación se encuentra en la subpágina Módulo:Referencia/doc (editar | historial)
Por favor, incluye las categorías a la subpágina /doc. Subpáginas de este módulo.

local z = {}

local modUtilidades = require('Módulo:Utilidades')
local argumentos = modUtilidades.eliminarArgSinValor(mw.getCurrentFrame():getParent().args)

function z.Ref(frame)
 -- Tipos de schema.org
 if argumentos['tipo'] == 'artículo' then
  local tiposchema = 'https://schema.org/Article'
 elseif argumentos['tipo'] == 'blog' then
  local tiposchema = 'https://schema.org/BlogPosting'
 elseif argumentos['tipo'] == 'canción' then
  local tiposchema = 'https://schema.org/MusicComposition'
 elseif argumentos['tipo'] == 'comentario' then
  local tiposchema = 'https://schema.org/Comment'
 elseif argumentos['tipo'] == 'documento' then
  local tiposchema = 'https://schema.org/DigitalDocument'
 elseif argumentos['tipo'] == 'episodio' then
  local tiposchema = 'https://schema.org/Episode'
 elseif argumentos['tipo'] == 'libro' then
  local tiposchema = 'https://schema.org/Book'
 elseif argumentos['tipo'] == 'mapa' then
  local tiposchema = 'https://schema.org/Map'
 elseif argumentos['tipo'] == 'noticia' then
  local tiposchema = 'https://schema.org/NewsArticle'
 elseif argumentos['tipo'] == 'película' then
  local tiposchema = 'https://schema.org/Movie'
 elseif argumentos['tipo'] == 'publicación' then
  local tiposchema = 'https://schema.org/PublicationIssue'
 elseif argumentos['tipo'] == 'red social' then
  local tiposchema = 'https://schema.org/SocialMediaPosting'
 else
  local tiposchema = 'https://schema.org/CreativeWork'
 end
 -- Referencia
 local cite = mw.html.create('cite')
 cite:addClass('referencia')
 cite:attr('itemscope', 'itemscope')
 cite:attr('itemtype', tiposchema)
 -- Estilo de referencia
 if argumentos['estilo'] == 'harvard' then
  cite:wikitext('[[Categoría:Vikidia:Artículos con referencias Harvard]]')
  local autor = mw.html.create('span')
  autor:attr('itemprop', 'https://schema.org/author')
  autor:wikitext(argumentos['autor'])
  if argumentos['indirecta'] then
   cite:node(autor)
   cite:wikitext(' (')
  else
   cite:wikitext('(')
   cite:node(autor)
   cite:wikitext(', ')
  end
  local ano = mw.html.create('span')
  ano:attr('itemprop', 'https://schema.org/datePublished')
  ano:wikitext(argumentos['fecha'])
  cite:node(ano)
  if argumentos['páginas'] then
   local pags = mw.html.create('span')
   pags:wikitext(', ')
   pags:wikitext(argumentos['páginas'])
   cite:node(pags)
  end
  cite:wikitext(')')
 elseif argumentos['estilo'] == 'ieee' then
  return '<span class="error">Referencias IEEE no soportadas</span>'
 elseif argumentos['estilo'] == 'iso' then
  return '<span class="error">Referencias ISO no soportadas</span>'
 elseif argumentos['estilo'] == 'chicago' then
  return '<span class="error">Referencias Chicago no soportadas</span>'
 elseif argumentos['estilo'] == 'mla' then
  return '<span class="error">Referencias MLA no soportadas</span>'
 elseif argumentos['estilo'] == 'vancouver' then
  return '<span class="error">Referencias Vancouver no soportadas</span>'
 else
  return '<span class="error">Referencias APA no soportadas</span>'
 end
 return tostring(cite)
end

return z