FANDOM


local C = { }
 
local HF = require("Module:ComicsHF")
local parent = nil
local noLink = true
 
local build = function(arg, arg2, noLink, swapIssue)
  local built = ""
 
  if not HF.isempty(arg) then    
    link = arg
 
    if not HF.isempty(arg2) then
      text = arg2
    end
 
    title = string.match(arg, "(.+) Vol ")
    if HF.isempty(title) then 
      title = string.match(arg, "(.+) #") 
      if HF.isempty(title) then title = "Title Failed" end
    end
 
    volume = string.match(arg, "Vol ([^%s]+)")
    if HF.isempty(volume) then volume = "1" end
 
    if not HF.isempty(swapIssue) then issue = swapIssue end
    if HF.isempty(issue) then issue = string.match(arg, " #(.+)$") end
    if HF.isempty(issue) then issue = string.match(arg, "Vol [^%s]+ (.+)$") end 
    if HF.isempty(issue) then issue = "Issue Failed" end
 
    if volume == "1" then
      poundTitle = ("''" .. title .. "'' #" .. issue )
    else
      poundTitle = ("''" .. title .. "'' Vol " .. volume .. " #" .. issue )
    end
 
    linkTitle = title .. " Vol " .. volume .. " " .. issue
 
 
    if string.find(title, "—") == nil and string.find(title, "%[") == nil and string.find(string.lower(title), "cnst") == nil then
 
      local noText = HF.isempty(text)
 
      if noLink and noText then built = linkTitle 
      elseif noLink then built = text
      elseif not noLink and noText then
            built = "[[" .. linkTitle .. "|" .. poundTitle .. "]]"
      else
            built = "[[" .. linkTitle .. "|" .. text .."]]"
      end
 
    else
      built = arg
    end
  end
  if string.find(built, " Failed") ~= nil then built = arg end
  return built
 
end
 
function C.reference(frame)
  local output = ""
  local first = ""
  local second = ""
  parent = frame:getParent()
  local arg = parent.args[1]
  local arg2 = parent.args[2]
 
  if HF.isempty(arg) then 
    first = "Reference Needed"
  else
    first = build(arg, "", false, "")
  end
 
  if not HF.isempty(arg2) and (string.len(arg2) < 4) then 
    second = "-" .. build(arg, arg2, false, arg2)
  elseif not HF.isempty(arg2) then
    second = arg2
  end
 
  if string.match(first, "%[") == nil then 
    output = HF.Link(first) .. second
  else 
    output = first .. second
  end
 
  return output
end
 
function C.referenceName(frame)
  local output = ""
  local name = ""
  parent = frame:getParent()
  local arg = parent.args[1]
  local arg2 = parent.args[2]
 
  if HF.isempty(arg) then
    name = "Reference Needed"
  else
    name = build(arg, arg2, true, "")
    name = string.gsub(name, ":", "")
  end
 
  if not HF.isempty(arg2) and (string.len(arg2) < 4) then 
    name = name .. "-" .. arg2
  end
 
  output = name 
  return output
end
 
 
function C.comic(frame)
  parent = frame:getParent()
  local arg = parent.args[1]
  local arg2 = parent.args[2]
  local output = ""
    output = build(arg, arg2, false, "")
  return output
end
 
function C.comicNL(frame)
  parent = frame:getParent()
  local arg = parent.args[1]
  local arg2 = parent.args[2]
  local output = ""
    output = build(arg, arg2, true, "")
  return output
end
 
 
return C

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.