모듈:템플릿 호출/샌드박스
Module| 모듈 샌드박스 페이지는 다음과 같습니다.템플릿 호출(diff). 테스트 케이스에 대해서는, 부속의 서브 페이지도 참조해 주세요(실행). |
MediaWiki 템플릿 호출을 생성하기 위한 메타 모듈입니다.
사용.
먼저 모듈을 로드합니다.
현지의 템플릿호출 = 요구하다('모듈:템플릿 호출') 그런 다음 아래에 설명된 대로 개별 기능을 사용할 수 있습니다.
이름.
템플릿호출.이름.(직함) 이 함수는 템플릿 호출에 사용할 이름을 생성합니다.템플릿 네임스페이스 페이지의 경우 네임스페이스 접두사가 없는 페이지 이름을 반환하고, 메인 네임스페이스 페이지의 경우 ":"가 붙은 전체 페이지 이름을 반환하며, 다른 페이지의 경우 전체 페이지 이름을 반환합니다. title는 문자열 또는 mw.disc 오브젝트일 수 있습니다.
호출
템플릿호출.호출(이름., args, 포맷) 이 함수는 MediaWiki 템플릿 호출을 만듭니다.
파라미터:
- name - 템플릿 이름(문자열, 필수)이것은 호출에 표시되는 대로 해야 합니다.예를 들어 템플릿의 경우:예: "예"를 사용합니다.페이지 이름에서 템플릿 이름을 생성하려면 name 함수를 사용합니다.
- args - 호출에 사용하는 인수(테이블, 필수)테이블 키 및 값은 문자열 또는 숫자여야 합니다.
- format : 호출 형식(문자열, 옵션)기본값은 이스케이프되지 않은 중괄호, 파이프 및 등호 기호가 있는 일반 호출입니다.이 매개 변수가 문자열 "nowiki"인 경우, 중괄호, 파이프 및 등호 기호는 적절한 HTML 엔티티로 대체됩니다.
예
코드mTemplateInvocation.invocation('foo', {'bar', 'baz', abc = 'def'})생산하다{{foo bar baz abc=def}}.
-- 이 모듈에서는 MediaWiki 템플릿을 호출하는 기능을 제공합니다. 현지의 체크 타입 = 요구하다('라이브러리 유틸').체크 타입 현지의 p = {} ------------------------------------------------------------------------ -- 이름 : p.name --목적:페이지 이름 또는 에서 템플릿 호출 이름을 찾습니다. -- mw.disc 오브젝트. -- 설명:이 함수는 문자열 또는 mw.title 중 하나를 검출합니다. -- 객체가 전달되었으며, 이를 사용하여 다음 명령어를 찾습니다. -- 템플릿 호출에 사용되는 템플릿 이름. -- 파라미터: title :제목 - 풀페이지명 또는 mw.title 오브젝트 -- template (string 또는 mw.disc 오브젝트) -- 반환:스트링 ------------------------------------------------------------------------ 기능. p.이름.(직함) 한다면 유형(직함) == '문자열 그리고나서 직함 = 음.직함.신규(직함) 한다면 것은 아니다. 직함 그리고나서 에러("함수 'name'의 매개 변수 #1에 제목 추가", 2) 끝. 그렇지 않으면 유형(직함) ~= '테이블' 또는 유형(직함.컨텐츠의 취득) ~= '기능' 그리고나서 에러("함수 'name'의 매개 변수 #1은 문자열 또는 mw.disc 객체여야 합니다.", 2) 끝. 한다면 직함.네임스페이스 == 10 그리고나서 돌아가다 직함.본문 그렇지 않으면 직함.네임스페이스 == 0 그리고나서 돌아가다 ':' .. 직함.프리픽스본문 또 다른 돌아가다 직함.프리픽스본문 끝. 끝. ------------------------------------------------------------------------ -- 이름 : p.invocation --목적:MediaWiki 템플릿 호출을 구성합니다. -- 설명:이 함수는 에서 템플릿을 호출합니다. -- 이름 및 지정된 인수.주의: 그렇지 않습니다. --완벽하다: 공백이 무엇이었는지 알 길이 없다. -- 원래 호출에서는 지정된 파라미터는 -- 알파벳 순으로 정렬되어 있으며 중복된 키가 있는 매개 변수 --가 삭제됩니다. -- Parameters: name - 템플릿 이름, 표시되는 대로 형식 지정 --호출에 있습니다.(문자열) --args - 템플릿 인수 테이블.(표) -- format - 포맷 옵션.(문자열, 옵션) -- "nowiki"로 설정하여 이스케이프, 컬리 브레이스, 파이프 및 -- HTML 엔티티와 같은 기호입니다.디폴트 --는 이스케이프되지 않습니다. -- 반환:스트링 ------------------------------------------------------------------------ 기능. p.호출(이름., args, 포맷) 체크 타입(기동'부팅'', 1, 이름., '문자열) 체크 타입(기동'부팅'', 2, args, '테이블') 체크 타입(기동'부팅'', 3, 포맷, '문자열, 진실의) -- args 테이블을 검증하고 작업할 복사본을 만듭니다.우리는 할 필요가 있다 -- 원본을 사용하는 것이 아니라 표의 복사본을 만듭니다. -- 호출을 빌드할 때 일부 값이 지워질 수 있습니다. 현지의 인바그 = {} 위해서 k, v 에 쌍들(args) 하다 현지의 타이프 = 유형(k) 현지의 타입 V = 유형(v) 한다면 타이프 ~= '문자열 그리고. 타이프 ~= '숫자' 또는 타입 V ~= '문자열 그리고. 타입 V ~= '숫자' 그리고나서 에러(파라미터 #2의 인수테이블을 지정합니다. .. 호출(키와 값은 문자열 또는 숫자여야 함), 2) 끝. 인바그[k] = v 끝. -- 사용할 구분자를 가져옵니다. 현지의 셉스 = { 열리다 = '{{', 닫다 = '}}', 파이프 = ' ', 동등. = '=' } 한다면 포맷 == '노우키 그리고나서 위해서 k, v 에 쌍들(셉스) 하다 셉스[k] = 음.본문.노우키(v) 끝. 끝. -- 먼저 arg를 번호가 매겨진 호출 본문을 작성한 후 이름을 붙입니다. 현지의 리트 = {} 리트[#리트 + 1] = 셉스.열리다 리트[#리트 + 1] = 이름. 위해서 k, v 에 아이페어(인바그) 하다 한다면 유형(v) == '문자열 그리고. v:발견하다('=', 1, 진실의) 그리고나서 -- 1=foo=bar와 같이 이름 있는 arg로 해야 합니다. 브레이크. 끝. 리트[#리트 + 1] = 셉스.파이프 리트[#리트 + 1] = v 인바그[k] = 제로 -- 값을 두 번 추가하지 않도록 키를 지웁니다. 끝. 현지의 invArgs_list = {} -- 파라미터 목록 정렬. 무작위로 정렬된 출력보다 선호됩니다. 위해서 k, v 에 쌍들(인바그) 하다 invArgs_list[#invArgs_list + 1] = 스트링(k) 끝. table.displaces(invArgs_list) 위해서 i, v 에 아이페어(invArgs_list) 하다 -- 정렬된 매개 변수 목록을 기반으로 이름 있는 arg 추가 리트[#리트 + 1] = 셉스.파이프 리트[#리트 + 1] = v 리트[#리트 + 1] = 셉스.동등. 리트[#리트 + 1] = 인바그[v] 끝. 리트[#리트 + 1] = 셉스.닫다 돌아가다 table.concat(리트) 끝. 돌아가다 p