모듈:인용문/CS1/식별자
Module| 이 Lua 모듈은 약 5,580,000 페이지에서 사용됩니다. 큰 중단과 서버 로드를 방지하려면 모듈의 /sandbox 또는 /testcase 하위 페이지 또는 자체 모듈 샌드박스에서 변경 사항을 테스트해야 합니다.테스트된 변경 사항은 한 번의 편집으로 이 페이지에 추가할 수 있습니다.변경사항을 구현하기 전에 대화 페이지에서 변경사항에 대해 논의하는 것을 고려합니다. |
| 이 모듈은 페이지 보호 대상입니다.매우 많은 페이지에서 사용 중이거나 매우 자주 교체되는 가시성이 높은 모듈입니다.파괴 행위나 실수는 많은 페이지에 영향을 미치고 사소한 편집도 서버에 상당한 부하를 줄 수 있으므로 편집으로부터 보호됩니다. |
이 페이지는 모듈에서 지원하는 다양한 명명된 식별자에 대한 오류 검사를 렌더링하고 수행합니다.인용/CS1.
다음 파일은 CS12 인용 템플릿에 대한 모듈 지원으로 구성됩니다.
| 살아 있는 | 샌드박스 | 차이가 있는 | 묘사 | ||
|---|---|---|---|---|---|
| 모듈: 인용/CS1 | 모듈: 인용문/CS1/샌드박스 | [편집] | 차이가 있는 | 렌더링 및 지원 기능 | |
| 모듈: 인용/CS1/구성 | 모듈: 인용문/CS1/구성/샌드박스 | [편집] | 차이가 있는 | 변환 테이블, 오류 및 식별자 처리기 | |
| 모듈: 인용문/CS1/화이트리스트 | 모듈: 인용문/CS1/화이트리스트/샌드박스 | [편집] | 차이가 있는 | 활성 및 사용되지 않는 CS12 매개 변수 목록 | |
| 모듈: 인용/CS1/날짜 확인 | 모듈: 인용/CS1/날짜 확인/샌드박스 | [편집] | 차이가 있는 | 날짜 형식 유효성 검사 기능 | |
| 모듈: 인용문/CS1/식별자 | 모듈: 인용문/CS1/식별자/샌드박스 | [편집] | 차이가 있는 | 명명된 식별자(ISBN, DOI, PMID 등)를 지원하는 함수 | |
| 모듈: 인용문/CS1/유틸리티 | 모듈: 인용문/CS1/유틸리티/샌드박스 | [편집] | 차이가 있는 | 공통 기능 및 표 | |
| 모듈: 인용/CS1/COINS | 모듈: 인용문/CS1/COINS/샌드박스 | [편집] | 차이가 있는 | CS12 템플릿의 메타데이터를 렌더링하는 함수 | |
| 모듈: 인용문/CS1/styles.css | 모듈: 인용문/CS1/샌드박스/styles.css | [편집] | 차이가 있는 | CS12 템플릿에 적용되는 CSS 스타일 | |
| 모듈: 인용/CS1/제안 | 모듈: 인용/CS1/제안/샌드박스 | [편집] | 차이가 있는 | 일반적인 잘못된 매개 변수 이름을 유효한 매개 변수 이름에 매핑하는 목록 | |
--[------------------------------------------------------------------------------------------------------------------------------------------------------------- ]] 현지의 has_accept_as_write, is_set, 배열하여, 세트_디젤, 셀렉트_원, 모듈의 기능:인용/CS1/유틸리티 대체물, make_smilink; 현지의 z; 모듈에 정의된 표:인용/CS1/유틸리티 현지의 cfg; 모듈에 정의된 구성 테이블:인용/CS1/구성 --[----------------------------< PAGE SCOP ARIA BLES >-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 다른 모듈에서 가져오지 않은 페이지 범위를 가진 변수를 여기에 선언합니다. 이 변수는 여기에 생성되어 여기에서 사용됩니다. ]] 현지의 auto_link_message = {}; 제목=을(를) 자동 연결할 수 있는 식별자의 식별자 URL을 보유합니다. --============================<< HELF FUNC IONS >>============================================ --[------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 식별자 레이블 위키링크를 국제화하기 위한 보조 도구로, 위키데이터에서 식별자 아티클 이름을 가져옵니다. <q>에 <기사 제목>이 <기사 제목>에 대해 <기사 제목>이 있는 경우 :<기사 코드>를 반환합니다. 그 이외는 반환하지 않습니다. q가 없는 식별자의 경우 0을 반환합니다. mw가 없는 Wiki의 경우.Wikibase가 설치되었습니다. 0을 반환합니다. ]] 현지의 기능. wikidata_article_name_get (q) 한다면 것은 아니다. is_set (q) 또는 (q 그리고. 것은 아니다. mw.위키베이스) 그리고나서 q 번호가 없거나 q 번호가 mw일 때.이 Wiki에 wikibase가 설치되지 않았습니다. 돌아가다 영의; 버림받은 끝. 현지의 wd_기사; 현지의 이_sys_code = cfg.이_sys_code; 위키백과 하위 도메인; en을 뜻하는 'en'.wikipedia.org wd_기사 = mw.위키베이스.사이트 링크 가져오기 (q, 이_sys_code .. '''비공식'''); WD에서 기사 제목 가져오기; 이 Wiki에서 사용할 수 있는 제목이 없을 때는 0입니다. 한다면 wd_기사 그리고나서 wd_기사 = 테이블.콘캣 ({':', 이_sys_code, ':', wd_기사}); WD에서 가져온 경우 괄호가 없는 인터위키 스타일 링크, 선행 콜론 필요 끝. 돌아가다 wd_기사; WD의 아티클 제목; 기타 항목 없음 끝. --[--------------------------< LINK _ LA BEL _ MAKE >---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 핸들러 테이블 또는 Wikidata에서 식별자 링크 레이블을 만드는 공통 함수 의 첫 번째 사용 가능한 항목을 반환합니다. 로컬 Wiki의 처리기 테이블에서 리디렉션(사용 가능한 경우) Wikidata(로컬 Wikidata 언어로 이 식별자에 대한 Wikidata 항목이 있는 경우) 로컬 Wiki의 처리기 테이블에 지정된 레이블 ]] 현지의 기능. link_label_make (핸들러) 현지의 wd_기사; 한다면 것은 아니다. (cfg.use_identifier_sys 그리고. is_set (핸들러.리다이렉트)) 그리고나서 리디렉션에 우선 순위가 있으므로 사용 가능하고 사용 가능한 경우에는 비용이 많이 들기 때문에 Wikidata에서 가져오지 않습니다. wd_기사 = wikidata_article_name_get (핸들러.q); 위키데이터에 이 위키에 대한 기사 제목이 있는 경우, 해당 제목을 가져옵니다. 끝. 돌아가다 (cfg.use_identifier_sys 그리고. is_set (핸들러.리다이렉트) 그리고. 핸들러.리다이렉트) 또는 wd_기사 또는 핸들러.링크; 끝. --[----------------------------< EX TER NAL _ LINK _ ID >------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ Wiki 스타일 외부 링크 형식 지정 ]] 현지의 기능. external_link_id (옵션들) 현지의 url_string = 옵션들.이드; 현지의 ext_link; 현지의 이_sys_code = cfg.이_sys_code; 위키백과 하위 도메인; en을 뜻하는 'en'.wikipedia.org 현지의 wd_기사; Wikidata의 기사 제목 한다면 옵션들.부호화 == 진실의 또는 옵션들.부호화 == 영의 그리고나서 url_string = mw.uri.부호화 (url_string, 'PATH'); 끝. 한다면 옵션들.auto_link 그리고. is_set (옵션들.접근) 그리고나서 auto_link_message[옵션들.auto_link] = 테이블.콘캣 ({옵션들.접두어, url_string, 옵션들.접미사}); 끝. ext_link = mw.ustring.서식을 ('[%s %s %s %s]', 옵션들.접두어, url_string, 옵션들.접미사 또는 "", mw.본문.노비키 (옵션들.이드)); 한다면 is_set (옵션들.접근) 그리고나서 ext_link = 대체물 (cfg.발표['ext-link-access-message'], {cfg.발표[옵션들.접근].학급, cfg.발표[옵션들.접근].제목, ext_link}); 무료 읽기/페이월 잠금 장치를 추가 끝. 돌아가다 테이블.콘캣 ({ make_smilink (link_label_make (옵션들), 옵션들.라벨.), 리디렉션, Wikidata 링크 또는 로컬로 지정된 링크(순서대로) 옵션들.구분자 또는 ' ', ext_link }); 끝. --[------------------------------< INTER NAL _ LINK _ ID >-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Wiki 스타일의 내부 링크 형식 지정 TODO: 현재 options.access, options.encode, 자동 연결 및 COinS를 지원할 필요가 없습니다(external_link_id에서처럼). 그러나 미래에는 :m:에 필요할 수 있습니다.:arxiv:, :bibcode:, :DOI:, :hdl:, :ISSN:와 같은 Interwiki_map 사용자 지정 접두사 :JSTOR:, :열린 라이브러리:, :PMID:, :RFC:. ]] 현지의 기능. internal_link_id (옵션들) 현지의 이드 = mw.ustring.gsub (옵션들.이드, '%d', cfg.date_names.local_message); 'local' 숫자를 Western 0-9로 변환합니다. 돌아가다 테이블.콘캣 ( { make_smilink (link_label_make (옵션들), 옵션들.라벨.), 식별자 레이블을 Wiki-link the identifier label 옵션들.구분자 또는 ' ', 구분 기호 추가 make_smilink ( 테이블.콘캣 ( { 옵션들.접두어, 이드, 서양 숫자로 번역된 옵션들.접미사 또는 '' }), 대체물 (cfg.발표['bdi'], {'', mw.본문.노비키 (옵션들.이드)}) RTL 언어 위키에서 라틴어 스크립트 식별자가 뒤바뀌는 것을 방지하기 위한 bdi 태그 ); 미디어위키는 여전히 ISBN 등을 위한 마법 링크를 가지고 있기 때문에 노위키; TODO: 그것이 정말 필요한가요? }); 끝. --[--------------------------< IS _ EM B AR GOD >-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- PMC 식별자의 온라인 버전이 금지되는지 여부를 결정합니다.pmc-module-date=의 날짜를 비교합니다. 오늘 날짜금수일이 미래인 경우 pmc-moval-date=의 내용을 반환하고, 그렇지 않은 경우 반환합니다. 엠바고가 만료되었거나 pmc-vmba-date=가 이 인용문에 설정되지 않았기 때문에 빈 문자열입니다. ]] 현지의 기능. is_successed (금수 조치) 한다면 is_set (금수 조치) 그리고나서 현지의 랑그 = mw.콘텐츠 언어 가져오기(); 현지의 굿1, 금수일, today_date; 굿1, 금수일 = pcall (랑그.formatDate, 랑그, 'U', 금수 조치); today_date = 랑그:formatDate ('U'); 한다면 굿1 그리고나서 금수일이 좋은 날이면. 한다면 수에 달하여 (금수일) >= 수에 달하여 (today_date) 그리고나서 금수일이 미래입니까? 돌아가다 금수 조치; 아직 금수중인. 또 다른 세트_디젤 ('maint_pmc_message'); 엠바고가 만료되었습니다. 주 고양이 추가 돌아가다 ''; 금수 조치가 만료되어 해제됨 끝. 끝. 끝. 돌아가다 ''; pmc-message-date= 반환 빈 문자열을 설정하지 않음 끝. --[=[--------------------------------------< IS _ VAL ID _ BI OR X IV _ DA TE >-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 다음 경우 true를 반환합니다. 2019-12-11T00:00Z <= biorxiv_date < 오늘 + 2일 biorxiv 식별자의 날짜 형식은 시작 날짜가 2019-12-11입니다.해당 날짜의 유닉스 타임스탬프는 {{#time:U 2019-12-11}} = 1576022400 biorxiv_date는 해당 biorxiv= 매개 변수 값에 제공된 날짜로, UTC 시간 00:00:00에 날짜가 지정됩니다. 오늘은 현재 날짜 00:00:00 UTC + 48시간입니다. 오늘이 2015-01-01T00:00:00이면 24시간을 추가하면 2015-01-02T00:00:00 – 현재보다 1초 더 많은 시간이 제공됩니다. 24시간을 더하면 2015-01-03이 됩니다.T00:00:00 – 내일보다 1초 더 많은 시간 영어 이외의 언어에 대해 월 이름을 입력하면 이 기능이 작동하지 않습니다.위키미디어 #시간: 파서 영어가 아닌 날짜의 월 이름을 이해하지 못하는 것 같습니다.이 함수는 날짜가 되면 항상 false를 반환합니다. lang_object 호출 후 good1이 false이므로 영어가 아닌 월 이름이 포함되어 있습니다.formatDate().갖기 위해 이 함수를 날짜 부분과 함께 호출하고 YYY-MM-DD 형식 날짜를 만듭니다. ]=] 현지의 기능. is_delay_biorxiv_date (y, m, d) 현지의 biorxiv_date = 테이블.콘캣 ({y, m, d}, '-'); ymd 날짜로 만들기 현지의 굿1, 굿2; 현지의 biorxiv_ts, tomorrow_ts; 날짜를 나타내는 유닉스 타임스탬프 보유 현지의 lang_object = mw.콘텐츠 언어 가져오기(); 굿1, biorxiv_ts = pcall (lang_object.formatDate, lang_object, 'U', biorxiv_date); biorxiv_date 값을 유닉스 타임스탬프로 변환 굿2, tomorrow_ts = pcall (lang_object.formatDate, lang_object, 'U', '오늘 + 이틀' ); 오늘 자정 + 2일은 내일 하루 종일보다 1초 더 많습니다. 한다면 굿1 그리고. 굿2 그리고나서 lang.formatDate()는 number()가 이해하지 못할 수 있는 로컬 스크립트의 타임스탬프를 반환합니다. biorxiv_ts = 수에 달하여 (biorxiv_ts) 또는 lang_object:구문 분석 형식 번호 (biorxiv_ts); 비교를 위해 숫자로 변환합니다. tomorrow_ts = 수에 달하여 (tomorrow_ts) 또는 lang_object:구문 분석 형식 번호 (tomorrow_ts); 또 다른 돌아가다 거짓의; 하나 또는 둘 다 Unix 타임스탬프로 변환하지 못했습니다. 끝. 돌아가다 ((1576022400 <= biorxiv_ts) 그리고. (biorxiv_ts < tomorrow_ts)) 2012-12-11T00:00Z <= biorxiv_date < 내일 날짜 끝. --[---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ISBN-10 및 ISSN 검증자 코드는 체크 디짓을 포함한 모든 ISBN/ISSN 디짓의 체크섬을 계산합니다. ISBN-13이 isbn()에서 확인되었습니다. 숫자가 유효하면 결과는 0이 됩니다.이 함수를 호출하기 전에 ISBN/ISSN의 길이를 확인해야 합니다. 대시, 공백 및 기타 비 ISxN 문자가 제거됩니다. ]] 현지의 기능. is_message_isxn (isxn_str, 렌) 현지의 임시의 = 0; isxn_str = { isxn_str:바이트(1, 렌) }; 바이트 값 '0' → 0x30 .. 표를 만듭니다.'9' → 0x39, 'X' → 0x58 렌 = 렌 + 1; 루프 카운터가 되도록 조정합니다. 위해서 i, v 에 짝을 짓다 (isxn_str) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다 모든 바이트를 루프하여 체크섬을 계산합니다. 한다면 v == string.바이트 ("X" ) 그리고나서 체크 디짓이 X인 경우(0x58인 'X'의 바이트 값 비교) 임시의 = 임시의 + 10 * (렌 - i); 그것은 십진법을 나타냅니다. 또 다른 임시의 = 임시의 + 수에 달하여 (string.char (v) )*(렌-i); 끝. 끝. 돌아가다 임시의 % 11 == 0; 계산 결과가 0이면 true를 반환합니다. 끝. --[---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ISBN-13 및 ISMN Validator 코드는 체크 디짓을 포함한 13개의 ISBN/ISMN 디짓 모두에서 체크섬을 계산합니다. 숫자가 유효하면 결과는 0이 됩니다.이 기능을 호출하기 전에 ISBN-13/ISMN의 길이를 확인해야 합니다. 대시, 공백 및 기타 비 ISxN-13 문자가 제거되었습니다. ]] 현지의 기능. is_message_isxn_13 (isxn_str) 현지의 임시의=0; isxn_str = { isxn_str:바이트(1, 13) }; 바이트 값 '0' → 0x30 .. 표를 만듭니다.'9' → 0x39 위해서 i, v 에 짝을 짓다 (isxn_str) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다 임시의 = 임시의 + (3 - 2*(i % 2)) * 수에 달하여 (string.char (v) ); 홀수 인덱스 자릿수에 1을 곱하고, 짝수 인덱스 자릿수에 3과 합계를 곱합니다. 체크 자릿수 포함 끝. 돌아가다 임시의 % 10 == 0; 합계 모듈로 10은 ISBN-13/ISMN이 올바르면 0입니다. 끝. --[--------------------------< NO M LIZE _ LCC N >------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ LCCN 정규화(https://www.loc.gov/marc/lccn-namespace.html#normalization) 모든 빈칸을 제거합니다. 문자열에 슬래시(/)가 있으면 해당 문자열을 제거하고 슬래시 오른쪽에 있는 모든 문자를 제거합니다. 문자열에 하이픈이 있는 경우: 제거합니다. (제거된) 하이픈 뒤(오른쪽) 하위 문자열을 검사합니다.그런 다음(1단계와 2단계가 수행되었다고 가정): 이러한 문자는 모두 숫자여야 하며 6자 이하여야 합니다.(이 기능에서는 수행되지 않음) 부분 문자열의 길이가 6보다 작으면, 부분 문자열을 6이 될 때까지 0으로 왼쪽 채웁니다. 유효성을 검사할 lccn()의 정규화된 LCCN을 반환합니다.이 기능에서는 오류 확인(3.b.1단계)이 수행되지 않습니다. ]] 현지의 기능. normalize_lccn (lccn) lccn = lccn:gsub ("%s", ""); 1. 공백을 제거합니다. 한다면 영의 ~= 줄을 대다 (lccn, '/') 그리고나서 lccn = lccn:경기 ("(.-)/"); 2. 슬래시와 슬래시 오른쪽의 모든 문자를 제거합니다. 끝. 현지의 접두어 현지의 접미사 접두어, 접미사 = lccn:경기 ("(.+)%-(.+)"); 3.줄을 접두사와 접미사로 나누어 하이픈을 제거합니다. 한다면 영의 ~= 접미사 그리고나서 하이픈이 있다면, 접미사 = string.rep("0", 6-string.len (접미사)) .. 접미사; 3.b.2 접미사 길이가 6보다 작은 경우 접미사를 0으로 왼쪽 채웁니다. lccn = 접두어..접미사; LCCN 재조립 끝. 돌아가다 lccn; 끝. --============================< If I FUNC ION S >>==================================== --[----------------------< AR X IV >------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 참조: https://arxiv.org/help/arxiv_identifier 형식 및 오류를 확인하여 arXiv 식별자.세 가지 형식의 식별자가 있습니다. 날짜 코드 9107과 0703 사이에서만 유효한 첫 번째 양식은 다음과 같습니다. arXiv:<archive>.<class>/<날짜 코드><번호><버전> 위치: <////////////////////////////////////////// <class>는 영문자 문자열입니다. 하이픈으로 연결할 수 있습니다. 다른 구두점은 사용할 수 없습니다. 이 형식에서 지원되지 않는 class= 매개 변수와 동일하지 않습니다. <날짜 코드>는 YYMM 형식의 4자리입니다. 여기서 YY는 4자리 연도의 마지막 2자리이고 MM은 1월 = 01입니다. 이 양식에 대한 YY의 첫 번째 숫자는 9와 0만 가능합니다. <number>는 세 자리 숫자입니다. <version>은 소문자 v 앞에 오는 1자리 이상의 숫자이며 공백은 없습니다(문서화되지 않음). 2007년 4월부터 2014년 12월까지 유효한 두 번째 양식은 다음과 같습니다. arXiv:<날짜 코드>.<번호><버전> 위치: <날짜 코드>는 YYMM 형식의 4자리입니다. 여기서 YY는 4자리 연도의 마지막 2자리이고 MM은 1월 = 01입니다. <number>는 네 자리 숫자입니다. <version>은 소문자 v 앞에 오는 1자리 이상의 숫자이며 공백은 없습니다. 2015년 1월부터 유효한 세 번째 양식은 다음과 같습니다. arXiv:<날짜 코드>.<번호><버전> 위치: <날짜 코드> 및 <버전>은 0704-1412에 대해 정의된 바와 같습니다. <number>는 다섯 자리 숫자입니다. ]] 현지의 기능. arxiv의 (옵션들) 현지의 이드 = 옵션들.이드; 현지의 학급 = 옵션들.학급; TODO: 소문자? 현지의 핸들러 = 옵션들.핸들러; 현지의 연도, 달, 버전; 현지의 err_msg = 거짓의; 오류 메시지가 없는 것으로 가정합니다. 현지의 본문; 출력 텍스트 한다면 이드:경기("^%a[%a%.%-]+/[90]%d[01]%d%d%d%d$") 또는 이드:경기("^%a[%a%.%-]+/[90]%d[01]%d%d%dv%d+$") 그리고나서 버전이 있거나 없는 9107-0703 형식에 대한 테스트 연도, 달 = 이드:경기("^%a[%a%.%-]+/([90]%d)([01]%d)%d%d[v%d]*$"); 연도 = 수에 달하여 (연도); 달 = 수에 달하여 (달); 한다면 ((것은 아니다. (90 < 연도 또는 8 > 연도)) 또는 (1 > 달 또는 12 < 달)) 또는 유효하지 않은 해 또는 유효하지 않은 달인 경우 ((91 == 연도 그리고. 7 > 달) 또는 (7 == 연도 그리고. 3 < 달)) 그리고나서 만약 년이 괜찮다면, 시작과 끝나는 달은 괜찮습니까? err_msg = 진실의; 오류 메시지 플래그 끝. 그렇지 않으면 이드:경기("^%d%d[01]%d%.%d%d%d%d$") 또는 이드:경기("^%d%d[01]%d%.%d%d%d%dv%d+$") 그리고나서 버전 유무에 관계없이 0704-1412에 대한 테스트 연도, 달 = 이드:경기("^(%d%d)([01]%d)%.%d%d%d%d[v%d]*$"); 연도 = 수에 달하여 (연도); 달 = 수에 달하여 (달); 한다면 ((7 > 연도) 또는 (14 < 연도) 또는 (1 > 달 또는 12 < 달)) 또는 연도가 유효하지 않거나 월이 유효하지 않습니까?(향후 몇 년 동안은 테스트하지 않음) ((7 == 연도) 그리고. (4 > 달)) 그리고나서 2007년이 언제입니까, 달은 유효하지 않습니까(4월 이전)? err_msg = 진실의; 오류 메시지 플래그 끝. 그렇지 않으면 이드:경기("^%d%d[01]%d%.%d%d%d%d%d$") 또는 이드:경기("^%d%d[01]%d%.%d%d%d%d%dv%d+$") 그리고나서 1501 - 버전이 있거나 없는 형식에 대한 테스트 연도, 달 = 이드:경기("^(%d%d)([01]%d)%.%d%d%d%d%d[v%d]*$"); 연도 = 수에 달하여 (연도); 달 = 수에 달하여 (달); 한다면 ((15 > 연도) 또는 (1 > 달 또는 12 < 달)) 그리고나서 연도가 유효하지 않거나 월이 유효하지 않습니까?(향후 몇 년 동안은 테스트하지 않음) err_msg = 진실의; 오류 메시지 플래그 끝. 또 다른 err_msg = 진실의; 인식할 수 있는 형식이 아닙니다. 오류 메시지 플래그입니다. 끝. 한다면 err_msg 그리고나서 옵션들.coins_t['ARXIV'] = 영의; 오류 발생 시, COinS에 포함되지 않도록 설정 해제 끝. 현지의 err_msg_t = {}; 한다면 err_msg 그리고나서 세트_디젤 ('err_bad_arxiv'); 끝. 본문 = external_link_id ({링크 = 핸들러.링크, 라벨. = 핸들러.라벨., q = 핸들러.q, 리다이렉트 = 핸들러.리다이렉트, 접두어 = 핸들러.접두어, 이드 = 이드, 구분자 = 핸들러.구분자, 부호화 = 핸들러.부호화, 접근 = 핸들러.접근}); 한다면 is_set (학급) 그리고나서 한다면 이드:경기 ('^%d+') 그리고나서 본문 = 테이블.콘캣 ({본문, [//arxiv.org/archive/', 학급, ' ', 학급, ']]'}); 위키링크가 아닌 대괄호 안에 있는 외부 링크 또 다른 세트_디젤 ('err_class_message'); 끝. 끝. 돌아가다 본문; 끝. --[------------------------< BI CO DE >---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 비브 코드 ID의 유효성을 검사하고 형식을 지정합니다. 비브 코드의 형식은 https://adsabs.harvard.edu/abs_doc/help_pages/data.html#bibcodes 에서 지정합니다. 하지만, 이것: 2015arXiv151206696F는 분명히 유효하므로, 실제로 중요한 것은 길이, 19자뿐입니다. 처음 네 자리는 1년이어야 합니다.이 함수는 다음과 같은 테스트를 수행합니다. 길이는 19자여야 합니다. 위치에 있는 인물들 1-4는 숫자여야 하며 1000-내년 범위의 연도를 나타내야 합니다. 5는 문자여야 합니다. 6-8은 문자, 숫자, 앰퍼샌드 또는 도트여야 합니다(앰퍼샌드는 도트 바로 앞에 올 수 없습니다; &.). 9-18은 문자, 숫자 또는 점이어야 합니다. 19는 문자 또는 점이어야 합니다. ]] 현지의 기능. 비브코드 (옵션들) 현지의 이드 = 옵션들.이드; 현지의 접근 = 옵션들.접근; 현지의 핸들러 = 옵션들.핸들러; 현지의 err_type; 현지의 err_msg = ''; 현지의 연도; 현지의 본문 = external_link_id ({링크 = 핸들러.링크, 라벨. = 핸들러.라벨., q = 핸들러.q, 리다이렉트 = 핸들러.리다이렉트, 접두어 = 핸들러.접두어, 이드 = 이드, 구분자 = 핸들러.구분자, 부호화 = 핸들러.부호화, 접근 = 접근}); 한다면 19 ~= 이드:렌() 그리고나서 err_type = cfg.err_msg_suppl.길이; 또 다른 연도 = 이드:경기 ("^(%d%d%d%d)[%a][%w&%.][%w&%.][%w&%][%w.]+[%a%]$"); 한다면 것은 아니다. 연도 그리고나서 0인 경우 일치하는 패턴이 없습니다. err_type = cfg.err_msg_suppl.가치; so value 또 다른 현지의 내년 = 수에 달하여 (os.날짜 ('%Y')) + 1; 현재 연도를 숫자로 가져오고 내년에 하나를 추가합니다. 연도 = 수에 달하여 (연도); 비브코드의 연도 부분을 숫자로 변환 한다면 (1000 > 연도) 또는 (연도 > 내년) 그리고나서 err_type = cfg.err_msg_suppl.연도; 1년간 출입금지. 끝. 한다면 이드:찾아내다('&%.') 그리고나서 err_type = cfg.err_msg_suppl.일지의; 분개장 약어에는 '&.'이 없어야 합니다(있는 경우 문자가 누락됨). 끝. 끝. 끝. 한다면 is_set (err_type) 그리고나서 오류가 감지된 경우 세트_디젤 ('err_bad_bibcode', {err_type}); 옵션들.coins_t['BIBCODE'] = 영의; 오류 발생 시, COinS에 포함되지 않도록 설정 해제 끝. 돌아가다 본문; 끝. --[------------------------< BI OR X IV >------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ bioRxiv ID를 포맷하고 간단한 오류 확인을 수행합니다.2019-12-11 이전에는 biorXiv ID가 10.1101/ 그 다음이었습니다. 여섯 자리.2019-12-11 이후 biorXiv ID는 6자리 식별자를 유지했지만 yyyy.mm .dd로 접두사를 붙였습니다. 날짜와 선택적 버전 식별자로 뒤에 붙습니다. bioRxiv ID는 문자 문자열입니다. https://doi.org/10.1101/078733 -> 10.1101/078733 또는 날짜 뒤에 6자리 숫자가 오고 선택적 버전 표시기 'v'와 하나 이상의 숫자가 오는 경우: https://www.biorxiv.org/content/10.1101/2019.12.11.123456v2 -> 10.1101/2019.12.11.123456v2 https://www.biorxiv.org/about-biorxiv 을 참조하십시오. ]] 현지의 기능. 바이오르시브 (옵션들) 현지의 이드 = 옵션들.이드; 현지의 핸들러 = 옵션들.핸들러; 현지의 err_msg = 진실의; flag; 오류가 있을 것으로 가정합니다. 현지의 패턴 = { '^10.1101/%d%d%d%d%d%d
