Module:Credits: Difference between revisions
From Eli's Software Encyclopedia
mNo edit summary |
mNo edit summary |
||
| Line 83: | Line 83: | ||
'Concept=' .. utils.unwrapList(utils.unwrapLink(Concept)), | 'Concept=' .. utils.unwrapList(utils.unwrapLink(Concept)), | ||
'Designer=' .. utils.unwrapList(utils.unwrapLink(Designer)), | 'Designer=' .. utils.unwrapList(utils.unwrapLink(Designer)), | ||
'+sep= | '+sep=;', | ||
'Game Idea=' .. utils.unwrapList(utils.unwrapLink(GameIdea)), | 'Game Idea=' .. utils.unwrapList(utils.unwrapLink(GameIdea)), | ||
'+sep= | '+sep=;', | ||
'Additional Design=' .. utils.unwrapList(utils.unwrapLink(ADesign)), | 'Additional Design=' .. utils.unwrapList(utils.unwrapLink(ADesign)), | ||
'+sep= | '+sep=;', | ||
'Producer=' .. utils.unwrapList(utils.unwrapLink(Producer)), | 'Producer=' .. utils.unwrapList(utils.unwrapLink(Producer)), | ||
'+sep= | '+sep=;', | ||
'Writer=' .. utils.unwrapList(utils.unwrapLink(Writer)), | 'Writer=' .. utils.unwrapList(utils.unwrapLink(Writer)), | ||
'+sep= | '+sep=;', | ||
'Art Director=' .. utils.unwrapList(utils.unwrapLink(ArtDirector)), | 'Art Director=' .. utils.unwrapList(utils.unwrapLink(ArtDirector)), | ||
'+sep= | '+sep=;', | ||
'Technical Director=' .. utils.unwrapList(utils.unwrapLink(TechDirector)), | 'Technical Director=' .. utils.unwrapList(utils.unwrapLink(TechDirector)), | ||
'+sep= | '+sep=;', | ||
'Assistant Producer=' .. utils.unwrapList(utils.unwrapLink(AProducer)), | 'Assistant Producer=' .. utils.unwrapList(utils.unwrapLink(AProducer)), | ||
'+sep= | '+sep=;', | ||
'Lead Programmer=' .. utils.unwrapList(utils.unwrapLink(LProgrammer)), | 'Lead Programmer=' .. utils.unwrapList(utils.unwrapLink(LProgrammer)), | ||
'+sep= | '+sep=;', | ||
'Senior Programmer=' .. utils.unwrapList(utils.unwrapLink(SProgrammer)), | 'Senior Programmer=' .. utils.unwrapList(utils.unwrapLink(SProgrammer)), | ||
'+sep= | '+sep=;', | ||
'Programmer=' .. utils.unwrapList(utils.unwrapLink(Programmer)), | 'Programmer=' .. utils.unwrapList(utils.unwrapLink(Programmer)), | ||
'+sep= | '+sep=;', | ||
'Game Programming=' .. utils.unwrapList(utils.unwrapLink(GProgrammer)), | 'Game Programming=' .. utils.unwrapList(utils.unwrapLink(GProgrammer)), | ||
'+sep= | '+sep=;', | ||
'Additional Programming=' .. utils.unwrapList(utils.unwrapLink(AProgrammer)), | 'Additional Programming=' .. utils.unwrapList(utils.unwrapLink(AProgrammer)), | ||
'+sep= | '+sep=;', | ||
'Lead Animator=' .. utils.unwrapList(utils.unwrapLink(LAnimator)), | 'Lead Animator=' .. utils.unwrapList(utils.unwrapLink(LAnimator)), | ||
'+sep= | '+sep=;', | ||
'Animation=' .. utils.unwrapList(utils.unwrapLink(Animation)), | 'Animation=' .. utils.unwrapList(utils.unwrapLink(Animation)), | ||
'+sep= | '+sep=;', | ||
'Lead Artist=' .. utils.unwrapList(utils.unwrapLink(LArtist)), | 'Lead Artist=' .. utils.unwrapList(utils.unwrapLink(LArtist)), | ||
'+sep= | '+sep=;', | ||
'Art Team=' .. utils.unwrapList(utils.unwrapLink(Artists)), | 'Art Team=' .. utils.unwrapList(utils.unwrapLink(Artists)), | ||
'+sep= | '+sep=;', | ||
'Concept Artist=' .. utils.unwrapList(utils.unwrapLink(CArtist)), | 'Concept Artist=' .. utils.unwrapList(utils.unwrapLink(CArtist)), | ||
'+sep= | '+sep=;', | ||
'Additional Artwork=' .. utils.unwrapList(utils.unwrapLink(AArtwork)), | 'Additional Artwork=' .. utils.unwrapList(utils.unwrapLink(AArtwork)), | ||
'+sep= | '+sep=;', | ||
'Technology Lead=' .. utils.unwrapList(utils.unwrapLink(TechLead)), | 'Technology Lead=' .. utils.unwrapList(utils.unwrapLink(TechLead)), | ||
'+sep= | '+sep=;', | ||
'Technology Programming=' .. utils.unwrapList(utils.unwrapLink(TProgramming)), | 'Technology Programming=' .. utils.unwrapList(utils.unwrapLink(TProgramming)), | ||
'+sep= | '+sep=;', | ||
'Additional Technology Programming=' .. utils.unwrapList(utils.unwrapLink(ATProgramming)), | 'Additional Technology Programming=' .. utils.unwrapList(utils.unwrapLink(ATProgramming)), | ||
'+sep= | '+sep=;', | ||
'QA Lead=' .. utils.unwrapList(utils.unwrapLink(QALead)), | 'QA Lead=' .. utils.unwrapList(utils.unwrapLink(QALead)), | ||
'+sep= | '+sep=;', | ||
'QA=' .. utils.unwrapList(utils.unwrapLink(QA)), | 'QA=' .. utils.unwrapList(utils.unwrapLink(QA)), | ||
'+sep= | '+sep=;', | ||
'Music=' .. utils.unwrapList(utils.unwrapLink(Music)), | 'Music=' .. utils.unwrapList(utils.unwrapLink(Music)), | ||
'+sep= | '+sep=;', | ||
'Sound Effects=' .. utils.unwrapList(utils.unwrapLink(Sound)), | 'Sound Effects=' .. utils.unwrapList(utils.unwrapLink(Sound)), | ||
'+sep= | '+sep=;', | ||
'Audio Editor=' .. utils.unwrapList(utils.unwrapLink(AudioEdit)), | 'Audio Editor=' .. utils.unwrapList(utils.unwrapLink(AudioEdit)), | ||
'+sep= | '+sep=;', | ||
'Casting Director=' .. utils.unwrapList(utils.unwrapLink(CDirector)), | 'Casting Director=' .. utils.unwrapList(utils.unwrapLink(CDirector)), | ||
'+sep= | '+sep=;', | ||
'Live Action Producer=' .. utils.unwrapList(utils.unwrapLink(LAProducer)), | 'Live Action Producer=' .. utils.unwrapList(utils.unwrapLink(LAProducer)), | ||
'+sep= | '+sep=;', | ||
'Director of Photography=' .. utils.unwrapList(utils.unwrapLink(DPhoto)), | 'Director of Photography=' .. utils.unwrapList(utils.unwrapLink(DPhoto)), | ||
'+sep= | '+sep=;', | ||
'Video Editor=' .. utils.unwrapList(utils.unwrapLink(VEditor)), | 'Video Editor=' .. utils.unwrapList(utils.unwrapLink(VEditor)), | ||
'+sep= | '+sep=;', | ||
'Cast=' .. utils.unwrapList(utils.unwrapLink(Cast)), | 'Cast=' .. utils.unwrapList(utils.unwrapLink(Cast)), | ||
'+sep= | '+sep=;', | ||
'Manual=' .. utils.unwrapList(utils.unwrapLink(Manual)), | 'Manual=' .. utils.unwrapList(utils.unwrapLink(Manual)), | ||
'+sep= | '+sep=;', | ||
'Publisher name=' .. utils.unwrapList(utils.unwrapLink(ContentPub)), | 'Publisher name=' .. utils.unwrapList(utils.unwrapLink(ContentPub)), | ||
'+sep=;', | '+sep=;', | ||
'Senior Editor=' .. utils.unwrapList(utils.unwrapLink(SrEditor)), | 'Senior Editor=' .. utils.unwrapList(utils.unwrapLink(SrEditor)), | ||
'+sep= | '+sep=;', | ||
'Editor=' .. utils.unwrapList(utils.unwrapLink(Editor)), | 'Editor=' .. utils.unwrapList(utils.unwrapLink(Editor)), | ||
'+sep= | '+sep=;', | ||
'Cover Art=' .. utils.unwrapList(utils.unwrapLink(CoverArt)), | 'Cover Art=' .. utils.unwrapList(utils.unwrapLink(CoverArt)), | ||
'+sep= | '+sep=;', | ||
'Production=' .. utils.unwrapList(utils.unwrapLink(Production)), | 'Production=' .. utils.unwrapList(utils.unwrapLink(Production)), | ||
'+sep= | '+sep=;', | ||
'Credit=' .. table.concat(CreditTable, ','), | 'Credit=' .. table.concat(CreditTable, ','), | ||
'+sep= | '+sep=;', | ||
'Graphics=' .. table.concat(GraphicsTable, ','), | 'Graphics=' .. table.concat(GraphicsTable, ','), | ||
'+sep= | '+sep=;' | ||
} | } | ||
mw.smw.set( data ) | mw.smw.set( data ) | ||
| Line 193: | Line 193: | ||
end | end | ||
appendIfExists('Concept', Concept) | appendIfExists('Concept', Concept, 'link', ';') | ||
appendIfExists('Designer', Designer, 'link', ';') | appendIfExists('Designer', Designer, 'link', ';') | ||
appendIfExists('Credit', table.concat(CreditTable, ', ')) | appendIfExists('Credit', table.concat(CreditTable, ', ')) | ||
appendIfExists('Graphics', table.concat(GraphicsTable, ', ')) | appendIfExists('Graphics', table.concat(GraphicsTable, ', ')) | ||
appendIfExists('Game Idea', GameIdea) | appendIfExists('Game Idea', GameIdea, 'link', ';') | ||
appendIfExists('Additional Design', ADesign) | appendIfExists('Additional Design', ADesign, 'link', ';') | ||
appendIfExists('Producer', Producer) | appendIfExists('Producer', Producer, 'link', ';') | ||
appendIfExists('Writer', Writer) | appendIfExists('Writer', Writer, 'link', ';') | ||
appendIfExists('Art Director', ArtDirector) | appendIfExists('Art Director', ArtDirector, 'link', ';') | ||
appendIfExists('Technical Director', TechDirector) | appendIfExists('Technical Director', TechDirector, 'link', ';') | ||
appendIfExists('Assistant Producer', AProducer) | appendIfExists('Assistant Producer', AProducer, 'link', ';') | ||
appendIfExists('Lead Programmer', LProgrammer) | appendIfExists('Lead Programmer', LProgrammer, 'link', ';') | ||
appendIfExists('Senior Programmer', SProgrammer) | appendIfExists('Senior Programmer', SProgrammer, 'link', ';') | ||
appendIfExists('Programmer', Programmer) | appendIfExists('Programmer', Programmer, 'link', ';') | ||
appendIfExists('Game Programming', GProgrammer) | appendIfExists('Game Programming', GProgrammer, 'link', ';') | ||
appendIfExists('Additional Programming', AProgrammer) | appendIfExists('Additional Programming', AProgrammer, 'link', ';') | ||
appendIfExists('Lead Animator', LAnimator) | appendIfExists('Lead Animator', LAnimator, 'link', ';') | ||
appendIfExists('Animation', Animation) | appendIfExists('Animation', Animation, 'link', ';') | ||
appendIfExists('Lead Artist', LArtist) | appendIfExists('Lead Artist', LArtist, 'link', ';') | ||
appendIfExists('Art Team', Artists) | appendIfExists('Art Team', Artists, 'link', ';') | ||
appendIfExists('Concept Artist', CArtist) | appendIfExists('Concept Artist', CArtist, 'link', ';') | ||
appendIfExists('Additional Artwork', AArtwork) | appendIfExists('Additional Artwork', AArtwork, 'link', ';') | ||
appendIfExists('Technology Lead', TechLead) | appendIfExists('Technology Lead', TechLead, 'link', ';') | ||
appendIfExists('Technology Programming', TProgramming) | appendIfExists('Technology Programming', TProgramming, 'link', ';') | ||
appendIfExists('Additional Technology Programming', ATProgramming) | appendIfExists('Additional Technology Programming', ATProgramming, 'link', ';') | ||
appendIfExists('QA Lead', QALead) | appendIfExists('QA Lead', QALead, 'link', ';') | ||
appendIfExists('QA', QA) | appendIfExists('QA', QA, 'link', ';') | ||
appendIfExists('Music', Music) | appendIfExists('Music', Music, 'link', ';') | ||
appendIfExists('Sound Effects', Sound) | appendIfExists('Sound Effects', Sound, 'link', ';') | ||
appendIfExists('Audio Editor', AudioEdit) | appendIfExists('Audio Editor', AudioEdit, 'link', ';') | ||
appendIfExists('Casting Director', CDirector) | appendIfExists('Casting Director', CDirector, 'link', ';') | ||
appendIfExists('Live Action Producer', LAProducer) | appendIfExists('Live Action Producer', LAProducer, 'link', ';') | ||
appendIfExists('Director of Photography', DPhoto) | appendIfExists('Director of Photography', DPhoto, 'link', ';') | ||
appendIfExists('Video Editor', VEditor) | appendIfExists('Video Editor', VEditor, 'link', ';') | ||
appendIfExists('Cast', Cast) | appendIfExists('Cast', Cast, 'link', ';') | ||
appendIfExists('Manual', Manual) | appendIfExists('Manual', Manual, 'link', ';') | ||
appendIfExists('Publisher', ContentPub, 'catlink', ';') | appendIfExists('Publisher', ContentPub, 'catlink', ';') | ||
appendIfExists('Senior Editor', SrEditor) | appendIfExists('Senior Editor', SrEditor, 'link', ';') | ||
appendIfExists('Editor', Editor) | appendIfExists('Editor', Editor, 'link', ';') | ||
appendIfExists('Cover Art', CoverArt) | appendIfExists('Cover Art', CoverArt, 'link', ';') | ||
appendIfExists('Production', Production) | appendIfExists('Production', Production, 'link', ';') | ||
return html | return html | ||
Revision as of 11:40, December 16, 2025
Documentation for this module may be created at Module:Credits/doc
local utils = require('Module:Utils')
local p = {}
function p.semanticStore(frame)
local titleObj = mw.title.getCurrentTitle()
local args = frame:getParent().args or {}
-- Get infobox helper params
local collapsible = args['collapsible'] or 'no'
local state = args['state'] or 'autocollapse'
-- Get other properties
local title = args['title'] or titleObj.text
local Concept = args['Concept'] or ''
local Designer = args['Designer'] or ''
-- Credit
local Credit1 = args['Credit1'] or ''
local Credit2 = args['Credit2'] or ''
local Credit3 = args['Credit3'] or ''
local Credit4 = args['Credit4'] or ''
local CreditTable = {}
for _, credit in ipairs{Credit1, Credit2, Credit3, Credit4} do
if credit ~= '' then
table.insert(CreditTable, credit)
end
end
-- Graphics
local Graphics1 = args['Graphics1'] or ''
local Graphics2 = args['Graphics2'] or ''
local Graphics3 = args['Graphics3'] or ''
local Graphics4 = args['Graphics4'] or ''
local Graphics5 = args['Graphics5'] or ''
local GraphicsTable = {}
for _, graphics in ipairs{Graphics1, Graphics2, Graphics3, Graphics4, Graphics5} do
if graphics ~= '' then
table.insert(GraphicsTable, graphics)
end
end
local GameIdea = args['GameIdea'] or '' -- '''Game Idea'''
local ADesign = args['ADesign'] or '' -- '''Additional Design'''
local Producer = args['Producer'] or '' -- '''Producer'''
local Writer = args['Writer'] or '' -- '''Writer'''
local ArtDirector = args['ArtDirector'] or '' -- '''Art Director'''
local TechDirector = args['TechDirector'] or '' -- '''Technical Director'''
local AProducer = args['AProducer'] or '' -- '''Assistant Producer'''
local LProgrammer = args['LProgrammer'] or '' -- '''Lead Programmer'''
local SProgrammer = args['SProgrammer'] or '' -- '''Senior Programmer'''
local Programmer = args['Programmer'] or '' -- '''Programmer'''
local GProgrammer = args['GProgrammer'] or '' -- '''Game Programming'''
local AProgrammer = args['AProgrammer'] or '' -- '''Additional Programming'''
local LAnimator = args['LAnimator'] or '' -- '''Lead Animator'''
local Animation = args['Animation'] or '' -- '''Animation'''
local LArtist = args['LArtist'] or '' -- '''Lead Artist'''
local Artists = args['Artists'] or '' -- '''Art Team'''
local CArtist = args['CArtist'] or '' -- '''Concept Artist'''
local AArtwork = args['AArtwork'] or '' -- '''Additional Artwork'''
local TechLead = args['TechLead'] or '' -- '''Technology Lead'''
local TProgramming = args['TechLead'] or '' -- '''Technology Programming'''
local ATProgramming = args['ATProgramming'] or '' -- '''Additional Technology Programming'''
local QALead = args['QALead'] or '' -- '''QA Lead'''
local QA = args['QA'] or '' -- '''QA'''
local Music = args['Music'] or '' -- '''Music'''
local Sound = args['Sound'] or '' -- '''Sound Effects'''
local AudioEdit = args['AudioEdit'] or '' -- '''Audio Editor'''
local CDirector = args['CDirector'] or '' -- '''Casting Director'''
local LAProducer = args['LAProducer'] or '' -- '''Live Action Producer'''
local DPhoto = args['DPhoto'] or '' -- '''Director of Photography'''
local VEditor = args['VEditor'] or '' -- '''Video Editor'''
local Cast = args['Cast'] or '' -- '''Cast'''
local Manual = args['Manual'] or '' -- '''Manual'''
local ContentPub = args['ContentPub'] or '' -- '''Publisher name'''
local SrEditor = args['SrEditor'] or '' -- '''Senior Editor'''
local Editor = args['Editor'] or '' -- '''Editor'''
local CoverArt = args['CoverArt'] or '' -- '''Cover Art'''
local Production = args['Production'] or '' -- '''Production'''
-- Set properties
local data = {
'Has Title=' .. title,
'Concept=' .. utils.unwrapList(utils.unwrapLink(Concept)),
'Designer=' .. utils.unwrapList(utils.unwrapLink(Designer)),
'+sep=;',
'Game Idea=' .. utils.unwrapList(utils.unwrapLink(GameIdea)),
'+sep=;',
'Additional Design=' .. utils.unwrapList(utils.unwrapLink(ADesign)),
'+sep=;',
'Producer=' .. utils.unwrapList(utils.unwrapLink(Producer)),
'+sep=;',
'Writer=' .. utils.unwrapList(utils.unwrapLink(Writer)),
'+sep=;',
'Art Director=' .. utils.unwrapList(utils.unwrapLink(ArtDirector)),
'+sep=;',
'Technical Director=' .. utils.unwrapList(utils.unwrapLink(TechDirector)),
'+sep=;',
'Assistant Producer=' .. utils.unwrapList(utils.unwrapLink(AProducer)),
'+sep=;',
'Lead Programmer=' .. utils.unwrapList(utils.unwrapLink(LProgrammer)),
'+sep=;',
'Senior Programmer=' .. utils.unwrapList(utils.unwrapLink(SProgrammer)),
'+sep=;',
'Programmer=' .. utils.unwrapList(utils.unwrapLink(Programmer)),
'+sep=;',
'Game Programming=' .. utils.unwrapList(utils.unwrapLink(GProgrammer)),
'+sep=;',
'Additional Programming=' .. utils.unwrapList(utils.unwrapLink(AProgrammer)),
'+sep=;',
'Lead Animator=' .. utils.unwrapList(utils.unwrapLink(LAnimator)),
'+sep=;',
'Animation=' .. utils.unwrapList(utils.unwrapLink(Animation)),
'+sep=;',
'Lead Artist=' .. utils.unwrapList(utils.unwrapLink(LArtist)),
'+sep=;',
'Art Team=' .. utils.unwrapList(utils.unwrapLink(Artists)),
'+sep=;',
'Concept Artist=' .. utils.unwrapList(utils.unwrapLink(CArtist)),
'+sep=;',
'Additional Artwork=' .. utils.unwrapList(utils.unwrapLink(AArtwork)),
'+sep=;',
'Technology Lead=' .. utils.unwrapList(utils.unwrapLink(TechLead)),
'+sep=;',
'Technology Programming=' .. utils.unwrapList(utils.unwrapLink(TProgramming)),
'+sep=;',
'Additional Technology Programming=' .. utils.unwrapList(utils.unwrapLink(ATProgramming)),
'+sep=;',
'QA Lead=' .. utils.unwrapList(utils.unwrapLink(QALead)),
'+sep=;',
'QA=' .. utils.unwrapList(utils.unwrapLink(QA)),
'+sep=;',
'Music=' .. utils.unwrapList(utils.unwrapLink(Music)),
'+sep=;',
'Sound Effects=' .. utils.unwrapList(utils.unwrapLink(Sound)),
'+sep=;',
'Audio Editor=' .. utils.unwrapList(utils.unwrapLink(AudioEdit)),
'+sep=;',
'Casting Director=' .. utils.unwrapList(utils.unwrapLink(CDirector)),
'+sep=;',
'Live Action Producer=' .. utils.unwrapList(utils.unwrapLink(LAProducer)),
'+sep=;',
'Director of Photography=' .. utils.unwrapList(utils.unwrapLink(DPhoto)),
'+sep=;',
'Video Editor=' .. utils.unwrapList(utils.unwrapLink(VEditor)),
'+sep=;',
'Cast=' .. utils.unwrapList(utils.unwrapLink(Cast)),
'+sep=;',
'Manual=' .. utils.unwrapList(utils.unwrapLink(Manual)),
'+sep=;',
'Publisher name=' .. utils.unwrapList(utils.unwrapLink(ContentPub)),
'+sep=;',
'Senior Editor=' .. utils.unwrapList(utils.unwrapLink(SrEditor)),
'+sep=;',
'Editor=' .. utils.unwrapList(utils.unwrapLink(Editor)),
'+sep=;',
'Cover Art=' .. utils.unwrapList(utils.unwrapLink(CoverArt)),
'+sep=;',
'Production=' .. utils.unwrapList(utils.unwrapLink(Production)),
'+sep=;',
'Credit=' .. table.concat(CreditTable, ','),
'+sep=;',
'Graphics=' .. table.concat(GraphicsTable, ','),
'+sep=;'
}
mw.smw.set( data )
-- Infobox variables
local infoboxClass = 'smwtable-clean w-100 border shadow-sm mb-4 text-left'
local pad = ''
if collapsible == 'yes' then
infoboxClass = infoboxClass .. ' collapsible ' .. state
pad = frame:preprocess('{{pad|5em}}')
end
-- Build infobox
local html = mw.html.create()
local infobox = html:tag('table'):addClass(infoboxClass)
:css('font-size', '90%')
:attr('cellpadding', '0')
:attr('cellspacing', '0')
-- Header row (title + optional image)
local headerTr = mw.html.create('tr')
headerTr:tag('td'):attr('colspan', '2')
:tag('div'):addClass('summary text-center font-italic font-weight-bold')
:css('font-size', '110%')
:wikitext(pad .. title):done()
infobox:node(headerTr)
-- Print data rows
local function appendIfExists(label, value, link, splitsep)
local tr = utils.addLabelValue(label, value, link, splitsep)
if tr then infobox:node(tr) end
end
appendIfExists('Concept', Concept, 'link', ';')
appendIfExists('Designer', Designer, 'link', ';')
appendIfExists('Credit', table.concat(CreditTable, ', '))
appendIfExists('Graphics', table.concat(GraphicsTable, ', '))
appendIfExists('Game Idea', GameIdea, 'link', ';')
appendIfExists('Additional Design', ADesign, 'link', ';')
appendIfExists('Producer', Producer, 'link', ';')
appendIfExists('Writer', Writer, 'link', ';')
appendIfExists('Art Director', ArtDirector, 'link', ';')
appendIfExists('Technical Director', TechDirector, 'link', ';')
appendIfExists('Assistant Producer', AProducer, 'link', ';')
appendIfExists('Lead Programmer', LProgrammer, 'link', ';')
appendIfExists('Senior Programmer', SProgrammer, 'link', ';')
appendIfExists('Programmer', Programmer, 'link', ';')
appendIfExists('Game Programming', GProgrammer, 'link', ';')
appendIfExists('Additional Programming', AProgrammer, 'link', ';')
appendIfExists('Lead Animator', LAnimator, 'link', ';')
appendIfExists('Animation', Animation, 'link', ';')
appendIfExists('Lead Artist', LArtist, 'link', ';')
appendIfExists('Art Team', Artists, 'link', ';')
appendIfExists('Concept Artist', CArtist, 'link', ';')
appendIfExists('Additional Artwork', AArtwork, 'link', ';')
appendIfExists('Technology Lead', TechLead, 'link', ';')
appendIfExists('Technology Programming', TProgramming, 'link', ';')
appendIfExists('Additional Technology Programming', ATProgramming, 'link', ';')
appendIfExists('QA Lead', QALead, 'link', ';')
appendIfExists('QA', QA, 'link', ';')
appendIfExists('Music', Music, 'link', ';')
appendIfExists('Sound Effects', Sound, 'link', ';')
appendIfExists('Audio Editor', AudioEdit, 'link', ';')
appendIfExists('Casting Director', CDirector, 'link', ';')
appendIfExists('Live Action Producer', LAProducer, 'link', ';')
appendIfExists('Director of Photography', DPhoto, 'link', ';')
appendIfExists('Video Editor', VEditor, 'link', ';')
appendIfExists('Cast', Cast, 'link', ';')
appendIfExists('Manual', Manual, 'link', ';')
appendIfExists('Publisher', ContentPub, 'catlink', ';')
appendIfExists('Senior Editor', SrEditor, 'link', ';')
appendIfExists('Editor', Editor, 'link', ';')
appendIfExists('Cover Art', CoverArt, 'link', ';')
appendIfExists('Production', Production, 'link', ';')
return html
end
return p
