Permanently protected module

모듈: 쇼트컷

Module:Shortcut

-- 이 모듈은 {{shortcut}}을(를) 구현한다.  -- 상수 설정 국부적 CONFIG_MODUL = '모듈:바로 가기/구성'  -- 필요한 모듈 로드 국부적 체크타입 = 요구하다('libraryUtil').체크타입 국부적 예스노 = 요구하다('모듈:예스노')  국부적 p = {}  국부적 기능을 하다 메세지(음스그, ...)  돌아오다 mw.메세지.newRawMessage(음스그, ...):평이한() 종지부를 찍다  국부적 기능을 하다 makeCategoryLink(고양이를)  돌아오다 문자열.format('[%s:%s]', mw.사이트.네임스페이스[14].이름을 붙이다, 고양이를) 종지부를 찍다  기능을 하다 p._주요(지름길, 옵션들, 액자에 넣다, cfg)  체크타입('_main', 1, 지름길, '테이블')  체크타입('_main', 2, 옵션들, '테이블', 진실의)  옵션들 = 옵션들 또는 {}  액자에 넣다 = 액자에 넣다 또는 mw.getCurrentFrame()  cfg = cfg 또는 mw.로드데이터(CONFIG_MODUL)  국부적 templateMode = 옵션들.템플릿 그리고 예스노(옵션들.템플릿)  국부적 리디렉션 모드 = 옵션들.방향을 바꾸다 그리고 예스노(옵션들.방향을 바꾸다)  국부적 이카테고리화됨 = 아닌 옵션들.범주 또는 예스노(옵션들.범주) ~= 거짓의   -- 바로 가기 확인  을 위해 i, 지름길 에 아이페어(지름길) 하다   만일 타자를 치다(지름길) ~= '끈' 또는 #지름길 < 1 , 그러면.    착오(메세지(cfg['invalid-shortcut-shortcut-error'], i), 2)   종지부를 찍다  종지부를 찍다   -- 목록 항목을 만드십시오.바로 가기 키에 추가 줄 추가하기  -- options.msg.  국부적 listItems = {}  을 위해 i, 지름길 에 아이페어(지름길) 하다   국부적 템플릿 경로, 접두사를 붙이다   만일 templateMode , 그러면.    -- 네임스페이스 탐지    국부적 제목오브지 = mw.칭호를 붙이다.새로운(지름길, 10)    만일 제목오브지.네임스페이스 == 10 , 그러면.     템플릿 경로 = 제목오브지.전체 텍스트    다른     템플릿 경로 = 지름길    종지부를 찍다    접두사를 붙이다 = 옵션들['pre' .. i] 또는 옵션들.미리 또는 ''   종지부를 찍다   만일 옵션들.표적으로 삼다 그리고 예스노(옵션들.표적으로 삼다) , 그러면.    listItems[i] = templateMode     그리고 문자열.format("&#123;&#123;%s[%s %s]&#125;&#125;&#125;", 접두사를 붙이다, 템플릿 경로, 지름길)     또는 문자열.format("[%s]", 지름길)   다른    listItems[i] = 액자에 넣다:expansion템플릿{     칭호를 붙이다 = '리디렉션 없음',     아그 = templateMode 그리고 {템플릿 경로, 지름길} 또는 {지름길, 지름길}    }    만일 templateMode , 그러면.     listItems[i] = 문자열.format("&#123;&#123;%s%s&#125;&#125;&#125;", 접두사를 붙이다, listItems[i])    종지부를 찍다   종지부를 찍다  종지부를 찍다  table.insert(listItems, 옵션들.음스그)   -- 표시할 내용이 없는 경우 오류 반환  만일 #listItems < 1 , 그러면.   국부적 음스그 = cfg['내용 없음']   음스그 = 문자열.format('[strong class="strong class="strong"%s", 음스그)   만일 이카테고리화됨 그리고 cfg['무내용-유사-유사-유사'] , 그러면.    음스그 = 음스그 .. makeCategoryLink(cfg['무내용-유사-유사-유사'])   종지부를 찍다   돌아오다 음스그  종지부를 찍다   국부적 뿌리를 내리다 = mw.html.만들다()  뿌리를 내리다:위키텍스트(액자에 넣다:확장 태그{ 이름을 붙이다 = '전형적인 프리스타프리스타입니당, 아그 = { src = 'Shortcut/styles.css'} })  - 앵커  국부적 앵커디브 = 뿌리를 내리다   :꼬리표를 달다('div')    :addClass('module-shortcutchancordiv')  을 위해 i, 지름길 에 아이페어(지름길) 하다   국부적 닻을 내리다 = mw.우리당.앵커엔코드(지름길)   앵커디브:꼬리표를 달다('스팬'):동뜨다('id', 닻을 내리다)  종지부를 찍다   -- 바로 가기 제목  국부적 지름길헤딩  하다   국부적 nShortcuts = #지름길   만일 nShortcuts > 0 , 그러면.    국부적 표제Msg = 옵션들['shortcut-heading'] 또는     리디렉션 모드 그리고 cfg['redirect-heading'] 또는     cfg['shortcut-heading']    지름길헤딩 = 메세지(표제Msg, nShortcuts)    지름길헤딩 = 액자에 넣다:전처리하다(지름길헤딩)   종지부를 찍다  종지부를 찍다   -- 바로 가기 상자  국부적 바로 가기 목록 = 뿌리를 내리다   :꼬리표를 달다('div')    :addClass('noprint'-computerboxplain 평이한 목록')    :동뜨다('role', '주')  만일 옵션들.둥둥 뜨다 그리고 옵션들.둥둥 뜨다:더 낮게() == '왼쪽' , 그러면.   바로 가기 목록:addClass('좌회전제 박스')  종지부를 찍다  만일 옵션들.분명한 그리고 옵션들.분명한 ~= '' , 그러면.   바로 가기 목록:css('지우기', 옵션들.분명한)  종지부를 찍다  만일 지름길헤딩 , 그러면.   바로 가기 목록    :꼬리표를 달다('div')     :addClass('우수자 명단')     :위키텍스트(지름길헤딩)  종지부를 찍다  국부적 리스트를 작성하다 = 바로 가기 목록:꼬리표를 달다('울')  을 위해 i, 항목 에 아이페어(listItems) 하다   리스트를 작성하다:꼬리표를 달다('리'):위키텍스트(항목)  종지부를 찍다  돌아오다 토스트링(뿌리를 내리다) 종지부를 찍다  기능을 하다 p.본래의(액자에 넣다)  국부적 아그 = 요구하다('모듈:주장').게타르크스(액자에 넣다)   -- 옵션에서 바로 가기 구분  국부적 지름길, 옵션들 = {}, {}  을 위해 k, v 에 쌍들(아그) 하다   만일 타자를 치다(k) == '숫자' , 그러면.    지름길[k] = v   다른    옵션들[k] = v   종지부를 찍다  종지부를 찍다   -- Nil을 포함할 수 있는 바로 가기 배열을 압축하십시오.  국부적 기능을 하다 압축 배열(t)   국부적 숫자, 되받아치다 = {}, {}   을 위해 k 에 쌍들(t) 하다    숫자[#숫자 + 1] = k   종지부를 찍다   table.properties(숫자)   을 위해 i, 숫자 에 아이페어(숫자) 하다    되받아치다[i] = t[숫자]   종지부를 찍다   돌아오다 되받아치다  종지부를 찍다  지름길 = 압축 배열(지름길)   돌아오다 p._주요(지름길, 옵션들, 액자에 넣다) 종지부를 찍다  돌아오다 p