모듈: Wikidata 정보 상자

Module:Wikidata Infobox

현지의 p = {} 현지의 위키데이터IB = 요구하다("모듈:위키데이터IB")  -- '모듈:글로벌 없음 현지의 할 수 있다 = getmetable(_G) 또는 {} 기능. 할 수 있다.__인덱스 (t, k)  한다면 k ~= '실패' 그리고나서   에러('no global'을 읽으려고 시도했습니다. .. 스트링(k), 2)  끝.  돌아가다 제로 끝. 기능. 할 수 있다.__new 인덱스(t, k, v)  한다면 k ~= '실패' 그리고나서   에러('글로벌 쓰기를 시도했습니다.' .. 스트링(k), 2)  끝.  rawset(원래 세트)(t, k, v) 끝. 설정 가능한(_G, 할 수 있다) -- 'Module: '의 코드 끝:글로벌 없음  기능. p.미드를 취득()  돌아가다 'M' .. .직함.get Current Title(전류 제목)().아이디 끝. 기능. p.get Filename(파일명)()  돌아가다 .직함.get Current Title(전류 제목)().nsText .. ':' .. .직함.get Current Title(전류 제목)().본문 끝.  기능. p.getP180vals()  현지의 중앙의 = .args[1]  현지의 접두사 = .args[2] 또는 ''  현지의 포스트픽스 = .args[3] 또는 ' '  현지의 본문 = ''  현지의 테이블 경쟁 = .키보드.get Best Statements(베스트 스테이트먼트)( 중앙의, 'P180')  위해서 i, v  아이페어(테이블 경쟁) 하다   본문 = 본문 .. 접두사 .. v.메인음.데이터.가치.아이디 .. 포스트픽스  끝.  돌아가다 본문 끝.  -- 현재 항목의 모든 속성 목록을 가져옵니다. 기능. p.프리로드 Wikidata 속성()  현지의 qid = .args[1] 또는 ''  현지의 프로리스트 = ''  한다면 .본문.다듬다(qid 또는 '') ~= '' 그리고나서   현지의 독립체 = .키보드.엔티티(qid)   현지의 특성. = 독립체:get Properties()   위해서 i, v  아이페어(특성.) 하다    프로리스트 = 프로리스트 .. v .. ", "   끝.  끝.  한다면 프로리스트 == '' 그리고나서   프로리스트 = '없음'  끝.  돌아가다 프로리스트 끝.  -- Wikidata 목록, 포크 목록에 있는지 확인합니다.IB의 checkBlacklist 기능 기능. p.체크프로파일리스트()  현지의 프로리스트 = .args.페치위키다타 또는 .args.fwd 또는 ""  현지의 필드명 = .args.이름. 또는 ""  한다면 프로리스트 ~= "" 그리고. 필드명 ~= "" 그리고나서   한다면 프로리스트:발견하다(필드명 .. ",") 그리고나서    돌아가다 진실의   또 다른    돌아가다 ''   끝.  또 다른   -- 필드 중 하나가 누락되어 있습니다.그것을 「리스트」라고 부릅니다.   돌아가다 진실의  끝. 끝.  기능. p.조합Wikidata 템플릿()  현지의 qid = .args[1] 또는 ''  현지의 출력 코드 = ''  한다면 .본문.다듬다(qid 또는 '') ~= '' 그리고나서   현지의 테이블 경쟁 = .키보드.get Best Statements(베스트 스테이트먼트)( qid, 'P971')   현지의 세어보세요 = 0   현지의 맵시드 = 0   위해서 i, v  아이페어(테이블 경쟁) 하다    세어보세요 = 세어보세요 + 1   끝.   한다면 세어보세요 < > 3 그리고나서    위해서 i, v  아이페어(테이블 경쟁) 하다     현지의 건너뛰다. = 0     -- 건물 내부(Q30062422), 지도(Q4006) 및 선박명(Q56351075), 대서양(Q97), 미국 주(Q35657) 생략     한다면 v.메인음.데이터.가치.아이디 == 'Q30062422' 또는 v.메인음.데이터.가치.아이디 == 'Q56351075' 또는 v.메인음.데이터.가치.아이디 == 'Q4006' 또는 v.메인음.데이터.가치.아이디 == 'Q97' 또는 v.메인음.데이터.가치.아이디 == 'Q35657' 그리고나서      건너뛰다. = 1     또 다른      현지의 p279 체크 = .키보드.get Best Statements(베스트 스테이트먼트)( v.메인음.데이터.가치.아이디, 'P279')      위해서 j, w  아이페어(p279 체크) 하다       건너뛰다. = 1      끝.      현지의 p31 체크 = .키보드.get Best Statements(베스트 스테이트먼트)( v.메인음.데이터.가치.아이디, 'P31')      위해서 j, w  아이페어(p31 체크) 하다       -- 건너뛰기 국가(Q6256), 대륙(Q5107), 주권 국가(Q3624078), 해양(Q9430)       한다면 w.메인음.데이터.가치.아이디 == 'Q6256' 또는 w.메인음.데이터.가치.아이디 == 'Q5107' 또는  w.메인음.데이터.가치.아이디 == 'Q3624078' 또는  w.메인음.데이터.가치.아이디 == 'Q9430' 그리고나서        건너뛰다. = 1        맵시드 = v.메인음.데이터.가치.아이디       끝.      끝.     끝.      한다면 건너뛰다. == 0 그리고나서      현지의 신프레임 = {}      신프레임.args = {}      신프레임.args[0] = ''      신프레임.args[1] = v.메인음.데이터.가치.아이디      출력 코드 = 출력 코드 .. :확장 템플릿{ 직함 = 'Wikidata 정보 상자/코어', args = { qid=v.메인음.데이터.가치.아이디, 짜넣다='네', conf_control='네', fwd=p.프리로드 Wikidata 속성(신프레임) } }     끝.    끝.   끝.   한다면 맵시드 ~= 0 그리고나서    출력 코드 = 출력 코드 .. :확장 템플릿{ 직함 = '위키다타 정보 상자/국가 지도', args={qid=맵시드}}   끝.   끝.  돌아가다 출력 코드 끝.  기능. p.if Then Show()  한다면 .본문.다듬다(.args[1] 또는 '') ~= '' 그리고나서   돌아가다 (.args[3] 또는 '') .. (.args[1] 또는 '') .. (.args[4] 또는 '')  또 다른   돌아가다 (.args[2] 또는 '')  끝. 끝.  기능. p.add Cat()  한다면 .본문.다듬다(.args[1] 또는 '') ~= '' 그리고나서   돌아가다 '[[' .. .args[1] .. ']]'  끝. 끝.  -- 입력 영역이 지정되면 mw에서 사용할 지도 확대/축소 수준을 반환합니다.내선번호:{{Wikidata Infobox}}의 카트그래퍼입니다.기본값은 mapzoom=15 입니다.  기능. p.자동 맵 줌()  현지의 사이즈,무효 = .args[1]:서브(%D+%?%D+", ""):서브(",","")  현지의 크기 = 톤수(사이즈) 또는 0  현지의 LUT = { 5000000, 1000000, 100000, 50000, 10000, 2000, 150, 50, 19, 14, 5, 1, 0.5 }   위해서 , 규모.  아이페어(LUT) 하다   한다면 크기 > 규모. 그리고나서    돌아가다 +1   끝.  끝.  돌아가다 15 끝.  기능. p.포맷라인()  현지의 파트2 = .본문.다듬다(.args[2] 또는 '')  현지의 리턴스트래 = ''  한다면 파트2 ~= '' 그리고나서   리턴스트래 = <tr>   한다면 (.args.모바일. 또는 'n') == 'y' 그리고나서    리턴스트래 = 리턴스트래 .. 'class="wdinfo_nomobile"   끝.   현지의 신프레임 = {}   신프레임.args = {}   신프레임.args.qid = .args[1]   리턴스트래 = 리턴스트래 .. '> <th class="classidatainfox-lcell"> .. .get Content Language(get Content Language)():첫 번째(위키데이터IB.get Label(라벨)(신프레임))   리턴스트래 = 리턴스트래 .. </th> </th> </th> </th>   한다면 (.args.싼다 또는 'n') == 'y' 그리고나서    리턴스트래 = 리턴스트래 .. 'style="white-space: nowrap"   끝.   리턴스트래 = 리턴스트래 .. '>' .. 파트2 .. '</tr></tr>'  끝.  돌아가다 리턴스트래 끝.  기능. p. (, )     위해서 색인, 가치  아이페어() 하다         한다면 가치 ==  그리고나서             돌아가다 진실의         끝.     끝.      돌아가다 거짓의 끝.  --baseLang은 사용 중인 기본 언어를 반환하는 유틸리티 함수입니다. -- 예를 들어 영어(en)와 영국 영어(en-gb) 모두 'en'을 반환합니다. -- https://commons.wikimedia.org/wiki/Module:Wikidata2 에서 기능. p.베이스 랭()  현지의 txtlang = :callParser 기능( "int", "실패" ) 또는 ""  -- 이것은 be-tarask -> be_x_old의 특정 예외를 처리합니다.  한다면 txtlang == "타라스크가 되다" 그리고나서   돌아가다 "be_x_old"  끝.  현지의 포스 = txtlang:발견하다("-")  현지의 리트 = ""  한다면 포스 그리고나서   리트 = txtlang:후보선수(1, 포스-1)  또 다른   리트 = txtlang  끝.  돌아가다 리트 끝.  기능. p.langDirection(언어방향)()  현지의 언어 = .본문.다듬다(.args[1] 또는 '')   한다면 (것은 아니다. .언어.is Supported Language(지원 언어)(언어)) 그리고나서    언어 = :callParser 기능( "int", "실패" ) --사용자가 선택한 언어를 가져옵니다.  끝.  돌아가다 .get Language(언어):GetDir() 끝.  --[[ convertChar는 지정된 문자의 분음 이외의 버전을 반환합니다. stripdiacrits는 단어를 분음 문자로 바꿉니다. strip_diacrits는 다른 모듈로 내보낼 수 있습니다. 스트링두 단어를 테스트하는 것과 마찬가지로 분음 부호만 다르면 true를 반환하고 그렇지 않으면 false를 반환합니다. stringIs_like는 다른 모듈로 내보낼 수 있습니다. --]]  현지의 기능. 캐릭터 맵()  -- 분음 기호와 그에 상당하는 기본 라틴 문자를 포함한 표  현지의 charMap_from, charMap_to  charMap_from =  '아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아아..      'áàâäǎăāãåąəćċĉčçďđḍðéèėêëěĕēẽęẹġĝğģĥħḥıíìîïǐĭīĩįịĵķĺŀľļłḷḹṃńňñņṇŋóòôöǒŏōõǫọőøŕřŗṛṝśŝšşșṣťţțṭúùûüǔŭūũůųụűǘǜǚǖŵýŷÿỹȳźżž'  charMap_to   =  'AAAAAAAAACCCDDIEEEEGGHHIIIIIIIIIIIIIIIIIIIINNNNNNOOOOOOORRTUSSTTT'..      'aaaaaaaacccddeeeeeeegghhiiiiiiiijkllllnnnnoooooooorrrsssssssttuuuuuuuuuuuyyyyzz'  현지의 charMap = {}  위해서 i = 1,.스트링.(charMap_from) 하다   charMap[.스트링.후보선수(charMap_from, i, i)] = .스트링.후보선수(charMap_to, i, i)  끝.  charMap['실패'] = 'ss'  돌아가다 charMap 끝.  기능. p.변환차()  현지의  = .args. 또는 .본문.다듬다(.args[1]) 또는 ""  현지의 charMap = 캐릭터 맵()  돌아가다 charMap[] 또는  끝.  기능. p.strip_diacrits(기입했다)  한다면 기입했다 그리고나서    현지의 charMap = 캐릭터 맵()   기입했다 = string.gsub(기입했다, "[^\128-\191][\128-\191]*", charMap )  끝.  돌아가다 기입했다 끝.  기능. p.스트립 분음()  돌아가다 p.strip_diacrits(.args.단어 또는 .본문.다듬다(.args[1])) 끝.  기능. p.stringIs_like(wrd1, wrd2)  돌아가다 p.strip_diacrits(wrd1) == p.strip_diacrits(wrd2) 끝.  기능. p.스트링맘에 들다()  현지의 wrd1 = .args.워드1 또는 .args[1]  현지의 wrd2 = .args.워드2 또는 .args[2]  한다면 p.strip_diacrits(wrd1) == p.strip_diacrits(wrd2) 그리고나서   돌아가다 진실의  또 다른   돌아가다 제로  끝. 끝.  기능. p.확장 계층(, 히에로)  -- Jura1에 의해 추가되었습니다.  -- Wikihiero 구문의 문자열 값  -- https://meta.wikimedia.org/wiki/Help_talk:WikiHiero_syntax#Unwanted_newlines 에서 권장하는 인라인  -- 모든 상황에서 필요한 것은 아닐 수 있습니다.  돌아가다  :전처리('<div style="text-align:center;디스플레이:param;"><paramo>' .. 히에로 .. '</divo></div>') 끝.  현지의 기능. format2 rowline(cell1, cell2)  --Jura1에서 추가  현지의 tr = ""  tr = '<, tr>,<>thclass="wikidatainfobox-lcell"style="text-align: 남아;vertical-align:text-top."colspan="2"&gt다;. .. cell1 .. '<, /th>,<>/tr>.'  tr = tr .. '<, tr>,<>td valign="최고"colspan="2">.' .. cell2 .. '</tr></tr>'   돌아가다 tr         끝.  현지의 기능. format1rowline(트리시드, cell1, cell2)  -- Jura1에 의해 추가되었습니다.  현지의 tr = ""  tr = '<tr id=' .. 트리시드 .. ''><th class="classidatainfox-lcell" style="class-align:top">' .. cell1 .. '</th>'     tr = tr .. '<time valign="top" style="time-align:top">' .. cell2 .. '</tr></tr>'         돌아가다 tr         끝.  기능. p.hieroP7383() -- Jura1에 의해 추가되었습니다. --<hiero><hiero>태그에서 P7383 값을 전개합니다.  현지의 qid = .본문.다듬다(.args.qid 또는 "")  현지의  = ""  현지의 체크 엔트리 = .키보드.isValidEntity아이디(qid)  한다면 것은 아니다. 체크 엔트리 그리고나서   돌아가다 ''  끝.  현지의 독립체 = .키보드.getEntityObject(getEntityObject)(qid)  한다면 것은 아니다. 독립체 그리고나서   돌아가다 ''  끝.  현지의 마를랑 = :전처리('{int:param}}')  한다면 독립체.주장하다 그리고. 독립체.주장하다.P7383 그리고나서    위해서 _, v  아이페어(독립체.주장하다.P7383) 하다     현지의 idv = v.메인음.데이터.가치      한다면 v.수식자 그리고. v.수식자.P3831 그리고나서      위해서 _, w  아이페어(v.수식자.P3831) 하다       한다면 w.스냅타이프 == "값" 그리고나서        현지의 적격 = w.데이터.가치["id"]        현지의 부호화 = .키보드.getEntityObject(getEntityObject)(적격)                        =  .. format2 rowline(부호화:get Label(라벨)(마를랑), p.확장 계층(, idv))        끝.      끝.     또 다른        =  .. format2 rowline("이름", p.확장 계층(, idv))      끝.    끝.  끝.   돌아가다    끝.  기능. p.항아리()  현지의 qid = .본문.다듬다(.args.qid 또는 "")  현지의 마를랑 = :전처리('{int:param}}')  현지의 독립체 = .키보드.getEntityObject(getEntityObject)(qid)  한다면 것은 아니다. 독립체 그리고나서   돌아가다 ''  끝.  현지의 항아리 = ""  돌아가다 항아리  --- "<div style='display:none'>" .. urn .."</span>" 끝.  기능. p.번호 정보()   -- Jura1에 의한 추가에서   --카테고리:987_(번호)카테고리:8_(번호)에서의 테스트   현지의 qid = .본문.다듬다(.args.qid 또는 "")   현지의 마를랑 = :전처리('{int:param}}')   현지의  = ""   현지의 체크 엔트리 = .키보드.isValidEntity아이디(qid)   한다면 것은 아니다. 체크 엔트리 그리고나서    돌아가다 ''   끝.   현지의 독립체 = .키보드.getEntityObject(getEntityObject)(qid)   한다면 것은 아니다. 독립체 그리고나서    돌아가다 ''   끝.   한다면 독립체.주장하다.P487 그리고나서    위해서 _, v  아이페어(독립체.주장하다.P487) 하다     현지의 idv = v.메인음.데이터.가치      한다면 v.수식자 그리고. v.수식자.P3831 그리고나서      위해서 _, w  아이페어(v.수식자.P3831) 하다       한다면 w.스냅타이프 == "값" 그리고나서        현지의 적격 = w.데이터.가치["id"]        현지의 부호화 = .키보드.getEntityObject(getEntityObject)(적격)         =  .. format1rowline(적격,  부호화:get Label(라벨)(마를랑) , idv)       끝.      끝.     끝.    끝.   끝.   -- code/code를 사용하여 인코딩/code로 렌더링합니다.   한다면 독립체.주장하다.P3295 그리고나서    위해서 _, v  아이페어(독립체.주장하다.P3295) 하다     현지의 idv = v.메인음.데이터.가치     현지의 공통점 = ""     한다면 v.수식자 그리고. v.수식자.P805 그리고나서      위해서 _, t  아이페어(v.수식자.P805) 하다       한다면 t.스냅타이프 == "값" 그리고나서        현지의 서브젝트 프레임 = {}        서브젝트 프레임.args = {}        서브젝트 프레임.args.qid = t.데이터.가치["id"]        공통점 = 위키데이터IB.get Commons Link( 서브젝트 프레임 )       끝.      끝.     끝.     한다면 v.수식자 그리고. v.수식자.P3294 그리고나서      위해서 _, w  아이페어(v.수식자.P3294) 하다       한다면 w.스냅타이프 == "값" 그리고나서        현지의 적격 = w.데이터.가치["id"]        현지의 부호화 = .키보드.getEntityObject(getEntityObject)(적격)        현지의 암호화 = {}        현지의 부호화 = ""        암호화.args = {}        암호화.args.qid = 적격        부호화 = 위키데이터IB.get Commons Link( 암호화 ) 또는 ""                       한다면 부호화 == "" 그리고나서                        부호화 = 부호화:get Label(라벨)(마를랑)                       또 다른                         부호화 = "[[:" .. 부호화 .. " " .. 부호화:get Label(라벨)(마를랑) .. "]]"                       끝.         한다면 적격 == "Q68101340" 그리고나서         idv = p.확장 계층(, idv)        그렇지 않으면 공통점 ~= "" 그리고나서         idv = "[[:" .. 공통점 .. " " .. idv .. "]]"        끝.         =  .. format1rowline(적격,  부호화 , idv)       끝.      끝.     끝.    끝.   끝.   한다면 독립체.주장하다.P7415 그리고나서    위해서 _, v  아이페어(독립체.주장하다.P7415) 하다     현지의 idv = v.메인음.데이터.가치     한다면 v.수식자 그리고. v.수식자.P3294 그리고나서      위해서 _, w  아이페어(v.수식자.P3294) 하다       한다면 w.스냅타이프 == "값" 그리고나서        현지의 적격 = w.데이터.가치["id"]        현지의 부호화 = .키보드.getEntityObject(getEntityObject)(적격)         =  .. format1rowline(적격,  부호화:get Label(라벨)(마를랑) , '[[파일:] .. idv .. '없음 35px'.. 독립체:get Label(라벨)(마를랑) .. ' (' .. 부호화:get Label(라벨)(마를랑) ..')]]')       끝.      끝.     끝.    끝.   끝.     돌아가다    -- '< table class = " wikable " > < tr > </th > </th > </table > 코드 </code > .. rows ..</table >' 를 반환합니다.  끝.   돌아가다 p