Roovet Articles

Module:Citation/CS1/Identifiers/sandbox

Documentation for this module may be created at Module:Citation/CS1/Identifiers/sandbox/doc

-- Minimal identifiers with set_selected_modules()

local M = {}
local cfg, U

function M.set_selected_modules(cfg_ptr, utilities_ptr)
  cfg, U = cfg_ptr, utilities_ptr
end

-- Simple handlers for common IDs
M.doi = {
  key='doi', label='doi',
  pattern='^10%.%d%d%d%d?%d?/.+',
  link=function(id) return 'https://doi.org/' .. id end,
  display=function(id) return id end,
}

M.isbn = {
  key='isbn', label='ISBN',
  pattern='^%d[%d%-%s]*[%dxX]$',
  normalize=function(id) return (mw.ustring.upper((id or '')):gsub('[^0-9X]', '')) end,
  link=function(id) return 'https://www.worldcat.org/isbn/' .. id end,
  display=function(id) return id end,
}

M.issn = {
  key='issn', label='ISSN',
  pattern='^%d%d%d%d%-%d[%dxX]$',
  link=function(id) return 'https://www.worldcat.org/issn/' .. id end,
  display=function(id) return id end,
}

return M