Permanently protected module

모듈:택손이탈리아어

Module

--[[========================================================================= 이탤릭체를 호출하여 분류군 이름을 이탤릭체로 바꿉니다.TaxonName 입니다. 사용되는 알고리즘은 다음과 같습니다. * 이름의 시작 또는 끝에 이탤릭체로 표시된 경우 아무것도 하지 마십시오. * 기타 * (내부) 이탤릭체를 제거합니다. * 이름이 4개의 단어로 구성되어 있고 세 번째 단어로 되어 있는 경우 식물 연결 용어, 연결 용어를 탈이탈화하고 이탤릭체를 추가합니다. 이름 바깥쪽에 마크업을 붙입니다. * 이름이 3개의 단어로 구성되어 있고 두 번째 단어로 구성되어 있는 경우 식물학적 연결 용어 또는 "cf"의 변형. 연결 용어를 지정하고 이름 바깥쪽에 이탤릭체 마크업을 추가합니다. * 그렇지 않으면 이름 바깥쪽에 이탤릭체 마크업을 추가합니다. 모듈도 다음과 같습니다. * 하이브리드 기호, × 및 괄호가 다음과 같이 이탤릭체로 표시되지 않도록 합니다. dab이 true인 경우 괄호 안의 문자열도 입력합니다. * 마지막 이외의 모든 분류 이름을 생략할 수 있는 옵션이 있습니다. (예: "Pinus sylvestris var. sylvestris"가 되는 경우) "P. s. var. sylvestris") * 이탤릭체로 표시된 이름을 입력 이름에 Wikilink할 수 있는 옵션이 있습니다. =============================================================================]]  현지의 p = {} 현지의 l = {} -- 로컬 함수만을 저장하는 데 사용됩니다.  -- 3개의 부품명으로 연결된 용어(예: Pinus silvestris var. silvestris) 현지의 조건 3 = {  --subsp.     아종 = "subsp",     ["subsp"] = "subsp",     서브스왑 = "subsp",     ["SPS"] = "subsp",     ssp = "subsp",     --var.     변종 = "var",     ["var"] = "var",     변화하다 = "var",     --subvar.     하지정맥하부 = "서브바",     ["서브바"] = "서브바",     서브바 = "서브바",     --f.     포맷 = "f.",     ["f."] = "f.",     f = "f.",     --subf.     보조 양식 = "subf",     ["subf"] = "subf",     서브프 = "subf"     } --2개의 부품명으로 접속하는 용어(예: Pinus separt)핀우스) 현지의 조건 2 = {  --subg.     아속 = "서브그",     ["하위"] = "서브그",     ["서브그"] = "서브그",     서브그 = "서브그",     -- supersect.     슈퍼섹션 = "슈퍼섹트",     ["슈퍼섹트"] = "슈퍼섹트",     슈퍼섹트 = "슈퍼섹트",     --sect.     부분 = "섹션",     ["섹션"] = "섹션",     섹트 = "섹션",     --서브섹트.     서브섹션 = "서브섹트",     ["서브섹트"] = "서브섹트",     서브섹션 = "서브섹트",     --ser.     시리즈 = "서기",     ["서기"] = "서기",     서버 = "서기",     --서브 서버.     서브시리즈 = "서브서",     ["서브서"] = "서브서",     서브 서버 = "서브서",     --cf.     cf = "cf",     ["cf"] = "cf",     ["c.f."] = "cf"     }  --[[========================================================================= 분류군 이름을 이탤릭체로 올바르게 표기하는 주요 기능.의 목적상 파라미터, "p.italize" 참조TaxonName(). =============================================================================]] 기능. p.주된()     현지의 이름. = .args[1] 또는 ''     현지의 링크된 = .args['링크'] == '네'     현지의 약어 = .args['확장'] == '네'     현지의 톡톡 두드리다 = .args['실패'] == '네'     돌아가다 p.이탤릭체로 쓰다분류명(이름., 링크된, 약어, 톡톡 두드리다) 끝.  --[[========================================================================= 입력 문자열을 첫 번째 문자로 축약하는 유틸리티 로컬 함수 뒤에 "."가 붙습니다. 문자열의 선두에 있는 "×"와 HTML 엔티티는 모두 다음에서 건너뜁니다. 첫 번째 문자를 결정하는 것(열림 괄호 및 열림") 일치하는 클로징 문자가 포함됩니다. =============================================================================]] 기능. l.줄이다(스트레이트)  현지의 결과 = ""  현지의 부모 = 거짓의  현지의 따옴표 = 거짓의  한다면 .스트링.(스트레이트) < > 2 그리고나서   -- 단일 문자열은 변경되지 않습니다.   결과 = 스트레이트  또 다른   --문자열 시작 부분에 표시될 수 있는 첫 괄호 위로 이동합니다.   한다면 .스트링.후보선수(스트레이트,1,1) == "(" 그리고나서    부모 = 진실의    결과 = "("     스트레이트 = .스트링.후보선수(스트레이트,2,.스트링.(스트레이트))   그렇지 않으면 .스트링.후보선수(스트레이트,1,1) == '"' 그리고나서    따옴표 = 진실의    결과 = '"'    스트레이트 = .스트링.후보선수(스트레이트,2,.스트링.(스트레이트))   끝.   --스트링의 선두에 존재할 가능성이 있는 하이브리드 심볼을 오버라이드 합니다.   한다면 .스트링.후보선수(스트레이트,1,1) == "×" 그리고나서    결과 = "×"     스트레이트 = .스트링.후보선수(스트레이트,2,.스트링.(스트레이트))   끝.   --문자열 선두에 존재할 가능성이 있는HTML 엔티티를 건너뜁니다.   한다면 .스트링.후보선수(스트레이트,1,1) == "&" 그리고나서    현지의 i,모조의 = .스트링.발견하다(스트레이트,";",2,평지)    결과 = 결과 .. .스트링.후보선수(스트레이트,1,i)    스트레이트 = .스트링.후보선수(스트레이트,i+1,.스트링.(스트레이트))   끝.   --남은 것이 있으면, 첫 글자에 「」를 더한 값으로 줄여 주세요.   --필요한 경우 닫는 괄호 또는 따옴표를 표시합니다.   한다면 스트레이트 ~= "" 그리고나서     결과 = 결과 .. .스트링.후보선수(스트레이트,1,1) .. "."    한다면 부모 그리고나서 결과 = 결과 .. ")"    그렇지 않으면 따옴표 그리고나서 결과 = 결과 .. '"'    끝.   끝.  끝.  돌아가다 결과 끝.  --[[========================================================================= 이탤릭체를 사용하는 함수입니다.파라미터: name (string) : 처리할 분류군의 이름 linked (클릭)– Wikilink를 생성해야 합니다. 생략형(부호) – 분류군의 이름 앞부분이 다음과 같은 경우 대문자로 줄였나? 두드리기(마모) – 괄호 안에 있는 부분이 모호하지 않은 것으로 취급되는 경우 이탤릭화되지 않은 상태로 놔둔다면요? =============================================================================]] 기능. p.이탤릭체로 쓰다분류명(이름., 링크된, 약어, 톡톡 두드리다)     이름. = .본문.다듬다(이름.)     -- 이름이 []로 시작하는 경우 포맷이 있다고 가정합니다.     한다면  .스트링.후보선수(이름.,1,1) == '[' 그리고나서 돌아가다 이름. 끝.     --그렇지 않으면 HTML 이탤릭체 태그의 사용을 대체하는 것으로 시작합니다.     -- Wikimedia 마크업으로, 하이브리드 기호 대신 엔티티를 바꿉니다.     -- 기호 자체에 의해, 하이브리드 기호가 다음과 같이 취급되는 것을 방지한다.     -- 다음 공간을 HTML 엔티티로 변환하여 '단어'를 만듭니다.     현지의 이탤릭 마커 = "''"     이름. = string.gsub(.본문.다듬다(이름.), "<?i>", 이탤릭 마커)     이름. = string.gsub(string.gsub(이름., "&#215;", "×"), "&times;", "×")     이름. = string.gsub(이름., "<?스판.->", "") -- 스판 마크업을 삭제합니다.     이름. = string.gsub(이름., "× ", "×&#32;")     --필요에 따라서, 이탤릭체로 표기해, 생략합니다.     현지의 결과 = 이름.     한다면 이름. ~= '' 그리고나서         한다면 스트링.서브(이름.,1,2) == 이탤릭 마커 또는 스트링.서브(이름.,-2) == 이탤릭 마커 그리고나서             -- 이름의 시작 또는 끝에 이미 이탤릭체 마커가 있는 경우 아무것도 하지 않습니다.         또 다른             이름. = string.gsub(이름., 이탤릭 마커, "") -- 먼저 내부 기울임꼴을 삭제합니다.             현지의 단어 = .본문.분열되다(이름., " ", 진실의)             한다면 #단어 == 4 그리고. 조건 3[단어[3]] 그리고나서                 -- 네 단어 이름의 세 번째 단어는 연결어입니다.                 --연결용어가 이탤릭체로 되어 있지 않은지 확인합니다.                 단어[3] = '<span style="span-style:normal;">' .. 조건 3[단어[3]] .. '</span>'                 한다면 약어 그리고나서                  단어[1] = l.줄이다(단어[1])                     단어[2] = l.줄이다(단어[2])              끝.                 결과 = 단어[1] .. " " .. 단어[2] .. " " .. 단어[3] .. " " .. 단어[4]             그렇지 않으면 #단어 == 3 그리고. 조건 2[단어[2]] 그리고나서                 -- 세 단어 이름의 두 번째 단어는 연결어입니다.                 --연결용어가 이탤릭체로 되어 있지 않은지 확인합니다.                 단어[2] = '<span style="span-style:normal;">' .. 조건 2[단어[2]] .. '</span>'                 한다면 약어 그리고나서                  단어[1] = l.줄이다(단어[1])                 끝.                 결과 = 단어[1] .. " " .. 단어[2] .. " " .. 단어[3]             또 다른                 -- 위와 같은 이름은 없습니다. 약자만 취급합니다.                 한다면 약어 그리고나서                  한다면 #단어 > 1 그리고나서                   결과 = l.줄이다(단어[1])                   위해서 i = 2, #단어-1, 1 하다                    결과 = 결과 .. " " .. l.줄이다(단어[i])                   끝.                   결과 = 결과 .. " " .. 단어[#단어]                  끝.                 또 다른                  결과 = 이름.                 끝.             끝.             -- 하이브리드 기호는 이탤릭체로 쓰면 안 되기 때문에 취급합니다.             결과 = string.gsub(결과, "×", '<span style="param-style:normal;">×//span>')              -- 괄호는 이탤릭체로 쓰면 안 되기 때문에 취급합니다.             한다면 톡톡 두드리다 그리고나서              결과 = string.gsub(string.gsub(결과,"%(",' < span style = " span - style : normal ; " > ( )),"%)",') </span>)             또 다른              결과 = string.gsub(string.gsub(결과,"%(",'<span style="param-style:normal;">(<span>)"),"%)",'<span style="param-style:normal;">)<span>')             끝.             -- 스팬으로 둘러싸인 물음표는 스팬을 결합할 수 있습니다.             결과 = string.gsub(결과,'/span>%?<span style="span%-style:normal;">','?')          -- 외부 마크업 추가             한다면 링크된 그리고나서                 한다면 결과 ~= 이름. 그리고나서                     결과 = "[[" .. 이름. .. " " .. 이탤릭 마커 .. 결과 .. 이탤릭 마커 .. "]]"                 또 다른                     결과 = 이탤릭 마커 .. "[[" .. 이름. .. "]]" .. 이탤릭 마커                 끝.             또 다른                 결과 = 이탤릭 마커 .. 결과 .. 이탤릭 마커             끝.         끝.     끝.     돌아가다 결과 끝.  --[[========================================================================= 다른 모듈에 의해 사용되는 유틸리티 함수는 연결 용어가 다음과 같은지 확인하기 위해 사용됩니다. 이름으로 증정하다이름 값은 일반 텍스트로 가정합니다. =============================================================================]] 기능. p.하스CT()     돌아가다 p.hasConnectingTerm(.args[1] 또는 '') 끝.      기능. p.hasConnectingTerm(이름.)  현지의 단어 = .본문.분열되다(이름., " ", 진실의)  한다면 #단어 == 4 그리고. 조건 3[단어[3]] 그리고나서 돌아가다 진실의  그렇지 않으면 #단어 == 3 그리고. 조건 2[단어[2]] 그리고나서 돌아가다 진실의  또 다른 돌아가다 거짓의  끝. 끝.   돌아가다 p