Permanently protected module

모듈:발췌 슬라이드 쇼

Module

현지의 p = {} 현지의 발췌모듈 = 요구하다('모듈:발췌/포털') 현지의 슬라이드 쇼 모듈 = 요구하다('모듈:무작위 슬라이드 쇼') 현지의 랜덤 모듈 = 요구하다('모듈:랜덤')  현지의 DEFAULT_LIMIT = 25 슬라이드 쇼에 표시할 최대 발췌 수 현지의 원본_페이지_제한 = 10 링크/목록 항목을 확인할 최대 페이지 수  소스 페이지 추적을 위한 BHG 추가 시작 현지의 원본 페이지사용 = {}; 현지의 원본 페이지카운터 사용 = 0; 현지의 물품 목록 수 = -1; 현지의 Embedded List 사용 = 거짓의; 종료 원본 페이지 추적을 위한 BHG 추가  기능. 정리 인수(args 테이블)  현지의 크린 알그 = {}  위해서 열쇠,   쌍들(args 테이블) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다   한다면 유형() == '끈' 그리고나서     = :경기('^%s*(.)%s*
                
) 한다면 ~= '' 그리고나서 크린 알그[열쇠] = 끝. 또 다른 크린 알그[열쇠] = 끝. 끝. 돌아가다 크린 알그 끝. 기능. 거부됨() 한다면 것은 아니다. 그리고나서 돌아가다 거짓의 끝. 현지의 거부된 단어 = 거부 제외 제외 제외 false 제외 없음 제외 없음 누락되지 않음 제거됨 " 돌아가다 줄을 대다(거부된 단어 , ' '....' ', 1, 진실의 ) 그리고. 진실의 또는 거짓의 끝. --[[ @param {String} 위키텍스트:목록의 위키 텍스트(즉, 각 줄이 목록 항목임) @param {String} 기호:목록의 위키 텍스트 마크업에 사용되는 특수 문자(예: '*' 또는 '#') @param {String} outterTag:각 목록 또는 하위 목록에 대한 태그의 텍스트 부분(예: 'ul' 또는 'ol') @param {String} innerTag:각 목록 항목에 대한 태그의 텍스트 부분(예: 'li') ]] 현지의 wikiteextToHtml 목록 = 기능.(위키텍스트, 기호., 외부 태그, 내부 태그) 현지의 리스트 부품 = {} 위해서 수평의, 항목 mw.ustring.성냥('\n'..위키텍스트..'\n', '\n(%'..기호...'+(.).%f[\n]') 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다 표.삽입(리스트 부품, {수평의=수평의, 항목=항목}) 끝. 표.삽입(리스트 부품, {수평의='', 항목=''}) 현지의 html 목록 = {} 위해서 i, 이것. 짝을 짓다( 리스트 부품 ) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다 현지의 is FirstItem = (i == 1) 현지의 마지막 항목임 = (i == #리스트 부품) 현지의 마지막 레벨 = is FirstItem 그리고. '' 또는 리스트 부품[i-1]['레벨'] 현지의 꼬리표 한다면 #마지막 레벨 == #이것..수평의 그리고나서 꼬리표 = '</'..내부 태그..'><'..내부 태그..'>' 그렇지 않으면 #이것..수평의 > #마지막 레벨 그리고나서 꼬리표 = string.rep('<'..외부 태그..'><'..내부 태그..'>', #이것..수평의 - #마지막 레벨) 그렇지 않으면 마지막 항목임 그리고나서 꼬리표 = string.rep('</'..내부 태그..'></'..외부 태그..'>', #마지막 레벨) 또 다른 ( #this.level < #lastLevel ) 및 마지막 항목 아님 꼬리표 = string.rep('</'..내부 태그..'></'..외부 태그..'>', #마지막 레벨 - #이것..수평의 ) .. '</'..내부 태그..'><'..내부 태그..'>' 끝. 표.삽입(html 목록, 꼬리표 .. 이것..항목) 끝. 돌아가다 테이블.콘캣(html 목록) 끝. --[[ @param {String} 위키텍스트:0개 이상의 목록을 포함하는 Wikitext excertp @param {String} 기호:목록의 위키 텍스트 마크업에 사용되는 특수 문자(예: '*' 또는 '#') @param {String} outterTag:각 목록 또는 하위 목록에 대한 태그의 텍스트 부분(예: 'ul' 또는 'ol') @param {String} innerTag:각 목록 항목에 대한 태그의 텍스트 부분(예: 'li') ]] 현지의 gsubWiktextLists = 기능.(위키텍스트, 기호., 외부 태그, 내부 태그) 목록 줄 바꿈을 일시적으로 제거하는 중... 위키텍스트 = mw.ustring.gsub(위키텍스트..'\n', '\n%'..기호., '¿¿¿'..기호.) 전체 목록(그리고 목록만)을 수집할 수 있도록... 돌아가다 mw.ustring.gsub( 위키텍스트, '¿¿¿%'..기호...'[^\n]+', 기능.(listWiktext) 그리고 나서 줄 바꿈을 다시 시작합니다. listWiktext = mw.ustring.gsub(listWiktext, '¿¿¿%'..기호., '\n'..기호.) ...그리고 마지막으로 변환을 합니다. 돌아가다 wikiteextToHtml 목록(listWiktext, 기호., 외부 태그, 내부 태그) 끝. ) 끝. --[[ G가 산문의 일부가 아닌 테이블과 템플릿을 삭제하도록 도와줍니다. 다른 템플릿에서 줄 바꿈을 제거합니다. 및 파서 함수 사전 처리 ]] 현지의 processBrace = 기능.(t) 현지의 is 테이블 = mw.ustring.후보선수(mw.본문.다듬다(t), 2, 2) == ' ' 한다면 is 테이블 그리고나서 돌아가다 '' 끝. 그렇지 않으면 템플릿이나 파서 함수입니다. 현지의 첫번째 = mw.ustring.후보선수(t, 1, 1) 현지의 지난 = mw.ustring.후보선수(t, -1) 현지의 프로스의 일부가 아님 = 첫번째 == '\n' 그리고. 지난 == '\n' 한다면 프로스의 일부가 아님 그리고나서 돌아가다 '' 끝. 현지의 isparser 함수 = mw.ustring.후보선수(mw.본문.다듬다(t), 3, 3) == '#' 한다면 isparser 함수 그리고나서 현지의 = mw.현재 프레임 가져오기() 돌아가다 :전처리(t) 끝. 그렇지 않으면 내부 줄 바꿈을 제거 돌아가다 mw.ustring.gsub(t, '\n*', '') 끝. 현지의 cleanUpExcret = 기능.(발췌한 것) 스트립 갤러리 발췌한 것 = mw.ustring.gsub(발췌한 것, "<%s*[Gg]allery .-> -> -<%s*/%s*[Gg]allery%s*", "") 테이블 및 블록 템플릿 제거, 줄 바꿈 발췌한 것 = mw.ustring.gsub(발췌한 것..'\n', '\n?%b{}\n?', processBrace) wikitext 글머리 기호 목록을 html 글머리 기호 목록으로 바꾸기 발췌한 것 = gsubWiktextLists(발췌한 것, '*', '얼', '리') 위키텍스트 번호 목록을 HTML 번호 목록으로 바꾸기 발췌한 것 = gsubWiktextLists(발췌한 것, '#', 'ol', '리') 발췌한 것 = mw.본문.다듬다(발췌한 것) 돌아가다 발췌한 것 끝. 기능. 갤러리 아그 제작(직함들, 옵션들, 제한., 비랜덤) 현지의 갤러리 Args = {} 현지의 제목순서 = {} 현지의 i = 1 하는 동안에 직함들[i] 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다 제목순서[i] = 직함들[i] i = i + 1 끝. 현지의 정렬된 제목 = 비랜덤 그리고. 제목순서 또는 랜덤 모듈.주된('어레이', {t=제목순서, 제한.=제한.}) 위해서 _i, 제목 짝을 짓다(정렬된 제목) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다 한다면 (#갤러리 Args / 2) < 제한. 그리고나서 현지의 성공., 발췌한 것 = pcall(발췌모듈.얻다, 제목, 옵션들) 한다면 것은 아니다. 성공. 그리고나서 mw.로그.("require('모듈:발췌').가져오기 실패: " .. 발췌한 것) 아마도 빨간 링크를 얻었을 것입니다. 발췌한 것 = 영의 끝. 한다면 발췌한 것 그리고. 발췌한 것 ~= '' 그리고. #발췌한 것 > 10 그리고나서 몇 자 플러스(전체 기사...)가 있는지 다시 확인합니다. 발췌한 것 = cleanUpExcret(발췌한 것) 한다면 옵션들. 그리고나서 발췌한 것 = 발췌한 것 .. " ('''[[" .. 제목 .. " " .. 옵션들. .. "]]''')" 끝. 현지의 본문 = '<div style="text-align:left;"' .. mw.ustring.gsub(발췌한 것, '%c', '<br>') .. '/div' 표.삽입(갤러리 Args, '파일:Blank.png') 표.삽입(갤러리 Args, 본문) 끝. 끝. 끝. 한다면 비랜덤 그리고나서 갤러리 Args.난수의 = '거짓' 끝. 한다면 #갤러리 Args == 0 그리고. 옵션들.숨통이 트집 잡지 않음 그리고나서 다시 시도합니다. 이번에는 스텁을 포함합니다. 옵션들.숨통이 트집 잡지 않음 = 거짓의 돌아가다 갤러리 아그 제작(직함들, 옵션들, 제한., 비랜덤) 또 다른 돌아가다 갤러리 Args 끝. 끝. 현지의 옵션 만들기 = 기능.(논병아리) 현지의 옵션들 = 논병아리 기타 옵션 선택: 추가, 오류, 파일 인수 옵션들.패러플래그 = 발췌모듈.numberFlags(논병아리.단락들 또는 "") 문단 구문 분석(예: "1,3-5" → {"1",3-5"}) 옵션들.깃발을 철하다 = 발췌모듈.numberFlags(논병아리.파일 또는 "") 파일 번호 구문 분석 한다면 논병아리.숨통이 트집 잡지 않음 그리고. 거부됨(논병아리.숨통이 트집 잡지 않음) 그리고나서 옵션들.숨통이 트집 잡지 않음 = 거짓의 또 다른 옵션들.숨통이 트집 잡지 않음 = 진실의 끝. 돌아가다 옵션들 끝. 현지의 기사임 = 기능.(페이지 제목) 현지의 제목 객체 = mw.제목.신규(페이지 제목) 돌아가다 ( 제목 객체 그리고. 제목 객체.네임스페이스 == 0 ) 그리고. 진실의 또는 거짓의 끝. 현지의 링크된 제목 가져오기 = 기능.(논병아리, 방법, 제한.) 현지의 페이지 이름 = {} 현지의 ii = 1 현지의 is Not Category 하는 동안에 논병아리[ii] 그리고. ii < 제한. 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다 현지의 페이지 내용 = 발췌모듈.콘텐츠 가져오기(논병아리[ii]) 한다면 페이지 내용 그리고나서 현지의 페이지섹션 = 논병아리["섹션"..ii] 또는 논병아리["섹션"] 현지의 섹션만 = 논병아리["섹션 전용"..ii] 또는 논병아리["섹션 전용"] 현지의 본문 = 페이지 내용 한다면 페이지섹션 그리고나서 관련 섹션만 확인합니다. 현지의 성공., 결과 = pcall(발췌모듈.섹션 가져오기, 페이지 내용, 페이지섹션, 섹션만) 한다면 것은 아니다. 성공. 그리고나서 mw.로그.("require('모듈:발췌')."의 내용에서 getSection이 실패했습니다. .. 논병아리[ii] .. ": " .. 결과) 결과 = 영의 끝. 본문 = 결과 또는 페이지 내용 끝. 소스 페이지 추적을 위한 BHG 추가 시작 현지의 본 페이지 = mw.제목.현재 제목 가져오기().ns텍스트 .. ":" .. mw.제목.현재 제목 가져오기().본문 현지의 이 베어파라미터 = mw.ustring.gsub(논병아리[ii], "^([^#]+).*$", "%1", 1) 매개 변수의 페이지 이름에서 횡단 앵커 제거 한다면 (본 페이지 == 이 베어파라미터) 그리고나서 Embedded List 사용 = 진실의; 끝. 종료 원본 페이지 추적을 위한 BHG 추가 주석이 달린 링크를 실제 링크로 바꾸기 본문 = mw.ustring.gsub(본문, "{{%s*[Aa]notated[ _]link%s* %s*(.)%s*}}", "[[%1]]") 한다면 방법 == "연결됨" 그리고나서 위해서 p mw.ustring.성냥(본문, %[%[%s*([^%])\n]*)") 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다 한다면 기사임(p) 그리고나서 표.삽입(페이지 이름, p) 끝. 끝. 또 다른 목록 항목: "참고 항목" 또는 이후 섹션을 제외하고 *, :# 등으로 시작하는 줄의 첫 번째 위키링크 본문 = mw.ustring.gsub(본문, "\n*또한 참조하십시오.*", "") 위해서 p mw.ustring.성냥(본문, "\n:*[%*#][^\n]-%[%s*([^%])\n]*)") 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다 한다면 기사임(p) 그리고나서 표.삽입(페이지 이름, p) 끝. 끝. 끝. 소스 페이지 추적을 위한 BHG 추가 시작 한다면 ((방법 == "목록 항목") 또는 (방법 == "연결됨")) 그리고나서 표.삽입(원본 페이지사용, 논병아리[ii]) 원본 페이지카운터 사용 = 원본 페이지카운터 사용 + 1 끝. 종료 원본 페이지 추적을 위한 BHG 추가 끝. ii = ii + 1 끝. 추적을 위해 BHG 추가 시작 물품 목록 수 = #페이지 이름 끝 BHG 추적을 위한 추가 돌아가다 페이지 이름 끝. 템플릿 진입점: 난수의발췌:템플릿 매개 변수에 지정된 제목({{임의 추출 제외}에 해당) p.임의 추출 = 기능.() 현지의 부모 = .상위 항목 가져오기() 현지의 산출량 = p._cappt(부모.논병아리, '''비공식''') 돌아가다 :확장 태그{ 이름.='비공식적인 스타일, 논병아리 = { src='모듈:무작위 슬라이드쇼/스타일.css'} } .. :전처리(산출량) 끝. linkedExcert:하나 이상의 페이지에 있는 링크의 제목({{링크된 발췌문 포함}과 유사) p.linkedExcept = 기능.() 현지의 부모 = .상위 항목 가져오기() 현지의 산출량 = p._cappt(부모.논병아리, '연결됨') 돌아가다 :확장 태그{ 이름.='비공식적인 스타일, 논병아리 = { src='모듈:무작위 슬라이드쇼/스타일.css'} } .. :전처리(산출량) 끝. listItem발췌:연결된 목록 항목의 제목 하나 이상의 페이지({{목록 항목 발췌}와 유사) p.listItem발췌문 = 기능.() 현지의 부모 = .상위 항목 가져오기() 현지의 산출량 = p._cappt(부모.논병아리, '목록 항목') 돌아가다 :확장 태그{ 이름.='비공식적인 스타일, 논병아리 = { src='모듈:무작위 슬라이드쇼/스타일.css'} } .. :전처리(산출량) 끝. 모듈 진입점: p._cappt = 기능.(_args, 방법) 현지의 논병아리 = 정리 인수(_args) 논병아리. = 발췌모듈.추가 링크 텍스트 가져오기(_args.) 현지의 옵션들 = 옵션 만들기(논병아리) 현지의 제한. = 논병아리.제한. 그리고. 수에 달하여(논병아리.제한.) 또는 DEFAULT_LIMIT 현지의 직함들 한다면 방법 == '연결됨' 또는 방법 == '목록 항목' 그리고나서 직함들 = 링크된 제목 가져오기(논병아리, 방법, 원본_페이지_제한) 또 다른 직함들 = 논병아리 끝. 현지의 갤러리 Args = 갤러리 아그 제작(직함들, 옵션들, 제한., 거부됨(_args.난수의)) 돌아가다 슬라이드 쇼 모듈._본(갤러리 Args, 거짓의, 'exceptSlides show-container') .. 원본 페이지 확인() 끝. p._cleanUpExcept = cleanUpExcret 소스 페이지 추적을 위한 BHG 추가 시작 기능. 원본 페이지 확인() 포털 네임스페이스에 있지 않는 한 추적할 수 없습니다. 한다면 (mw.제목.현재 제목 가져오기().ns텍스트 ~= "포털") 그리고나서 돌아가다 "" 끝. 현지의 페이지 카운터 = 0; 현지의 템플릿 개수 = 0; 현지의 아웃라인 카운트 = 0; 현지의 철회의 =""; 현지의 Eponymous 사용기사 = 거짓의; 현지의 디버깅 = 거짓의; 현지의 이 페이지 베어 이름 = mw.제목.현재 제목 가져오기().본문; 한다면 디버깅 그리고나서 철회의 = '<div style="디스플레이:블록; 테두리:10인치 단색; 배경-색:#efe; 패딩:1em; 여백:1em">\n----\n' 철회의 = 철회의 .. "counter에 사용된 원본 페이지: " .. 원본 페이지카운터 사용 .. "\n----\n" 철회의 = 철회의 .. "사용된 페이지:" 끝. 현지의 한 페이지 위해서 한 페이지 배열 값(원본 페이지사용) 하다, 하다, 하다, 하다, 하다, 하다, 하다, 하다, 나다 한다면 디버깅 그리고나서 철회의 = 철회의 .. "\n# [[:" .. 한 페이지 .. "]]" 철회의 = 철회의 .. " — " .. "첫 번째 999 = /" .. string.sub(한 페이지, 1, 999) .. "/" 끝. 한다면 (줄을 대다(한 페이지, "^[tT]템플릿?:") == 1) 그리고나서 템플릿 개수 = 템플릿 개수 + 1; 끝. 한다면 (줄을 대다(한 페이지, "^[oO]직선 +/") == 1) 그리고나서 아웃라인 카운트 = 아웃라인 카운트 + 1; 끝. 한다면 (한 페이지 == 이 페이지 베어 이름) 그리고나서 Eponymous 사용기사 = 진실의; 끝. 페이지 카운터 = 페이지 카운터 + 1 끝. 한다면 디버깅 그리고나서 철회의 = 철회의 .. "\n총 페이지 수: " .. 페이지 카운터 철회의 = 철회의 .. "\n템플릿 개수: " .. 템플릿 개수 철회의 = 철회의 .. "/div" 끝. 먼저 두 계산 방법이 동일한 결과를 내는지 확인합니다. 한다면 (원본 페이지카운터 사용 == 페이지 카운터) 그리고나서 모든 페이지가 템플리트인 경우 추적 카테고리 입력 한다면 (페이지 카운터 == 템플릿 개수) 그리고나서 한다면 (템플릿 개수 == 1) 그리고나서 철회의 = 철회의 .. "[카테고리:기사 목록이 하나의 템플릿으로만 구축된 자동 기사 슬라이드 쇼 포털]" 그렇지 않으면 (템플릿 개수 == 2) 그리고나서 철회의 = 철회의 .. "[카테고리:두 개의 템플릿만으로 구성된 기사 목록이 있는 자동 기사 슬라이드 쇼 포털]" 그렇지 않으면 (템플릿 개수 == 3) 그리고나서 철회의 = 철회의 .. "[카테고리:3개의 템플릿으로만 구성된 기사 목록을 사용하는 자동 기사 슬라이드 쇼 포털]" 그렇지 않으면 (템플릿 개수 > 3) 그리고나서 철회의 = 철회의 .. "[카테고리:4개 이상의 템플릿으로만 구성된 기사 목록이 있는 자동 기사 슬라이드 쇼 포털]" 끝. 그렇지 않으면 (템플릿 개수 > 0) 그리고나서 철회의 = 철회의 .. "[카테고리:하나 이상의 템플릿 및 기타 소스를 사용하여 작성된 기사 목록이 있는 자동 기사 슬라이드 쇼 포털]" 끝. 끝. 한다면 (아웃라인 카운트 >= 1) 그리고나서 철회의 = 철회의 .. "[카테고리:하나 이상의 개요 페이지를 사용하여 작성된 기사 목록이 있는 자동 기사 슬라이드 쇼 포털]" 끝. 한다면 (물품 목록 수 < 2) 그리고나서 철회의 = 철회의 .. "[카테고리:기사 목록에 2개 미만의 기사가 있는 포털 자동 기사 슬라이드 쇼]]" 그렇지 않으면 (물품 목록 수 <= 5) 그리고나서 철회의 = 철회의 .. "[카테고리:기사 목록에 2~5개의 기사가 있는 자동 기사 슬라이드 쇼 포털]" 그렇지 않으면 (물품 목록 수 <= 10) 그리고나서 철회의 = 철회의 .. "[카테고리:기사 목록에 6~10개의 기사가 있는 자동 기사 슬라이드 쇼 포털]" 그렇지 않으면 (물품 목록 수 <= 15) 그리고나서 철회의 = 철회의 .. "[카테고리:기사 목록에 11~15개의 기사가 있는 자동 기사 슬라이드 쇼 포털]" 그렇지 않으면 (물품 목록 수 <= 20) 그리고나서 철회의 = 철회의 .. "[카테고리:기사 목록에 16~20개의 기사가 있는 자동 기사 슬라이드 쇼 포털]" 그렇지 않으면 (물품 목록 수 <= 25) 그리고나서 철회의 = 철회의 .. "[카테고리:기사 목록에 21~25개의 기사가 있는 자동 기사 슬라이드 쇼 포털]" 그렇지 않으면 (물품 목록 수 <= 30) 그리고나서 철회의 = 철회의 .. "[카테고리:기사 목록에 26~30개의 기사가 있는 자동 기사 슬라이드 쇼 포털]" 그렇지 않으면 (물품 목록 수 <= 40) 그리고나서 철회의 = 철회의 .. "[카테고리:기사 목록에 31~40개의 기사가 있는 자동 기사 슬라이드 쇼 포털]" 그렇지 않으면 (물품 목록 수 <= 50) 그리고나서 철회의 = 철회의 .. "[카테고리:기사 목록에 41~50개의 기사가 있는 자동 기사 슬라이드 쇼 포털]" 그렇지 않으면 (물품 목록 수 <= 100) 그리고나서 철회의 = 철회의 .. "[카테고리:기사 목록에 51~100개의 기사가 있는 자동 기사 슬라이드 쇼 포털]" 그렇지 않으면 (물품 목록 수 <= 200) 그리고나서 철회의 = 철회의 .. "[카테고리:기사 목록에 101~200개의 기사가 있는 자동 기사 슬라이드 쇼 포털]" 그렇지 않으면 (물품 목록 수 <= 500) 그리고나서 철회의 = 철회의 .. "[카테고리:기사 목록에 201~500개의 기사가 있는 자동 기사 슬라이드 쇼 포털]" 그렇지 않으면 (물품 목록 수 <= 1000) 그리고나서 철회의 = 철회의 .. "[카테고리:기사 목록에 501~1000개의 기사가 있는 자동 기사 슬라이드 쇼 포털]" 그렇지 않으면 (물품 목록 수 > 1000) 그리고나서 철회의 = 철회의 .. "[카테고리:기사 목록에 1000개 이상의 기사가 있는 자동 기사 슬라이드 쇼 포털]" 끝. 한다면 Embedded List 사용 그리고나서 철회의 = 철회의 .. "[카테고리:목록이 포함된 자동 기사 슬라이드 쇼 포털]" 끝. 한다면 Eponymous 사용기사 그리고나서 철회의 = 철회의 .. "[카테고리:이름이 붙은 기사를 사용하여 기사 목록을 작성한 기사 슬라이드 쇼 포털 자동화]" 끝. 돌아가다 철회의 끝. 기능. 배열 값(t) 현지의 i = 0 돌아가다 기능.() i = i + 1; 돌아가다 t[i] 끝. 끝. 종료 원본 페이지 추적을 위한 BHG 추가 돌아가다 p