يمكن إنشاء صفحة توثيق الوحدة في وحدة:Wikidata2/link/شرح

local p = {}
--local String = require('Module:String').match
function formatcharacters_(label, options)
	local formatc = options.formatcharacters
	--if options.FormatfirstCharacter and options.num == 1 then 
		--formatc = options.FormatfirstCharacter 
	--end
	if options.illwd2y and options.illwd2y ~= '' then
		ca = mw.ustring.match( label, "%d%d%d%d", 1 ) or label
		return ca
	end
	if not formatc or formatc == '' then
		return label
	end
	if formatc == 'lcfirst' then
		return mw.getCurrentFrame():preprocess("{{lcfirst: " .. label .. " }}")
	elseif formatc == 'ucfirst' then
		return mw.language.getContentLanguage():ucfirst( label )
	elseif formatc  == 'lc' then
		return mw.getCurrentFrame():preprocess("{{lc: " .. label .. " }}")
	elseif formatc == 'uc' then
		return mw.getCurrentFrame():preprocess("{{uc: " .. label .. " }}")
	end
	return label
end

function p.year( datavalue, datatype, options )
	local ret = ""
	if datatype == 'wikibase-item' then
        local id = getEntityIdFromValue( datavalue.value )
        local value = formatEntityId( id, options ).value
    	local label = options.label or mw.wikibase.label( id )
		if label == '' then
			label = mw.wikibase.label( id ) or nil
		end
	    local link = mw.wikibase.sitelink( id )
	    if link and (not options.nolink or options.nolink == '') then
	        if label and label ~= '' then
	            ret =  '[[:' .. link .. '|' .. formatcharacters_(label, options) .. ']]'.. catewikidatainfo(options)
	        else
	            ret = '[[:' .. link .. '|' .. formatcharacters_(link, options) .. ']]'.. catewikidatainfo(options) 
	        end
	    else
	    	if label and label ~= ''  then
	    		ret = Labelfunction( id, label,options.label, options) 
	    	end
	    end
	end
	return ret
end

return p