Jump to content

Module:Sandbox/Lesser Cartographies/lua

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Lesser Cartographies (talk | contribs) at 08:02, 17 December 2014 (What could possibly go wrong...). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
-- Taking lua for a spin.
local p = {}
local l2u = require( "Module:LaTeX2UTF8" )

function p.TranslateLaTeX(frame)
  local s = [[
  @book {MR0161818,
  AUTHOR = {Erd{\H{o}}s, P{\'a}l and Sur{\'a}nyi, J{\'a}nos},
  TITLE = {V\'alogatott fejezetek a sz\'amelm\'eletb{\H o}l},
  PUBLISHER = {Tank\"onyvkiad\'o V\'allalat, Budapest},
  YEAR = {1960},
  PAGES = {250},
  MRCLASS = {10.00},
  MRNUMBER = {0161818 (28 \#5022)},
  } 
  ]]
  s = l2u.translate_diacritics( s )
  s = l2u.translate_special_characters( s )
  c = {}
  c["citeparms"] = {}
  c["nonciteparms"] = {}
  authorlist 					= mw.ustring.match( s, "AUTHOR = {(.-)}" )
  authoridx=1
  for last,first in gmatch( s, "(.-), (.-) ") do
  	c["citeparms"]["last" .. authoridx] = last
  	c["citeparms"]["first" .. authoridx] = first
  	authoridx = authoridx+1
  end
  	
  c["nonciteparms"]["type"] 	= mw.ustring.match( s, "@(%a)+ {" )
  c["citeparms"]["mr"] 			= mw.ustring.match( s, "{(MR%d+)," )
  c["citeparms"]["title"]		= mw.ustring.match( s, "TITLE = {(.-)}" )
  c["citeparms"]["publisher"]	= mw.ustring.match( s, "PUBLISHER = {(.-)}" )
  c["citeparms"]["year"]		= mw.ustring.match( s, "YEAR = {(.-)}" )
  c["citeparms"]["pages"]		= mw.ustring.match( s, "PAGES = {(.-)}" )
  c["nonciteparms"]["mrclass"]	= mw.ustring.match( s, "MRCLASS = {(.-)}" )
  c["nonciteparms"]["mrnumber"] = mw.ustring.match( s, "MRNUMBER = {(.-)}" )
  
  return frame:expandTemplate{title = 'cite journal', args = c["citeparms"]}
end

return p