모듈:변환/표시

Module

-- Wikitext 테이블을 준비하여 간단한 문서를 표시합니다. --지정된 단위입니다.데이터를 얻으려면 모듈을 호출합니다.변환하다. -- 변환 사용 예를 표시하는 기능도 제공합니다.  현지의 수집  -- 아이템을 보관하는 테이블 수집 = {  더하다 = 기능. (자신, 아이템)   한다면 아이템 ~= 제로 그리고나서    자신.n = 자신.n + 1    자신[자신.n] = 아이템   끝.  끝.,  합류하다 = 기능. (자신, 세프)   돌아가다 table.concat(자신, 세프)  끝.,  제거한다. = 기능. (자신, 포스)   한다면 자신.n > 0 그리고. (포스 == 제로 또는 (0 <> 포스 그리고. 포스 <=> 자신.n)) 그리고나서    자신.n = 자신.n - 1    돌아가다 테이블.삭제(자신, 포스)   끝.  끝.,  종류 = 기능. (자신, 컴포넌트)   table.displaces(자신, 컴포넌트)  끝.,  신규 = 기능. ()   돌아가다 설정 가능한({n = 0}, 수집)  끝. } 수집.__인덱스 = 수집  현지의 기능. 벗다(본문)  -- 선두/추적 공백 없이 텍스트를 반환합니다.  돌아가다 본문:경기("^%s*(-)%s*$") 끝.  현지의 기능. 페이크 프레임(셀프아그, 부모 Args)  -- 변환용으로 MediaWiki 모듈 프레임을 충분히 시뮬레이트합니다.  -- 이것은 지정된 인수를 사용하여 변환을 호출하는 저렴한 방법입니다.  돌아가다 {   args = 셀프아그,   부모 = 부모 Args 그리고. 페이크 프레임(부모 Args, 제로),   부모 취득 = 기능. (자신) 돌아가다 자신.부모 끝.,  } 끝.  현지의 cvt기능 현지의 기능. 콜 변환(args)  한다면 것은 아니다. cvt기능 그리고나서   cvt기능 = 요구하다('모듈:변환').개종시키다  끝.  돌아가다 cvt기능(페이크 프레임({}, args)) 끝.  현지의 기능. make Table(, 결과., 유닛)  결과.:더하다('{ class='불가능'')  결과.:더하다('! 유닛 코드!!단위 기호!!유닛명!!미국 이름(다른 경우))  위해서 i, ucode  아이페어(유닛) 하다   현지의 배를 젓다 = 수집.신규()   배를 젓다:더하다(ucode)   현지의 args = { '1', ucode, abbr = 켜다', 디스패치 = '유닛 }   배를 젓다:더하다(콜 변환(args))   args.abbr = 오프   현지의 이름 1 = 콜 변환(args)   배를 젓다:더하다(이름 1)   args.sp = '우리'   현지의 name1_us = 콜 변환(args)   한다면 name1_us == 이름 1 그리고나서    배를 젓다:더하다('')   또 다른    배를 젓다:더하다(name1_us)   끝.   결과.:더하다(' -')   결과.:더하다(벗다('  ' .. 배를 젓다:합류하다('    ')))  끝.  결과.:더하다(' }')  결과.:더하다('') 끝.  --주문서용으로 일반적으로 사용되는 유닛. -- 입력 단위만 사용할 수 있습니다(조합이나 배수는 사용할 수 없습니다). 현지의 공통 단위 = {  ["지역"] = {   표제 = "지역",    = { "1.5 평방 킬로미터", "1.5 평방 킬로미터2 abbr=off", "1.5 평방 킬로미터2 abbr=on" },   "실패",   '하',   "m2",   "cm2",   'km2',   "접속",   "ft",   "비활성화",   '오크미',  },  ["연비"] = {   표제 = "연비",    = { "12 mpgus km/L", "12 mpgus km/L abbr=off", "12 mpgus km/L abbr=off sp=us", "12 mpgus km/L abbr=on" },   "km/L",   "mpgimp",   "mpgus",   "L/km",   "L/100km",  },  ["길이"] = {   표제 = "길이",    = { "123 cm", "123 cm in abbr=off sp=us", "123 cm (abbr=on)" },   "uin",   "입력"」,   '피트",   "yd",   '미',   'nmi',   "m",   "cm",   "음",   "km",   "앵글스트롬",  },  ["질량"] = {   표제 = "질량",    = { "72.3 kg파운드", "72.3 kg abbr = 꺼짐", "72.3 kg abbr = on" },   "g",   'kg',   "oz",   "파운드",   「st」,   'LT',   "MT",   'ST',  },  ["압박"] = {   표제 = "압박",    = { "28 psi Pa", "28 psi Pa abbr = 꺼짐", "28 psi Pa abbr = on" },   "실패",   "mbar",   'psi',   '빠',  },  ["속도"] = {   표제 = "속도",    = { "km/h 60mph", "km/h abbr=off", "60mph/h abbr=on" },   "km/h",   "km/s",   "kn",   "mph",  },  ['온도'] = {   표제 = '온도',    = { "100°F", "100 C F abbr = 꺼짐", "100 C-change F-change", "100 C-change F-change abbr=out" },   'C',   'F',   'K',   "C-change",   "F-change",   'K체인지',  },  ["토크"] = {   표제 = "토크",    = { "12.5 Nm lb.in", "12.5 Nm lb.in abbr=off", "12.5 Nm lb.in abbr = on lk = on" },   "lb.in",   "lb.ft",   'Nm',  },  ["볼륨"] = {   표제 = "볼륨",    = { "125 cuin l", "125 cuin l abbr=off", "125 cuin l abbr=on" },   "cuin",   "cuft",   "큐드",   '쿠미',   "불합치",   '임포즈',   "범용",   "usoz",   'L',   "l",   'm3',   "cc",   'mm3',  }, }  -- 모든 공통 유닛을 실행할 때 필요한 섹션의 순서. 현지의 공통 섹션 = {  "지역",  "연비",  "길이",  "질량",  "압박",  "속도",  '온도',  "토크",  "볼륨", }  현지의 기능. _show 예시(, 결과., , want Table(원하는 테이블))  현지의 fmt  한다면 want Table(원하는 테이블) 그리고나서   결과.:더하다('{ ')   fmt = '%s' </code> → %s'  또 다른   fmt = '* < code > %s < / code > → %s'  끝.  위해서 i, 아이템  아이페어() 하다   한다면 want Table(원하는 테이블) 그리고. i > 1 그리고나서    결과.:더하다(' -')   끝.   아이템 = 아이템:서브('!', ' ')   아이템 = '{{nots}' .. (아이템:후보선수(1, 1) == ' ' 그리고. '' 또는 ' ') .. 아이템 .. '}}'   결과.:더하다(fmt:포맷(.본문.노우키(아이템), :전처리(아이템)))  끝.  한다면 want Table(원하는 테이블) 그리고나서   결과.:더하다(' }')  끝. 끝.  현지의 기능. _showLinks(, 결과., args)  현지의 샌드박스 = args[1] == '실패' 그리고. '/filename' 또는 ''  현지의 data 모듈 = '모듈:변환/데이터' .. 샌드박스  현지의 텍스트 모듈 = '모듈:변환/텍스트' .. 샌드박스  현지의 데이터 코드 = 요구하다(data 모듈)  현지의 텍스트 코드 = 요구하다(텍스트 모듈)  현지의 고유 링크 = {}  현지의 링크 = 수집.신규()  현지의 기능. 추가 링크(링크)   한다면 링크 그리고. 링크 ~= '' 그리고나서    -- 일부 항목(일명 심볼링크, chainlk 심볼)은 이미 연결되어 있습니다.    -- 따라서 고유성을 테스트하기 전에 링크 구문이 없는 경우 추가합니다.    -- Chain (유닛) chain (체인) + Chain (유닛) ch (유닛) ch)와 같은 타겟이 중복됩니다.    한다면 링크:후보선수(1, 2) ~= '[[' 그리고나서     링크 = '[[' .. 링크 .. ']]'    끝.    한다면 것은 아니다. 고유 링크[링크] 그리고나서     고유 링크[링크] = 진실의     링크:더하다(링크)    끝.   끝.  끝.  위해서 _, v  아이페어(텍스트 코드.습관적인) 하다   추가 링크(v.링크)  끝.  위해서 _, v  쌍들(데이터 코드.all_displays(모두)_displaces(실행)) 하다   -- 이것은 유닛당 자동에 대해서는 아무것도 추가하지 않습니다(링크를 정의하지 않은 경우).   -- 단위 x/y에는 LINK(x)/LINK(y)가 있기 때문에 괜찮습니다.   한다면 v.기호. 그리고. v.기호.:후보선수(1, 2) == '[[' 그리고나서    추가 링크(v.기호.)   끝.   한다면 v.이름 1 그리고. v.이름 1:후보선수(1, 2) == '[[' 그리고나서    추가 링크(v.이름 1)   끝.   추가 링크(v.심볼링크)   추가 링크(v.링크 또는 v.이름 1 또는 (것은 아니다. v.에 따라 그리고. 것은 아니다. v.타깃) 그리고. v.기호.)  끝.  위해서 _, v  쌍들(데이터 코드.link_예외) 하다   추가 링크(v)  끝.  위해서 _, v  쌍들(데이터 코드.단위_유닛_픽스업) 하다   한다면 유형(v) == '테이블' 그리고나서    추가 링크(v.링크)   끝.  끝.  현지의 기능. 컴포넌트(a, b)   현지의  = a:더 낮게(a)   현지의 lb = b:더 낮게(b)   한다면  == lb 그리고나서    돌아가다 a <> b   끝.   돌아가다  <> lb  끝.  링크:종류(컴포넌트)  위해서 _, v  아이페어(링크) 하다   결과.:더하다('*' .. v)  끝. 끝.  현지의 기능. _show유닛(, 결과., args)  현지의   한다면 args[1] == 제로 그리고나서    = 진실의   args = 공통 섹션  끝.  현지의 그룹. = 수집.신규()  위해서 _, 아이템  아이페어(args) 하다   현지의 유닛 = 공통 단위[아이템] 또는 공통 단위[아이템:후보선수(1, 1):위쪽의() .. 아이템:후보선수(2)]   한다면 유닛 그리고나서    한다면 그룹..n > 0 그리고나서     make Table(, 결과., 그룹.)     그룹. = 수집.신규()    끝.    한다면  그리고나서     한다면 유닛.표제 그리고나서      결과.:더하다('===' .. 유닛.표제 .. '===')     끝.     한다면 유닛. 그리고나서      결과.:더하다('예:')      _show 예시(, 결과., 유닛.)     끝.    끝.    make Table(, 결과., 유닛)   또 다른    그룹.:더하다(아이템)   끝.  끝.  한다면 그룹..n > 0 그리고나서   make Table(, 결과., 그룹.)  끝. 끝.  현지의 기능. show 예(, want Table(원하는 테이블))  현지의 결과. = 수집.신규()  현지의 네 알겠습니다, 메시지 = pcall(_show 예시, , 결과., .args, want Table(원하는 테이블))  한다면 네 알겠습니다 그리고나서   돌아가다 결과.:합류하다('\n')  끝.  돌아가다 '<strong class="error"> 오류 </strong>\n' .. 메시지 끝.  현지의 기능. showLinks()  현지의 결과. = 수집.신규()  현지의 네 알겠습니다, 메시지 = pcall(_showLinks, , 결과., .args)  한다면 네 알겠습니다 그리고나서   돌아가다 결과.:합류하다('\n')  끝.  돌아가다 '<strong class="error"> 오류 </strong>\n' .. 메시지 끝.  현지의 기능. 쇼유닛()  현지의 결과. = 수집.신규()  현지의 네 알겠습니다, 메시지 = pcall(_show유닛, , 결과., .args)  한다면 네 알겠습니다 그리고나서   돌아가다 결과.:합류하다('\n')  끝.  돌아가다 '<strong class="error"> 오류 </strong>\n' .. 메시지 끝.  돌아가다 {  링크 = showLinks,  구성 단위 = 쇼유닛,  유닛 = 쇼유닛,  [리스트] = 기능. () 돌아가다 show 예(, 거짓의) 끝.,  ['테이블'] = 기능. () 돌아가다 show 예(, 진실의) 끝., }