Permanently protected module

모듈:Namespace 탐지

Module:Namespace detect

--[[ -------------------------------------------------------------------------------- --                                                                            -- - 네임스페이스 탐지 - --                                                                            -- -- 이 모듈은 루아에 {{namespace detect}} 템플릿을 구현하며 -- -- 몇 가지 개선 사항: 모든 네임스페이스 및 모든 네임스페이스 별칭이 지원됨. -- - 로컬 Wiki에 대해 네임스페이스 이름이 자동으로 탐지됨.- -- 모듈은 또한 해당 주체 네임스페이스 값이 --인 경우 사용할 수 있다. - 대화 페이지에 사용됨.매개 변수 이름은 다른 Wiki에 대해 구성할 수 있음 -- -- 의 "cfg" 표의 값을 변경하여 -- -- 모듈:네임스페이스 탐지/구성 - --                                                                            -- -------------------------------------------------------------------------------- --]]  국부적 자료 = mw.로드데이터('모듈:네임스페이스 탐지/데이터') 국부적 아그키스 = 자료.아그키스 국부적 cfg = 자료.cfg 국부적 매핑 = 자료.매핑  국부적 예스노 = 요구하다('모듈:예스노') 국부적 무어먼트 -- 모듈 초기화 지연:논쟁들 국부적 mTableTools -- Lazily 초기화 모듈:TableTools 국부적 ustringLower = mw.우스트링.더 낮게  국부적 p = {}  국부적 기능을 하다 fetchValue(t1, t2)  -- 배열 t2의 첫 번째 키에 대해 테이블 t1에서 값 가져오기  -- nil 값이 아닌 t1이 존재한다.  을 위해 i, 핵심을  아이페어(t2) 하다   국부적 가치를 매기다 = t1[핵심을]   만일 가치를 매기다 ~= 못을 박다 그때    돌아오다 가치를 매기다   종지부를 찍다  종지부를 찍다  돌아오다 못을 박다 종지부를 찍다  국부적 기능을 하다 equalArrayValue(t, 가치를 매기다)  -- 값이 배열 t의 값과 같으면 true를 반환한다.그렇지 않으면  - 거짓으로 돌려주다.  을 위해 i, 배열 값  아이페어(t) 하다   만일 가치를 매기다 == 배열 값 그때    돌아오다 진실의   종지부를 찍다  종지부를 찍다  돌아오다 거짓의 종지부를 찍다  기능을 하다 p.getPageObject(페이지를 매기다)  -- 페이지 오브젝트 가져오기, pcall을 통해 기능 전달  -- 오류(예: 값비싼 함수 개수 제한 초과)  만일 페이지를 매기다 그때   국부적 성공, pageObject = 피콜(mw.칭호를 붙이다.새로운, 페이지를 매기다)   만일 성공 그때    돌아오다 pageObject   다른    돌아오다 못을 박다   종지부를 찍다  다른   돌아오다 mw.칭호를 붙이다.getCurrentTitle()  종지부를 찍다 종지부를 찍다  -- 다른 모듈과의 역호환성을 위해 제공됨 기능을 하다 p.getParamMappings()  돌아오다 매핑 종지부를 찍다  국부적 기능을 하다 getNamespace(아그)  -- 이 함수는 페이지 개체로부터 네임스페이스 이름을 얻는다.  국부적 페이지를 매기다 = fetchValue(아그, 아그키스.감원하다)  만일 페이지를 매기다 == '' 그때   페이지를 매기다 = 못을 박다  종지부를 찍다  국부적 우주 공간의 = fetchValue(아그, 아그키스.우주 공간의)  만일 우주 공간의 == '' 그때   우주 공간의 = 못을 박다  종지부를 찍다  국부적 주제 = fetchValue(아그, 아그키스.주제)  국부적 되받아치다  만일 우주 공간의 그때   -- "우주=주"를 적절하게 처리하십시오.   만일 equalArrayValue(아그키스.본래의, ustringLower(우주 공간의)) 그때    되받아치다 = mw.사이트.네임스페이스[0].이름을 붙이다   다른    되받아치다 = 우주 공간의   종지부를 찍다  다른   국부적 pageObject = p.getPageObject(페이지를 매기다)   만일 pageObject 그때    만일 pageObject.isTalkPage 그때     -- 옵션이 설정된 경우 제목 네임스페이스를 가져오십시오.     - 그렇지 않으면 "talk"를 사용하십시오.     만일 예스노(주제) 그때      되받아치다 = mw.사이트.네임스페이스[pageObject.네임스페이스].주제.이름을 붙이다     다른      되받아치다 = '말하다'     종지부를 찍다    다른     되받아치다 = pageObject.ns텍스트    종지부를 찍다   다른    돌아오다 못을 박다 -- 페이지 개체가 존재하지 않는 경우 0을 반환하십시오.   종지부를 찍다  종지부를 찍다  되받아치다 = 되받아치다:gsub('_', ' ')  돌아오다 ustringLower(되받아치다) 종지부를 찍다  기능을 하다 p._주요(아그)  -- 매핑 테이블에 저장된 매개 변수에 일치하는 항목이 있는지 확인하십시오.  국부적 네임스페이스 = getNamespace(아그) 또는 '기타' - "기타"가 0일 테이블 키 방지  국부적 모조품 = 매핑[네임스페이스] 또는 {}  국부적 되받아치다 = fetchValue(아그, 모조품)  --[[ -- 일치하는 항목이 없으면 다른 네임스페이스에 대한 매개변수를 반환하십시오. -- 네임스페이스에 대해 지정된 텍스트가 없는 경우, -- 탐지되었거나, 우주 공간 매개변수가 유효하지 않은 경우 -- 네임스페이스.탐지된 네임스페이스에 대한 매개 변수는 다음과 같아야 함 - 이런 일이 일어나기 위해 완전히 결석한 것이지, 단순히 빈칸이 아니다. --]]  만일 되받아치다 == 못을 박다 그때   되받아치다 = fetchValue(아그, 아그키스.타사의)  종지부를 찍다  돌아오다 되받아치다 종지부를 찍다  기능을 하다 p.본래의(액자에 넣다)  무어먼트 = 요구하다('모듈:주장')  국부적 아그 = 무어먼트.게타르크스(액자에 넣다, {learblanks = 거짓의})  국부적 되받아치다 = p._주요(아그)  돌아오다 되받아치다 또는 '' 종지부를 찍다  기능을 하다 p.테이블(액자에 넣다)  --[[ -- 제목 네임스페이스 매개 변수에 대한 Wikible 만들기(대상 네임스페이스 매개 변수) -- 문서화 목적.토크 매개변수는 선택사항이며, 경우에 따라 선택 사항임 -- 설명서에서 제외할 필요가 있음. --]]    -- 모듈을 로드하고 변수를 초기화하십시오.  mTableTools = 요구하다('모듈:TableTools')  국부적 네임스페이스 = mw.사이트.네임스페이스  국부적 cfg = 자료.cfg  국부적 Talk를 사용하다 = 타자를 치다(액자에 넣다) == '테이블'    그리고 타자를 치다(액자에 넣다.아그) == '테이블'    그리고 예스노(액자에 넣다.아그.이야기를 나누다) -- talk 매개 변수를 사용할지 여부.    -- 머리글 이름을 가져오십시오.  국부적 기능을 하다 checkValue(가치를 매기다, 체납)   만일 타자를 치다(가치를 매기다) == '끈' 그때    돌아오다 가치를 매기다   다른    돌아오다 체납   종지부를 찍다  종지부를 찍다  국부적 ns헤더 = checkValue(cfg.wikableNamespaceHeader, '네임스페이스')  국부적 앨리어스헤더 = checkValue(cfg.위키피디아의앨리어스헤더, '앨리어스')   -- 네임스페이스를 순서대로 정렬하십시오.  국부적 매핑 순서 지정됨 = {}  을 위해 nsname, 모조품  쌍들(매핑) 하다   만일 Talk를 사용하다 또는 nsname ~= '말하다' 그때    국부적 엔씨드 = 네임스페이스[nsname].id    -- 1을 추가하십시오. 어레이는 1로 시작해야 하므로 nsid 0이(가) 손실됩니다.    엔씨드 = 엔씨드 + 1     매핑 순서 지정됨[엔씨드] = 모조품   종지부를 찍다  종지부를 찍다  매핑 순서 지정됨 = mTableTools.압축파스 배열(매핑 순서 지정됨)   -- 테이블을 만드십시오.  국부적 되받아치다 = '{class="probableproperty"   .. '\n-'   .. '\n! ' .. ns헤더   .. '\n! ' .. 앨리어스헤더  을 위해 i, 모조품  아이페어(매핑 순서 지정됨) 하다   을 위해 j, PARAM.  아이페어(모조품) 하다    만일 j == 1 그때     되받아치다 = 되받아치다 .. '\n-'      .. '\n<코드> .. PARAM. .. '[/code]'      .. '\n'    그렇지 않으면 j == 2 그때     되받아치다 = 되받아치다 .. '[code]' .. PARAM. .. '[/code]'    다른     되받아치다 = 되받아치다 .. ', <코드>." .. PARAM. .. '[/code]'    종지부를 찍다   종지부를 찍다  종지부를 찍다  되받아치다 = 되받아치다 .. '\n-'   .. '\n}'  돌아오다 되받아치다 종지부를 찍다  돌아오다 p