Permanently protected module

모듈:템플릿 데이터 포맷

Module

현지의 템플릿 데이터 = { 스위트  = "템플릿 데이터",                        시리얼 = "2022-03-10",                        아이템   = 46997995 } --[==[ 템플릿 개선:템플릿 데이터 ]==] 현지의 페일 세이프 = 템플릿 데이터   현지의 설정 = {     -- 고유한 내부 필드에 매핑된 여러 옵션 이름     기본 Cnf = { 고양이 문제          = "실패",                  class Multi Columns   = "셀 멀티클롬",                  클래스 번호TOC       = "이러한 것은,TOCNum",                  클래스 테이블          = "클래스 테이블",                  cssParWrap          = "css Tab Wrap",                  css패럴           = "css 테이블",                  docpage Create(작성)       = "실패",                  docpageDetect(검출)       = "서브 페이지,                  헬프부리안         = "서포트 4개",                  도움말 콘텐츠         = "support4 콘텐츠",                  help Date(도움말 날짜)            = "support4date",                  도움말 파일            = "support4file-name",                  도움말 포맷          = "지원 포맷",                  헬프라인            = "서포트4라인",                  도움말 번호          = "support4 number",                  도움말 페이지            = "support4dl-page-name",                  도움말 문자열          = "support4string",                  도움말 템플릿        = "support4support-support-name",                  도움말 URL             = "support4url",                  도움말 사용자            = "support4support-user-name",                  msgDescMiss         = "실패",                  TStyles TOCnum       = "스타일 TOCnum",                  tStyles Multi Columns(멀티 컬럼) = "스타일 멀티클림" },     클래스 테이블     = { "불가침" },    -- params 테이블의 클래스     debug multilang = "C0C0C0",     시끄럽게         = 거짓의,    -- show exported element 등     단독의           = 거짓의,    -- 설명 누락에 대한 불만     이상하다        = 거짓의,    -- 유지보수 카테고리의 제목     css 테이블       = 거짓의,    -- params 테이블의 스타일     css Tab 랩     = 거짓의,    -- params 테이블 래퍼 스타일     디버깅          = 거짓의,     서브 페이지        = 거짓의,    -- 서브페이지를 식별하는 패턴     접미사         = 거짓의,    -- 서브페이지 작성 스킴     진압하다TOCNum = 거짓의,    -- TOC 번호 억제를 위한 클래스     json 디버깅      = "json-code-displicate"    -- jsonDebug 툴 클래스 } 현지의 데이터. = {     나누다     = 거짓의,    -- <div class="mw-contentatedata-doc-doc-timeout">     얻었다     = 거짓의,    -- 테이블, 초기 템플리타 오브젝트     상속인   = 거짓의,    -- 테이블, 상속되는 파라미터     뛰어내리다    = 거짓의,    -- 「패럴」의 말미에 있는 소스 위치     더 적은    = 거짓의,    -- 메인 설명이 없습니다.     영속적인 = 거짓의,    -- 오래된 구문이 발견되었습니다.     게으른    = 거짓의,    -- doc 모드. 유효 <인증 완료>는 생성하지 않습니다.     이끄는 = 거짓의,    -- TOC 표시 -- low = false, -- 1 = 모드     주문   = 거짓의,    -- 파라미터 시퀀스     파라미터  = 거짓의,    -- 테이블, 내보낸 파라미터     비명을 지르다  = 거짓의,    -- 에러 메시지     형제 = 거짓의,    -- TOC 병치     속어.   = 제로,      -- 프로젝트/사용자 언어 코드     날씬한    = 거짓의,    -- JSON은 보통으로 축소되었습니다.     원천  = 거짓의,    -- JSON 입력     벗다   = 거짓의,    -- <명확한> 평가     태그     = 거짓의,    -- 테이블, 내보낸 루트 요소     직함   = 거짓의,    -- 페이지     트리    = 거짓의     -- 테이블, 다시 작성된 템플리타 오브젝트 } 현지의 허용하다 = {     빌더 = { 끝나고           = '블록",                 정렬하다           = '블록",                 블록           = '블록",                 압축된      = '블록",                 조밀.           = '블록",                 그룹화된         = "실패",                             = "실패",                 들여쓰다          = '블록",                 인라인          = "실패",                 지난            = '블록",                 이끌다            = '블록",                 줄바꿈        = "*",                 간격을 두었다          = "실패" },     색채  = { bg          = "FFFF",                 fg          = "000000",                 테이블 헤드 = "B3B7FF",                 필수의    = "EAF3FF",                 제안된   = "FFFF",                 선택적.    = "EAECF0",                 권장되지 않다  = "FFCBCB" },     파라미터  = { 에일리어스         = "테이블",                 자동값       = "문자열',                 체납         = 스트링 테이블 I18N 노비키,                 권장되지 않다      = "부울 현 I18N",                 묘사     = "스트링 테이블 I18N",                          = 스트링 테이블 I18N 노비키,                 라벨.           = "스트링 테이블 I18N",                 상속하다        = "문자열',                 필수의        = "실패",                 스타일.           = "문자열 테이블",                 제안된       = "실패",                 제안치 = "문자열 테이블 번호 boolean,                 유형            = "문자열' },     뿌리    = { 묘사 = "스트링 테이블 I18N",                 포맷      = "문자열',                 지도        = "테이블",                 파라미터      = "테이블",                 param Order(파라미터 순서)  = "테이블",                 놓다        = "테이블" },     서치  = [{,]%s*([')\"]) %s%%%%s*:%s*%%%{",     종류들   = { 부울                   = 진실의,                 내용                   = 진실의,                 날짜.                      = 진실의,                                       = 진실의,                 번호                    = 진실의,                 스트링                    = 진실의,                 알 수 없는                   = 진실의,                 url                       = 진실의,                 ["filename-file-name"]        = 진실의,                 ["filen-page-name"]        = 진실의,                 ["filename-filename"]    = 진실의,                 ["사용자 이름"]        = 진실의,                 ["불균형"]   = 진실의,                 ["문자열/행"]           = 회선,                 ["string/http-page-name"] = "filen-page-name",                 ["string/syslog-user-name"] = "사용자 이름" } }    현지의 기능. 결함.( 경계. )     -- 오류 메시지 기억하기     -- 파라미터:     -- alert -- 문자열, 오류 메시지     한다면 데이터..비명을 지르다 그리고나서         데이터..비명을 지르다 = string.format( %s *** %s, 데이터..비명을 지르다, 경계. )     또 다른         데이터..비명을 지르다 = 경계.     끝. 끝. -- 장애()    현지의 기능. 가지고 오다( 물어보다, 허락하다 )     -- 모듈을 가져옵니다.     -- 파라미터:     -- ask -- 문자열, 이름 포함     -- "/global"     -- "JSONutil"     -- "다국어"     -- "텍스트"     -- "윙크"     -- allow -- true: 사용할 수 없는 경우 오류 없음     -- 모듈 테이블을 반환합니다.     -- 오류: 모듈을 사용할 수 없습니다.     현지의 서명하다 = 물어보다     현지의 r, 줄기.     한다면 서명하다:후보선수( 1, 1 ) == "/" 그리고나서         서명하다 = 템플릿 데이터.:getTitle(제목)() .. 서명하다     또 다른         줄기. = 서명하다         서명하다 = "모듈:" .. 줄기.     끝.     한다면 템플릿 데이터.외부 그리고나서         r = 템플릿 데이터.외부[ 서명하다 ]     또 다른         템플릿 데이터.외부 = { }     끝.     한다면 것은 아니다. r 그리고나서         현지의 행운의, g = pcall( 요구하다, 서명하다 )         한다면 유형( g ) == "테이블" 그리고나서             한다면 줄기.  그리고.  유형( g[ 줄기. ] ) == "기능' 그리고나서                 r = g[ 줄기. ]()             또 다른                 r = g             끝.             템플릿 데이터.외부[ 서명하다 ] = r         그렇지 않으면 것은 아니다. 허락하다 그리고나서             에러( string.format( "%s(%s) %s을(Fetch(%s), 서명하다, g ), 0 )         끝.     끝.     돌아가다 r 끝. -- Fetch()    현지의 기능. 외국의()     --인간의 언어를 추측하다     -- 은어를 반환하거나 반환하지 않습니다.     한다면 유형( 데이터..속어. ) == "실패" 그리고나서         현지의 다국어 = 가지고 오다( "다국어", 진실의 )         한다면 다국어  그리고.            유형( 다국어.userLangCode(사용자랑코드) ) == "기능' 그리고나서             데이터..속어. = 다국어.userLangCode(사용자랑코드)()         또 다른             데이터..속어. = .언어.get Content Language(get Content Language)():get 코드()                                                          :더 낮게()         끝.     끝.     한다면 데이터..속어.  그리고.        .스트링.코드 포인트( 데이터..속어., 1, 1 ) > 122 그리고나서         데이터..속어. = 거짓의     끝.     돌아가다 데이터..속어. 끝. --외국어()    현지의 기능. ( 물어보다,  )     -- JSON에서 파라미터 정의의 물리적인 위치를 찾습니다.     -- 파라미터:     -- ask -- 문자열, 파라미터 이름     ----번호, 정의 내의 물리적인 위치     -- 숫자 또는 0을 반환합니다.     현지의 추구한다. = string.format( 허용하다.서치,                                 물어보다:서브( "%%", "%%%%" )                                    :서브( "([%-.()+*?^$%[%]])",                                           "%%%1" ) )     현지의 i, k, r, 조각을 내라, 원천     한다면 것은 아니다. 데이터..뛰어내리다 그리고나서         데이터..뛰어내리다 = 데이터..원천:발견하다( "패럴", 2 )         한다면 데이터..뛰어내리다 그리고나서             데이터..뛰어내리다 = 데이터..뛰어내리다 + 7         또 다른             데이터..뛰어내리다 = 1         끝.     끝.     i, k = 데이터..원천:발견하다( 추구한다.,   + 데이터..뛰어내리다 )     하는 동안에 i  그리고.  것은 아니다. r 하다         원천 = 데이터..원천:후보선수( k + 1 )         조각을 내라  = 원천:경기( "^%s*\"([^\"]+)\"s*: )         한다면 것은 아니다. 조각을 내라 그리고나서             조각을 내라 = 원천:경기( "^%s*"([^']+"%s*": )         끝.         한다면 ( 조각을 내라 그리고. 허용하다.파라미터[ 조각을 내라 ] )   또는            원천:경기( "^%s*%" ) 그리고나서             r = k         또 다른             i, k = 데이터..원천:발견하다( 추구한다.,  k )         끝.     끝.    --그동안 나는     돌아가다 r 끝. --facet()    현지의 기능. 시설.( 적용합니다. )     -- 제안된 값의 세부 정보를 가져옵니다.     -- 파라미터:     -- apply -- 플레인 또는 확장 값을 가진 테이블     -- .table values -- 테이블 문자열 번호 이상     -- 반환     -- 1 -- 테이블, 제안값 포함     -- 2 -- 테이블, CSS 맵 포함 여부     -- 3 -- 문자열, 클래스 포함 여부     -- 4 -- 문자열, 템플리트 스타일 사용 여부     현지의 요소들 = 적용합니다..제안치     현지의 s        = 유형( 요소들 )     현지의 r1, r2, r3, r4     한다면 s == "테이블" 그리고나서         현지의 가치 = 요소들.가치         한다면 유형( 가치 ) == "테이블" 그리고나서             r1 = 가치             한다면 유형( 요소들.스크롤 ) == "문자열' 그리고나서                 r2 = r2  또는  { }                 r2.높이   = 적용합니다..스크롤                 r2.오버 플로 = "자동"             끝.             한다면 유형( 요소들.최소 폭 ) == "문자열' 그리고나서                 현지의 s = 유형( 요소들.최대 열 )                 r2 = r2  또는  { }                 r2["컬럼 폭"] = 요소들.최소 폭                 한다면 s == "문자열'  또는                    s == "숫자" 그리고나서                     s = 스트링( 요소들.최대 열 )                     r2["컬럼 카운트"] = s                 끝.                 한다면 유형( 설정.셀멀티클롬 ) == "문자열' 그리고나서                     r3 = 설정.셀멀티클롬                 끝.                 한다면 유형( 설정.styles MultClm ) == "문자열' 그리고나서                     현지의 src = 설정.styles MultClm .. "/styles.css"                     r4 = 템플릿 데이터.                                      :확장 태그( '패턴 스타일',                                                     제로,                                                     { src = src } )                 끝.             끝.         그렇지 않으면 요소들  그리고.  요소들 ~= "" 그리고나서             r1 = 요소들         끝.     그렇지 않으면 s == "문자열' 그리고나서         s = .본문.다듬다( 대해서 )         한다면 s ~= "" 그리고나서             r1 = { }             table.insert( r1,                           { 코드 = s } )         끝.     그렇지 않으면 s == "숫자" 그리고나서         r1 = { }         table.insert( r1,                       { 코드 = 스트링( 요소들 ) } )     끝.     돌아가다 r1, r2, r3, r4 끝. -- 퍼실리티스()    현지의 기능. 공장 ( 적응하다 )     -- 시스템 메시지에서 현지화된 텍스트를 가져옵니다.     -- 파라미터:     -- adapt -- 문자열, "templatedata-" 뒤에 메시지 ID가 표시됩니다.     -- 현지화된 텍스트를 포함한 문자열을 반환합니다.     현지의 o = .메세지.신규( "인증된 데이터" .. 적응하다 )     한다면 외국의() 그리고나서         o:언어 사용 안 함( 데이터..속어. )     끝.     돌아가다 o:평지() 끝. -- factory()    현지의 기능. 교수진( 조정한다. )     -- 부울 테스트템플릿 arg     -- adjust -- 문자열 또는 제로     -- 부울을 반환합니다.     현지의 s = 유형( 조정한다. )     현지의 r     한다면 s == "문자열' 그리고나서         r = .본문.다듬다( 조정한다. )         r = ( r ~= ""  그리고.  r ~= "0" )     그렇지 않으면 s == "실패" 그리고나서         r = 조정한다.     또 다른         r = 거짓의     끝.     돌아가다 r 끝. --교직원()    현지의 기능. 실패.()     -- 에러 수집과 카테고리를 취득합니다.     -- 문자열을 반환합니다.     현지의 r     한다면 데이터..비명을 지르다 그리고나서         현지의 e = .html.만들다( "스판" )                          :클래스 추가( "에러" )                          :위키텍스트( 데이터..비명을 지르다 )         r = 스트링( e )         .경고 추가( "'템플릿 데이터'"<br />" .. 데이터..비명을 지르다 )         한다면 설정.이상하다 그리고나서             r = string.format( %s(카테고리:%s]),                                r,                                설정.이상하다 )         끝.     또 다른         r = ""     끝.     돌아가다 r 끝. --failures()    현지의 기능. 공정한( 조정한다. )     -- 텍스트를 일반 텍스트의 한 줄로 줄이거나 Wikitext 블록을 내보내지 않습니다.     -- adjust -- 문자열     -- 텍스트를 수정한 문자열을 반환합니다.     현지의 f    = 기능. ( a )                      돌아가다 a:서브( %s*\n%s*", " " )                              :서브( %s%s+, " " )                  끝.     현지의 태그 = { { 개시하다 = "<no export>",                      이제 그만  = "</no export>" },                    { 개시하다 = "<내보내기 전용>",                      이제 그만  = "</export only>",                      l     = 거짓의 }                  }     현지의 r = 조정한다.     현지의 i, j, k, s, 태그     위해서 m = 1, 2 하다         태그 = 태그[ m ]         한다면 r:발견하다( 태그.개시하다, 1, 진실의 ) 그리고나서             s     = r             r     = ""             i     = 1             태그.l = 진실의             j, k  = s:발견하다( 태그.개시하다, i, 진실의 )             하는 동안에 j 하다                 한다면 j > 1 그리고나서                     r = r .. f( s:후보선수( i,  j - 1 ) )                 끝.                 i    = k + 1                 j, k = s:발견하다( 태그.이제 그만, i, 진실의 )                 한다면 j 그리고나서                     한다면 m == 1 그리고나서                         r = r .. s:후보선수( i,  j - 1 )                     끝.                     i    = k + 1                     j, k = s:발견하다( 태그.개시하다, i, 진실의 )                 또 다른                     결함.( "이러한" .. 태그.이제 그만 )                 끝.             끝.    -- 한편 j             r = r .. s:후보선수( i )         그렇지 않으면 m == 1 그리고나서             r = f( r )         끝.     끝. -- m의 경우     한다면 태그[ 2 ].l 그리고나서         r = r:서브( "<export only >.*</export only>", "" )     끝.     돌아가다 r 끝. -- fair()    현지의 기능. 멋지다( 발전, 경계. )     -- JSON 소스 표시     -- 파라미터:     --어드밴스 --맞아, 좋은 걸 위해서     -- alert -- true, 표시용     -- 문자열을 반환합니다.     현지의 r     한다면 데이터..원천 그리고나서         현지의 지지하다 = 설정.json 디버깅         현지의 css         한다면 발전 그리고나서             css = { 높이 = "6em",                     크기 조정 = "실패" }             r   = { [ 1 ] = "하이라이트 표시",                     [ 2 ] = 데이터..원천,                     언어  = "json",                     스타일. = table.concat( css, ";" ) }             한다면 경계. 그리고나서                 r.학급( 지지하다 )             끝.             r = 템플릿 데이터.:callParser 기능( "#태그", r )         또 다른             css = { [ "크기" ]   = "77%",                     [ "라인 하이트" ] = "1.35" }             한다면 경계. 그리고나서                 css.크기 조정 = "실패"             또 다른                 css.표시 = "없음"             끝.             r = .html.만들다( "예비" )                        :클래스 추가( 지지하다 )                        :css( css )                        :위키텍스트( .본문.부호화( 데이터..원천 ) )             r = 스트링( r )         끝.         r = "\n".. r     또 다른         r = ""     끝.     돌아가다 r 끝. --fancy()    현지의 기능. 아득히( 대체 수단 )     -- 다국어 텍스트에서 최적의 언어 버전 검색     -- 파라미터:     -- 대체안 -- 테이블, 평가 대상     -- 반환     -- 1 -- 스트링, 베스트 매치     -- 2 -- 다른 버전의 표(있는 경우)     현지의 n = 0     현지의 변종 = { }     현지의 r1, r2     위해서 k, v  쌍들( 대체 수단 ) 하다         한다면 유형( v ) == "문자열' 그리고나서             v = .본문.다듬다( v )             한다면 v ~= ""  그리고.  유형( k ) == "문자열' 그리고나서                 k = k:더 낮게()                 변종[ k ] = v                 n             = n + 1             끝.         끝.     끝. -- k, v의 경우     한다면 n > 0 그리고나서         현지의 다국어 = 가지고 오다( "다국어", 진실의 )         한다면 다국어  그리고.            유형( 다국어.18n ) == "기능' 그리고나서             현지의 표시하다, 속어. = 다국어.18n( 변종 )             한다면 표시하다 그리고나서                 r1 = 표시하다                 변종[ 속어. ] = 제로                 r2 = 변종             끝.         끝.         한다면 것은 아니다. r1 그리고나서             외국의()             위해서 k, v  쌍들( 변종 ) 하다                 한다면 n == 1 그리고나서                     r1 = v                 그렇지 않으면 데이터..속어. == k 그리고나서                     변종[ k ] = 제로                     r1 = v                     r2 = 변종                 끝.             끝. -- k, v의 경우         끝.         한다면 r2 그리고. 다국어 그리고나서             위해서 k, v  쌍들( r2 ) 하다                 한다면 v  그리고.  것은 아니다. 다국어.( k, 진실의 ) 그리고나서                     결함.( string.format( %s <code> syslog=%s </code>,                                           "유효하지않음,                                           k ) )                 끝.             끝. -- k, v의 경우         끝.     끝.     돌아가다 r1, r2 끝. -- farway()    현지의 기능. 정형화된( 대해서, 물었다, 할당하다 )     -- 설명 헤드 작성     -- 파라미터:     -- about -- 테이블, 설명을 포함해야 합니다.     --squested --설명 필수인 경우 true     -- <block>을 할당합니다(장착하는 경우).     -- 헤드 또는 제로와 함께 <block>을 반환합니다.     현지의 패러 = 할당하다 또는 .html.만들다( "div" )     현지의 플러스, r     한다면 대해서 그리고. 대해서.묘사 그리고나서         한다면 유형( 대해서.묘사 ) == "문자열' 그리고나서             패러:위키텍스트( 대해서.묘사 )         또 다른             패러:위키텍스트( 대해서.묘사[ 1 ] )             플러스 = .html.만들다( '음' )             플러스:css( "텍스트 정렬", "왼쪽 )             위해서 k, v  쌍들( 대해서.묘사[ 2 ] ) 하다                 플러스:노드( .html.만들다( '리' )                                   :노드( .html.만들다( "코드" )                                                 :위키텍스트( k ) )                                   :노드( .html.만들다( "br" ) )                                   :위키텍스트( 공정한( v ) ) )             끝. -- k, v의 경우             한다면 설정.시끄럽게 그리고나서                 플러스 = .html.만들다( "div" )                               :css( "배경색",                                     "#" .. 설정.debug multilang )                               :노드( 플러스 )             또 다른                 플러스:클래스 추가( "검증 완료" )                     :css( "디스플레이", "없음" )             끝.         끝.     그렇지 않으면 설정.단독의 그리고. 물었다 그리고나서         패러:클래스 추가( "에러" )             :위키텍스트( 설정.단독의 )         데이터..더 적은 = 진실의     또 다른         패러 = 거짓의     끝.     한다면 패러 그리고나서         한다면 플러스 그리고나서             r = .html.만들다( "div" )                        :노드( 패러 )                        :노드( 플러스 )         또 다른             r = 패러         끝.     끝.     돌아가다 r 끝. --formed()    현지의 기능. 살찌다( 접근 )     -- 하위 제목에 대한 표 행을 작성합니다.     -- 파라미터:     -- access -- 문자열(이름 포함     -- <tr>를 반환합니다.     현지의 PARAM.     = 데이터..트리.파라미터[ 접근 ]     현지의 후보선수, 종류 = 접근:경기( "(=+)%s*(%S.*)$" )     현지의 표제  = .html.만들다( string.format( "h%d", #후보선수 ) )     현지의 r         = .html.만들다( "tr" )     현지의 td        = .html.만들다( "실패" )                              :특성( "colspan", "5" )                              :특성( "data-param-value",  "!" .. 종류 )     현지의 s     한다면 PARAM..스타일. 그리고나서         s = 유형( PARAM..스타일. )         한다면 s == "테이블" 그리고나서             td:css( PARAM..스타일. )         그렇지 않으면 s == "문자열' 그리고나서             td:css텍스트( PARAM..스타일. )         끝.     끝.     s = 정형화된( PARAM., 거짓의, 표제 )     한다면 s 그리고나서         표제 = s     또 다른         표제:위키텍스트( 종류 )     끝.     td:노드( 표제 )     r:노드( td )     돌아가다 r 끝. --살찐()    현지의 기능. 아버지들()     -- 상속된 값과 매개 변수 병합     현지의 n = 0     현지의 p = 데이터..파라미터     현지의 t = 데이터..트리.파라미터     현지의 p2, t2     위해서 k, v  쌍들( 데이터..상속인 ) 하다         n = n + 1     끝. -- k, v의 경우     위해서 i = 1, n 하다         한다면 데이터..상속인 그리고나서             위해서 k, v  쌍들( 데이터..상속인 ) 하다                 한다면 v  그리고.  것은 아니다. 데이터..상속인[ v ] 그리고나서                     n               = n - 1                     t[ k ].상속하다 = 제로                     데이터..상속인[ k ] = 제로                     p2              = { }                     t2              = { }                     한다면 p[ v ] 그리고나서                         위해서 k2, v2  쌍들( p[ v ] ) 하다                             p2[ k2 ] = v2                         끝. -- k2, v2의 경우                         한다면 p[ k ] 그리고나서                             위해서 k2, v2  쌍들( p[ k ] ) 하다                                 한다면 유형( v2 ) ~= "실패" 그리고나서                                     p2[ k2 ] = v2                                 끝.                             끝. -- k2, v2의 경우                         끝.                         p[ k ] = p2                         위해서 k2, v2  쌍들( t[ v ] ) 하다                             t2[ k2 ] = v2                         끝. -- k2, v2의 경우                         위해서 k2, v2  쌍들( t[ k ] ) 하다                             한다면 유형( v2 ) ~= "실패" 그리고나서                                 t2[ k2 ] = v2                             끝.                         끝. -- k2, v2의 경우                         t[ k ] = t2                     또 다른                         결함.( 상속받는 매개 변수 없음[] .. v )                     끝.                 끝.             끝. -- k, v의 경우         끝.     끝. -- i = 1, n     한다면 n > 0 그리고나서         현지의 s         위해서 k, v  쌍들( 데이터..상속인 ) 하다             한다면 v 그리고나서                 한다면 s 그리고나서                     s = string.format( %s &quot; %s, s, k )                 또 다른                     s = "순환 상속: " .. k                 끝.             끝.         끝. -- k, v의 경우         결함.( s )     끝. 끝. --아버지()    현지의 기능. 편애하다()     -- 로컬 커스터마이즈 문제     현지의 불이 붙다  = { ["크기"] = "125%" }     현지의 l, cx = pcall( .로드 데이터,                          템플릿 데이터.:getTitle(제목)() .. "/config" )     현지의 스크립트 작성, 스타일.     템플릿 데이터.ltr = 것은 아니다. .언어.get Content Language(get Content Language)():RTL()     한다면 템플릿 데이터.ltr 그리고나서         스크립트 작성 = "왼쪽     또 다른         스크립트 작성 = "올바른"     끝.     불이 붙다[ "어느 쪽인가" .. 스크립트 작성 ] = '3em'     허용하다.불이 붙다 = { [거짓의] = { css  = 불이 붙다,                                  이끌다 = 진실의,                                  표시하다 = "&#x2610;" },                      [진실의]  = { css  = 불이 붙다,                                  이끌다 = 진실의,                                  표시하다 = "&#x2611;" } }     허용하다.css   = { }     위해서 k, v  쌍들( 허용하다.색채 ) 하다         한다면 k == "테이블 헤드" 그리고나서             k = "테이블헤드"         끝.         한다면 k == "fg" 그리고나서             스타일. = "컬러"         또 다른             스타일. = "배경색"         끝.         허용하다.css[ k ] = { }         허용하다.css[ k ][ 스타일. ] = "#" .. v     끝. -- k, v의 경우     한다면 유형( cx ) == "테이블" 그리고나서         현지의 c, s         한다면 유형( cx.허용하다 ) == "테이블" 그리고나서             한다면 유형( cx.허용하다.불이 붙다 ) == "테이블" 그리고나서                 한다면 유형( cx.허용하다.불이 붙다[ 진실의 ] ) == "테이블" 그리고나서                     허용하다.불이 붙다[ 거짓의 ]  = cx.허용하다.불이 붙다[ 거짓의 ]                 끝.                 한다면 유형( cx.허용하다.불이 붙다[ 진실의 ] ) == "테이블" 그리고나서                     허용하다.불이 붙다[ 진실의 ]  = cx.허용하다.불이 붙다[ 진실의 ]                 끝.             끝.             한다면 유형( cx.허용하다.css ) == "테이블" 그리고나서                 위해서 k, v  쌍들( cx.허용하다.css ) 하다                     한다면 유형( v ) == "테이블" 그리고나서                         허용하다.css[ k ] = v                     끝.                 끝. -- k, v의 경우             끝.         끝.         위해서 k, v  쌍들( 설정.기본 Cnf ) 하다             s = 유형( cx[ k ] )             한다면 s == "문자열'  또는  s == "테이블" 그리고나서                 설정[ v ] = cx[ k ]             끝.         끝. -- k, v의 경우     끝.     한다면 유형( 설정.서브 페이지 ) ~= "문자열'  또는        유형( 설정.접미사 ) ~= "문자열' 그리고나서         현지의 얻었다 = .메세지.신규( "containatedata-doc-subpage" )         현지의 접미사         한다면 얻었다:is Disabled(사용 안 함)() 그리고나서             접미사 = "doc"         또 다른             접미사 = 얻었다:평지()         끝.         한다면 유형( 설정.서브 페이지 ) ~= "문자열' 그리고나서             설정.서브 페이지 = string.format( "/%s$", 접미사 )         끝.         한다면 유형( 설정.접미사 ) ~= "문자열' 그리고나서             설정.접미사 = string.format( %%s/%s, 접미사 )         끝.     끝. 끝. --favorize()    현지의 기능. 실현 가능한( 모든., , 대해서 )     -- 파라미터 내에서 제안된 값을 처리합니다.     -- 파라미터:     -- all -- 파라미터 상세     -- .디폴트     -- .type     -- at -- 문자열, 파라미터 이름 포함     --제안값 --표,     --값과 가능한 설명     -- 테이블에는 다음과 같은 요소가 있습니다.     -- .code --필수     -- .label --테이블 문자열     -- .support --테이블 문자열     -- .icon -- 문자열     -- .class -- 테이블 문자열     -- .css -- 테이블     -- .style -- 문자열     -- .less -- true : suppress 코드     -- 반환     -- 1: mw.120 오브젝트 <ul>     -- 2: 값이 있는 시퀀스테이블 또는 0     현지의 h = { }     현지의 e, r1, r2, s, v     한다면 #대해서 > 0 그리고나서         위해서 i = 1, #대해서 하다             e = 대해서[ i ]             s = 유형( e )             한다면 s == "테이블" 그리고나서                 한다면 유형( e.코드 ) == "문자열' 그리고나서                     s = .본문.다듬다( e.코드 )                     한다면 s == "" 그리고나서                         e = 제로                     또 다른                         e.코드 = s                     끝.                 또 다른                     e = 제로                     s = string.format( "패럴.%s.%s[%d]%s",                                        ,                                        "값",                                        i,                                        "'코드:' 누락" )                 끝.             그렇지 않으면 s == "문자열' 그리고나서                 s = .본문.다듬다( e )                 한다면 s == "" 그리고나서                     e = 제로                     s = string.format( "패럴.%s.%s[%d] 비었다",                                        , "값", i )                     결함.( s )                 또 다른                     e = { 코드 = s }                 끝.             그렇지 않으면 s == "숫자" 그리고나서                 e = { 코드 = 스트링( e ) }             또 다른                 s = string.format( "패럴.%s.%s[%d] 무효",                                    , "값", i )                 결함.( s )                 e = 거짓의             끝.             한다면 e 그리고나서                 v = v  또는  { }                 table.insert( v, e )                 한다면 h[ e.코드 ] 그리고나서                     s = string.format( "패럴.%s.%s 반복 %s",                                        ,                                        "값",                                        e.코드 )                     결함.( s )                 또 다른                     h[ e.코드 ] = 진실의                 끝.             끝.         끝. -- i의 경우     또 다른         결함.( string.format( "패럴.%s.svalues %s",                               , "어레이가 아니다" ) )     끝.     한다면 v 그리고나서         현지의 코드, d, k, 더 적은, 이야기, 재빠르다, t, u         r1 = .html.만들다( '음' )         r2 = { }         위해서 i = 1, #v 하다             u = .html.만들다( '리' )             e = v[ i ]             table.insert( r2, e.코드 )             이야기 = 거짓의             더 적은  = ( e.더 적은 == 진실의 )             한다면 것은 아니다. 더 적은 그리고나서                 재빠르다 = e.코드                 한다면 e.지지하다 그리고나서                     현지의 비명을 지르다, 지지하다                     s = 유형( e.지지하다 )                     한다면 s == "문자열' 그리고나서                         지지하다 = e.지지하다                     그렇지 않으면 s == "테이블" 그리고나서                         지지하다 = 아득히( e.지지하다 )                     또 다른                         비명을 지르다 = "무효"                     끝.                     한다면 지지하다 그리고나서                         s = .본문.다듬다( 지지하다 )                         한다면 s == "" 그리고나서                             비명을 지르다 = "비었다"                         그렇지 않으면 s:발견하다( [%[%] % <%> ) 그리고나서                             비명을 지르다 = "부정한 페이지"                         또 다른                             지지하다 = s                         끝.                     끝.                     한다면 비명을 지르다 그리고나서                         s = string.format( "패럴.%s.%s[%d]%s 지원",                                            ,                                            "값",                                            i,                                            비명을 지르다 )                         결함.( s )                     또 다른                         재빠르다 = string.format( "[:%s %s]",                                                지지하다, 재빠르다 )                     끝.                 끝.                 한다면 모든..유형:후보선수( 1, 5 ) == "어느 쪽인가"  그리고.                    재빠르다 == e.코드 그리고나서                     현지의  = { 파일 = 6,                                     임시직 = 10,                                     유저 = 2 }                     현지의 ns = [ 모든..유형:후보선수( 6, 9 ) ]  또는  0                     t = .직함.make Title(메이크 타이틀)( ns, 재빠르다 )                     한다면 t 그리고. t.존재한다 그리고나서                         재빠르다 = string.format( "[:%s %s]",                                                t.프리픽스본문, 재빠르다 )                     끝.                 끝.                 한다면 e.코드 == 모든..체납 그리고나서                     k = 800                 또 다른                     k = 300                 끝.                 코드 = .html.만들다( "코드" )                               :css( "중량", 스트링( k ) )                               :css( "공백 공간", "nowrap" )                               :위키텍스트( 재빠르다 )                 u:노드( 코드 )             끝.             한다면 e.학급 그리고나서                 s = 유형( e.학급 )                 한다면 s == "문자열' 그리고나서                     u:클래스 추가( e.학급 )                 그렇지 않으면 s == "테이블" 그리고나서                     위해서 k, s  쌍들( e.학급 ) 하다                         u:클래스 추가( s )                     끝. -- k, s의 경우                 또 다른                     s = string.format( "패럴.%s.%s[%d.class invalid",                                        , "값", i )                     결함.( s )                 끝.             끝.             한다면 e.css 그리고나서                 한다면 유형( e.css ) == "테이블" 그리고나서                     u:css( e.css )                 또 다른                     s = string.format( "패럴.%s.%s[%d.css 무효",                                        , "값", i )                     결함.( s )                 끝.             끝.             한다면 e.스타일. 그리고나서                 한다면 유형( e.스타일. ) == "문자열' 그리고나서                     u:css텍스트( e.스타일. )                 또 다른                     s = string.format( "패럴.%s.%s[%d]잘못된 스타일",                                        , "값", i )                     결함.( s )                 끝.             끝.             한다면 모든..유형 == "filename-file-name"  그리고.  것은 아니다. e.아이콘 그리고나서                 e.아이콘 = e.코드             끝.             한다면 e.라벨. 그리고나서                 s = 유형( e.라벨. )                 한다면 s == "문자열' 그리고나서                     s = .본문.다듬다( e.라벨. )                     한다면 s == "" 그리고나서                         s = string.format( "패럴.%s.%s[%d].라벨 %s",                                            ,                                            "값",                                            i,                                            "비었다" )                         결함.( s )                     또 다른                         이야기 = s                     끝.                 그렇지 않으면 s == "테이블" 그리고나서                     이야기 = 아득히( e.라벨. )                 또 다른                     s = string.format( "패럴.%s.%s[%d.label 무효",                                        , "값", i )                     결함.( s )                 끝.             끝.             s = 거짓의             한다면 유형( e.아이콘 ) == "문자열' 그리고나서                 t = .직함.make Title(메이크 타이틀)( 6, e.아이콘 )                 한다면 t 그리고. t.파일.존재한다 그리고나서                     현지의 g = .html.만들다( "스판" )                     s = string.format( [[%s 16px]], t.프리픽스본문 )                     g:특성( "역할", '프레젠테이션" )                      :위키텍스트( s )                     s = 스트링( g )                 끝.             끝.             한다면 것은 아니다. s  그리고.  것은 아니다. 더 적은  그리고.  e.라벨. 그리고나서                 s = .스트링.( 0x2013 )             끝.             한다면 s 그리고나서                 d = .html.만들다( "스판" )                            :위키텍스트( s )                 한다면 템플릿 데이터.ltr 그리고나서                     한다면 것은 아니다. 더 적은 그리고나서                         d:css( "좌향좌향", "0.5em" )                     끝.                     한다면 이야기 그리고나서                         d:css( "오른쪽", "0.5em" )                     끝.                 또 다른                     한다면 것은 아니다. 더 적은 그리고나서                         d:css( "오른쪽", "0.5em" )                     끝.                     한다면 이야기 그리고나서                         d:css( "좌향좌향", "0.5em" )                     끝.                 끝.                 u:노드( d )             끝.             한다면 이야기 그리고나서                 u:위키텍스트( 이야기 )             끝.             r1:줄바꿈()               :노드( u )         끝. -- i의 경우     끝.     한다면 것은 아니다. r1  그리고.  v ~= 거짓의 그리고나서         결함.( string.format( "패럴.%s.제안된 값이 잘못되었습니다.",  ) )         r1 = .html.만들다( "코드" )                     :클래스 추가( "에러" )                     :위키텍스트( "무효" )     끝.     돌아가다 r1, r2 끝. -- 피지블()    현지의 기능. 위업()     -- 파라미터 시퀀스 확인 및 저장     한다면 데이터..원천 그리고나서         현지의 i = 0         현지의 s         위해서 k, v  쌍들( 데이터..트리.파라미터 ) 하다             한다면 i == 0 그리고나서                 데이터..주문 = { }                 i = 1                 s = k             또 다른                 i = 2                 브레이크. -- k, v의 경우             끝.         끝. -- k, v의 경우         한다면 i > 1 그리고나서             현지의 포인터 = { }             현지의 포인트   = { }             현지의 정해진    = { }             위해서 k, v  쌍들( 데이터..트리.파라미터 ) 하다                 i = ( k, 1 )                 한다면 유형( v ) == "테이블" 그리고나서                     한다면 유형( v.라벨. ) == "문자열' 그리고나서                         s = .본문.다듬다( v.라벨. )                         한다면 s == "" 그리고나서                             s = k                         끝.                     또 다른                         s = k                     끝.                     한다면 정해진[ s ] 그리고나서                         한다면 정해진[ s ] == 1 그리고나서                             현지의 비명을 지르다 = "매개 변수 레이블 '%s'이(가) 여러 번 검색됨"                             결함.( string.format( 비명을 지르다, s ) )                             정해진[ s ] = 2                         끝.                     또 다른                         정해진[ s ] = 1                     끝.                 끝.                 한다면 i 그리고나서                     table.insert( 포인트, i )                     포인터[ i ] = k                     i = ( k, i )                     한다면 i 그리고나서                         s = "%s 매개 변수가 두 번 검색됨"                         결함.( string.format( s, k ) )                     끝.                 또 다른                     s = "%s 매개 변수가 검색되지 않음"                     결함.( string.format( s, k ) )                 끝.             끝. -- k, v의 경우             table.displaces( 포인트 )             위해서 i = 1, #포인트 하다                 table.insert( 데이터..주문,  포인터[ 포인트[ i ] ] )             끝. -- i = 1, # 포인트         그렇지 않으면 s 그리고나서             table.insert( 데이터..주문, s )         끝.     끝. 끝. -- feat()    현지의 기능. 특징( 접근 )     -- 파라미터의 테이블 행을 작성하고 위반을 체크 및 표시합니다.     -- 파라미터:     -- access -- 문자열(이름 포함     -- <tr>를 반환합니다.     현지의 모드, s, 상황     현지의 좋아.    = 기능. ( a )                         s = .본문.다듬다( a )                         돌아가다 a == s  그리고.                                a ~= ""  그리고.                                것은 아니다. a:발견하다( "% =\n" )  그리고.                                것은 아니다. a:발견하다( %s%s )                     끝.     현지의 시작한다.   = .html.만들다( "실패" )     현지의 코드    = .html.만들다( "코드" )     현지의 기술하다    = .html.만들다( "실패" )     현지의 열심인   = .html.만들다( "실패" )     현지의 합법적인   = 진실의     현지의 PARAM.   = 데이터..트리.파라미터[ 접근 ]     현지의 순위 = { "필수", "실패", "옵션", "권장되지 않음" }     현지의 r       = .html.만들다( "tr" )     현지의 스타일  = "mw-containatedata-doc-doc-contain-"     현지의 종류, 입력했다      위해서 k, v  쌍들( PARAM. ) 하다         한다면 v == "" 그리고나서             PARAM.[ k ] = 거짓의         끝.     끝. -- k, v의 경우      --라벨     종류 = PARAM..라벨. 또는 접근     한다면 종류:경기( "^%d+$" ) 그리고나서         시작한다.:특성( "data-param-value",                     string.format( %05d, 톤수( 종류 ) ) )     끝.     시작한다.:css( "중량", "대담한" )          :위키텍스트( 종류 )      -- 이름과 에일리어스     코드:css( "크기", "92%" )         :css( "공백 공간", "nowrap" )         :위키텍스트( 접근 )     한다면 것은 아니다. 좋아.( 접근 ) 그리고나서         코드:클래스 추가( "에러" )         결함.( string.format( "잘못된 아이디입니다.<code> %s </code>", 접근 ) )         합법적인 = 거짓의         시작한다.:특성( "data-param-value",  " " .. 종류 )     끝.     코드 = .html.만들다( "실패" )                   :클래스 추가( 스타일 .. "이름 )                   :노드( 코드 )     한다면 접근:경기( "^%d+$" ) 그리고나서         코드:특성( "data-param-value",                    string.format( %05d, 톤수( 접근 ) ) )     끝.     한다면 유형( PARAM..에일리어스 ) == "테이블" 그리고나서         현지의 랩서스, 동기         위해서 k, v  쌍들( PARAM..에일리어스 ) 하다             코드:태그( "br" )             한다면 유형( v ) == "문자열' 그리고나서                 한다면 것은 아니다. 좋아.( v ) 그리고나서                     랩서스 = 진실의                     코드:노드( .html.만들다( "스판" )                                       :클래스 추가( "에러" )                                       :css( "스티브 스타일", "이탈리아" )                                       :위키텍스트( "문자열' ) )                         :위키텍스트( s )                 또 다른                     동기 = .html.만들다( "스판" )                                  :클래스 추가( 스타일 .. "실패" )                                  :css( "공백 공간", "nowrap" )                                  :위키텍스트( s )                     코드:노드( 동기 )                 끝.             또 다른                 랩서스 = 진실의                 코드:노드( .html.만들다( "코드" )                                   :클래스 추가( "에러" )                                   :위키텍스트( 유형( v ) ) )             끝.         끝. -- k, v의 경우         한다면 랩서스 그리고나서             s = string.format( "패럴.<code> %s </code>에일리어스", 접근 )             결함.(  공장 ( "가산치" ):서브( "$1", s )  )             합법적인 = 거짓의         끝.     끝.      --설명 등     s = 정형화된( PARAM. )     한다면 s 그리고나서         기술하다:노드( s )     끝.     한다면 PARAM..스타일. 그리고나서         s = 유형( PARAM..스타일. )         한다면 s == "테이블" 그리고나서             기술하다:css( PARAM..스타일. )         그렇지 않으면 s == "문자열' 그리고나서             기술하다:css텍스트( PARAM..스타일. )         끝.     끝.     한다면 PARAM..제안치 또는        PARAM..체납 또는        PARAM.. 또는        PARAM..자동값 그리고나서         현지의 세부 사항 = { "값",                           "디폴트",                           "실패",                           "자동값" }         현지의 dl      = .html.만들다( "dl" )         현지의 dd, 부분, 표시하다         위해서 i = 1, #세부 사항 하다             s    = 세부 사항[ i ]             표시하다 = PARAM.[ s ]             한다면 표시하다 그리고나서                 dd      = .html.만들다( "dd" )                 부분 = 공장 ( "doc-doc-doc-doc-filename-" .. s )                 한다면 PARAM..유형 == "실패"   그리고.                    ( 표시하다 == "0" 또는 표시하다 == "1" ) 그리고나서                     현지의 불이 붙다 = 허용하다.불이 붙다[ ( 표시하다 == "1" ) ]                     한다면 불이 붙다.이끌다 == 진실의 그리고나서                         dd:노드( .html.만들다( "코드" )                                         :위키텍스트( 표시하다 ) )                           :위키텍스트( " " )                     끝.                     한다면 유형( 불이 붙다.표시하다 ) == "문자열' 그리고나서                         현지의 v = .html.만들다( "스판" )                                          :특성( "아리아 숨김", "진짜" )                                          :위키텍스트( 불이 붙다.표시하다 )                         한다면 불이 붙다.css 그리고나서                             v:css( 불이 붙다.css )                         끝.                         dd:노드( v )                     끝.                     한다면 유형( 불이 붙다.접미사 ) == "문자열' 그리고나서                         dd:위키텍스트( 불이 붙다.접미사 )                     끝.                     한다면 불이 붙다.이끌다 == 거짓의 그리고나서                         dd:위키텍스트( " " )                           :노드( .html.만들다( "코드" )                                         :위키텍스트( 표시하다 ) )                     끝.                 그렇지 않으면 s == "값" 그리고나서                     현지의 v, css, 학급, ts = 시설.( PARAM. )                     한다면 v 그리고나서                         현지의                          , v = 실현 가능한( PARAM., 접근, v )                         한다면 v 그리고나서                             dd:줄바꿈()                               :노드(  )                             한다면 css 그리고나서                                 dd:css( css )                                 한다면 학급 그리고나서                                     dd:클래스 추가( 학급 )                                 끝.                                 한다면 ts 그리고나서                                     dd:줄바꿈()                                     dd:노드( ts )                                 끝.                             끝.                             데이터..파라미터[ 접근 ].제안치 = v                         끝.                     끝.                 또 다른                     dd:위키텍스트( 표시하다 )                 끝.                 dl:노드( .html.만들다( "dt" )                                 :위키텍스트( 부분 ) )                   :노드( dd )             끝.         끝. -- i = 1, #120         기술하다:노드( dl )     끝.      -- 입력     한다면 유형( PARAM..유형 ) == "문자열' 그리고나서         PARAM..유형 = .본문.다듬다( PARAM..유형 )         한다면 PARAM..유형 == "" 그리고나서             PARAM..유형 = 거짓의         끝.     끝.     한다면 PARAM..유형 그리고나서         s     = 허용하다.종류들[ PARAM..유형 ]         입력했다 = .html.만들다( "실패" )                   :클래스 추가( 스타일 .. "타입" )         한다면 s 그리고나서             한다면 s == "문자열' 그리고나서                 데이터..파라미터[ 접근 ].유형 = s                 입력했다:위키텍스트( 공장 ( "doc-facebook-type-" .. s ) )                      :태그( "br" )                 입력했다:노드( .html.만들다( "스판" )                                    :클래스 추가( "에러" )                                    :위키텍스트( PARAM..유형 ) )                 데이터..영속적인 = 진실의             또 다른                 현지의 지지하다 = 설정[ "지원 4" .. PARAM..유형 ]                 s = 공장 ( "doc-facebook-type-" .. PARAM..유형 )                 한다면 지지하다 그리고나서                     s = string.format( "[%s %s]", 지지하다, s )                 끝.                 입력했다:위키텍스트( s )             끝.         또 다른             데이터..파라미터[ 접근 ].유형 = "실패"             입력했다:클래스 추가( "에러" )                  :위키텍스트( "무효" )             s = string.format( "패럴.<code> %s </code>.type", 접근 )             결함.(  공장 ( "가산치" ):서브( "$1", s )  )             합법적인 = 거짓의         끝.     또 다른         입력했다 = .html.만들다( "실패" )                    :위키텍스트( 공장 ( "doc-filename-type-filename" ) )         데이터..파라미터[ 접근 ].유형 = "실패"         한다면 PARAM..체납 그리고나서             데이터..파라미터[ 접근 ].체납 = 제로             결함.( "기본값에는 <code> 타입 </code>가 필요합니다." )             합법적인 = 거짓의         끝.     끝.     입력했다:클래스 추가( "검색 불가" )     --상태     한다면 PARAM..필수의 그리고나서         모드 = 1         한다면 PARAM..자동값 그리고나서             결함.( string.format( "auto value <code> %s </code> 필수",                                   접근 ) )             합법적인 = 거짓의         끝.         한다면 PARAM..체납 그리고나서             결함.( string.format( "기본 <code> %s </code> 필수",                                   접근 ) )             합법적인 = 거짓의         끝.         한다면 PARAM..권장되지 않다 그리고나서             결함.( string.format( "필수 폐지 <코드> %s </code>",                                   접근 ) )             합법적인 = 거짓의         끝.     그렇지 않으면 PARAM..권장되지 않다 그리고나서         모드 = 4     그렇지 않으면 PARAM..제안된 그리고나서         모드 = 2     또 다른         모드 = 3     끝.     상황 = 순위[ 모드 ]     순위 = 공장 ( "doc-doc-doc-status-" .. 상황 )     한다면 모드 == 1  또는  모드 == 4 그리고나서         순위 = .html.만들다( "스판" )                          :css( "중량", "대담한" )                          :위키텍스트( 순위 )         한다면 유형( PARAM..권장되지 않다 ) == "문자열' 그리고나서             순위:태그( "br" )             순위:위키텍스트( PARAM..권장되지 않다 )         끝.         한다면 PARAM..제안된  그리고.  모드 == 4 그리고나서             s = string.format( "추천되지 않는 <코드> %s </code>를 제안하고 있습니다.",                                접근 )             결함.( s )             합법적인 = 거짓의         끝.     끝.     열심인:특성( "data-param-value", 스트링( 모드 ) )                 :노드( 순위 )                 :클래스 추가( string.format( %s status-%s %s,                                           스타일, 상황,                                           "검색 불가" ) )      --<tr>     r:특성( "id",  "인증된 데이터:" .. .uri.anchorEncode(앵커코드)( 접근 ) )      :css( 허용하다.css[ 상황 ] )      :클래스 추가( 스타일 .. 상황 )      :노드( 시작한다. )      :노드( 코드 )      :노드( 기술하다 )      :노드( 입력했다 )      :노드( 열심인 )      :줄바꿈()     한다면 것은 아니다. 합법적인 그리고나서         r:css( "경계", "#FF0000 3px 솔리드" )     끝.     돌아가다 r 끝. -- feature()    현지의 기능. 특징들()     -- 파라미터의 <테이블>을 작성합니다.     -- <table>을 반환하거나 0을 반환합니다.     현지의 r     한다면 데이터..트리 그리고. 데이터..트리.파라미터 그리고나서         현지의 티비례 = .html.만들다( "테이블" )         현지의 tr  = .html.만들다( "tr" )         위업()         한다면 데이터..주문  그리고.  #데이터..주문 > 1 그리고나서             티비례:클래스 추가( "어플리케이션 가능" )         끝.         한다면 유형( 설정.클래스 테이블 ) == "테이블" 그리고나서             위해서 k, v  쌍들( 설정.클래스 테이블 ) 하다                 티비례:클래스 추가( v )             끝. -- k, v의 경우         끝.         한다면 유형( 설정.css 테이블 ) == "테이블" 그리고나서             티비례:css( 설정.css 테이블 )         끝.         tr:클래스 추가( "검색 불가" )           :노드( .html.만들다( "th" )                         :특성( "colspan", "2" )                         :css( 허용하다.css.테이블 헤드 )                         :위키텍스트( 공장 ( "doc-facebook-name" ) ) )           :노드( .html.만들다( "th" )                         :css( 허용하다.css.테이블 헤드 )                         :위키텍스트( 공장 ( "doc-disc-desc" ) ) )           :노드( .html.만들다( "th" )                         :css( 허용하다.css.테이블 헤드 )                         :위키텍스트( 공장 ( "doc-facebook-type" ) ) )           :노드( .html.만들다( "th" )                         :css( 허용하다.css.테이블 헤드 )                         :위키텍스트( 공장 ( "doc-doc-status-status" ) ) )         티비례:줄바꿈() -- : node ( mw . second . create ( " thead " )                          :노드( tr ) --              )            :줄바꿈()         한다면 데이터..주문 그리고나서             현지의 떠나, s             위해서 i = 1, #데이터..주문 하다                 s = 데이터..주문[ i ]                 한다면 s:후보선수( 1, 1 ) == "=" 그리고나서                     떠나 = 진실의                     티비례:노드( 살찌다( s ) )                     데이터..주문[ i ] = 거짓의                 그렇지 않으면 s:경기( "[= ]" ) 그리고나서                     결함.( string.format( "Bad param <code> %s </code>",                                           s ) )                 또 다른                     티비례:노드( 특징( s ) )                 끝.             끝. -- i = 1, #Data.order의 경우             한다면 떠나 그리고나서                 위해서 i = #데이터..주문, 1, -1 하다                     한다면 것은 아니다. 데이터..주문[ i ] 그리고나서                         테이블.삭제( 데이터..주문, i )                     끝.                 끝. -- i = #Data.order, 1, -1의 경우             끝.             데이터..태그.param Order(파라미터 순서) = 데이터..주문         끝.         한다면 설정.css Tab 랩 또는 데이터..스크롤 그리고나서             r = .html.만들다( "div" )             한다면 유형( 설정.css Tab 랩 ) == "테이블" 그리고나서                 r:css( 설정.css Tab 랩 )             그렇지 않으면 유형( 설정.css Tab 랩 ) == "문자열' 그리고나서                 -- 권장되지 않음                 r:css텍스트( 설정.css Tab 랩 )             끝.             한다면 데이터..스크롤 그리고나서                 r:css( "높이',   데이터..스크롤 )                  :css( "실패", "자동" )             끝.             r:노드( 티비례 )         또 다른             r = 티비례         끝.     끝.     돌아가다 r 끝. -- features()    현지의 기능. 펠로우( 조금도, 맡겨진,  )     -- sets [ ]파라미터를 확인하고 필요에 따라 오류 메시지를 발행합니다.     -- 파라미터:     -- any --는 숫자여야 합니다.     -- assigned -- 파라미터 이름     ----번호, 세트     현지의 s     한다면 유형( 조금도 ) ~= "숫자" 그리고나서         s = "< code > sets [ %d . params [ %s ] // code >??"         결함.( string.format( s,                               ,                               .본문.노우키( 스트링( 조금도 ) ) ) )     그렇지 않으면 유형( 맡겨진 ) == "문자열' 그리고나서         한다면 것은 아니다. 데이터..얻었다.파라미터[ 맡겨진 ] 그리고나서             s = "< code > sets [ %d . params %s < / code > 정의되지 않았습니다."             결함.( string.format( s, , 맡겨진 ) )         끝.     또 다른         s = "< code > sets [ %d ]params [ %d ]= %s < / code >??"         결함.( string.format( s,  k,  유형( 맡겨진 ) ) )     끝. 끝. -- fellow()    현지의 기능. 펠로우()     -- sets [ ]를 체크하고, 필요에 따라서 에러 메세지를 발행합니다.     현지의 s     한다면 유형( 데이터..얻었다.놓다 ) == "테이블" 그리고나서         한다면 유형( 데이터..얻었다.파라미터 ) == "테이블" 그리고나서             위해서 k, v  쌍들( 데이터..얻었다.놓다 ) 하다                 한다면 유형( k ) == "숫자" 그리고나서                     한다면 유형( v ) == "테이블" 그리고나서                         위해서 ek, 에바  쌍들( v ) 하다                             한다면 ek == "라벨" 그리고나서                                 s = 유형( 에바 )                                 한다면 s ~= "문자열'  그리고.                                    s ~= "테이블" 그리고나서                                     s = "<code>sets[%d.label</code>??"                                     결함.( string.format( s, k ) )                                 끝.                             그렇지 않으면 ek == "패럴"  그리고.                                 유형( 에바 ) == "테이블" 그리고나서                                 위해서 패킷, pv  쌍들( 에바 ) 하다                                     펠로우( 패킷, pv, k )                                 끝. -- pk, pv의 경우                             또 다른                                 ek = .본문.노우키( 스트링( ek ) )                                 s  = "<code>sets[%d][%s]<code>??"                                 결함.( string.format( s, k, ek ) )                             끝.                         끝. -- ek, ev의 경우                     또 다른                         k = .본문.노우키( 스트링( k ) )                         v = .본문.노우키( 스트링( v ) )                         s = string.format( "<code>sets(%s)[%s]</code>??",                                            k, v )                         결함.( s )                     끝.                 또 다른                     k = .본문.노우키( 스트링( k ) )                     s = string.format( "<code>sets[%s]<code>?--"?", k )                     결함.( s )                 끝.             끝. -- k, v의 경우         또 다른             s = "<code> 설정에 필요한 파라미터 </code>"             결함.( s )         끝.     또 다른         s = "<code> sets</code>는 <code>오브젝트</code>타입이어야 합니다."         결함.( s )     끝. 끝. --fellows()    현지의 기능. 마무리짓다( 발전 )     --프레젠테이션을 프레임으로 정리합니다.     -- 파라미터:     --어드밴스 --맞아, 좋은 걸 위해서     -- 문자열을 반환합니다.     현지의 r, 랩서스     한다면 데이터..나누다 그리고나서         r = 스트링( 데이터..나누다 )     그렇지 않으면 데이터..벗다 그리고나서         r = 데이터..벗다     또 다른         랩서스 = 진실의         r      = ""     끝.     r = r .. 실패.()     한다면 데이터..원천 그리고나서         현지의 라이브 = ( 발전 또는 랩서스 )         한다면 것은 아니다. 라이브 그리고나서             라이브 = 템플릿 데이터.:전처리( "{REVISIONID}}" )             라이브 = ( 라이브 == "" )         끝.         한다면 라이브 그리고나서             r = r .. 멋지다( 발전, 랩서스 )         끝.     끝.     돌아가다 r 끝. -- finalize()    현지의 기능. 발견하다()     -- 페이지 소스(제목) 내에서 JSON 데이터 검색     -- 문자열 또는 0을 반환합니다.     현지의 s = 데이터..직함:컨텐츠의 취득()     현지의 i, j = s:발견하다( "<certatedata>, 1, 진실의 )     현지의 r     한다면 i 그리고나서         현지의 k = s:발견하다( "</containedata>", j, 진실의 )         한다면 k 그리고나서            r = .본문.다듬다( s:후보선수( j + 1,  k - 1 ) )         끝.     끝.     돌아가다 r 끝. -- find()    현지의 기능. 평평한( 조정한다. )     -- VE 텍스트 문자열에서 서식 삭제     -- 파라미터:     -- arglist -- 문자열, 제거 또는 제로     -- 문자열 또는 0을 반환합니다.     현지의 r     한다면 조정한다. 그리고나서         r = 조정한다.:서브( "\n", " " )         한다면 r:발견하다( "<no export>", 1, 진실의 ) 그리고나서             r = r:서브( "<no export>.*</export 없음>", "" )         끝.         한다면 r:발견하다( "<내보내기 전용>", 1, 진실의 ) 그리고나서             r = r:서브( "<?export only>", "" )         끝.         한다면 r:발견하다( "''", 1, 진실의 ) 그리고나서             r = r:서브( "'''", "" ):서브( "''", "" )         끝.         한다면 r:발견하다( "<", 1, 진실의 ) 그리고나서             현지의 본문 = 가지고 오다( "텍스트" )             r = 본문.겟플레인( r:서브( "<br */?>", "\r\n" ) )         끝.         한다면 r:발견하다( "[", 1, 진실의 ) 그리고나서             현지의 링크 = 가지고 오다( "윙크" )             한다면 링크.브라켓URL( r ) 그리고나서                 r = r:서브( %[[[hf]tt?ps?//%S+] [^%]]+%], "%1" )             끝.             r = 링크.겟플레인( r )         끝.         한다면 r:발견하다( "&", 1, 진실의 ) 그리고나서             r = .본문.해독하다( r )             한다면 r:발견하다( "&shy;", 1, 진실의 ) 그리고나서                 r = r:서브( "&shy;", "" )             끝.         끝.     끝.     돌아가다 r 끝. -- 플랫()    현지의 기능. 붉어지다()     -- JSON 부호화, 좁은 입력, 이름 없는(숫자) 파라미터에 따름     -- <templatedata> JSON 문자열을 반환합니다.     현지의 r     한다면 데이터..태그 그리고나서         r = .본문.json Encode(입력 코드)( 데이터..태그 ):서브( "%}$", "," )     또 다른         r = "{"     끝.     r = r .. "\n\"파라미터\":{"     한다면 데이터..주문 그리고나서         현지의 세프 = ""         현지의 s         위해서 i = 1, #데이터..주문 하다             s   = 데이터..주문[ i ]             r   = string.format( %s%s\n%s: %s",                                  r,                                  세프,                                  .본문.json Encode(입력 코드)( s ),                                  .본문.json Encode(입력 코드)( 데이터..파라미터[ s ] ) )             세프 = ",\n"         끝. -- i = 1, #Data.order의 경우     끝.     r = r .. "\n}\n}"     돌아가다 r 끝. --flash()    현지의 기능. 초점( 접근 )     -- 컴포넌트 체크, 다국어 설명 집중, 트리 작성     -- 파라미터:     -- access -- 문자열, 파라미터 이름, 루트의 경우 null     현지의 f = 기능. ( a,  )                     현지의 r                     한다면  그리고나서                         r = string.format( "<code>패럴.%s </code>",  )                     또 다른                         r = '루트'                     끝.                     한다면 a 그리고나서                         r = string.format( %s <코드>.%s </code>", r, a )                     끝.                     돌아가다 r                 끝.     현지의 부모     한다면 접근 그리고나서         부모 = 데이터..얻었다.파라미터[ 접근 ]     또 다른         부모 = 데이터..얻었다     끝.     한다면 유형( 부모 ) == "테이블" 그리고나서         현지의 일람, 얻었다, 허용하다, s, 범위, 슬롯, 태그, 타깃         한다면 접근 그리고나서             허용하다 = 허용하다.파라미터             한다면 유형( 접근 ) == "숫자" 그리고나서                 슬롯 = 스트링( 접근 )             또 다른                 슬롯 = 접근             끝.         또 다른             허용하다 = 허용하다.뿌리         끝.         위해서 k, v  쌍들( 부모 ) 하다             범위 = 허용하다[ k ]             한다면 범위 그리고나서                 s = 유형( v )                 한다면 s == "문자열'  그리고.  k ~= "형식" 그리고나서                     v = .본문.다듬다( v )                 끝.                 한다면 범위:발견하다( s, 1, 진실의 ) 그리고나서                     한다면 범위:발견하다( 'I18N', 1, 진실의 ) 그리고나서                         한다면 s == "문자열' 그리고나서                             일람 = 공정한( v )                         그렇지 않으면 s == "테이블" 그리고나서                             현지의 번역된                             v, 번역된 = 아득히( v )                             한다면 v 그리고나서                                 한다면 번역된  그리고.                                    k == "설명" 그리고나서                                     일람 = { [ 1 ] = 공정한( v ),                                              [ 2 ] = 번역된 }                                 또 다른                                     일람 = 공정한( v )                                 끝.                             또 다른                                 일람 = 거짓의                             끝.                         끝.                         한다면 유형( v ) == "문자열' 그리고나서                             한다면 k == "권장되지 않음" 그리고나서                                 한다면 v == "1" 그리고나서                                     v = 진실의                                 그렇지 않으면 v == "0" 그리고나서                                     v = 거짓의                                 끝.                                 일람 = v                             그렇지 않으면 범위:발견하다( '노우키', 1, 진실의 ) 그리고나서                                 일람 = .본문.노우키( v )                                 일람 = 일람:서브( "&#13;\n", "<br>" )                                 v    = v:서브( string.char.( 13 ),  "" )                             또 다른                                 v = 평평한( v )                             끝.                         그렇지 않으면 s == "실패" 그리고나서                             한다면 범위:발견하다( "실패", 1, 진실의 ) 그리고나서                                 일람 = v                             또 다른                                 s = "유형 <code> boolean </code> bad for "                                     .. f( k, 슬롯 )                                 결함.( s )                             끝.                         끝.                     또 다른                         한다면 k == "패럴"  그리고.  것은 아니다. 접근 그리고나서                             v    = 제로                             일람 = 제로                         그렇지 않으면 k == "형식"  그리고.  것은 아니다. 접근 그리고나서                             일람 = .본문.해독하다( v )                             v    = 제로                         그렇지 않으면 k == "실패" 그리고나서                             일람 = v                             한다면 것은 아니다. 데이터..상속인 그리고나서                                 데이터..상속인 = { }                             끝.                             데이터..상속인[ 슬롯 ] = v                             v                  = 제로                         그렇지 않으면 k == "스타일" 그리고나서                             일람 = v                             v    = 제로                         그렇지 않으면 s == "문자열' 그리고나서                             v    = .본문.노우키( v )                             일람 = v                         또 다른                             일람 = v                         끝.                     끝.                     한다면 유형( 일람 ) ~= "실패" 그리고나서                         한다면 것은 아니다. 타깃 그리고나서                             한다면 접근 그리고나서                                 한다면 것은 아니다. 데이터..트리.파라미터 그리고나서                                     데이터..트리.파라미터 = { }                                 끝.                                 데이터..트리.파라미터[ 슬롯 ] = { }                                 타깃 = 데이터..트리.파라미터[ 슬롯 ]                             또 다른                                 데이터..트리 = { }                                 타깃    = 데이터..트리                             끝.                         끝.                         타깃[ k ] = 일람                         일람        = 거짓의                     끝.                     한다면 유형( v ) ~= "실패" 그리고나서                         한다면 것은 아니다. 태그 그리고나서                             한다면 접근 그리고나서                                 한다면 유형( v ) == "문자열'  그리고.                                    v.후보선수( 1, 1 ) == "=" 그리고나서                                     v = 제로                                 또 다른                                     한다면 것은 아니다. 데이터..파라미터 그리고나서                                         데이터..파라미터 = { }                                     끝.                                     데이터..파라미터[ 슬롯 ] = { }                                     태그 = 데이터..파라미터[ 슬롯 ]                                 끝.                             또 다른                                 데이터..태그 = { }                                 태그      = 데이터..태그                             끝.                         끝.                         한다면 유형( v ) ~= "실패"  그리고.                            k ~= "값" 그리고나서                             태그[ k ] = v                         끝.                     끝.                 또 다른                     s = string.format( "%s의 <code> %s </code> 타입이 잘못되었습니다.",                                        범위,  f( k, 슬롯 ) )                     결함.( s )                 끝.             또 다른                 결함.( "알 수 없는 구성 요소" .. f( k, 슬롯 ) )             끝.         끝. -- k, v의 경우         한다면 것은 아니다. 접근  그리고. 데이터..얻었다.놓다 그리고나서             펠로우()         끝.     또 다른         결함.( f() .. " <code> 오브젝트 </code> 타입이어야 합니다." )     끝. 끝. --focus()    현지의 기능. 포맷()     -- 포맷된 요소를 빌드합니다.     --<inline>을 반환합니다.     현지의 원천 = 데이터..트리.포맷:더 낮게()     현지의 r, s     한다면 원천 == "실패"  또는  원천 == '블록" 그리고나서         r = .html.만들다( '나' )                    :위키텍스트( 원천 )     또 다른         현지의 코드         한다면 원천:발견하다( " ", 1, 진실의 ) 그리고나서             현지의 스캔 = "^[\n]*%{%{[\n_]* [\n_]*=[\n_]*%}%}[\n]*$"             한다면 원천:경기( 스캔 ) 그리고나서                 코드 = 원천:서브( "\n", 'N' )             또 다른                 s = .본문.노우키( 원천 ):서브( "\n", "&#92;n" )                 s = 스트링( .html.만들다( "코드" )                                      :위키텍스트( s ) )                 결함.( "잘못된 형식" .. s )                 원천 = 거짓의             끝.         또 다른             현지의 단어 = .본문.분열되다( 원천, %s+ )             현지의 표시하다, 개시하다, 지지하다, 알 수 없는             위해서 i = 1, #단어 하다                 s = 단어[ i ]                 한다면 i == 1 그리고나서                     개시하다 = s                 끝.                 지지하다 = 허용하다.빌더[ s ]                 한다면 지지하다 == 개시하다  또는                    지지하다 == "*" 그리고나서                     허용하다.빌더[ s ] = 진실의                 그렇지 않으면 s:경기( "^[1-9]%d?" ) 그리고.                        허용하다.빌더.정렬하다 그리고나서                     허용하다.빌더.정렬하다 = 톤수( s )                 또 다른                     한다면 알 수 없는 그리고나서                         알 수 없는 = string.format( %s %s, 알 수 없는, s )                     또 다른                         알 수 없는 = s                     끝.                 끝.             끝. -- i = 1, #words             한다면 알 수 없는 그리고나서                 s = 스트링( .html.만들다( "코드" )                                      :css( "공백 공간", "nowrap" )                                      :위키텍스트( s ) )                 결함.( "Unknown/misplaced format 키워드" .. s )                 원천 = 거짓의                 개시하다  = 거짓의             끝.             한다면 개시하다 == "실패" 그리고나서                 한다면 허용하다.빌더. == 진실의 그리고나서                     표시하다 = '반쪽'                     코드 = "{{_  _=_}}"                 그렇지 않으면 허용하다.빌더.그룹화된 == 진실의 그리고나서                     표시하다 = "그룹화된 패키지"                     코드 = "{{_   _=_}}"                 그렇지 않으면 허용하다.빌더.간격을 두었다 == 진실의 그리고나서                     표시하다 = '간격                     코드 = "{{_   _ = _ }}"                 끝.                 한다면 허용하다.빌더.줄바꿈 == 진실의 그리고나서                     표시하다 = 표시하다 또는 "실패"                     코드 = 코드 또는 "{{_ _=_}}"                     표시하다 = 표시하다 .. "새 행"                     코드 = string.format( "N%sN", 코드 )                 끝.             그렇지 않으면 개시하다 == '블록" 그리고나서                 현지의 공간  = ""     &quot; 와 이름&quot; 가운데                 현지의 간격을 두었다 = " "    -- "=" 앞                 현지의 스페이스 바 = " "    -- "="에 이어                 현지의 접미사 = 'N'    -- 새 줄에서 "}"을(를) 닫습니다.                 표시하다 = '블록"                 한다면 허용하다.빌더.들여쓰다 == 진실의 그리고나서                     개시하다 = " "                     표시하다 = "블록 들여쓰기"                 또 다른                     개시하다 = ""                 끝.                 한다면 허용하다.빌더.압축된 == 진실의 그리고나서                     간격을 두었다 = ""                     스페이스 바 = ""                     표시하다   = 표시하다 .. "압축"                     한다면 허용하다.빌더.지난 == 진실의 그리고나서                         표시하다 = 표시하다 .. "마지막"                     또 다른                         접미사 = ""                     끝.                 또 다른                     한다면 허용하다.빌더.이끌다 == 진실의 그리고나서                         표시하다  = 표시하다 .. "리드"                         공간 = " "                     끝.                     한다면 유형( 허용하다.빌더.정렬하다 ) ~= "문자열' 그리고나서                         현지의 n                         s = 정렬                         한다면 허용하다.빌더.정렬하다 == 진실의 그리고나서                             n = 0                             한다면 유형( 데이터..얻었다 ) == "테이블"  그리고.                                유형( 데이터..얻었다.파라미터 ) == "테이블" 그리고나서                                 위해서 k, v  쌍들( 데이터..얻었다.파라미터 ) 하다                                     한다면 유형( v ) == "테이블"  그리고.                                        것은 아니다. v.권장되지 않다  그리고.                                        유형( k ) == "문자열' 그리고나서                                         k = .스트링.( k )                                         한다면 k > n 그리고나서                                             n = k                                         끝.                                     끝.                                 끝. -- k, v의 경우                             끝.                         또 다른                             n = 허용하다.빌더.정렬하다                             한다면 유형( n ) == "숫자"  그리고.  n > 1 그리고나서                                 s = string.format( %s %d, s, n )                             또 다른                                 n = 0    왜?                             끝.                         끝.                         한다면 n > 1 그리고나서                             간격을 두었다 = string.rep( "_",  n - 1 )  ..  " "                         끝.                         표시하다 = 표시하다 .. s                     그렇지 않으면 허용하다.빌더.끝나고 == 진실의 그리고나서                         간격을 두었다 = ""                         표시하다   = 표시하다 .. "후"                     그렇지 않으면 허용하다.빌더.조밀. == 진실의 그리고나서                         간격을 두었다 = ""                         스페이스 바 = ""                         표시하다   = 표시하다 .. 고밀도                     끝.                     한다면 허용하다.빌더.지난 == 진실의 그리고나서                         접미사 = 스페이스 바                         표시하다   = 표시하다 .. "마지막"                     끝.                 끝.                 코드 = string.format( "N{_N%s %s_%s=%s_%s}"N",                                       개시하다,                                       공간,                                       간격을 두었다,                                       스페이스 바,                                       접미사 )                 한다면 표시하다 == '블록" 그리고나서                     표시하다 = "새 줄 차단"                 끝.             끝.             한다면 표시하다 그리고나서                 r = .html.만들다( "스판" )                            :위키텍스트( 표시하다 )             끝.         끝.         한다면 코드 그리고나서             원천 = 코드:서브( 'N', "\n" )             코드   = .본문.노우키( 코드 ):서브( 'N', "&#92;n" )             코드   = .html.만들다( "코드" )                             :css( "좌향좌향",  "1em" )                             :css( "오른쪽", "1em" )                             :위키텍스트( 코드 )             한다면 r 그리고나서                 r = .html.만들다( "스판" )                            :노드( r )                            :노드( 코드 )             또 다른                 r = 코드             끝.         끝.     끝.     한다면 원천 그리고. 데이터..태그 그리고나서         데이터..태그.포맷 = 원천     끝.     돌아가다 r 끝. -- format()    현지의 기능. 포맷하는 사람()     -- 제시된 문서를 작성합니다.     -- <div>를 반환합니다.     현지의 r = .html.만들다( "div" )     현지의 x = 정형화된( 데이터..트리, 진실의, r )     현지의 s     한다면 x 그리고나서         r = x     끝.     한다면 데이터..이끄는 그리고나서         현지의  = .html.만들다( "div" )         현지의 교대하다         한다면 설정.진압하다TOCNum 그리고나서             :클래스 추가( 설정.진압하다TOCNum )             한다면 유형( 설정.스타일 TOCNum ) == "문자열' 그리고나서                 현지의 src = 설정.스타일 TOCNum .. "/styles.css"                 s = 템플릿 데이터.:확장 태그( '패턴 스타일',                                                      제로,                                                      { src = src } )                 r:줄바꿈()                  :노드( s )             끝.         끝.         :클래스 추가( "검색 불가" )            :css( "상단", "0.5em" )            :위키텍스트( "_TOC__" )         한다면 데이터..형제 그리고나서             현지의 블록 = .html.만들다( "div" )             한다면 템플릿 데이터.ltr 그리고나서                 교대하다 = "올바른"             또 다른                 교대하다 = "왼쪽             끝.             블록:css( "실패", 교대하다 )                  :위키텍스트( 데이터..형제 )             r:줄바꿈()              :노드( 블록 )              :줄바꿈()         끝.         r:줄바꿈()          :노드(  )          :줄바꿈()         한다면 교대하다 그리고나서             r:노드( .html.만들다( "div" )                            :css( "클리어", 교대하다 ) )              :줄바꿈()         끝.     끝.     s = 특징들()     한다면 s 그리고나서         한다면 데이터..이끄는 그리고나서             r:노드( .html.만들다( "h" .. 설정.중첩된 )                            :위키텍스트( 공장 ( "doc-params" ) ) )              :줄바꿈()         끝.         r:노드( s )     끝.     한다면 데이터..공유했습니다. 그리고나서         현지의 세계적인 = .html.만들다( "div" )                               :특성( "id", "글로벌 인증 완료" )         현지의 교대하다         한다면 템플릿 데이터.ltr 그리고나서             교대하다 = "올바른"         또 다른             교대하다 = "왼쪽         끝.         세계적인:css( "실패", 교대하다 )               :위키텍스트( string.format( "[%s %s]",                                         데이터..공유했습니다., "글로벌" ) )         r:줄바꿈()          :노드( 세계적인 )     끝.     한다면 데이터..트리 그리고. 데이터..트리.포맷 그리고나서         현지의 e = 포맷()         한다면 e 그리고나서             현지의 표시하다 = "형식"             한다면 설정.support Format 그리고나서                 표시하다 = string.format( "[%s %s]",                                       설정.support Format, 표시하다 )             끝.             r:노드( .html.만들다( "p" )                            :클래스 추가( "검색 불가" )                            :위키텍스트( 표시하다 .. ": " )                            :노드( e ) )         끝.     끝.     돌아가다 r 끝. -- formatter()    현지의 기능. 공짜()     -- JSON 댓글 행 삭제     한다면 데이터..원천:발견하다( "//", 1, 진실의 ) 그리고나서         데이터..원천:서브( "([{,\"']'(%s*)\n%s*//.*\n%s*([{})\"'])",                           "%1%3" )     끝. 끝. -- free()    현지의 기능. 가득한()     -- JSON 데이터로 조사표 작성, 보이지 않는 <템플릿타> 추가     데이터..나누다 = .html.만들다( "div" )                       :클래스 추가( "mw-containatedata-doc-doc-disc" )     한다면 허용하다.css.bg 그리고나서         데이터..나누다:css( 허용하다.css.bg )     끝.     한다면 허용하다.css.fg 그리고나서         데이터..나누다:css( 허용하다.css.fg )     끝.     초점()     한다면 데이터..태그 그리고나서         한다면 유형( 데이터..얻었다.파라미터 ) == "테이블" 그리고나서             위해서 k, v  쌍들( 데이터..얻었다.파라미터 ) 하다                 초점( k )             끝. -- k, v의 경우             한다면 데이터..상속인 그리고나서                 아버지들()             끝.         끝.     끝.     데이터..나누다:노드( 포맷하는 사람() )     한다면 것은 아니다. 데이터..게으른 그리고나서         데이터..날씬한 = 붉어지다()         한다면 템플릿 데이터. 그리고나서             현지의 나누다   = .html.만들다( "div" )             현지의 데이터 = { [ 1 ] = "검증 완료",                             [ 2 ] = 데이터..날씬한 }             데이터..벗다 = 템플릿 데이터.:callParser 기능( "#태그",                                                                 데이터 )             나누다:위키텍스트( 데이터..벗다 )             한다면 설정.시끄럽게 그리고나서                 데이터..나누다:노드( .html.만들다( "hr" )                                       :css( { 높이 = "7ex" } ) )             또 다른                 나누다:css( "디스플레이", "없음" )             끝.             데이터..나누다:노드( 나누다 )         끝.     끝.     한다면 데이터..영속적인 그리고나서         결함.( "사용되지 않는 형식 구문" )     끝.     한다면 데이터..더 적은 그리고나서         결함.( 설정.단독의 )     끝. 끝. --full()    현지의 기능. 제공하다( 적응하다, 리스트 )     -- 트랜스클루전 분석     -- 파라미터:     -- adapt -- 테이블, #parameters 파라미터     -- arglist -- 테이블, 템플릿파라미터     -- 문자열을 반환합니다.     현지의 원천     편애하다()     -- 권장되지 않음:     위해서 k, v  쌍들( 설정.기본 Cnf ) 하다         한다면 적응하다[ k ]  그리고.  적응하다[ k ] ~= "" 그리고나서             설정[ v ] = 적응하다[ k ]         끝.     끝. -- k, v의 경우     한다면 리스트.표제  그리고.  리스트.표제:경기( "^[3-6]$" ) 그리고나서         설정.중첩된 = 리스트.표제     또 다른         설정.중첩된 = "2"     끝.     설정.시끄럽게 = 교수진( 리스트.디버깅 또는 적응하다.디버깅 )     데이터..게으른     = 교수진( 리스트.게으른 )  그리고.  것은 아니다. 설정.시끄럽게     데이터..이끄는  = 교수진( 리스트.TOC )     한다면 데이터..이끄는 그리고. 리스트.TOC시블링 그리고나서         데이터..형제 = .본문.다듬다( 리스트.TOC시블링 )     끝.     한다면 리스트.언어 그리고나서         데이터..속어. = 리스트.언어:더 낮게()     그렇지 않으면 적응하다.언어 그리고나서         데이터..속어. = 적응하다.언어:더 낮게()     끝.     한다면 리스트.JSON 그리고나서         원천 = 리스트.JSON     그렇지 않으면 리스트.세계적인 그리고나서         원천 = 템플릿 데이터.getGlobalJ아들.( 리스트.세계적인,                                              리스트.현지의 )     그렇지 않으면 리스트[ 1 ] 그리고나서         현지의 s     = .본문.다듬다( 리스트[ 1 ] )         현지의 개시하다 = s:후보선수( 1, 1 )         한다면 개시하다 == "<" 그리고나서             데이터..벗다 = s         그렇지 않으면 개시하다 == "{" 그리고나서             원천 = s         그렇지 않으면 .스트링.후보선수( s, 1, 8 ) ==                .스트링.( 127, 39, 34, 96, 85, 78, 73, 81 ) 그리고나서             데이터..벗다 = s         끝.     끝.     한다면 유형( 리스트.수직의 ) == "문자열'  그리고.        리스트.수직의:경기( "^%d*%?"%d+[emprx]+$" ) 그리고나서         데이터..스크롤 = 리스트.수직의     끝.     한다면 것은 아니다. 원천 그리고나서         데이터..직함 = .직함.get Current Title(전류 제목)()         원천 = 발견하다()         한다면 것은 아니다. 원천  그리고.            것은 아니다. 데이터..직함.본문:경기( 설정.서브 페이지 ) 그리고나서             현지의 s = string.format( 설정.접미사,                                      데이터..직함.프리픽스본문 )             데이터..직함 = .직함.신규( s )             한다면 데이터..직함.존재한다 그리고나서                 원천 = 발견하다()             끝.         끝.     끝.     한다면 것은 아니다. 데이터..게으른 그리고나서         한다면 것은 아니다. 데이터..직함 그리고나서             데이터..직함 = .직함.get Current Title(전류 제목)()         끝.         데이터..게으른 = 데이터..직함.본문:경기( 설정.서브 페이지 )     끝.     한다면 유형( 원천 ) == "문자열' 그리고나서         템플릿 데이터.getPlainJ아들.( 원천 )     끝.     돌아가다 마무리짓다( 교수진( 리스트.원천 ) ) 끝. -- 제공()    페일 세이프.페일 세이프 = 기능. ( 적어도 )     --버전 관리를 취득하여 컴플라이언스를 확인합니다.     -- 전제 조건:     -- 최소 -- 문자열(필요한 버전 포함)     -- 또는 wikidata 항목 ~ @ 또는 false     -- 사후 조건:     --문제의 버전/항목과 함께 문자열을 반환합니다(문제가 있는 경우에도 마찬가지).     -- false -- 적절한 경우     -- 2020-08-17     현지의 부터  = 적어도     현지의 지난   = ( 부터 == "~" )     현지의 링크된 = ( 부터 == "@" )     현지의 링크   = ( 부터 == "항목" )     현지의 r     한다면 지난  또는  링크  또는  링크된  또는  부터 == "카메리다타" 그리고나서         현지의 아이템 = 페일 세이프.아이템         부터 = 거짓의         한다면 유형( 아이템 ) == "숫자"  그리고.  아이템 > 0 그리고나서             현지의 적합. = string.format( "Q%d", 아이템 )             한다면 링크 그리고나서                 r = 적합.             또 다른                 현지의 독립체 = .키보드.엔티티( 적합. )                 한다면 유형( 독립체 ) == "테이블" 그리고나서                     현지의 추구한다. = 페일 세이프.serial Property 또는 "P348"                     현지의 vsn  = 독립체:format Property Values( 추구한다. )                     한다면 유형( vsn ) == "테이블"  그리고.                        유형( vsn.가치 ) == "문자열'  그리고.                        vsn.가치 ~= "" 그리고나서                         한다면 지난  그리고.  vsn.가치 == 페일 세이프.시리얼 그리고나서                             r = 거짓의                         그렇지 않으면 링크된 그리고나서                             한다면 .직함.get Current Title(전류 제목)().프리픽스본문                                ==  .키보드.get Sitelink를 취득하다( 적합. ) 그리고나서                                 r = 거짓의                             또 다른                                 r = 적합.                             끝.                         또 다른                             r = vsn.가치                         끝.                     끝.                 끝.             끝.         끝.     끝.     한다면 유형( r ) == "실패" 그리고나서         한다면 것은 아니다. 부터  또는  부터 <=> 페일 세이프.시리얼 그리고나서             r = 페일 세이프.시리얼         또 다른             r = 거짓의         끝.     끝.     돌아가다 r 끝. -- Failsafe.failsafe()    템플릿 데이터.getGlobalJ아들. = 기능. ( 접근, 적응하다 )     -- 글로벌 저장소(JSON)에서 템플릿 데이터 가져오기     -- 파라미터:     -- access -- 페이지 지정자를 포함한 문자열(WikiMedia Commons)     --adapt -- JSON 문자열 또는 로컬오버라이드가 있는 테이블     -- 성공하면 true를 반환합니다.     현지의 플러그인 = 가지고 오다( "/글로벌" )     현지의 r     한다면 유형( 플러그인 ) == "테이블"  그리고.        유형( 플러그인.가지고 오다 ) == "기능' 그리고나서         현지의 s, 얻었다 = 플러그인.가지고 오다( 접근, 적응하다 )         한다면 얻었다 그리고나서             데이터..얻었다    = 얻었다             데이터..주문  = 얻었다.param Order(파라미터 순서)             데이터..공유했습니다. = s             r           = 진실의             가득한()         또 다른             결함.( s )         끝.     끝.     돌아가다 r 끝. -- TemplateData.getGlobalJSON()    템플릿 데이터.getPlainJ아들. = 기능. ( 적응하다 )     --확장된 JSON 데이터를 일반 텍스트로 현지화된 JSON으로 변환합니다.     -- 파라미터:     --adapt -- 문자열, 확장 JSON을 사용합니다.     -- 문자열을 반환하거나 반환하지 않습니다.     한다면 유형( 적응하다 ) == "문자열' 그리고나서         현지의 JSONutil = 가지고 오다( "JSONutil", 진실의 )         데이터..원천 = 적응하다         공짜()         한다면 JSONutil 그리고나서             현지의 다국어 = 가지고 오다( "다국어", 진실의 )             현지의 f             한다면 다국어 그리고나서                 f = 다국어.18n             끝.             데이터..얻었다 = JSONutil.가지고 오다( 데이터..원천, 진실의, f )         또 다른             현지의 행운의             행운의, 데이터..얻었다 = pcall( .본문.json 디코드, 데이터..원천 )         끝.         한다면 유형( 데이터..얻었다 ) == "테이블" 그리고나서             가득한()         그렇지 않으면 것은 아니다. 데이터..벗다 그리고나서             현지의 비명을 지르다 = 유형( 데이터..얻었다 )             한다면 비명을 지르다 == "문자열' 그리고나서                 비명을 지르다 = 데이터..얻었다             또 다른                 비명을 지르다 = "Data.got: " .. 비명을 지르다             끝.             결함.( 치명적인 JSON 오류: .. 비명을 지르다 )         끝.     끝.     돌아가다 데이터..날씬한 끝. -- TemplateData . getPlainJSON()    템플릿 데이터.시험 = 기능. ( 적응하다, 리스트 )     템플릿 데이터. = .get Current Frame(전류 프레임)()     돌아가다 제공하다( 적응하다, 리스트 ) 끝. -- TemplateData.test()    -- 내보내기 현지의 p = { }  p.f = 기능. (  )     -- 템플릿콜     현지의 행운의, r     템플릿 데이터. =      행운의, r = pcall( 제공하다, .args, :부모 취득().args )     한다면 것은 아니다. 행운의 그리고나서         결함.( "내부: " .. r )         r = 실패.()     끝.     돌아가다 r 끝. -- 페이지  p.페일 세이프 = 기능. (  )     --버전 관리 인터페이스     현지의 s = 유형(  )     현지의 부터     한다면 s == "테이블" 그리고나서         부터 = .args[ 1 ]     그렇지 않으면 s == "문자열' 그리고나서         부터 =      끝.     한다면 부터 그리고나서         부터 = .본문.다듬다( 부터 )         한다면 부터 == "" 그리고나서             부터 = 거짓의         끝.     끝.     돌아가다 페일 세이프.페일 세이프( 부터 )  또는  "" 끝. -- p. fail safe  p.템플릿 데이터 = 기능. ()     -- 모듈 인터페이스     돌아가다 템플릿 데이터 끝.  돌아가다 p