ניתן ליצור תיעוד על היחידה הזאת בדף יחידה:Sandbox/ויקיג'אנקי/תיעוד

-- Beta functions getname2 and getinternal links  local p = {}  local function loadwikinames()     local wikinames = {}	 	wikinames[1] = "wikisource" 	wikinames[2] = "wikibooks" 	wikinames[3] = "wikinews" 	wikinames[4] = "wikiquote" 	wikinames[5] = "wikivoyage" 	wikinames[6] = "wiki" 	return wikinames end    function p.getname(frame) 	local name=mw.wikibase.getEntityIdForTitle(frame.args[1]) 	if name == "" or name == nil then return "" end 	return name 	end  function p.getname2(frame) 	local names=frame.args[1] 	local name = "" 	local image = "" 	local items = {} 	local index = 1     local id = "" 	local latitude = '' 	local longitude = '' 	local marker = ''     local entity = ''     local data = ""     local separator = '\n'     local lang = ''     local wiki = ''     local wikiname = ''       for str in string.gmatch(names,"([^"..separator.."]+)") do  	if str ~= nil and str ~= "" then  		str = string.gsub(str,"^%s+","")      	str = string.gsub(str,"%s+$","")      	if str ~= "" then 	       items[index] = str 	       index = index + 1 	       end 	    end 	end       for i=1,#items do  	name = items[i]  	id = ""     wikiname = '' 	 	id=mw.wikibase.getEntityIdForTitle(items[i])     if id == nil then id = '' end      if id ~= nil and id ~= '' then     entity = mw.wikibase.getEntityObject(id)	      if entity == nil then 		latitude = "" 	    longitude = "" 	    end 	     	local claims = entity.claims 	if claims == nil then 		latitude = "" 		longitude = "" 	    end	 --	if claims.P625 ~= nil then if pcall(function () t =claims.P625 end ) then  		if pcall(function () t =entity.claims.P625[1].mainsnak.datavalue.value.latitude end ) then		 		latitude = entity.claims.P625[1].mainsnak.datavalue.value.latitude 		else latitude = "" end  		if pcall(function () t =entity.claims.P625[1].mainsnak.datavalue.value.longitude end ) then		 		longitude = entity.claims.P625[1].mainsnak.datavalue.value.longitude 		else longitude = "" end end  --	if claims.P18 ~= nil then --		image = entity.claims.P18[1].mainsnak.datavalue.value --		if image == nil then --			image = "" -- -- Replace above due to error of getting a nil value -- Lua error in line 3210: attempt to index field 'datavalue' (a nil value). image="" if pcall(function () t =claims.P625 end ) then  		if pcall(function () t =entity.claims.P18[1].mainsnak.datavalue.value end ) then		 		      image = entity.claims.P18[1].mainsnak.datavalue.value 		    else 		    	image = "" 			end		     end  		 	end      wikiname = ""	 	lang = mw.language.getContentLanguage(id).code 	wiki = lang .. "wiki" 	if pcall(function()t1 = entity:getSitelink("wiki") end) then	         wikiname = entity:getSitelink(wiki) or ""     else     	wikiname = ""     end  if id == "" then wikiname = "" end if id ~= nil and id ~= "" then 			name = "[[" .. name .. "]]" end     marker = '* {{see | name=' .. name .. " | lat=" .. latitude .. " | long=" .. longitude .. " | image=" .. image .. " | wikipedia=" .. wikiname .. " | wikidata=" .. id .. "}}"     data = data .. marker .. "\n"     marker = ''     name = ''     latitude = ''     longitude = ''     image= ''     id = ''     wikiname = '' 	 end          return data     end  -- Load a page and scan it for internal links  function p.getinternallinks(frame) 		local page = frame.args[1] or "Main Page"         local title = mw.title.new(page)         local displayactual = frame.args['option'] or "yes"         if title == nil then return end          if title.id == 0 then             return "Page does not exist!"         end          local data = title:getContent() 		 		if data == nil or data == "" then 			return 		end  		local tt = {} 		local count = 0 		local output = "" 		local separator = "@@@@@" 		local newstr = ""		 			  		data = string.gsub(data,"\n","@@@@@")								--change \n to separator @@@@@ 		data = string.gsub(data,"@","BULLET")								--because I use @@@@@ as a separator changing @ to BULLET 		data = string.gsub(data,"%s+"," ")									--change multiple spaces to a space 		data = string.gsub(data,"%[%[","@@@@@[[")							--change [[ to separator @@@@@[[ 		data = string.gsub(data,"%]%]","]]@@@@@")							--change ]] to separator ]]@@@@@ 		data = string.gsub(data,"@@@@@@@@@@","@@@@@")						--change ]] to separator ]]@@@@@  		for str in string.gmatch(data,"([^"..separator.."]+)") do  			if str ~= nil and str ~= "" then  -- Get rid of File,file,Image,image  str = string.gsub(str,"%[%[[fF]ile.*",'')  str = string.gsub(str,"%[%[[iI]mage.*",'')  				str = string.gsub(str,'%s*$','')       					-- drop ending space 				str = string.gsub(str,'^%s+','') 					if string.find(str, '^%[%[') == 1 then			    -- Key is to have [[ at beginning 					    str = string.gsub(str,'%_'," ") 						str = string.gsub(str,'%%2C',",") 						str = string.gsub(str,'%s+%|%s+','|') 						str = string.gsub(str,'%[%[%#','[[' .. page .. '#') -- Display only actual link make it an option if displayactual == "yes" then 	str = string.gsub(str,"%|.*%]%]","]]") end 					    count = count + 1 --					    localstr = str.gsub(str,'^.*|','')                         localstr = str.gsub(str,'|.*','')                         localstr = string.upper (localstr)  						tt[count] = localstr .. "@-@" .. str 						end 				end 		end  		table.sort(tt) 		local previous = ""  		for key,value in pairs(tt) do value = string.gsub(value,'^.*@-@','') 			if value ~= previous then                 output = output .. value .. " -- " 			end 			    previous = value 		end		  		output = string.gsub(output,"BULLET","@") 		output = string.gsub(output," -- $","") 	return output end   return p