Logo Vikidia.png
¡Crea una cuenta en Vikidia ahora!

¡Anímate a colaborar y tendrás muchos beneficios!

Logo Vikidia.png

Módulo:Referencia

De Vikidia
Saltar a: navegación, buscar
[editar] [purgar]Template-info.svg Documentación de plantilla
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 está transcluida desde Módulo:Referencia/doc.

Los editores pueden experimentar en la zona de pruebas de la plantilla.

Por favor, añade las categorías e interwikis en la subpágina de documentación. Subpáginas de esta plantilla.
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