본문으로 이동
주 메뉴
주 메뉴
사이드바로 이동
숨기기
둘러보기
대문
최근 바뀜
요즘 화제
임의의 문서로
sitesupport
사용자 모임
사랑방
사용자 모임
관리 요청
편집 안내
소개
도움말
정책과 지침
질문방
한울위키
검색
검색
보이기
로그인
개인 도구
로그인
모듈:Zh 문서 원본 보기
모듈
토론
English
읽기
원본 보기
역사 보기
도구
도구
사이드바로 이동
숨기기
동작
읽기
원본 보기
역사 보기
일반
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
보이기
사이드바로 이동
숨기기
←
모듈:Zh
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
일반 사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
require('strict') local p = {} local getArgs = require("Module:Arguments").getArgs -- 변수 처리를 단순화하는 함수 local function intersects(lst, mst) -- 겹침 여부 판단 for key in pairs(mst) do if lst[key] then return true end end return false end local function alias(args, p, hp) -- 동명 변수 처리 if not args[p] and args[hp] then args[p] = args[hp] end end local function setpref(args, order, orderlists) if args[order] and orderlists[args[order]] then return orderlists[args[order]] end return orderlists["default"] end function p.zh(frame) local args = getArgs(frame) local title = mw.title.getCurrentTitle() local zhdatalang = mw.loadData("Module:Zh/data/" .. args["lang"]) local labelslist = zhdatalang.labelslist -- 각 부분에 표시할 라벨들 local articles = zhdatalang.articles -- 각 부분에 링크 걸 문서들 local ipalangs = zhdatalang.ipalangs -- 각 IPA가 표시하는 발음의 언어들 local isocodes = zhdatalang.isocodes -- 각 부분의 ISO 코드들 local cats = zhdatalang.cats -- 각 부분에 붙일 분류들 local pinyins = zhdatalang.pinyins -- 병음 여부 local hanguls = zhdatalang.hanguls -- 한글 여부 local superscript = zhdatalang.superscript -- 자동 위 첨자 여부 local prefix = zhdatalang.prefix -- 접두어 부착 여부 local ignorefirst = zhdatalang.ignorefirst local savefirst = zhdatalang.savefirst local delims = zhdatalang.delims -- 일반 구분자들 local hanguldelims = zhdatalang.hanguldelims -- 한글 표기 앞의 구분자 local orderlists = zhdatalang.orderlists -- 각 부분이 표시되는 순서 -- change parameters and specify labels based on other parameters local labels = labelslist[1] if labels["p"] and intersects(args, pinyins) then labels = labelslist[2] end if args["s"] and args["s"] == args["t"] then -- 일치하는 간번체자 병합 args["c"] = args["s"] args["s"] = nil args["t"] = nil end alias(args, "p", "hp") alias(args, savefirst, 1) if intersects(args, ignorefirst) then -- 대체 가능한 주 변수 제거 args[savefirst] = nil end local body = "" -- 출력 문자열 local params -- HTML span을 위한 변수 local label -- 텍스트 앞에 붙는 언어 라벨 local val -- 텍스트 local uselinks = not (args["links"] == "no") -- 라벨 링크 추가 여부 local uselabels = not (args["labels"] == "no") -- 라벨 표시 여부 local useprefix = not (args["prefix"] == "no") -- 맨 앞에 언어 이름 부착 여부 local usesmall = not (args["small"] == "no") -- 언어 라벨 작게 하기 여부 local delim = setpref(args, "delim", delims) local hanguldelim = setpref(args, "delim", hanguldelims) local orderlist = setpref(args, "order", orderlists) -- go through all possible fields in loop, adding them to the output for i, part in ipairs(orderlist) do if args[part] then -- build label label = "" if uselabels then label = labels[part] if (uselinks and articles[part]) or hanguls[part] then label = "[[" .. articles[part] .. "|" .. label .. "]]" end if ipalangs[part] then if uselinks then label = label .. "([[" .. ipalangs[part] .. "]])" else label = label .. "(" .. ipalangs[part] .. ")" end end if body == "" and useprefix and prefix[part] then if uselinks then label = "[[" .. labels[savefirst] .. "]] " .. label else label = labels[savefirst] .. " " .. label end end if hanguls[part] then label = "<sup>[" .. label .. "]</sup>" else label = label .. ": " end if usesmall and not hanguls[part] then label = "<small>" .. label .. "</small>" end end -- build value val = args[part] if cats[part] and title.namespace == 0 then -- if has associated category AND current page in article namespace, add category val = cats[part] .. val end if isocodes[part] then -- add span for language if needed params = {["lang"] = isocodes[part], ["xml:lang"] = isocodes[part]} val = mw.text.tag({name = "span", attrs = params, content = val}) elseif ipalangs[part] then params = {["class"] = "IPA"} val = mw.text.tag({name = "span", attrs = params, content = val}) end if string.match(val, "</?sup>") then val = val .. "[[분류:모듈 zh에서 태그 sup를 사용하는 문서]]" end if superscript[part] or ipalangs[part] then -- superscript val = mw.ustring.gsub(val, "([%d%*°]+)", "<sup>%1</sup>") val = mw.ustring.gsub(val, "<sup><sup>([%d%*°]+)</sup></sup>", "<sup>%1</sup>") end -- add both to body if body > "" then if hanguls[part] then body = body .. hanguldelim else body = body .. delim end end if not hanguls[part] then body = body .. label .. val elseif not usesmall then body = body .. val .. label else body = body .. "<small>" .. val .. label .. "</small>" end end end if delim == "\n|" then body = "|" .. body end return body end return p
모듈:Zh
문서로 돌아갑니다.
검색
검색
모듈:Zh 문서 원본 보기
새 주제