Module:File license: Difference between revisions

From Tardis Wiki, the free Doctor Who reference
No edit summary
(it's -> its (both edits))
Tags: Mobile edit Mobile web edit
 
(35 intermediate revisions by 2 users not shown)
Line 11: Line 11:
local license = args["license"] or ""
local license = args["license"] or ""
local copyrightHolder = args["copyright holder"] or ""
local copyrightHolder = args["copyright holder"] or ""
local copyrightHolderDisplay = args["copyright holder display"] or ""
local copyrightYear = args["copyright year"] or ""
local intent = args["intent"] or "to illustrate articles"
local intent = args["intent"] or "to illustrate articles"
local tentative = args["tentative"] or ""
local tentative = args["tentative"] or ""
local ownWork = args["own work"] or ""
local ownWork = args["own work"] or ""
local trademarkOwner = args["trademark owner"] or ""
local trademarkOwner = args["trademark owner"] or ""
local trademarkUsage = args["trademark usage"] or ""
local trademarkUsage = args["trademark usage"] or "Its use here is believed not to be [[wikipedia:trademark infringement|trademark infringement]]. "
local attribution = args["attribution"] or ""
local attribution = args["attribution"] or ""
local attributionFormat = args["attribution format"] or ""
local includeEndorsementNotice = args["endorsement notice"] or ""
local subject = args["subject"] or ""
local subjectLicense = args["subject license"] or ""
local extra = args["extra"] or ""
if tentative ~= "" then
if tentative ~= "" then
Line 33: Line 40:
if source ~= "" then
if source ~= "" then
sourceText = " from " .. source
sourceText = " from " .. source
end
local subjectText = ""
if subject ~= "" then
subjectText = " of " .. subject
end
end
Line 52: Line 64:
copyrightHolderText = frame:preprocess(copyrightHolderData[copyrightHolder][1])
copyrightHolderText = frame:preprocess(copyrightHolderData[copyrightHolder][1])
end
end
elseif copyrightHolderDisplay then
elseif copyrightHolderDisplay ~= "" then
copyrightHolderText = "[[" .. copyrightHolder .. "|" .. copyrightHolderDisplay .. "]]"
copyrightHolderText = "[[" .. copyrightHolder .. "|" .. copyrightHolderDisplay .. "]]"
else
else
copyrightHolderText = frame:preprocess(copyrightHolder)
copyrightHolderText = frame:preprocess(copyrightHolder)
end
end
end
local subjectCopyrightHolderText = ""
if subjectCopyrightHolder ~= "" then
if copyrightHolderData[subjectCopyrightHolder] then
if copyrightHolderData[subjectCopyrightHolder][1] then
subjectCopyrightHolderText = frame:preprocess(copyrightHolderData[subjectCopyrightHolder][1])
end
elseif subjectCopyrightHolderDisplay then
subjectCopyrightHolderText = "[[" .. subjectCopyrightHolder .. "|" .. subjectCopyrightHolderDisplay .. "]]"
else
subjectCopyrightHolderText = frame:preprocess(subjectCopyrightHolder)
end
end
local attributionText = attribution
if attributionText == "" then
attributionText = copyrightHolderText
end
if attributionText == "" then
attributionText = trademarkOwner
end
end
Line 64: Line 97:
if licenseData[license] then
if licenseData[license] then
if ownWork ~= "" then  
if ownWork ~= "" then  
licenseText = "I, the copyright holder of this ".. typeOfFile .. ", hereby " .. frame:preprocess(licenseData[license][2]) .. " it's use on Tardis Wiki, hosted on servers in France by Wiki Federation, " .. intent .. "."
licenseText = "I, the copyright holder of this " .. typeOfFile .. ", hereby " .. frame:preprocess(licenseData[license][2]) .. " it's use on Tardis Wiki, hosted on servers in France by Wiki Federation, " .. intent .. ". "
else
else
licenseText = tentativeText .. " of this " .. typeOfFile .. " " .. intent .. " on Tardis Wiki, hosted on servers in France by Wiki Federation, " .. frame:preprocess(licenseData[license][1])
licenseText = tentativeText .. " of this " .. typeOfFile .. " " .. intent .. " on Tardis Wiki, hosted on servers in France by Wiki Federation, " .. frame:preprocess(licenseData[license][1])
end
end
licenseText = frame:preprocess(licenseData[license][10]) .. licenseText  .. " " .. frame:preprocess(licenseData[license][3])
licenseText = frame:preprocess(licenseData[license][11]) .. licenseText  .. " " .. frame:preprocess(licenseData[license][3])
local attributionText = attribution
licenseMachinedata = '<span class="licensetpl"><span class="licensetpl_short">' .. licenseData[license][4] .. '</span><span class="licensetpl_long">' .. licenseData[license][5] .. '</span><span class="licensetpl_link">' .. frame:preprocess("<nowiki>" .. licenseData[license][6] .. "</nowiki>") .. '</span><span class="licensetpl_link_req">' .. tostring(licenseData[license][7]) .. '</span><span class="licensetpl_attr_req">' .. tostring(licenseData[license][8]) .. '</span><span class="licensetpl_attr">' .. attributionText .. '</span><span class="licensetpl_nonfree">' .. tostring(licenseData[license][9]) .. '</span></span>'
if attributionText == "" then
end
attributionText = copyrightHolderText
local extraLicenses = ""
local done = false
local i = 2
while not done do
if args["license" .. tostring(i)] and args["license" .. tostring(i)] ~= "" and licenseData[args["license" .. tostring(i)]] then
if licenseData[args["license" .. tostring(i)]][6] ~= "" then
extraLicenses = extraLicenses .. frame:preprocess("[" .. licenseData[args["license" .. tostring(i)]][6] .. " " .. licenseData[args["license" .. tostring(i)]][5] .. "]") .. ", "
else
extraLicenses = extraLicenses .. licenseData[args["license" .. tostring(i)]][5] .. ", "
end
licenseMachinedata = licenseMachinedata .. '<span class="licensetpl"><span class="licensetpl_short">' .. licenseData[args["license" .. tostring(i)]][4] .. '</span><span class="licensetpl_long">' .. licenseData[args["license" .. tostring(i)]][5] .. '</span><span class="licensetpl_link">' .. frame:preprocess("<nowiki>" .. licenseData[args["license" .. tostring(i)]][6] .. "</nowiki>") .. '</span><span class="licensetpl_link_req">' .. tostring(licenseData[args["license" .. tostring(i)]][7]) .. '</span><span class="licensetpl_attr_req">' .. tostring(licenseData[args["license" .. tostring(i)]][8]) .. '</span><span class="licensetpl_attr">' .. attributionText .. '</span><span class="licensetpl_nonfree">' .. tostring(licenseData[args["license" .. tostring(i)]][9]) .. '</span></span>'
i = i + 1
else
done = true
end
end
if attributionText == "" then
end
attributionText = trademarkOwner
if extraLicenses ~= "" then
extraLicenses = extraLicenses:sub(1, -3) .. ". "
if ownWork then
extraLicensesText = "<br/><br/>I also make this file available under the following additional license"
if i > 3 then
extraLicensesText = extraLicensesText .. "s"
end
extraLicensesText = extraLicensesText .. ": " .. extraLicenses
else
extraLicensesText = "<br/><br/>This file is also available under the following additional license"
if i > 3 then
extraLicensesText = extraLicensesText .. "s"
end
extraLicensesText = extraLicensesText .. ": " .. extraLicenses
end
end
licenseMachinedata = '<span class="licensetpl"><span class="licensetpl_short">' .. licenseData[license][4] .. '</span><span class="licensetpl_long">' .. licenseData[license][5] .. '</span><span class="licensetpl_link">' .. frame:preprocess("<nowiki>" .. licenseData[license][6] .. "</nowiki>") .. '</span><span class="licensetpl_link_req">' .. licenseData[license][7] .. '</span><span class="licensetpl_attr_req">' .. licenseData[license][8] .. '</span><span class="licensetpl_attr">' .. attributionText .. '</span><span class="licensetpl_nonfree">' .. licenseData[license][9] .. '</span></span>'
licenseText = licenseText .. extraLicensesText
end
end
local subjectLicenseText = ""
if licenseData[subjectLicense] then
subjectLicenseText = "\n<hr/>" .. frame:preprocess(licenseData[subjectLicense][11]) .. "The inclusion of " .. subject .. " in this " .. typeOfFile .. " " .. frame:preprocess(licenseData[subjectLicense][1]) .. " " .. frame:preprocess(licenseData[subjectLicense][3])
licenseMachinedata = licenseMachinedata .. '<span class="licensetpl"><span class="licensetpl_short">' .. licenseData[subjectLicense][4] .. '</span><span class="licensetpl_long">' .. licenseData[subjectLicense][5] .. '</span><span class="licensetpl_link">' .. frame:preprocess("<nowiki>" .. licenseData[subjectLicense][6] .. "</nowiki>") .. '</span><span class="licensetpl_link_req">' .. tostring(licenseData[subjectLicense][7]) .. '</span><span class="licensetpl_attr_req">' .. tostring(licenseData[subjectLicense][8]) .. '</span><span class="licensetpl_attr">' .. attributionText .. '</span><span class="licensetpl_nonfree">' .. tostring(licenseData[subjectLicense][9]) .. '</span></span>'
licenseText = licenseText .. subjectLicenseText
end
if extraLicenses ~= "" or subjectLicenseText ~= "" then
licenseMachinedata = '<span class="licensetpl_wrapper">' .. licenseMachinedata .. '</span>'
end
local infoMachinedata = '<span class="fileinfotpl"><span class="fileinfotpl_desc">' .. string.sub(typeOfFileArticle, 1, 1):upper() .. string.sub(typeOfFileArticle, 2, -1) .. ' ' .. typeOfFile .. sourceText .. '.</span><span class="fileinfotpl_src">' .. source .. '</span><span class="fileinfotpl_aut">' .. copyrightHolderText .. '</span></span>'
local infoMachinedata = '<span class="fileinfotpl"><span class="fileinfotpl_desc">' .. string.sub(typeOfFileArticle, 1, 1):upper() .. string.sub(typeOfFileArticle, 2, -1) .. ' ' .. typeOfFile .. sourceText .. '.</span><span class="fileinfotpl_src">' .. source .. '</span><span class="fileinfotpl_aut">' .. copyrightHolderText .. '</span></span>'
Line 83: Line 155:
local i = 1
local i = 1
local extraCopyrightText = ""
local extraCopyrightText = ""
if args["extra copyright"] and args["extra copyright"] ~= "" then
args["extra copyright1"] = args["extra copyright"]
args["extra copyright owner1"] = args["extra copyright owner"]
args["extra copyright year1"] = args["extra copyright year"]
end
while args["extra copyright" .. tostring(i)] and args["extra copyright" .. tostring(i)] ~= "" do
while args["extra copyright" .. tostring(i)] and args["extra copyright" .. tostring(i)] ~= "" do
extraCopyrightText = extraCopyrightText .. args["extra copyright" .. tostring(i)]
extraCopyrightText = extraCopyrightText .. args["extra copyright" .. tostring(i)]
Line 90: Line 167:
extraCopyrightText = extraCopyrightText ..  " is "
extraCopyrightText = extraCopyrightText ..  " is "
end
end
extraCopyrightText = extraCopyrightText ..  " © " .. args["extra copyright owner" .. tostring(i)] .. ". "
extraCopyrightText = extraCopyrightText ..  " © " .. args["extra copyright owner" .. tostring(i)]
if args["extra copyright year" .. tostring(i)] and args["extra copyright year" .. tostring(i)] ~= "" then
extraCopyrightText = extraCopyrightText .. " " .. args["extra copyright year" .. tostring(i)]
end
extraCopyrightText = extraCopyrightText .. ". "
i = i + 1
i = i + 1
end
end
if extraCopyrightText ~= "" then
if extraCopyrightText ~= "" then
extraCopyrightText = "<hr/>" .. extraCopyrightText
extraCopyrightText = "\n<hr/>" .. extraCopyrightText
end
end
local trademarkText = ""
local trademarkText = ""
if trademarkOwner ~= "" then
if trademarkOwner ~= "" then
trademarkText = "<hr/><span class='restriction-trademarked'>Additionally, some or all of this " .. typeOfFile .. " is a trademark of " .. trademarkOwner .. ". "
trademarkText = "\n<hr/><span class='restriction-trademarked'>Additionally, some or all of this " .. typeOfFile .. " is a trademark of " .. trademarkOwner .. ". "
if trademarkUsage ~= "" then
if trademarkUsage ~= "" then
trademarkText = trademarkText .. trademarkUsage
trademarkText = trademarkText .. trademarkUsage
Line 107: Line 188:
local copyrightOwnedByText = ""
local copyrightOwnedByText = ""
if string.sub(license, 1, 2) == "PD" or string.sub(license, 1, 3) == "CC0" then
if licenseData[license][10] then
copyrightOwnedByText = "It is not under copyright, but some parties may still have other intellectual property rights over this image."
copyrightOwnedByText = "It is not under copyright, but some parties may still have other intellectual property rights over this image. "
else
else
copyrightOwnedByText = "It's copyright is owned by " .. copyrightHolderText .. ". Other parties may have intellectual property rights over this image, as well."
if copyrightYear ~= "" then
copyrightOwnedByText = "Its copyright is owned by " .. copyrightHolderText .. ", " .. copyrightYear .. ". Other parties may have intellectual property rights over this image, as well. "
else
copyrightOwnedByText = "Its copyright is owned by " .. copyrightHolderText .. ". Other parties may have intellectual property rights over this image, as well. "
end
end
end
local attributionText = ""
local attributionNotice = ""
if attribution ~= "" then
if attributionText ~= "" then
attributionText = "<hr/>While not required by the license, this " .. typeOfFile .. " can be attributed to " .. attribution .. "."
if licenseData[license][8] then
attributionNotice = "\n<hr/>When using this " .. typeOfFile .. ", its creator/owner, " .. attributionText .. ", must be attributed. "
else
attributionNotice = "\n<hr/>While not required by the license, this " .. typeOfFile .. " can be attributed to " .. attributionText .. ". "
end
if attributionFormat ~= "" then
attributionNotice = attributionNotice .. "This should be done in in the following way: <br/><center>" .. frame:preprocess(attributionFormat) .. "</center>"
end
end
local endorsementNotice = ""
if includeEndorsementNotice ~= "" then
endorsementNotice = "\n<hr/>The presence of this " .. typeOfFile .. " does not in any way imply endorsement by the copyright holder of the page on which it appears. It also does not imply any endorsement of this wiki in general. This wiki is not affiliated with any entity who owns, or is represented by, this" .. typeOfFile .. ". "
end
if extra ~= "" then
extra = "<hr/>" .. extra
end
end
local finalLicense = '<div id="license">' .. imageCode .. "This file is " .. typeOfFileArticle .. " '''" .. typeOfFile .. "'''" .. sourceText .. ". " .. copyrightOwnedByText .. extraCopyrightText .. "<hr/>" .. licenseText .. trademarkText .. attributionText .. '<span style="display:none;>" ' .. licenseMachinedata .. infoMachinedata .. "</span></div>"
local finalLicense = '<div id="license">' .. imageCode .. "This file is " .. typeOfFileArticle .. " '''" .. typeOfFile .. "'''" .. subjectText .. sourceText .. ". " .. copyrightOwnedByText .. extraCopyrightText .. endorsementNotice .. "\n<hr/>" .. licenseText .. trademarkText .. attributionNotice .. extra .. "</div>"
local infoMachinedata = '<span class="fileinfotpl"><span class="fileinfotpl_desc" style="display:none;">' .. string.sub(typeOfFileArticle, 1, 1):upper() .. string.sub(typeOfFileArticle, 2, -1) .. ' ' .. typeOfFile .. subjectText .. sourceText .. '.</span><span class="fileinfotpl_src" style="display:none;">' .. source .. '</span><span class="fileinfotpl_aut" style="display:none;">' .. copyrightHolderText .. '</span><span class="fileinfotpl_perm">' .. finalLicense .. '</span></span>'
finalLicense = '<span style="display:none;"> ' .. licenseMachinedata .. "</span>" .. infoMachinedata


return finalLicense
return finalLicense

Latest revision as of 20:02, 28 April 2024

Documentation for this module may be created at Module:File license/doc

local p = {} --p stands for package
local h = {} --h stands for helper

function p.makeLicense(frame)
	local args = frame:getParent().args
	
	local image = args["image"] or ""
	local imageSize = tonumber(args["image size"]) or 80
	local typeOfFile = args["type of file"] or "image"
	local source = args["source"] or ""
	local license = args["license"] or ""
	local copyrightHolder = args["copyright holder"] or ""
	local copyrightHolderDisplay = args["copyright holder display"] or ""
	local copyrightYear = args["copyright year"] or ""
	local intent = args["intent"] or "to illustrate articles"
	local tentative = args["tentative"] or ""
	local ownWork = args["own work"] or ""
	local trademarkOwner = args["trademark owner"] or ""
	local trademarkUsage = args["trademark usage"] or "Its use here is believed not to be [[wikipedia:trademark infringement|trademark infringement]]. "
	local attribution = args["attribution"] or ""
	local attributionFormat = args["attribution format"] or ""
	local includeEndorsementNotice = args["endorsement notice"] or ""
	local subject = args["subject"] or ""
	local subjectLicense = args["subject license"] or ""
	local extra = args["extra"] or ""
	
	if tentative ~= "" then
		tentativeText = "It is believed that use"
	else
		tentativeText = "Use"
	end
	
	local typeOfFileArticle = "a"
	local vowels = {["a"] = true, ["e"] = true, ["i"] = true, ["o"] = true, ["u"] = true}
	if vowels[string.sub(typeOfFile, 1, 1)] then
		typeOfFileArticle = "an"
	end
	
	local sourceText = ""
	if source ~= "" then
		sourceText = " from " .. source
	end
	
	local subjectText = ""
	if subject ~= "" then
		subjectText = " of " .. subject
	end
	
	local copyrightHolderData = mw.loadData("Module:File license/data/copyright holders")
	
	local imageCode = ""
	if image ~= "" then
		imageCode = '<span style="margin-top:5px;float:left;margin-right:10px;">[[File:' .. image .. '|' .. tostring(imageSize) .. "px]]</span>"
	elseif copyrightHolderData[copyrightHolder] then
		if copyrightHolderData[copyrightHolder][2] then
			imageCode = '<span style="margin-top:5px;float:left;margin-right:10px;">[[File:' .. copyrightHolderData[copyrightHolder][2] .. '|' .. tostring(imageSize) .. "px]]</span>"
		end
	end
	
	local copyrightHolderText = ""
	if copyrightHolder ~= "" then
		if copyrightHolderData[copyrightHolder] then
			if copyrightHolderData[copyrightHolder][1] then
				copyrightHolderText = frame:preprocess(copyrightHolderData[copyrightHolder][1])
			end
		elseif copyrightHolderDisplay ~= "" then
			copyrightHolderText = "[[" .. copyrightHolder .. "|" .. copyrightHolderDisplay .. "]]"
		else
			copyrightHolderText = frame:preprocess(copyrightHolder)
		end
	end
	
	local subjectCopyrightHolderText = ""
	if subjectCopyrightHolder ~= "" then
		if copyrightHolderData[subjectCopyrightHolder] then
			if copyrightHolderData[subjectCopyrightHolder][1] then
				subjectCopyrightHolderText = frame:preprocess(copyrightHolderData[subjectCopyrightHolder][1])
			end
		elseif subjectCopyrightHolderDisplay then
			subjectCopyrightHolderText = "[[" .. subjectCopyrightHolder .. "|" .. subjectCopyrightHolderDisplay .. "]]"
		else
			subjectCopyrightHolderText = frame:preprocess(subjectCopyrightHolder)
		end
	end
	
	local attributionText = attribution
	if attributionText == "" then
		attributionText = copyrightHolderText
	end
	if attributionText == "" then
		attributionText = trademarkOwner
	end
	
	local licenseData = mw.loadData("Module:File license/data/licenses")
	local licenseText = ""
	local licenseMachinedata = ""
	if licenseData[license] then
		if ownWork ~= "" then 
			licenseText = "I, the copyright holder of this " .. typeOfFile .. ", hereby " .. frame:preprocess(licenseData[license][2]) .. " it's use on Tardis Wiki, hosted on servers in France by Wiki Federation, " .. intent .. ". "
		else
			licenseText = tentativeText .. " of this " .. typeOfFile .. " " .. intent .. " on Tardis Wiki, hosted on servers in France by Wiki Federation, " .. frame:preprocess(licenseData[license][1])
		end
		licenseText = frame:preprocess(licenseData[license][11]) .. licenseText  .. " " .. frame:preprocess(licenseData[license][3])
		licenseMachinedata = '<span class="licensetpl"><span class="licensetpl_short">' .. licenseData[license][4] .. '</span><span class="licensetpl_long">' .. licenseData[license][5] .. '</span><span class="licensetpl_link">' .. frame:preprocess("<nowiki>" .. licenseData[license][6] .. "</nowiki>") .. '</span><span class="licensetpl_link_req">' .. tostring(licenseData[license][7]) .. '</span><span class="licensetpl_attr_req">' .. tostring(licenseData[license][8]) .. '</span><span class="licensetpl_attr">' .. attributionText .. '</span><span class="licensetpl_nonfree">' .. tostring(licenseData[license][9]) .. '</span></span>'
	end
	
	local extraLicenses = ""
	local done = false
	local i = 2
	while not done do
		if args["license" .. tostring(i)] and args["license" .. tostring(i)] ~= "" and licenseData[args["license" .. tostring(i)]] then
			if licenseData[args["license" .. tostring(i)]][6] ~= "" then
				extraLicenses = extraLicenses .. frame:preprocess("[" .. licenseData[args["license" .. tostring(i)]][6] .. " " .. licenseData[args["license" .. tostring(i)]][5] .. "]") .. ", "
			else
				extraLicenses = extraLicenses .. licenseData[args["license" .. tostring(i)]][5] .. ", "
			end
			licenseMachinedata = licenseMachinedata .. '<span class="licensetpl"><span class="licensetpl_short">' .. licenseData[args["license" .. tostring(i)]][4] .. '</span><span class="licensetpl_long">' .. licenseData[args["license" .. tostring(i)]][5] .. '</span><span class="licensetpl_link">' .. frame:preprocess("<nowiki>" .. licenseData[args["license" .. tostring(i)]][6] .. "</nowiki>") .. '</span><span class="licensetpl_link_req">' .. tostring(licenseData[args["license" .. tostring(i)]][7]) .. '</span><span class="licensetpl_attr_req">' .. tostring(licenseData[args["license" .. tostring(i)]][8]) .. '</span><span class="licensetpl_attr">' .. attributionText .. '</span><span class="licensetpl_nonfree">' .. tostring(licenseData[args["license" .. tostring(i)]][9]) .. '</span></span>'
			i = i + 1
		else
			done = true
		end
	end
	if extraLicenses ~= "" then
		extraLicenses = extraLicenses:sub(1, -3) .. ". "
		if ownWork then
			extraLicensesText = "<br/><br/>I also make this file available under the following additional license"
			if i > 3 then
				extraLicensesText = extraLicensesText .. "s"
			end
			extraLicensesText = extraLicensesText .. ": " .. extraLicenses
		else
			extraLicensesText = "<br/><br/>This file is also available under the following additional license"
			if i > 3 then
				extraLicensesText = extraLicensesText .. "s"
			end
			extraLicensesText = extraLicensesText .. ": " .. extraLicenses
		end
		licenseText = licenseText .. extraLicensesText
	end
	
	local subjectLicenseText = ""
	if licenseData[subjectLicense] then
		subjectLicenseText = "\n<hr/>" .. frame:preprocess(licenseData[subjectLicense][11]) .. "The inclusion of " .. subject .. " in this " .. typeOfFile .. " " .. frame:preprocess(licenseData[subjectLicense][1]) .. " " .. frame:preprocess(licenseData[subjectLicense][3])
		licenseMachinedata = licenseMachinedata .. '<span class="licensetpl"><span class="licensetpl_short">' .. licenseData[subjectLicense][4] .. '</span><span class="licensetpl_long">' .. licenseData[subjectLicense][5] .. '</span><span class="licensetpl_link">' .. frame:preprocess("<nowiki>" .. licenseData[subjectLicense][6] .. "</nowiki>") .. '</span><span class="licensetpl_link_req">' .. tostring(licenseData[subjectLicense][7]) .. '</span><span class="licensetpl_attr_req">' .. tostring(licenseData[subjectLicense][8]) .. '</span><span class="licensetpl_attr">' .. attributionText .. '</span><span class="licensetpl_nonfree">' .. tostring(licenseData[subjectLicense][9]) .. '</span></span>'
		licenseText = licenseText .. subjectLicenseText
	end
		
	if extraLicenses ~= "" or subjectLicenseText ~= "" then
		licenseMachinedata = '<span class="licensetpl_wrapper">' .. licenseMachinedata .. '</span>'
	end
			
	
	local infoMachinedata = '<span class="fileinfotpl"><span class="fileinfotpl_desc">' .. string.sub(typeOfFileArticle, 1, 1):upper() .. string.sub(typeOfFileArticle, 2, -1) .. ' ' .. typeOfFile .. sourceText .. '.</span><span class="fileinfotpl_src">' .. source .. '</span><span class="fileinfotpl_aut">' .. copyrightHolderText .. '</span></span>'
	
	local i = 1
	local extraCopyrightText = ""
	if args["extra copyright"] and args["extra copyright"] ~= "" then
		args["extra copyright1"] = args["extra copyright"]
		args["extra copyright owner1"] = args["extra copyright owner"]
		args["extra copyright year1"] = args["extra copyright year"]
	end
	while args["extra copyright" .. tostring(i)] and args["extra copyright" .. tostring(i)] ~= "" do
		extraCopyrightText = extraCopyrightText .. args["extra copyright" .. tostring(i)]
		if string.find(args["extra copyright" .. tostring(i)], "and") then
			extraCopyrightText = extraCopyrightText ..  " are "
		else
			extraCopyrightText = extraCopyrightText ..  " is "
		end
		extraCopyrightText = extraCopyrightText ..  " © " .. args["extra copyright owner" .. tostring(i)]
		if args["extra copyright year" .. tostring(i)] and args["extra copyright year" .. tostring(i)] ~= "" then
			extraCopyrightText = extraCopyrightText .. " " .. args["extra copyright year" .. tostring(i)]
		end
		extraCopyrightText = extraCopyrightText .. ". "
		i = i + 1
	end
	if extraCopyrightText ~= "" then
		extraCopyrightText = "\n<hr/>" .. extraCopyrightText
	end
	
	local trademarkText = ""
	if trademarkOwner ~= "" then
		trademarkText = "\n<hr/><span class='restriction-trademarked'>Additionally, some or all of this " .. typeOfFile .. " is a trademark of " .. trademarkOwner .. ". "
		if trademarkUsage ~= "" then
			trademarkText = trademarkText .. trademarkUsage
		end
		trademarkText = trademarkText .. "</span>"
	end
	
	local copyrightOwnedByText = ""
	if licenseData[license][10] then
		copyrightOwnedByText = "It is not under copyright, but some parties may still have other intellectual property rights over this image. "
	else
		if copyrightYear ~= "" then
			copyrightOwnedByText = "Its copyright is owned by " .. copyrightHolderText .. ", " .. copyrightYear .. ". Other parties may have intellectual property rights over this image, as well. "
		else
			copyrightOwnedByText = "Its copyright is owned by " .. copyrightHolderText .. ". Other parties may have intellectual property rights over this image, as well. "
		end
	end
	
	local attributionNotice = ""
	if attributionText ~= "" then
		if licenseData[license][8] then
				attributionNotice = "\n<hr/>When using this " .. typeOfFile .. ", its creator/owner, " .. attributionText .. ", must be attributed. "
		else
			attributionNotice = "\n<hr/>While not required by the license, this " .. typeOfFile .. " can be attributed to " .. attributionText .. ". "
		end
		if attributionFormat ~= "" then
			attributionNotice = attributionNotice .. "This should be done in in the following way: <br/><center>" .. frame:preprocess(attributionFormat) .. "</center>"
		end
	end
	
	local endorsementNotice = ""
	if includeEndorsementNotice ~= "" then
		endorsementNotice = "\n<hr/>The presence of this " .. typeOfFile .. " does not in any way imply endorsement by the copyright holder of the page on which it appears. It also does not imply any endorsement of this wiki in general. This wiki is not affiliated with any entity who owns, or is represented by, this" .. typeOfFile .. ". "
	end
	
	if extra ~= "" then
		extra = "<hr/>" .. extra
	end
	
	local finalLicense = '<div id="license">' .. imageCode .. "This file is " .. typeOfFileArticle .. " '''" .. typeOfFile .. "'''" .. subjectText .. sourceText .. ". " .. copyrightOwnedByText .. extraCopyrightText .. endorsementNotice .. "\n<hr/>" .. licenseText .. trademarkText .. attributionNotice .. extra .. "</div>"
	
	local infoMachinedata = '<span class="fileinfotpl"><span class="fileinfotpl_desc" style="display:none;">' .. string.sub(typeOfFileArticle, 1, 1):upper() .. string.sub(typeOfFileArticle, 2, -1) .. ' ' .. typeOfFile .. subjectText .. sourceText .. '.</span><span class="fileinfotpl_src" style="display:none;">' .. source .. '</span><span class="fileinfotpl_aut" style="display:none;">' .. copyrightHolderText .. '</span><span class="fileinfotpl_perm">' .. finalLicense .. '</span></span>'
	
	finalLicense = '<span style="display:none;"> ' .. licenseMachinedata .. "</span>" .. infoMachinedata

	return finalLicense
end

return p