ਸਮੱਗਰੀ 'ਤੇ ਜਾਓ

ਮੌਡਿਊਲ:Index template

ਵਿਕੀਸਰੋਤ ਤੋਂ

Documentation for this module may be created at ਮੌਡਿਊਲ:Index template/doc

categoryForGenre = mw.loadData('module:Work/genre')
categoryForForm = mw.loadData('module:Work/form')
categoryForAward = mw.loadData('module:Work/award')

function withWikidataLink(wikitext, category, overrideItemId)
	if wikitext == nil then
		return nil
	end
	new_wikitext = mw.ustring.gsub(wikitext, '%[%[([^|%]]*)%]%]', function(page)
		return addWikidataToLink(page, mw.ustring.gsub(page, '%.*/', '') , category, overrideItemId)
	end)
	if new_wikitext ~= wikitext then
		return new_wikitext
	end
	return mw.ustring.gsub(wikitext, '%[%[([^|]*)|([^|%]]*)%]%]', function(page, link)
		return addWikidataToLink(page, link, category, overrideItemId)
	end)
end

function addWikidataToLink(page, label, category, overrideItemId)
    local title = mw.title.new( page )
    if title == nil then
    	return '[[' .. page .. '|' .. label .. ']]'
    end
    if title.isRedirect then
        title = title.redirectTarget
    end

    local tag = mw.html.create('span')
    local itemId = mw.wikibase.getEntityIdForTitle(title.fullText)
	tag:wikitext('[[' .. page .. '|' .. label .. ']]')
    if itemId ~= nil then
        tag:wikitext( ' [[Image:Reasonator small logo wider white stripes.svg|15px|link=https://reasonator.toolforge.org/?q=' .. itemId .. '&lang=pa]] [[Image:Wikidocumentaries-logo.png|15px|link=https://wikidocumentaries-demo.wmflabs.org/' .. itemId .. '?language=pa]]')
    elseif overrideItemId ~= nil then
        tag:wikitext( ' [[Image:Reasonator small logo wider white stripes.svg|15px|link=https://reasonator.toolforge.org/?q=' .. overrideItemId .. '&lang=pa]] [[Image:Wikidocumentaries-logo.png|15px|link=https://wikidocumentaries-demo.wmflabs.org/' .. overrideItemId .. '?language=pa]]')
    end
    if category ~= nil then
        tag:wikitext('[[ਸ਼੍ਰੇਣੀ:' .. category .. ']]')
    end
    return tostring(tag)
end

function addRow(metadataTable, key, value)
	if value then
		metadataTable:tag('tr')
			:tag('th')
				:attr('score', 'row')
				:css('vertical-align', 'top')
				:wikitext(key)
				:done()
			:tag('td'):wikitext(value)
	end
end

function splitFileNameInFileAndPage(title)
    local slashPosition = string.find(title.text, "/")
    if slashPosition == nil then
    	return title.text,nil
    else
    	return string.sub(title.text, 1, slashPosition - 1), string.sub(title.text, slashPosition + 1)
    end
end

function indexTemplate(frame)
	--create a clean table of parameters with blank parameters removed
	local data = (require 'Module:Index_data').indexDataWithWikidata(frame)
	local args = data.args
	local item = data.item
	
	local page = mw.title.getCurrentTitle()
	local html = mw.html.create()
	
	if item then
		html:wikitext('[[ਸ਼੍ਰੇਣੀ:ਵਿਕੀਡਾਟਾ ਆਈਟਮ ਵਾਲੇ ਇੰਡੈਕਸ]]<indicator name="wikidata">[[File:Wikidata.svg|20px|ਵਿਕੀਡਾਟਾ ਆਈਟਮ|link=https://www.wikidata.org/wiki/' .. item.id .. ']]</indicator>')

        if next(item:getBestStatements('P629')) ~= nil then
            local p629statementvalue = item:getBestStatements('P629')[1].mainsnak.datavalue.value.id
            local p629statementitem = mw.wikibase.getEntity(p629statementvalue)
            for _, statement in pairs(p629statementitem:getBestStatements('P136')) do
                if statement.mainsnak.datavalue ~= nil then
                    genreId = statement.mainsnak.datavalue.value.id
                    if categoryForGenre[genreId] then
                        html:wikitext('[[ਸ਼੍ਰੇਣੀ:' .. categoryForGenre[genreId] .. ']]')
                    end
                end
            end
            for _, statement in pairs(p629statementitem:getBestStatements('P7937')) do
                if statement.mainsnak.datavalue ~= nil then
                    formId = statement.mainsnak.datavalue.value.id
                    if categoryForForm[formId] then
                        html:wikitext('[[ਸ਼੍ਰੇਣੀ:' .. categoryForForm[formId] .. ']]')
                    end
                end
            end
            for _, statement in pairs(p629statementitem:getBestStatements('P166')) do
                if statement.mainsnak.datavalue ~= nil then
                    awardId = statement.mainsnak.datavalue.value.id
                    if categoryForAward[awardId] then
                        html:wikitext('[[ਸ਼੍ਰੇਣੀ:' .. categoryForAward[awardId] .. ']]')
                    end
                end
            end
        end
    else
        html:wikitext('[[ਸ਼੍ਰੇਣੀ:ਬਿਨ੍ਹਾਂ ਵਿਕੀਡਾਟਾ ਆਈਡੀ ਵਾਲੇ ਇੰਡੈਕਸ]]')
	end

    --Left part
    local left = html:tag('div')
    if args.remarks or args.notes then
    	left:css('width', '60%')
    end
    left:css('float', 'left')
    --Image
    if args.image then
        local imageContainer = left:tag('div')
            :css({
                float = 'left',
                overflow = 'hidden',
                border = 'thin grey solid'
            })
        local imageTitle = nil
        if tonumber(args.image) ~= nil then
            -- this is a page number
            imageTitle = mw.title.getCurrentTitle():subPageTitle(args.image)
        else
            -- this is an other file
            imageTitle = mw.title.new(args.image, "Media")
            -- TODO mettre une catégorie pour les livres ayant une couverture qui ne provient pas du DJVU/PDF
        end
        if imageTitle == nil then
            imageContainer:wikitext(args.image)
            -- TODO mettre une catégorie de maintenance ici lorsque la couverture est manquante
        else
            local imageName, imagePage = splitFileNameInFileAndPage(imageTitle)
            if imagePage ~= nil then
	            imageContainer:wikitext('[[File:' .. imageName .. '|page=' .. imagePage .. '|300px]]')
	        else
	            imageContainer:wikitext('[[File:' .. imageName .. '|300px]]')
	        end
        end
    end
    --Metadata
    local metadataContainer = left:tag('div')
    if args.image then
    	metadataContainer:css('margin-left', '250px')
    end
    local metadataTable = metadataContainer:tag('table')

    if args.title then
       if item then
    		addRow(metadataTable, 'ਸਿਰਲੇਖ', withWikidataLink(args.title, 'ਵਿਕੀਡਾਟਾ ਆਈਟਮ ਵਾਲੇ ਇੰਡੈਕਸ'))
       else 
            addRow(metadataTable, 'ਸਿਰਲੇਖ', '[[' .. args.title .. ']]')
       end
    else
    	mw.addWarning('ਕਿਤਾਬ ਦਾ ਸਿਰਲੇਖ ਲੋੜੀਂਦਾ ਹੈ')
    end

	addRow(metadataTable, 'ਉਪਸਿਰਲੇਖ', withWikidataLink(args.subtitle))


if args.volume then
     addRow(metadataTable, 'ਜਿਲਦ', '{{#invoke:ConvertDigit|main|' .. args.volume .. '}}')
else 
end

if args.issue then
     addRow(metadataTable, 'ਨੰਬਰ', '{{#invoke:ConvertDigit|main|' .. args.issue .. '}}')
else 
end

if args.edition then
	addRow(metadataTable, 'ਛਾਪ', '{{#invoke:ConvertDigit|main|' .. args.edition .. '}}')
else 
end

-- TODO: merge this entire block with lines above that use P629?
if item then
    if #item:getBestStatements('P629') ~= 0 then
        local p629statementvalue = item:getBestStatements('P629')[1].mainsnak.datavalue.value.id
        local p629statementitem = mw.wikibase.getEntity(p629statementvalue)
        if #p629statementitem:getBestStatements('P7937') ~= 0 then -- TODO: handle multiple work types?
            local creativeWorkFormId = p629statementitem:getBestStatements('P7937')[1].mainsnak.datavalue.value.id
            local creativeWorkForm = mw.wikibase.renderSnaks( { p629statementitem:getBestStatements('P7937')[1].mainsnak } )
            addRow(metadataTable, 'ਰਚਨਾਤਮਕ ਕਿਸਮ', withWikidataLink(
                '[[:d:' .. creativeWorkFormId .. '|' .. creativeWorkForm .. ']]',
                nil, creativeWorkFormId)
            )
        else
            addRow(metadataTable, 'ਰਚਨਾਤਮਕ ਕਿਸਮ', "''ਮੌਜੂਦ ਨਹੀਂ'' [[File:OOjs UI icon edit-ltr.svg|ਵਿਕੀਡਾਟਾ ਉੱਤੇ ਦੇਖੋ ਤੇ ਸੰਪਾਦਨ ਕਰੋ|10px|baseline|class=noviewer|link=https://www.wikidata.org/wiki/" .. p629statementvalue .. "#P7937]]")
        end
        if #p629statementitem:getBestStatements('P136') ~= 0 then
            local genrelinks = ''
            for i, stmt in pairs(p629statementitem:getBestStatements('P136')) do
                local genreFormId = stmt.mainsnak.datavalue.value.id
                local genreForm = mw.wikibase.renderSnaks( { stmt.mainsnak } )
                genrelinks = genrelinks .. '[[:d:' .. genreFormId .. '|' .. genreForm .. ']]'
                if next(p629statementitem:getBestStatements('P136'), i) ~= nil then
                    genrelinks = genrelinks .. ', '
                end
            end
            addRow(metadataTable, 'ਵਿਧਾ', withWikidataLink(
                genrelinks .. '&nbsp;[[File:OOjs UI icon edit-ltr.svg|ਵਿਕੀਡਾਟਾ ਉੱਤੇ ਦੇਖੋ ਤੇ ਸੰਪਾਦਨ ਕਰੋ|10px|baseline|class=noviewer|link=https://www.wikidata.org/wiki/' .. p629statementvalue .. '#P136]]',
                nil)
            )
        else
        end
    end
end

if args.author then
    if item then
        local p50stmt = item['claims']['P50'][1]
        if p50stmt['mainsnak']['snaktype'] == 'somevalue' then
            addRow(metadataTable, 'ਲੇਖਕ', withWikidataLink('[[ਲੇਖਕ:ਅਗਿਆਤ ਲੇਖਕ|ਅਗਿਆਤ]]', 'ਅਗਿਆਤ ਲੇਖਕ ਦੀ ਰਚਨਾ'))
        else
            addRow(metadataTable, 'ਲੇਖਕ', withWikidataLink(args.author))
            -- local authors = item:formatPropertyValues( 'P50', { mw.wikibase.entity.claimRanks.RANK_NORMAL } )['value']
            -- for author in string.gmatch(authors, '([^,]+)') do
            --     html:wikitext('[[ਸ਼੍ਰੇਣੀ:' .. author  ..  ' ਰਚਿਤ]]')
            -- end
            local authors = item:getBestStatements('P50')
            for i, author in pairs(authors) do
                if author.mainsnak.snaktype == 'value' then
                    local authorid = author.mainsnak.datavalue.value.id
                    local authoritem = mw.wikibase.getEntity(authorid)
                    local authorsitelink = authoritem:getSitelink('pawikisource')
                    if authorsitelink ~= nil then
                        local authorsitelinkname = mw.ustring.sub(authorsitelink, 6)
                        html:wikitext('[[ਸ਼੍ਰੇਣੀ:' .. authorsitelinkname  ..  ' ਰਚਿਤ]]')
                    end
                end
            end
        end
    else 
        addRow(metadataTable, 'ਲੇਖਕ', '{{Al|' .. args.author .. '}} [[ਸ਼੍ਰੇਣੀ:' .. args.author .. ' ਰਚਿਤ]]')
    end
else
end

if args.translator then
    if item then
        local p655stmt = item['claims']['P655'][1]
        if p655stmt['mainsnak']['snaktype'] == 'somevalue' then
            addRow(metadataTable, 'ਅਨੁਵਾਦਕ', withWikidataLink('[[ਲੇਖਕ:ਅਗਿਆਤ ਲੇਖਕ|ਅਗਿਆਤ]]', 'ਆਗਿਆਤ ਲੇਖਕ ਦਾ ਅਨੁਵਾਦ'))
        else
            addRow(metadataTable, 'ਅਨੁਵਾਦਕ', withWikidataLink(args.translator))
            -- local translators = item:formatPropertyValues( 'P655', { mw.wikibase.entity.claimRanks.RANK_NORMAL } )['value']
            -- for translator in string.gmatch(translators, '([^,]+)') do
            --     html:wikitext('[[ਸ਼੍ਰੇਣੀ:' .. translator  ..  ' ਦਾ ਅਨੁਵਾਦ]]')
            -- end
            local translators = item:getBestStatements('P655')
            for i, translator in pairs(translators) do
                if translator.mainsnak.snaktype == 'value' then
                    local translatorid = translator.mainsnak.datavalue.value.id
                    local translatoritem = mw.wikibase.getEntity(translatorid)
                    local translatorsitelink = translatoritem:getSitelink('pawikisource')
                    if translatorsitelink ~= nil then
                        local translatorsitelinkname = mw.ustring.sub(translatorsitelink, 6)
                        html:wikitext('[[ਸ਼੍ਰੇਣੀ:' .. translatorsitelinkname  ..  ' ਦਾ ਅਨੁਵਾਦ]] [[ਸ਼੍ਰੇਣੀ:ਅਨੁਵਾਦਿਤ ਸਾਹਿਤ]]')
                    end
                end
            end
        end
    else 
        addRow(metadataTable, 'ਲੇਖਕ', '{{Al|' .. args.translator .. '}} [[ਸ਼੍ਰੇਣੀ:' .. args.translator .. ' ਅਨੁਵਾਦਿਤ]]')
    end
else
end

if args.foreword_author then
if item then
    addRow(metadataTable, 'ਮੁੱਖਬੰਧ ਲੇਖਕ', withWikidataLink(args.foreword_author))
        local foreword_authors = item:formatPropertyValues( 'P2679', { mw.wikibase.entity.claimRanks.RANK_NORMAL } )['value']
   for foreword_author in string.gmatch(foreword_authors, '([^,]+)') do
end
  else 
   addRow(metadataTable, 'ਮੁੱਖਬੰਧ ਲੇਖਕ', '{{Al|' .. args.foreword_author .. '}}')
 end
else 
end

if args.afterword_author then
if item then
    addRow(metadataTable, 'পরিশিষ্টের ਲੇਖਕ', withWikidataLink(args.afterword_author))
        local afterword_authors = item:formatPropertyValues( 'P2680', { mw.wikibase.entity.claimRanks.RANK_NORMAL } )['value']
   for afterword_author in string.gmatch(afterword_authors, '([^,]+)') do
end
  else 
   addRow(metadataTable, 'পরিশিষ্টের ਲੇਖਕ', '{{Al|' .. args.afterword_author .. '}}')
 end
else 
end

if args.editor then
if item then
	addRow(metadataTable, 'ਸੰਪਾਦਕ', withWikidataLink(args.editor))
    local editors = item:formatPropertyValues( 'P98', { mw.wikibase.entity.claimRanks.RANK_NORMAL } )['value']
   for editor in string.gmatch(editors, '([^,]+)') do
    html:wikitext('[[ਸ਼੍ਰੇਣੀ:' ..  editor  ..  ' ਸੰਪਾਦਿਤ]]')
end
else
   addRow(metadataTable, 'ਸੰਪਾਦਕ', '{{Al|' .. args.editor .. '}}')
end
  else 
 end

	addRow(metadataTable, 'ਚਿੱਤਰਕਾਰ', withWikidataLink(args.illustrator))

if args.lyricist then
if item then
	addRow(metadataTable, 'ਗੀਤਕਾਰ', withWikidataLink(args.lyricist))
    local lyricists = item:formatPropertyValues( 'P676', { mw.wikibase.entity.claimRanks.RANK_NORMAL } )['value']
   for lyricist in string.gmatch(lyricists, '([^,]+)') do
    html:wikitext('[[ਸ਼੍ਰੇਣੀ:' ..  lyricist  ..  ' ਰਚਿਤ]]')
end
else
   addRow(metadataTable, 'ਗੀਤਕਾਰ', '{{Al|' .. args.lyricist .. '}}')
end
  else 
 end

if args.composer then
if item then
	addRow(metadataTable, 'ਸੰਗੀਤਕਾਰ', withWikidataLink(args.composer))
    local composers = item:formatPropertyValues( 'P86', { mw.wikibase.entity.claimRanks.RANK_NORMAL } )['value']
   for composer in string.gmatch(composers, '([^,]+)') do
    html:wikitext('[[ਸ਼੍ਰੇਣੀ:' ..  composer  ..  ' সুরারোপিত]]')
end
else
   addRow(metadataTable, 'ਸੰਗੀਤਕਾਰ', '{{Al|' .. args.composer .. '}}')
end
  else 
 end

if args.publisher then
  if item then
    addRow(metadataTable, 'ਪ੍ਰਕਾਸ਼ਕ', withWikidataLink(args.publisher))

    for i, publisher_stmt in pairs(item:getBestStatements('P123')) do
        local formatted_value = mw.wikibase.renderSnaks( { publisher_stmt['mainsnak'] } )
        html:wikitext('[[ਸ਼੍ਰੇਣੀ:' ..  formatted_value ..  ' ਦੁਆਰਾ ਪ੍ਰਕਾਸ਼ਿਤ]]')
    end
  else 
    addRow(metadataTable, 'ਪ੍ਰਕਾਸ਼ਕ', '[[ਪ੍ਰਕਾਸ਼ਕ:' .. args.publisher .. '|' .. args.publisher .. ']]')
  end
else
  html:wikitext( '[[ਸ਼੍ਰੇਣੀ:ਪ੍ਰਕਾਸ਼ਕ ਜਾਣਕਾਰੀ ਤੋਂ ਬਗ਼ੈਰ ਇੰਡੈਕਸ ਸਫ਼ਾ]]' )
end

if args.address then
if item then
	addRow(metadataTable, 'ਪਤਾ', withWikidataLink(args.address))
    local addresses = item:formatPropertyValues( 'P291', { mw.wikibase.entity.claimRanks.RANK_NORMAL } )['value']
   for address in string.gmatch(addresses, '([^,]+)') do
    html:wikitext('[[ਸ਼੍ਰੇਣੀ:' ..  address  ..  ' ਵਿਖੇ ਪ੍ਰਕਾਸ਼ਿਤ]]')
end
 else
   addRow(metadataTable, 'ਸਥਾਨ', '[[:w:pa:' .. args.address .. '|' .. args.address .. ']]')
end
  else 
html:wikitext('[[ਸ਼੍ਰੇਣੀ:প্রকাশস্থান তথ্য বিহীন নির্ঘণ্ট পাতা]]' )
 end

    if args.year then
	addRow(metadataTable, 'ਸਾਲ', '{{#invoke:ConvertDigit|main|' .. args.year .. '}} ਈਸਵੀ [[ਸ਼੍ਰੇਣੀ:{{#invoke:ConvertDigit|main|' .. args.year .. '}} ਈਸਵੀ ਵਿੱਚ ਛਪੀ]]' )
else 
html:wikitext('[[ਸ਼੍ਰੇਣੀ:ਬਿਨ੍ਹਾਂ ਸਾਲ ਵਾਲੀਆਂ ਕਿਤਾਬਾਂ]]' )
end

if args.partof then
if item then
        local partsof = item:formatPropertyValues( 'P361', { mw.wikibase.entity.claimRanks.RANK_NORMAL } )['value']
   for partof in string.gmatch(partsof, '([^,]+)') do
    html:wikitext('[[ਸ਼੍ਰੇਣੀ:' ..  partof  ..  ']]')
end
  else
 end
else 
end

if args.partofseries then
if item then
        local partsofseries = item:formatPropertyValues( 'P361', { mw.wikibase.entity.claimRanks.RANK_NORMAL } )['value']
   for partof in string.gmatch(partsofseries, '([^,]+)') do
    html:wikitext('[[ਸ਼੍ਰੇਣੀ:' ..  partofseries  ..  ']]')
end
  else
 end
else 
end

	addRow(metadataTable, 'ਛਾਪਕ', withWikidataLink(args.printer))

	if args.source == 'djvu' then
		addRow(metadataTable, 'ਸਰੋਤ', '[[File:DjVu-logo.svg|25px|link=File:' .. mw.title.getCurrentTitle().text ..']] [[File:BookReader-favicon.svg|20px|link={{fullurl:toollabs:bookreader/pa/{{{n|{{PAGENAMEE}}}}}}}]]')
	elseif args.source == 'pdf' then
		addRow(metadataTable, 'ਸਰੋਤ', '[[File:Icon pdf.svg|25px|link=File:' .. mw.title.getCurrentTitle().text ..']] [[File:BookReader-favicon.svg|20px|link={{fullurl:toollabs:bookreader/pa/{{{n|{{PAGENAMEE}}}}}}}]]')
	elseif args.source == 'ogg' then
		addRow(metadataTable, 'ਸਰੋਤ', '[[File:Speaker Icon.svg|20px|link=File:' .. mw.title.getCurrentTitle().text ..']]')
	elseif args.source == 'webm' then
		addRow(metadataTable, 'ਸਰੋਤ', '[[File:Open Iconic video.svg|20px|link=File:' .. mw.title.getCurrentTitle().text ..']]')
	elseif args.source == 'mp3' then
		addRow(metadataTable, 'ਸਰੋਤ', '[[File:Speaker Icon.svg|20px|link=File:' .. mw.title.getCurrentTitle().text ..']]')

		--add an indicator linking to the usages
		local query = 'SELECT ?item ?itemLabel ?pages ?page WHERE {\n  ?item wdt:P996 <http://commons.wikimedia.org/wiki/Special:FilePath/' .. mw.uri.encode(mw.title.getCurrentTitle().text, 'PATH') .. '> .\n  OPTIONAL { ?page schema:about ?item ; schema:isPartOf <https://pa.wikisource.org/> . }\n  OPTIONAL { ?item wdt:P304 ?pages . }\n  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],pa".\n}}'
		html:wikitext('<indicator name="index-scan-wikidata">[[File:Wikidata Query Service Favicon.svg|20px|ਵਿਕੀਡਾਟਾ ਆਈਟਮਾਂ|link=https://query.wikidata.org/embed.html#' .. mw.uri.encode(query, 'PATH') .. ']]</indicator>')
	else
		addRow(metadataTable, 'ਸਰੋਤ', args.source)
	end
	if args.progress == 'T' then
		addRow(metadataTable, 'ਪ੍ਰਗਤੀ', '[[Category:ਇੰਡੈਕਸ ਪ੍ਰਮਾਣਿਤ]] [[:Category:ਇੰਡੈਕਸ ਪ੍ਰਮਾਣਿਤ|ਪ੍ਰਮਾਣਿਤ]]')
	elseif args.progress == 'V' then
		addRow(metadataTable, 'ਪ੍ਰਗਤੀ', '[[category:ਇੰਡੈਕਸ ਪਰੂਫ਼ਰੀਡ]] [[:Category:ਇੰਡੈਕਸ ਪਰੂਫ਼ਰੀਡ|ਇੰਡੈਕਸ ਪਰੂਫ਼ਰੀਡ]]')
	elseif args.progress == 'C' then
		addRow(metadataTable, 'ਪ੍ਰਗਤੀ', '[[category:ਇੰਡੈਕਸ ਪਰੂਫ਼ਰੀਡ ਨਹੀਂ]] [[:category:ਇੰਡੈਕਸ ਪਰੂਫ਼ਰੀਡ ਨਹੀਂ|ਇੰਡੈਕਸ ਪਰੂਫ਼ਰੀਡ ਨਹੀਂ]]')
	elseif args.progress == 'OCR' then
		addRow(metadataTable, 'ਪ੍ਰਗਤੀ', '[[ਸ਼੍ਰੇਣੀ:ਇੰਡੈਕਸ - ਟੈਕਸਟ ਲੇਅਰ ਲਈ ਬੇਨਤੀ ਕੀਤੀ ਗਈ]] [[:ਸ਼੍ਰੇਣੀ:ਇੰਡੈਕਸ - ਟੈਕਸਟ ਲੇਅਰ ਲਈ ਬੇਨਤੀ ਕੀਤੀ ਗਈ|ਇੰਡੈਕਸ - ਟੈਕਸਟ ਲੇਅਰ ਲਈ ਬੇਨਤੀ ਕੀਤੀ ਗਈ]]')
	elseif args.progress == 'L' then
		addRow(metadataTable, 'ਪ੍ਰਗਤੀ', '[[ਸ਼੍ਰੇਣੀ:ਇੰਡੈਕਸ - ਫਾਈਲ ਠੀਕ ਕਰਨੀ ਲੋੜੀਂਦੀ]]<span style="color: #FF0000; ">[[:ਸ਼੍ਰੇਣੀ:ਇੰਡੈਕਸ - ਫਾਈਲ ਠੀਕ ਕਰਨੀ ਲੋੜੀਂਦੀ|ਇੰਡੈਕਸ - ਫਾਈਲ ਠੀਕ ਕਰਨੀ ਲੋੜੀਂਦੀ]]</span>')
   elseif args.progress == 'X' then
		addRow(metadataTable, 'ਪ੍ਰਗਤੀ', '[[ਸ਼੍ਰੇਣੀ:ਇੰਡੈਕਸ - ਜਾਂਚ ਲਈ ਫਾਈਲਾਂ]] [[:ਸ਼੍ਰੇਣੀ:ਇੰਡੈਕਸ - ਜਾਂਚ ਲਈ ਫਾਈਲਾਂ|ਇੰਡੈਕਸ - ਜਾਂਚ ਲਈ ਫਾਈਲਾਂ]]')
	else
		addRow(metadataTable, 'ਪ੍ਰਗਤੀ', '[[ਸ਼੍ਰੇਣੀ:ਇੰਡੈਕਸ - ਅਗਿਆਤ ਪ੍ਰਗਤੀ]] [[:ਸ਼੍ਰੇਣੀ:ਇੰਡੈਕਸ - ਅਗਿਆਤ ਪ੍ਰਗਤੀ|ਇੰਡੈਕਸ - ਅਗਿਆਤ ਪ੍ਰਗਤੀ]]')
	end
	addRow(metadataTable, 'ਲੜੀ', args.volumes)
	
	if args.transclusion == 'yes' then
	    addRow(metadataTable, 'ਸੰਯੋਜਨ', '[[ਸ਼੍ਰੇਣੀ:ਪੂਰੀ ਤਰ੍ਹਾਂ ਸੰਜੋਇਆ]] [[:ਸ਼੍ਰੇਣੀ:ਪੂਰੀ ਤਰ੍ਹਾਂ ਸੰਜੋਇਆ|ਪੂਰੀ ਤਰ੍ਹਾਂ ਸੰਜੋਇਆ]]')
	elseif args.transclusion == 'notimg' then
	    addRow(metadataTable, 'ਸੰਯੋਜਨ', '[[ਸ਼੍ਰੇਣੀ:ਤਸਵੀਰਾਂ ਪੂਰੀਆਂ ਨਹੀਂ ਸੰਜੋਈਆਂ]] [[:ਸ਼੍ਰੇਣੀ:ਤਸਵੀਰਾਂ ਪੂਰੀਆਂ ਨਹੀਂ ਸੰਜੋਈਆਂ|ਤਸਵੀਰਾਂ ਪੂਰੀਆਂ ਨਹੀਂ ਸੰਜੋਈਆਂ]]')
	elseif args.transclusion == 'notadv' then
	    addRow(metadataTable, 'ਸੰਯੋਜਨ', '[[ਸ਼੍ਰੇਣੀ:ਇਸ਼ਤਿਹਾਰਬਾਜ਼ੀ ਨਹੀਂ ਸੰਜੋਈ]] [[:ਸ਼੍ਰੇਣੀ:ਇਸ਼ਤਿਹਾਰਬਾਜ਼ੀ ਨਹੀਂ ਸੰਜੋਈ|ਇਸ਼ਤਿਹਾਰਬਾਜ਼ੀ ਨਹੀਂ ਸੰਜੋਈ]]')
	elseif args.transclusion == 'held' then
	    addRow(metadataTable, 'ਸੰਯੋਜਨ', '[[ਸ਼੍ਰੇਣੀ:ਸੰਯੋਜਨ ਹੋਲਡ ਤੇ]] [[:ਸ਼੍ਰੇਣੀ:ਸੰਯੋਜਨ ਹੋਲਡ ਤੇ|ਸੰਯੋਜਨ ਹੋਲਡ ਤੇ]]')
	elseif args.transclusion == 'check' then
	    addRow(metadataTable, 'ਸੰਯੋਜਨ', '[[ਸ਼੍ਰੇਣੀ:ਸੰਯੋਜਨ ਦੀ ਜਾਂਚ ਲੋੜੀਂਦੀ]]<span style="color: #FF0000; ">[[:ਸ਼੍ਰੇਣੀ:ਸੰਯੋਜਨ ਦੀ ਜਾਂਚ ਲੋੜੀਂਦੀ|ਸੰਯੋਜਨ ਦੀ ਜਾਂਚ ਲੋੜੀਂਦੀ]]</span>')
	elseif args.transclusion == 'no' then
	    addRow(metadataTable, 'ਸੰਯੋਜਨ', '[[ਸ਼੍ਰੇਣੀ:ਇੰਡੈਕਸ ਨਹੀਂ ਸੰਜੋਇਆ]] [[:ਸ਼੍ਰੇਣੀ:ਇੰਡੈਕਸ ਨਹੀਂ ਸੰਜੋਇਆ|ਇੰਡੈਕਸ ਨਹੀਂ ਸੰਜੋਇਆ]]')
	end

	if args.pages then
		left:tag('div'):css('clear', 'both')
		left:tag('h3'):wikitext('ਕਿਤਾਬ ਦੇ ਪੰਨੇ <br> {{Index progress bar|{{PAGENAME}}}}')
		left:tag('div'):attr('id', 'pagelist'):css({
			background = '#F0F0F0',
			['padding-left'] = '0.5em',
			['text-align'] = 'justify'
		}):newline():wikitext(args.pages):newline()
	else
		mw.addWarning('ਸਫ਼ਿਆਂ ਦੀ ਸੂਚੀ ਬਣਾਓ')
	end

	if args.remarks or args.notes then
		local right = html:tag('div'):css({
			width = '35%;',
			['padding-left'] = '1em',
			float = 'left'
		})
		if args.remarks then
			right:tag('div'):attr('id', 'remarks'):wikitext(args.remarks)
		end
		if args.notes then
			right:tag('hr'):css({
				['margin-top'] = '1em',
				['margin-bottom'] = '1em'
			})
			right:tag('div'):attr('id', 'notes'):wikitext(args.notes)
		end
	end
	
	html:wikitext('[[ਸ਼੍ਰੇਣੀ:ਇੰਡੈਕਸ]]')

	if args.source == 'djvu' then
		html:wikitext('[[ਸ਼੍ਰੇਣੀ:DJVU ਫਾਰਮੈਟ ਵਾਲੀ ਫਾਈਲ]]')
	elseif args.source == 'pdf' then
		html:wikitext('[[ਸ਼੍ਰੇਣੀ:PDF ਫਾਰਮੈਟ ਵਾਲੀ ਫਾਈਲ]]')
	elseif args.source == 'ogg' then
		html:wikitext('[[ਸ਼੍ਰੇਣੀ:OGG ਫਾਰਮੈਟ ਵਾਲੀ ਫਾਈਲ]]')
	elseif args.source == 'webm' then
		html:wikitext('[[ਸ਼੍ਰੇਣੀ:WEBM ਫਾਰਮੈਟ ਵਾਲੀ ਫਾਈਲ]]')
	elseif args.source == 'mp3' then
		html:wikitext('[[ਸ਼੍ਰੇਣੀ:MP3 ਫਾਰਮੈਟ ਵਾਲੀ ਫਾਈਲ]]')
	end
	if not args.remarks then
		html:wikitext('[[ਸ਼੍ਰੇਣੀ:ਇੰਡੈਕਸ ਵਾਲੇ ਸਫ਼ੇ]]')
	end

	return tostring(html)
end

local p = {}
 
function p.indexTemplate( frame )
    return indexTemplate( frame )
end
 
return p