모듈:택손이탈리아어
Module모듈: TaxonItalics (토크 · · 히스토 · 링크 · 문서 · 서브 페이지 · 샌드박스 · 테스트 케이스)
| 이 Lua 모듈은 약 561,000페이지(전체 페이지의 약 1%)에서 사용됩니다. 중대한 중단과 서버 로드를 방지하려면 모듈의 /sandbox 또는 /testcase 서브페이지 또는 자체 모듈 샌드박스에서 변경을 테스트해야 합니다.테스트한 변경은 한 번의 편집으로 이 페이지에 추가할 수 있습니다.변경을 실장하기 전에 토크 페이지에서 변경에 대해 논의해 주십시오. |
목적
이 모듈은 주로 자동 택시 박스 시스템에서 사용하도록 설계되었습니다.학명의 올바른 이탤릭체를 지원합니다.식물학(ICNafp) 이름에는 "연결 용어"가 포함될 수 있습니다. 이탤릭체는 사용할 수 없습니다.하이브리드 기호 ×도 이탤릭체로 쓰면 안 됩니다.모듈에서는 임의로 wikilinks 및 이탤릭체로 된 이름을 생략합니다.
비바이러스 분류군의 경우 속 이하의 등급으로 이탤릭체를 사용합니다.모듈은 학명을 이탤릭체로 표기해야 하는지 여부를 결정하지 않습니다.사용하다{{Is italic taxon}}이 목적을 위해.
사용.
- {{#제외:TaxonItalics 주요 세금ON_NAME}: 분류군의 이름을 이탤릭체로 표시
- {{#제외:TaxonItalics 주요 세금ON_NAME linked=yes}: 분류군의 이름을 이탤릭체로 표시하여 이탤릭체로 표시된 출력을 변경되지 않은 입력으로 위키링크합니다.
- {{#제외:TaxonItalics 주요 세금ON_NAME 생략형=yes} – 분류군의 이름을 이탤릭체로 하여 마지막 부분을 제외한 모든 부분을 첫 번째 문자로 줄임
- {{#제외:TaxonItalics 주요 세금ON_NAME dab=yes}: 분류군의 이름을 이탤릭체로 표시하여 괄호 안의 모든 부분을 이탤릭체로 표시하지 않습니다.
파라미터는 조합할 수 있습니다.또한 {{Taxon 이탤릭체}}를 통해서도 사용할 수 있습니다.
예
그냥 이탤릭체
- 접속 용어
- 피너스 서브그Pinus → Pinus 하위g. 피누스
- P. 하위 속 Pinus → P. 하위 속. 피누스
- P. 서브섹션Pinaster → P. 하위섹션. 피나스터
- 진달래 → 진달래 → 진달래
- 아스터리코이데스 바.ericoides → Aster ericoides var. 에리코이드
- A. ericoides varietas ericoides → A. ericoides var. 에리코이드
- A. e. subvar.ericoides → A. e. subvar. 에리코이드
식물명에는 하나의 고유명사, 즉 "Fragaria vesca subsp"와 같은 문자열이 문자열은 "Fragaria vesca subsp"와 같습니다.vesca f. semperforens"는 이름이 아닌 분류이며 모듈에서 처리되지 않습니다.
- 하이브리드 기호
- 엘레아그누스 × 서브아크로필라 → 엘레아그누스 × 서브아크로필라
- ×벨라라→×벨라라
- × 벨라라 → × 벨라라
- {{hybrid}벨라라→×벨라라
링크되어 있다
사용. linked=yes
약어
사용. abbreviated=yes
- 민중파아이게이로스 → P. 종파. 아이게이로스
- 아세르 타타리쿰 서브스파 지날라 → A. t. 서브스파 지날라
- 【연동】×소르바로니아 미츠리니 →×S. 미츠리니
- [또한 연계] 엘레아그누스 × 서브아크로필라 → E. × 서브아크로필라
- 엘레아그누스×아크로필라→E.×아크로필라
- 엘레아그누스 {{}}}}: 서브아크로필라 → E. × 서브아크로필라
명확화 용어
기본적으로는 분류군 이름의 괄호로 둘러싸인 부분은 하위 속명으로 간주되며 이탤릭체로 표시됩니다.
- 바라누스(하푸트로사우루스) → 바라누스(하푸트로사우루스)
- Caia(식물) → Caia(식물) – 잘못됨
괄호로 묶인 부품을 명확화 용어로 처리하려면 dab=yes
그 외의 예에 대해서는, 테스트 케이스를 참조해 주세요.
--[[========================================================================= 이탤릭체를 호출하여 분류군 이름을 이탤릭체로 바꿉니다.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(이름., "×", "×"), "×", "×") 이름. = string.gsub(이름., "<?스판.->", "") -- 스판 마크업을 삭제합니다. 이름. = string.gsub(이름., "× ", "× ") --필요에 따라서, 이탤릭체로 표기해, 생략합니다. 현지의 결과 = 이름. 한다면 이름. ~= '' 그리고나서 한다면 스트링.서브(이름.,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 
