모듈:해트노트/샌드박스

Module
-------------------------------------------------------------------------------- -- 모듈:Hatnote -- --                                                                            -- -- 이 모듈에서는 해트노트 링크 및 관련 기사에 대한 링크를 생성합니다.그건... --는 {{hatnote} 및 {{format link}} 메타데이터를 구현하며 다음을 포함합니다. -- 다른 Lua 해트노트 모듈의 도우미 기능 -- --------------------------------------------------------------------------------  현지의 라이브러리 Util = 요구하다('라이브러리 유틸') 현지의 체크 타입 = 라이브러리 Util.체크 타입 현지의 checkTypeForNamedArg = 라이브러리 Util.checkTypeForNamedArg 현지의 mArguments(인수) -- 느릿느릿 초기화 [[모듈:인수]] 현지의 네, 아니요 -- 느릿느릿 초기화 [[모듈:네] 현지의 포맷링크 -- 느릿느릿 초기화 [[모듈:링크 포맷] ._formatLink  현지의 p = {}  -------------------------------------------------------------------------------- -- 도우미 기능 --------------------------------------------------------------------------------  현지의 구부러지다 = .직함.get Current Title(전류 제목)().네임스페이스 p.missing Target Cat(대상 고양이 누락) =  --관련 모듈에서 사용하기 위해 내보낸 기본 누락 대상 카테고리  ((구부러지다 ==  0) 또는 (구부러지다 == 14)) 그리고.  '존재하지 않는 페이지를 대상으로 한 해트노트 템플릿이 있는 기사' 또는 제로  현지의 기능. 취득하다()  -- 부모 프레임에서 인수를 가져옵니다.공백은 잘라내고  --공백이 삭제됩니다.  mArguments(인수) = 요구하다('모듈:인수')  돌아가다 mArguments(인수).취득하다(, {parent Only(부모 전용) = 진실의}) 끝.  현지의 기능. removeInitialColon(s)  -- 문자열에서 초기 콜론을 삭제합니다(있는 경우).  돌아가다 s:경기('^:?(.*)') 끝.  기능. p.find Namespace Id(링크, 리무브콜론)  -- 링크 또는 pagename의 네임스페이스 ID(네임스페이스 번호)를 찾습니다.이것.  --링크가 이중 괄호로 둘러싸여 있으면 기능은 동작하지 않습니다.콜론  --는 기본적으로 링크 시작 부분부터 잘라집니다.콜론을 건너뛰려면  -- 트리밍, removeColon 파라미터를 false로 설정합니다.  체크 타입('네임스페이스 ID 찾기', 1, 링크, '문자열)  체크 타입('네임스페이스 ID 찾기', 2, 리무브콜론, '실패', 진실의)  한다면 리무브콜론 ~= 거짓의 그리고나서   링크 = removeInitialColon(링크)  끝.  현지의 네임스페이스 = 링크:경기('^(.-):')  한다면 네임스페이스 그리고나서   현지의 nsTable = .위치.네임스페이스[네임스페이스]   한다면 nsTable 그리고나서    돌아가다 nsTable.아이디   끝.  끝.  돌아가다 0 끝.  기능. p.makeWikitext 오류(메시지, 도움말 링크, add Tracking Category (addTracking카테고리, 직함)  -- 오류 메시지를 Wikitext로 반환하는 형식을 지정합니다.한다면  -- add Tracking Category가 false가 아닌 경우  -- [[모듈:[네]) 및 토크 페이지가 아닌 경우 추적  -- 가 추가되었습니다.  체크 타입('makeWikitextError', 1, 메시지, '문자열)  체크 타입('makeWikitextError', 2, 도움말 링크, '문자열, 진실의)  네, 아니요 = 요구하다('모듈:네, 아니요.)  직함 = 직함 또는 .직함.get Current Title(전류 제목)()  -- 도움말 링크를 텍스트로 만듭니다.  현지의 도움말 텍스트  한다면 도움말 링크 그리고나서   도움말 텍스트 = ' ([[' .. 도움말 링크 .. [ help ] ] ) 。  또 다른   도움말 텍스트 = ''  끝.  -- 카테고리를 텍스트로 합니다.  현지의 카테고리  한다면 것은 아니다. 직함.isTalkPage -- 토크 페이지를 분류하지 않습니다.   그리고. 직함.네임스페이스 ~= 2 -- 사용자 공간을 분류하지 않습니다.   그리고. 네, 아니요(add Tracking Category (addTracking카테고리) ~= 거짓의 -- 탈퇴를 허용합니다.  그리고나서   카테고리 = '오류가 있는 노트 템플릿'   카테고리 = .스트링.포맷(    '[%s:%s]',    .위치.네임스페이스[14].이름.,    카테고리   )  또 다른   카테고리 = ''  끝.  돌아가다 .스트링.포맷(   '<strong class="error"> 오류: %s%s.</strong>%s',   메시지,   도움말 텍스트,   카테고리  ) 끝.  기능. p.애매모호하게 하다(페이지입니다., 불명확한 사람)  -- 페이지 제목을 모호하지 않은 상위 가설로 포맷합니다.  -- 즉, "예" → "예(명료화)"입니다.  체크 타입(불명확하게 하다, 1, 페이지입니다., '문자열)  체크 타입(불명확하게 하다, 2, 불명확한 사람, '문자열, 진실의)  불명확한 사람 = 불명확한 사람 또는 '명료화'  돌아가다 .스트링.포맷('%s(%s)', 페이지입니다., 불명확한 사람) 끝.  기능. p.default Classes(인라인)  -- 기본 해트노트 클래스를 공백으로 구분된 문자열로 제공합니다.유용합니다.  -- [Module]와 같은 해트노트 조작 모듈의 경우:[ Hatnote group ] ]  돌아가다   (인라인 == 1 그리고. '해트노트' 또는 '해트노트') .. ' ' ..   '검색 불가' 끝.  -------------------------------------------------------------------------------- -- 해트노트 -- -- 표준 해트노트 텍스트를 생성합니다.{{hatnote}} 템플릿을 구현합니다. --------------------------------------------------------------------------------  기능. p.해트노트()  현지의 args = 취득하다()  현지의 s = args[1]  한다면 것은 아니다. s 그리고나서   돌아가다 p.makeWikitext 오류(    '지정된 텍스트 없음',    '템플릿:Hatnote #오류,    args.카테고리   )  끝.  돌아가다 p._해트노트(s, {   체외 = args.체외,   셀프레프 = args.셀프레프  }) 끝.  기능. p._해트노트(s, 옵션들)  체크 타입('_hatnote', 1, s, '문자열)  체크 타입('_hatnote', 2, 옵션들, '테이블', 진실의)  옵션들 = 옵션들 또는 {}  현지의 인라인 = 옵션들.인라인  현지의 해트노트 = .html.만들다(인라인 == 1 그리고. '스판' 또는 'div')  현지의 체외  한다면 유형(옵션들.체외) == '문자열 그리고나서   체외 = 옵션들.체외  끝.   해트노트   :특성('역할', '주')   :클래스 추가(p.default Classes(인라인))   :클래스 추가(체외)   :클래스 추가(옵션들.셀프레프 그리고. '셀프 레프 또는 제로)   :위키텍스트(s)   돌아가다 .get Current Frame(전류 프레임)():확장 태그{   이름. = '패턴 스타일', args = { src = '모듈:Hatnote / styles . css ' }  } .. 스트링(해트노트) 끝.  돌아가다 p