Moduł:StronicowyParser

Z Wikibooks, biblioteki wolnych podręczników.
Skocz do: nawigacja, szukaj

Dokumentacja dla tego modułu może zostać utworzona pod nazwą Moduł:StronicowyParser/opis

local p = {}
function  p.SpisTresci( frame )
    local args = frame.args;
    local myTitle, myString = mw.title, string;
    local page = myTitle.makeTitle(args[2] or '', args[1]);
    if((page==nil)or(not page.exists))then 
    	local names=myString.gsub(myString.match(args[1],"[^/]*$"),"_"," ");
    	local znaczenia="======<span style=\"color:red\">[["..args[1].."|"..names.."]]</span>======";
        return znaczenia;
    end;
    local ns = page:inNamespace( 0 );
    local text = page:getContent();
    text=myString.gsub(text,"(\n=+[^\n]+=+ *\n)","\n%1\n");
    text=myString.gsub(text,"^(=+[^\n]+=+ *\n)","\n%1\n");
    text=myString.gsub(text,"(\n=+[^\n]+=+ *)$","\n%1\n");
    text=myString.gsub(text,"<[mM][aA][tT][hH]>.-</[mM][aA][tT][hH]>","");
    text=myString.gsub(text,"<[nN][oO][wW][iI][kK][iI]>.-</[nN][oO][wW][iI][kK][iI]>","");
    local znaczenia="";
    local dpocz=nil;
    local ostatnie=nil;
    local znaczenia1;    
    local tab={};
    local iter=myString.gmatch(text, "\n=+[^\n]+=+ *\n");
    for znaczenia1 in iter do
           local i=1;
           local znaczenia2="";
          local s1,d1;
           while true do
                   local str=myString.rep("=",i);
                   local s=myString.find(znaczenia1,"\n"..str, 1);
                   local d=myString.find(znaczenia1,str.." *\n$", 1);
                   if ((s==nil) or (d==nil))then
                       i=i-1; 
                       znaczenia2=myString.sub(znaczenia1,s1+i+1,d1-1);
                       znaczenia2=myString.gsub(znaczenia2,"^ +","");
                       znaczenia2=myString.gsub(znaczenia2," +$","");
                       break;
                   end;
                   s1=s;
                   d1=d;
                   i=i+1;
          end;
             local nazwa=myString.gsub(znaczenia2,"<.->","");
             nazwa=myString.gsub(nazwa,"\'\'\'","");
             nazwa=myString.gsub(nazwa,"\'\'","");
             nazwa=myString.gsub(nazwa,"^[ _]*","");
             nazwa=myString.gsub(nazwa,"[ _]*$","");
             nazwa=myString.gsub(nazwa,"_"," ");
             local licznikb=1;
             for c=1,#tab do
               if(tab[c]==nazwa)then licznikb=licznikb+1;end;
             end;
             local addres;
             if(licznikb==1)then
                 adress="[["..args[1].."#"..nazwa.."|"..znaczenia2.."]]";
             else
                 adress="[["..args[1].."#"..nazwa.."_"..licznikb.."|"..znaczenia2.."]]";
             end;
             if((dpocz==nil)or(dpocz>=i))then 
                  dpocz=i-1;
             elseif(ostatnie+1<i-dpocz)then
                   dpocz=i-ostatnie-1;
             end;
             ostatnie=i-dpocz;
             tab[#tab+1]=nazwa;  
             adress=myString.rep("#",i-dpocz)..adress;
             if(znaczenia~="")then 
             	 znaczenia=znaczenia.."\n"..adress;
             else 
             	znaczenia=adress;
             end;
     end;
      local names=myString.gsub(myString.match(args[1],"[^/]*$"),"_"," ");
      local znaczenia3="======[["..args[1].."|"..names.."]]======";
      if(znaczenia~="")then
      	    znaczenia=znaczenia3.."\n"..znaczenia;
      else
      	   znaczenia=znaczenia3;
      end;
    return znaczenia;
end;
function p.lista()
    local frame=mw.getCurrentFrame();
    local d=frame:preprocess( "{{FULLPAGENAME}}");
    local tabled={};
    tabled.c={};
    tabled.d={};
    tabled.d["Wzór"]=nil;
    tabled.d["LinkWzór"]=nil;
    tabled.d["Grafika"]=nil;
    tabled.d["LinkGrafika"]=nil;
    tabled.list={};
    tabled=NumerWzoruIGrafiki2(tabled,d, true);
    tabled=NumerWzoruIGrafiki3(tabled);
    return tabled;
end;
function lista2(p)
   local myTitle, myString = mw.title, string;
   local page = myTitle.makeTitle('', p);
   if((page==nil)or(not page.exists))then 
      return nil;
   end;
   local ns = page:inNamespace( 0 );
   local text = page:getContent();
   local iter=myString.gmatch(text,"{{SpisTreści|(.-)}}");
   local znaczenia="";
   local tabled={};
   for znaczenia in iter do
       local znaczenia1=string.gsub(znaczenia,"&#(%d-);",function(s) return string.char(tonumber(s)) end);
       tabled[#tabled+1]=myString.gsub(znaczenia,"_"," ");
       end;
   if(#tabled>0)then return tabled; else return nil;end;
end;
function NumerWzoruIGrafiki2(tabled, nazwa_modolu,dec)
   local myTitle, myString,myTable = mw.title, string, table;
   nazwa_modolu=string.gsub(nazwa_modolu,"&#(%d-);",function(s) return string.char(tonumber(s)) end);
   nazwa_modolu=myString.gsub(nazwa_modolu,"_"," ");
   if(tabled~=nil)then
      if(tabled.c~=nil)then
         for name, value in pairs(tabled.c) do
              if(name==nazwa_modolu)then return tabled;end;
         end;
      else 
        return nil; 
       end;
    else 
       return  nil; 
   end;
   local page = myTitle.makeTitle('', nazwa_modolu);
   if((page==nil)or(not page.exists))then 
       return nil;
   end;
    local ns = page:inNamespace(0);
    local text = page:getContent();
    text=myString.gsub(text,"<[mM][aA][tT][hH]>.-</[mM][aA][tT][hH]>","");
    text=myString.gsub(text,"<[nN][oO][wW][iI][kK][iI]>.-</[nN][oO][wW][iI][kK][iI]>","");   
    local iter=myString.gmatch(text,"{{[^{}]-}}");
    local licznik=1;
    local tabled2={};
    tabled2["Wzór"]={};
    tabled2["Grafika"]={};
    local nazwa_strony_glownej=myString.gsub(nazwa_modolu,"/[^/]*$","");
    local prawd=false;
    if(#tabled.list==0)then 
         tabled.list[nazwa_strony_glownej]=lista2(nazwa_strony_glownej);
         prawd=true;
    else
          prawd=false;
          for nazwa_strony_glownej_i,value in pairs(tabled.list) do
               if(nazwa_strony_glownej_i==nazwa_strony_glownej)then
                    prawd=true;
                    break;
               end;
          end;
          if(not prawd)then
               tabled.list[nazwa_strony_glownej]=list2(nazwa_strony_glownej);
          end;
    end;
    local list;
    if(tabled.list[nazwa_strony_glownej]~=nil)then
       list=#tabled.list[nazwa_strony_glownej];
    else
       list=0;
    end;
    local pr1=false;
    if(tabled.list~=nil)then
      if(tabled.list[nazwa_strony_glownej]~=nil)then
        for value_i, nazwa in ipairs(tabled.list[nazwa_strony_glownej]) do
            if(nazwa==nazwa_modolu)then
                pr1=true;
                break;
             end;
        end;
     end;
    end;
    linkwzor={};
    linkgrafika={};
    tabled.kdist=nil;
    for znaczenia1 in iter do
    znaczenia1=myString.gsub(znaczenia1,"\n+","");
    local znak;
    local kod;
     local plik=myString.match(znaczenia1,"^{{:([^:|{}]-)}}$");
        if(plik==nil)then
             if(myString.match(znaczenia1,"^{{[iI]ndexWzór|")~=nil)then
                local pel=myString.match(znaczenia1,"^{{[^|{}]+|[^{}|]-}}$");
                if(pel==nil)then
                    local pol2=myString.match(znaczenia1,"^{{.-|automat=(%u+)}}$");
                    if(pol2==nil)then
                           pol2=myString.match(znaczenia1,"^{{.-|automat=(%u+)|.-}}$");
                    end;
                    if((pol2==nil)or(pol2~="FALSE"))then
                      kod=myString.match(znaczenia1,"^{{[^|{}]+|[^{}|]-|([^|{}]+)}}$");
                      if(kod==nil)then
                          kod=myString.match(znaczenia1,"^{{[^|{}]+|[^{}|]-|([^|{}]+)|.-}}$");
                          if(kod~=nil)then
                             local listc={};
                             listc[1]=string.gsub(kod,"&#(%d-);", function(s) return string.char(tonumber(s)) end);
                             tabled2["Wzór"][#tabled2["Wzór"]+1]=listc;
                             if((tabled.kdist==nil)and((list==0)or((list~=0)and(pr1==false))))then tabled.kdist={nazwa_modolu, kod};end;
                          end;
                      else
                             local listc={};
                             listc[1]=string.gsub(kod,"&#(%d-);", function(s) return string.char(tonumber(s)) end);
                             tabled2["Wzór"][#tabled2["Wzór"]+1]=listc;
                             if((tabled.kdist==nil)and((list==0)or((list~=0)and(pr1==false))))then tabled.kdist={nazwa_modolu, kod};end;
                      end;
                  end;
                end;
          else
             if(myString.match(znaczenia1,"^{{[[wW]zór|")~=nil)then
                local pol2=myString.match(znaczenia1,"^{{.-|automat=(%u+)}}$");
                if(pol2==nil)then
                     pol2=myString.match(znaczenia1,"^{{.-|automat=(%u+)|.-}}$");
               end;
               if((pol2==nil)or(pol2~="FALSE"))then
                 kod=myString.match(znaczenia1,"^{{[^|{}]+| *numeracja *=([^=|{}]+)|.-}}$");
                 if(kod~=nil)then
                             local listc={};
                             listc[1]=string.gsub(kod,"&#(%d-);", function(s) return string.char(tonumber(s)) end);
                             tabled2["Wzór"][#tabled2["Wzór"]+1]=listc;
                             if((tabled.kdist==nil)and((list==0)or((list~=0)and(pr1==false))))then tabled.kdist={nazwa_modolu, kod};end;
                 else
                    kod=myString.match(znaczenia1,"^{{[^|{}]+|.-| *numeracja *=([^=|{}]+)}}$");
                    if(kod~=nil)then
                             local listc={};
                             listc[1]=string.gsub(kod,"&#(%d-);", function(s) return string.char(tonumber(s)) end);
                             tabled2["Wzór"][#tabled2["Wzór"]+1]=listc;
                             if((tabled.kdist==nil)and((list==0)or((list~=0)and(pr1==false))))then tabled.kdist={nazwa_modolu, kod};end;
                    else
                        kod=myString.match(znaczenia1,"^{{[^|{}]+|.-| *numeracja *=([^=|{}]+)|.-}}$");
                        if(kod~=nil)then
                             local listc={};
                             listc[1]=string.gsub(kod,"&#(%d-);", function(s) return string.char(tonumber(s)) end);
                             tabled2["Wzór"][#tabled2["Wzór"]+1]=listc;
                             if((tabled.kdist==nil)and((list==0)or((list~=0)and(pr1==false))))then tabled.kdist={nazwa_modolu, kod};end;
                        else
                           kod=myString.match(znaczenia1,"{{[^|{}]+|[^|]-|([^|{}]+)}}$");
                           if(kod~=nil)then
                             local listc={};
                             listc[1]=string.gsub(kod,"&#(%d-);", function(s) return string.char(tonumber(s)) end);
                             tabled2["Wzór"][#tabled2["Wzór"]+1]=listc;
                             if((tabled.kdist==nil)and((list==0)or((list~=0)and(pr==false))))then tabled.kdist={nazwa_modolu, kod};end;
                           end;
                        end;
                    end;
                 end;
              end;
             elseif(myString.match(znaczenia1,"^{{[Ll]inkWzór|")~=nil)then
                   local plik2=myString.match(znaczenia1,"^{{[^|{}]+|[^|{}]-|([^|{}]+)}}$");
                   if(plik2~=nil)then
                          if(dec)then
                                 local tabled0=NumerWzoruIGrafiki2(tabled,plik2,false);
                                  if(tabled0~=nil) then 
                                      tabled=tabled0;
                                 else
                                       if(tabled.d["LinkWzór"]==nil)then
                                          plik2=string.gsub(plik2,"&#(%d-);",function(s) return string.char(tonumber(s)) end);
                                          plik2=myString.gsub(plik2,"_"," ");
                                          tabled.d["LinkWzór"]={};
                                          tabled.d["LinkWzór"][1]=plik2;
                                          tabled.d["LinkWzór"][2]=string.gsub(myString.match(znaczenia1,"^{{[^|{}]+|([^|{}]-)|[^|{}]+}}$"),"&#(%d-);", function(s) return string.char(tonumber(s)) end);
                                       end;   
                                 end;
                          end;
                 else
                       plik2=myString.match(znaczenia1,"^{{[^|{}]+|[^|{}]-|([^|{}]+)|.-}}$");
                       if(plik2~=nil)then
                          if(dec)then
                                 local tabled0=NumerWzoruIGrafiki2(tabled,plik2,false);
                                  if(tabled0~=nil) then 
                                      tabled=tabled0;
                                 else
                                       if(tabled.d["LinkWzór"]==nil)then
                                          plik2=string.gsub(plik2,"&#(%d-);",function(s) return string.char(tonumber(s)) end);
                                          plik2=myString.gsub(plik2,"_"," ");
                                          tabled.d["LinkWzór"]={};
                                          tabled.d["LinkWzór"][1]=plik2; 
                                          tabled.d["LinkWzór"][2]=string.gsub(myString.match(znaczenia1,"^{{[^|{}]+|([^|{}]-)|[^|{}]+|.-}}$"),"&#(%d-);", function(s) return string.char(tonumber(s)) end);
                                       end;   
                                 end;
                              end; 
                         elseif(dec)then
                            local kodr=myString.match(znaczenia1,"^{{[^|{}]+|([^|{}]-)}}$");
                            linkwzor[#linkwzor+1]=kodr;
                            if((tabled.kdist==nil)and((list==0)or((list~=0)and(pr1==false))))then tabled.kdist={nazwa_modolu, kod};end;
                          end;
                      end;
                 end;
             end;
                 if(myString.match(znaczenia1,"^{{[iI]ndexGrafika|")~=nil)then
                      local pel=myString.match(znaczenia1,"^{{[^|{}]+|[^{}|]-}}$");
                      if(pel==nil)then
                        local pel2=myString.match(znaczenia1,"^{{[^|{}]+|[^{}|]-|([^|{}]+)|[^{}|]-|automat=(%u+)}}$");
                           if(pel2==nil)then
                                pel2=myString.match(znaczenia1,"^{{[^|{}]+|[^{}|]-|([^|{}]+)|[^{}|]-|automat=(%u+)|.-}}$");
                                if(pel2==nil)then
                                      pel2=myString.match(znaczenia1,"^{{[^|{}]+|[^{}|]-|([^|{}]+)|[^{}|]-|.-|automat=(%u+)}}$");
                                      if(pel2==nil)then  
                                            pel2=myString.match(znaczenia1,"^{{[^|{}]+|[^{}|]-|([^|{}]+)|[^{}|]-|.-|automat=(%u+)|.-}}$");
                                      end;
                                end;  
                           end;
                          if((pel2==nil)or(pel2~="FALSE"))then
                              kod=myString.match(znaczenia1,"^{{[^|{}]+|[^{}|]-|([^|{}]+)|[^{}|]-}}$");
                                  if(kod==nil)then
                                      kod=myString.match(znaczenia1,"^{{[^|{}]+|[^{}|]-|([^|{}]+)|[^{}|]-|.-}}$");
                                       if(kod~=nil)then
                                            local listc={};
                                            listc[1]=string.gsub(kod,"&#(%d-);", function(s) return string.char(tonumber(s)) end);
                                            tabled2["Grafika"][#tabled2["Grafika"]+1]=listc;
                                            if((tabled.kdist==nil)and((list==0)or((list~=0)and(pr1==false)))) then tabled.kdist={nazwa_modolu, kod};end;
                                      end;
                               else
                                   local listc={};
                                   listc[1]=string.gsub(kod,"&#(%d-);", function(s) return string.char(tonumber(s)) end);
                                   tabled2["Grafika"][#tabled2["Grafika"]+1]=listc;
                                   if((tabled.kdist==nil)and((list==0)or((list~=0)and(pr1==false))))then tabled.kdist={nazwa_modolu, kod};end;
                              end;
                         end;
                   end;
               else
                 if(myString.match(znaczenia1,"^{{[Ll]inkGrafika|")~=nil)then
                   local plik2=myString.match(znaczenia1,"^{{[^|{}]+|[^|{}]-|([^|{}]-)}}$");
                   if(plik2~=nil)then
                          if(dec)then
                                  local tabled0=NumerWzoruIGrafiki2(tabled,plik2,false);
                                  if(tabled0~=nil) then 
                                          tabled=tabled0;
                                  else
                                      if(tabled.d["LinkGrafika"]==nil)then
                                        plik2=string.gsub(plik2,"&#(%d-);",function(s) return string.char(tonumber(s)) end);
                                        plik2=myString.gsub(plik2,"_"," ");
                                        tabled.d["LinkGrafika"]={};
                                        tabled.d["LinkGrafika"][1]=plik2;
                                        tabled.d["LinkGrafika"][2]=string.gsub(myString.match(znaczenia1,"^{{[^|{}]+|([^|{}]-)|[^|{}]+}}$"),"&#(%d-);", function(s) return string.char(tonumber(s)) end);
                                      end;
                                 end;
                            end;
                 else
                       plik2=myString.match(znaczenia1,"^{{[^|{}]+|[^|{}]-|([^|{}]+)|.-}}$");
                       if(plik2~=nil)then
                          if(dec)then
                                 local tabled0=NumerWzoruIGrafiki2(tabled,plik2,false);
                                 if(tabled0~=nil) then 
                                      tabled=tabled0;
                                 else
                                       if(tabled.d["LinkGrafika"]==nil)then
                                          plik2=string.gsub(plik2,"&#(%d-);",function(s) return string.char(tonumber(s)) end);
                                          plik2=myString.gsub(plik2,"_"," ");
                                          tabled.d["LinkGrafika"]={};
                                          tabled.d["LinkGrafika"][1]=plik2; 
                                          tabled.d["LinkGrafika"][2]=string.gsub(myString.match(znaczenia1,"^{{[^|{}]+|([^|{}]-)|[^|{}]+|.-}}$"),"&#(%d-);", function(s) return string.char(tonumber(s)) end);
                                       end;   
                                 end;
                            end; 
                         elseif(dec)then
                            local kodr=myString.match(znaczenia1,"^{{[^|{}]+|([^|{}]-)}}$");
                            linkgrafika[#linkgrafika+1]=kodr;
                            if((tabled.kdist==nil)and((list==0)or((list~=0)and(pr1==false))))then tabled.kdist={nazwa_modolu, kod};end;
                        end;
                end;
              end;
            end;
         end; 
    end;
   if(dec)then
    local c1=spr(tabled.d,tabled2,linkwzor,"Wzór","LinkWzór", nazwa_modolu);
     if(c1~=nil)then tabled.d=c1;end;
     local c2=spr(tabled.d,tabled2,linkgrafika,"Grafika","LinkGrafika", nazwa_modolu);
     if(c2~=nil)then tabled.d=c2;end;
   end;
   tabled.c[nazwa_modolu]={};
   tabled.c[nazwa_modolu]=tabled2;
  return tabled;
end;
function spr(tabled_d,tabled2,link_gr_wz, co1, co2, nazwa_modolu)
if(tabled_d[co2]==nil)then
     for i1, value1 in ipairs(link_gr_wz) do
       local lo=true;
       for i2, value2 in ipairs(tabled2[co1]) do
               if(link_gr_wz[i1]==tabled2[co1][i2][1])then
               	   lo=false;
                   break;
               end;
           end;
        if(lo==true)then
           tabled_d[co2]={};
           tabled_d[co2][1]=nazwa_modolu;
           tabled_d[co2][2]=link_gr_wz[i1];
           return tabled_d; 
        end;
      end;
    end;
  return nil;
end;
function NumerWzoruIGrafiki3(tabled)
                for nazwa_strony_glownej,val in pairs(tabled.list)do 
                      for i2, value2 in ipairs(tabled.list[nazwa_strony_glownej]) do
                       for nazwa_modolu, val in pairs(tabled.c) do
                          if(tabled.list[nazwa_strony_glownej][i2]==nazwa_modolu)then	 
                                tabled=spr2(tabled,nazwa_modolu,"Wzór",i2);
                                tabled=spr2(tabled,nazwa_modolu,"Grafika",i2);
      	 	             break;
      	                  end;	 
                     end;
                  end;
             end;
    return tabled;
end;
function spr2(tabled, nazwa_modolu, co, i2)
   for i, value in ipairs(tabled.c[nazwa_modolu][co]) do
        for s, value in ipairs(tabled.c[nazwa_modolu][co]) do
              if(tabled.c[nazwa_modolu][co][i][1]==tabled.c[nazwa_modolu][co][s][1])then
                    if(s==i)then
                         tabled.c[nazwa_modolu][co][i][2]=i2.."."..s;
                         break;
                    elseif(s<i)then 
                        if(tabled.d[co]==nil)then
                             tabled.d[co]={};
                             tabled.d[co][1]=nazwa_modolu;
                             tabled.d[co][2]=tabled.c[nazwa_modolu][co][i][1];
                        end;
                        break;
                    end;
               end;
          end;
      end;
   return tabled;
end;
function NumerWzoru2(frame)
 if(frame.args[3]=="FALSE") then return frame.args[2];end;
  local plik=string.gsub(frame.args[1],"&#(%d-);",function(s) return string.char(tonumber(s)) end);
  plik=string.gsub(plik,"_"," ");
  local d=mw.loadData("Moduł:StronicowyParser/data").c;
 local nam=nil;
    for nazwa_modolu, value0 in pairs(d.c) do
       if(nazwa_modolu==plik)then
           local licznik=0;
      	 	   for i, value in ipairs(d.c[nazwa_modolu]["Wzór"]) do
      	 	        if(d.c[nazwa_modolu]["Wzór"][i][1]==frame.args[2])then
                      licznik=licznik+1;
                      if(licznik==1)then nam=d.c[nazwa_modolu]["Wzór"][i][2];end;
                    end;
            end;               
                 if(licznik>1)then return nil; elseif(licznik==1)then return nam;end;                  
      end;
   end;
 return nil;
end;
function p.NumerWzoru(frame)
  if(frame.args[3]=="FALSE")then return frame.args[2];end;
  local fc=NumerWzoru2(frame);
  if(fc==nil)then  
         return "Niedopasowany uchwyt: "..frame.args[2];
  else
    return fc;
  end;
end;
function NumerGrafiki2(frame)
 if(frame.args[3]=="FALSE") then return frame.args[2];end;
  local plik=string.gsub(frame.args[1],"&#(%d-);",function(s) return string.char(tonumber(s)) end);
  plik=string.gsub(plik,"_"," ");
  local d=mw.loadData("Moduł:StronicowyParser/data").c;
 local nam=nil;
    for nazwa_modolu, value0 in pairs(d.c) do
       if(nazwa_modolu==plik)then
           local licznik=0;
      	 	   for i, value in ipairs(d.c[nazwa_modolu]["Grafika"]) do
      	 	        if(d.c[nazwa_modolu]["Grafika"][i][1]==frame.args[2])then
                      licznik=licznik+1;
                      if(licznik==1)then nam=d.c[nazwa_modolu]["Grafika"][i][2];end;
                 end;
            end;               
                 if(licznik>1)then return nil; else return nam;end;                  
      end;
   end;
 return nil;
end;
function p.NumerGrafiki(frame)
  if(frame.args[3]=="FALSE")then return frame.args[2];end;
  local fc=NumerGrafiki2(frame);
  if(fc==nil)then  
         return "Niedopasowany uchwyt: "..frame.args[2];
  else
    return fc;
  end;
end;
function p.WstawKategorie(frame)
   local d=mw.loadData('Moduł:StronicowyParser/data');
   local frame_args_1=string.gsub(frame.args[1],"&#(%d-);",function(s) return string.char(tonumber(s)) end);
   frame_args_1=string.gsub(frame_args_1,"_"," ");
   frame_args_2=string.gsub(frame.args[2],"&#(%d-);",function(s) return string.char(tonumber(s)) end);
   if(frame_args_1~="")then
   local string1="";
   	  if((frame.args[4]=="Wzór")and(d.c.d["Wzór"]~=nil))then
              if((d.c.d["Wzór"][1]==frame_args_1)and(d.c.d["Wzór"][2]==frame_args_2))then
                    string1="[[Kategoria: Wzory ze złymi uchwytami]]";
              end;
         elseif((frame.args[4]=="Grafika")and(d.c.d["Grafika"]~=nil))then
            if((d.c.d["Grafika"][1]==frame_args_1)and(d.c.d["Grafika"][2]==frame_args_2))then
                    string1="[[Kategoria: Grafiki ze złymi uchwytami]]";
    end;
       elseif((frame.args[4]=="LinkWzór")and(d.c.d["LinkWzór"]~=nil))then
            if((d.c.d["LinkWzór"][1]==frame_args_1)and(d.c.d["LinkWzór"][2]==frame_args_2))then
                    string1="[[Kategoria: Złe uchwyty do wzorów]]";
            end;
       elseif((frame.args[4]=="LinkGrafika")and(d.c.d["LinkGrafika"]~=nil))then
            if((d.c.d["LinkGrafika"][1]==frame_args_1)and(d.c.d["LinkGrafika"][2]==frame_args_2))then
                    string1="[[Kategoria: Złe uchwyty do grafik]]";                 
          end;
        end;
       if(d.c.kdist~=nil)then 
            if((d.c.kdist[1]==frame_args_1)and(d.c.kdist[2]==frame_args_2))then
                 string1=string1.."[[Kategoria: Brak spisu treści na stronie głównej książki]]";
            end;
       end;
       return string1;
    end;
end;
return p