모듈:랜덤/샌드박스
Module| 모듈 샌드박스 페이지는 다음과 같습니다.랜덤(diff). 테스트 케이스에 대해서는, 부속의 서브 페이지도 참조해 주세요. |
| 이 Lua 모듈은 약 12,000페이지에 걸쳐 사용되고 있으며, 변경은 널리 알려져 있습니다.모듈의 /sandbox 또는 /testcase 서브페이지 또는 자체 모듈 샌드박스에서 변경 내용을 테스트합니다.변경을 실장하기 전에 토크 페이지에서 변경에 대해 논의해 주십시오. |
| 이 모듈은 페이지 보호 대상입니다.이 모듈은 매우 많은 페이지에서 사용 중이거나 매우 자주 교체됩니다.파손이나 실수는 많은 페이지에 영향을 미치고 사소한 편집이라도 서버에 큰 부하가 걸릴 수 있으므로 편집으로부터 보호됩니다. |
| 이 모듈은 다음 다른 모듈에 의존합니다. |
이 모듈에는 난수를 사용하는 여러 함수가 포함되어 있습니다.랜덤 번호를 출력하고, 리스트에서 랜덤 항목을 선택하고, 리스트를 랜덤으로 정렬할 수 있습니다.랜덤으로 정렬된 목록은 인라인으로 출력하거나 다양한 유형의 정렬된 목록과 정렬되지 않은 목록으로 출력할 수 있습니다.사용 가능한 기능의 자세한 내용은 다음과 같습니다.
번호
그number함수는 난수를 출력합니다.
{{##########mnsame=yes}개 의론m그리고.n생략할 수 있지만 지정할 경우 정수로 변환할 수 있어야 합니다.
- 인수를 지정하지 않고는 [ 범위의 실수를 반환합니다.
- 인수를 1개 지정하면 [1 m 범위의 정수를 반환합니다.
m- m , 0 ( - , )。이 경우m0 또는 1과 같으면 1을 반환합니다(또는 m -인 0({ m}). - 인수 2개를 지정하면는 [ 범위의 정수를 반환합니다.
m그리고.n양수이거나 음수일 수 있습니다.한다면m보다 크다n대신 [범위의 정수를 반환합니다. - 이 경우,
same=파라미터가 "yes", "y", "true" 또는 "1"로 설정되어 있는 경우 지정된 페이지의 각 모듈콜에 대해 동일한 난수가 반환됩니다.
예 ()
{{#invoke:random number}}→ 0.77409979597391{{#invoke:random number 100}}→ 46{{#invoke:random number -100 -50}}→ -64{{#invoke:random number 100 same=yes}}→ 31{{#invoke:random number 100 same=yes}}→ 31
이 기능에 대한 설명서는 부분적으로 스크리분토 Lua 참조 매뉴얼에서 발췌한 것으로, 이는 MIT 라이선스에 따라 제공되는 Lua 5.1 참조 매뉴얼에 근거하고 있습니다.
날짜.
그date함수는 랜덤 날짜를 출력합니다.
{{#timestamp1 timestamp2 format=date format same=yes}을(를) 지정했습니다. - 타임스탬프 인수가 지정되지 않은 경우 모듈은 해당 연도의 랜덤 날짜를 출력합니다.
- 한다면
timestamp1그리고.timestamp2를 지정하면 모듈은 2개의 타임스탬프 사이의 랜덤 날짜를 출력합니다.timestamp1보다 빠를 필요가 있다timestamp2. - 다면
timestamp1를 지정하면 모듈은 Unix Epoch(1970년 1월1일)와 타임스탬프 사이의 랜덤 날짜를 출력합니다.timestamp11970년 1월 1일 이전이어야 합니다. - 포맷은 다음 명령어를 사용하여 지정할 수 있습니다.
format=파라미터를 지정합니다.기본 형식은 "hh:mm, DD Month YYY(UTC)"입니다(기본 Wikipedia 타임스탬프와 동일). - 타임스탬프와
format=파라미터는 #time parser 함수와 호환되는 값을 받아들입니다.가능한 모든 입력값 및 포맷 옵션에 대해서는 #time 문서를 참조하십시오. - 이 경우,
same=파라미터가 "yes", "y", "true" 또는 "1"로 설정되어 있는 경우 지정된 페이지의 각 모듈콜에 대해 동일한 날짜가 반환됩니다.
예 ()
{{#invoke:random date}}→ 2023년 5월 27일 03:35 (UTC){{#invoke:random date format=F j}}→ 2월 28일{{#invoke:random date 1 Jan 1980 31 Dec 1999}}→ 1998년 12월 20일 17:07 (UTC){{#invoke:random date 1st January 1500 1st January 3000 format=g:i a, l d M Y}}→ 2174년 5월 16일(월) 오전 5시 47분{{#invoke:random date 1970/06/01}}→ 1970년 1월 6일 04:21 (UTC){{#invoke:random date same=yes}}→ 2023년 4월 22일 17:15 (UTC){{#invoke:random date same=yes}}→ 2023년 4월 22일 17:15 (UTC)
아이템
그item함수는 목록에서 임의의 항목을 출력합니다.
{{#parames: 아이템 리스트 1 리스트 아이템 2 리스트 아이템 3 ...same=yes}} 이 경우, same=파라미터가 "yes", "y", "true" 또는 "1"로 설정되어 있는 경우 지정된 페이지의 각 모듈 호출에 대해 동일한 항목이 반환됩니다.
예 ()
{{#invoke:random item egg beans sausage bacon spam}}→ 소시지{{#invoke:random item egg beans sausage bacon spam same=yes}}→ 베이컨{{#invoke:random item egg beans sausage bacon spam same=yes}}→ 베이컨
목록.
그list함수는 목록을 랜덤 순서로 출력합니다.
{{#parames:목록 항목 1목록 항목 2목록 항목 3 ... sep=sepper limit=동일표시 항목 수=yes} 명명된 파라미터
sep=또는separator=- 목록 항목에 대한 선택적 구분 기호.일부 값은 특별합니다.아래 표를 참조하십시오.limit=- 표시할 목록 항목의 최대 수.최소값은 0이고 최대값은 목록 길이입니다.same=- 이 값이 "yes", "y", "true" 또는 "1"로 설정되어 있는 경우 목록 순서는 지정된 페이지의 각 모듈 호출에 대해 동일합니다.
| 코드 | 산출량 |
|---|---|
dot | · |
pipe | |
comma | , |
tpt-languages | 'tpt-http-http-http' |
space | 여백 |
newline | 줄바꿈 캐릭터 |
| 다른 값 | 다른 값은 수정 없이 사용됩니다. |
공백은 직접 입력할 수 없습니다. sep=미디어 제한으로 인한 매개 변수Wiki의 템플릿 구문.그러나 HTML 엔티티를 사용하여 이 문제를 해결할 수 있습니다.사용할 수 있습니다. 정상적인 공간을 나타내기 위해 깨지지 않는 공간을 나타냅니다.
예 ()
{{#invoke:random list egg beans sausage bacon spam}}→스파메그바콘 콩소시지{{#invoke:random list egg beans sausage bacon spam sep=dot}}→ 베이컨 · 계란 · 소시지 · 콩 · 스팸{{#invoke:random list egg beans sausage bacon spam sep=space}}→ 소시지 베이컨 콩 계란 스팸{{#invoke:random list egg beans sausage bacon spam sep=; }}→ 베이컨, 소시지, 달걀, 스팸, 콩{{#invoke:random list egg beans sausage bacon spam sep=foo}}→ 콩스팜푸사지푸바콘푸에그{{#invoke:random list egg beans sausage bacon spam limit=3}}→ 스팸빈즈베이콘{{#invoke:random list egg beans sausage bacon spam same=yes}}→ 소시지 에그스팸빈즈베이콘{{#invoke:random list egg beans sausage bacon spam same=yes}}→ 소시지 에그스팸빈즈베이콘
텍스트 리스트
그text_list함수는 목록을 텍스트 형식으로 랜덤 순서로 출력합니다.바꿔 말하면, 그것은 마치list하지만 마지막 항목 앞에 다른 구분 기호가 있습니다.
{{#text_list 아이템1 리스트 아이템2 리스트 아이템3 ... sep=contract connection limit=동일표시 아이템수=yes} 구분자는 다음 중 하나를 사용하여 지정할 수 있습니다. sep=또는 separator=파라미터 기본값은 " , " 입니다.결합은 다음 중 하나를 사용하여 지정할 수 있습니다. conj=또는 conjunction=파라미터 기본값은 " 및 " 입니다.구분 기호 및 연결은 목록 함수의 구분 기호와 동일한 값으로 지정할 수 있습니다.
표시할 목록 항목의 최대 수는 다음과 같이 설정할 수 있습니다. limit=파라미터를 지정합니다.최소값은 0이고 최대값은 목록 길이입니다.
이 경우, same=파라미터는 "yes", "y", "true" 또는 "1"로 설정되며 목록 순서는 지정된 페이지의 각 모듈콜에 대해 동일합니다.
예 ()
{{#invoke:random text_list egg beans sausage bacon spam}}→ 계란, 스팸, 베이컨, 콩, 소시지{{#invoke:random text_list egg beans sausage bacon spam sep=; }}→ 베이컨, 콩, 달걀, 소시지 및 스팸{{#invoke:random text_list egg beans sausage bacon spam sep=;  conj= or }}→ 달걀, 소시지, 스팸, 베이컨 또는 콩{{#invoke:random text_list egg beans sausage bacon spam limit=3}}→ 스팸, 콩, 베이컨{{#invoke:random text_list egg beans sausage bacon spam same=yes}}→ 소시지, 달걀, 스팸, 콩, 베이컨{{#invoke:random text_list egg beans sausage bacon spam same=yes}}→ 소시지, 달걀, 스팸, 콩, 베이컨
HTML 목록
HTML 목록을 랜덤 순서로 출력하려면 다음 5가지 기능 중에서 선택할 수 있습니다.bulleted_list,unbulleted_list,horizontal_list,ordered_list,그리고.horizontal_ordered_list. 다음 기능은 모두 모듈을 사용합니다.리스트
| 기능명 | 생산하다 | 코드 예시 | 출력 예() |
|---|---|---|---|
bulleted_list | 글머리 기호 목록 | {{#invoke:random bulleted_list egg sausage spam}} |
|
unbulleted_list | 삭제되지 않은 목록 | {{#invoke:random unbulleted_list egg sausage spam}} |
|
horizontal_list | 가로 글머리 기호 목록 | {{#invoke:random horizontal_list egg sausage spam}} |
|
ordered_list | 순서부 리스트(번호부 리스트 및 알파벳순 리스트) | {{#invoke:random ordered_list egg sausage spam}} |
|
horizontal_ordered_list | 수평 순서 리스트 | {{#invoke:random horizontal_ordered_list egg sausage spam}} |
|
- 기본 사용법
{{#function:function list item 1 list item 2 list item 3 ...limit=동일표시항목수=yes} - 모든 파라미터
{{#temp}: 기능 첫 번째 항목 두 번째 항목 세 번째 항목...시작 = 순서 목록의 시작 번호 유형 = 순서 목록의 마커 유형_style_type = 순서 목록의 마커 유형(CSS 사용) = 클래스 스타일 = style list_style = 모든 목록 항목의 스타일 = 첫 번째 목록 항목의 스타일item_style2 = 두 번째 목록 항목의 스타일... 들여쓰기 = 가로 목록 들여쓰기 }} 표시할 목록 항목의 최대 수는 다음과 같이 설정할 수 있습니다. limit=파라미터를 지정합니다.최소값은 0이고 최대값은 목록 길이입니다.
이 경우, same=파라미터는 "yes", "y", "true" 또는 "1"로 설정되며 목록 순서는 지정된 페이지의 각 모듈콜에 대해 동일합니다.
-- 이 모듈에는 난수를 사용하는 여러 함수가 포함되어 있습니다. 현지의 cfg = {} -------------------------------------------------------------------------------------- -- 설정 -------------------------------------------------------------------------------------- -- Wiki의 트래픽 속도가 2분마다 1회 미만인 경우 이 설정을 true로 설정합니다. --이것에 의해, 새로운 편집이 행해질 때까지, 같은 「랜덤」번호가 연속해서 몇번이나 생성되는 것을 막을 수 있습니다. --Wiki로 이동합니다.이 설정은 동일한= 매개 변수가 설정된 경우에만 적용됩니다. cfg.저트래픽 = 거짓의 -- cfg.lowTraffic이 true로 설정되고 동일한= 매개 변수가 설정되면 이 값이 랜덤 시드의 새로 고침 속도로 사용됩니다. --시드가 변경될 때까지의 초수입니다.이걸 바로 잡는 건 어렵죠너무 높게 설정하면 같은 수가 됩니다. --는 연속해서 여러 번 반환됩니다.너무 낮게 설정하면 같은 페이지에 다른 난수가 표시될 수 있습니다. -- 특히 처리하는 데 몇 초가 걸리는 페이지의 경우. cfg.시드 리프레쉬 레이트 = 60 -------------------------------------------------------------------------------------- -- 설정 종료 -------------------------------------------------------------------------------------- 현지의 p = {} -- 다른 Lua 모듈에서 사용할 수 있는 기능. 현지의 l = {} -- 다른 Lua 모듈에서는 사용할 수 없지만 테이블 키를 사용하여 액세스해야 하는 기능의 경우. 현지의 네, 아니요 = 요구하다('모듈:네, 아니요.) 현지의 make List(make list) = 요구하다('모듈:리스트').make List(make list) -------------------------------------------------------------------------------------- -- 도우미 기능 -------------------------------------------------------------------------------------- 현지의 기능. raise Error(상승 오류)(메시지) -- 이것은 Wikitext 오류를 생성하는 데 도움이 됩니다.출력에 포함시키는 방법은 호출 함수의 책임입니다. 돌아가다 음.스트링.포맷('<b class="error">[모듈:랜덤]] 오류: %s.</b>', 메시지) 끝. -------------------------------------------------------------------------------------- -- 난수 함수 -------------------------------------------------------------------------------------- 현지의 기능. Get Big Random(l, u) -- l과 u 사이의 임의의 정수를 가져옵니다.또한 LAND_MAX에 한정되지 않습니다. 현지의 r = 0 현지의 n = 2^math.matrix(30) -- 2의 임의의 거듭제곱. 현지의 제한. = math.matrix(53 / (math.log(n) / math.log(2))) 위해서 i = 1, 제한. 하다 r = r + math.matrix(0, n - 1) / (n^i) 끝. 돌아가다 math.floor(r * (u - l + 1)) + l 끝. 기능. l.번호(args) -- 난수를 가져옵니다. 첫번째 = 톤수(args[1]) 둘째 = 톤수(args[2]) -- math.random의 스테이트먼트가 명시적으로 nero 값을 인수로 받아들이지 않는 경우에 사용합니다. 한다면 첫번째 그리고나서 한다면 둘째 그리고나서 한다면 첫번째 > 둘째 그리고나서 -- 두 번째 숫자는 첫 번째 숫자보다 작을 수 없습니다.그렇지 않으면 오류가 발생합니다. 첫번째, 둘째 = 둘째, 첫번째 끝. 돌아가다 Get Big Random(첫번째, 둘째) 또 다른 돌아가다 Get Big Random(1, 첫번째) 끝. 또 다른 돌아가다 math.matrix() 끝. 끝. -------------------------------------------------------------------------------------- -- 날짜 함수 -------------------------------------------------------------------------------------- 기능. l.날짜.(args) -- 이 함수는 임의의 날짜를 가져오고 타임스탬프를 위치 인수로 사용합니다. -- 인수를 지정하지 않으면 해당 연도의 랜덤 날짜를 출력합니다. -- 2개의 인수를 지정하면 타임스탬프 사이에 임의의 날짜가 출력됩니다. -- 1개의 인수를 지정했을 경우, 날짜는 Unix Epoch(1970년 1월 1일)와 타임스탬프 사이의 랜덤 날짜입니다. -- 출력은 #time parser 함수와 같은 방법으로 동작하는 "format" 인수를 사용하여 포맷할 수 있습니다. -- 기본 형식은 표준 Wikipedia 타임스탬프입니다. 현지의 언어 = 음.언어.get Content Language(get Content Language)() 현지의 기능. 날짜 가져오기(포맷, ts) 현지의 성공., 날짜. = pcall(언어.포맷 날짜, 언어, 포맷, ts) 한다면 성공. 그리고나서 돌아가다 날짜. 끝. 끝. 현지의 기능. getUnixTimestamp(ts) 현지의 유니크 = 날짜 가져오기('U', ts) 한다면 유니크 그리고나서 돌아가다 톤수(유니크) 끝. 끝. 현지의 t1 = args[1] 현지의 t2 = args[2] -- 시작 타임스탬프와 종료 타임스탬프를 찾습니다. 현지의 startTimestamp, endTimestamp 한다면 것은 아니다. t1 그리고나서 -- 금년도 첫 번째와 마지막 두 번째를 찾습니다. 현지의 당년도 = 톤수(날짜 가져오기('Y')) 현지의 current Year Start Unix(현황 = 톤수(getUnixTimestamp(1월 1일 .. 스트링(당년도))) 현지의 current YearEndUnix = 톤수(getUnixTimestamp(1월 1일 .. 스트링(당년도 + 1))) - 1 startTimestamp = '@' .. 스트링(current Year Start Unix(현황) -- @ 는, Unix 의 타임스탬프를 lang:formatDate 로 나타내기 위해서 사용됩니다. endTimestamp = '@' .. 스트링(current YearEndUnix) 그렇지 않으면 것은 아니다. t2 그리고나서 startTimestamp = '@0' -- Unix 시대, 1970년 1월 1일 endTimestamp = t1 또 다른 startTimestamp = t1 endTimestamp = t2 끝. -- Unix 타임스탬프를 취득하여 잘못된 입력(또는 불행히도 몇 개 있는 기본 PHP 라이브러리의 버그)에 대한 오류를 반환합니다. 현지의 startTimestamp유닉스 = getUnixTimestamp(startTimestamp) 현지의 endTimestamp유닉스 = getUnixTimestamp(endTimestamp) 한다면 것은 아니다. startTimestamp유닉스 그리고나서 돌아가다 raise Error(상승 오류)('"' .. 스트링(startTimestamp) .. ''가 올바른 타임스탬프로 인식되지 않았습니다.') 그렇지 않으면 것은 아니다. endTimestamp유닉스 그리고나서 돌아가다 raise Error(상승 오류)('"' .. 스트링(endTimestamp) .. ''가 올바른 타임스탬프로 인식되지 않았습니다.') 그렇지 않으면 startTimestamp유닉스 > endTimestamp유닉스 그리고나서 돌아가다 raise Error(상승 오류)('시작일은 종료일(시작일: ')'보다 늦으면 안 됩니다. .. startTimestamp .. ' , 종료일 : ' .. endTimestamp .. '")') 끝. -- 2 개의 Unix 타임스탬프 사이에 임의의 번호를 취득해, 지정된 형식을 사용해 반환합니다. 현지의 랜덤 타임 스탬프 = Get Big Random(startTimestamp유닉스, endTimestamp유닉스) 현지의 날짜 형식 = args.포맷 또는 'H:i, d F Y(T)' 현지의 결과 = 날짜 가져오기(날짜 형식, '@' .. 스트링(랜덤 타임 스탬프)) 한다면 결과 그리고나서 돌아가다 결과 또 다른 돌아가다 raise Error(상승 오류)('"' .. 날짜 형식 .. ''는 올바른 날짜 형식이 아닙니다.') 끝. 끝. -------------------------------------------------------------------------------------- -- 함수 목록 표시 -------------------------------------------------------------------------------------- 현지의 기능. 무작위화하다어레이(t, 제한.) -- 배열을 랜덤화합니다.엔트리를 교환할 때마다 목록을 거꾸로 반복함으로써 동작합니다. -- 랜덤 엔트리가 있는 「i」.http://forums.wowace.com/showthread.php?p=279756에서 신환 제공 -- limit 파라미터가 설정되어 있는 경우 랜덤화 후 배열이 그만큼 단축됩니다. -- 최소값은 0, 최대값은 배열 길이입니다. 현지의 렌 = #t 위해서 i = 렌, 2, -1 하다 현지의 r = math.matrix(i) t[i], t[r] = t[r], t[i] 끝. 한다면 제한. 그리고. 제한. < > 렌 그리고나서 현지의 리트 = {} 위해서 i, v 에 아이페어(t) 하다 한다면 i > 제한. 그리고나서 브레이크. 끝. 리트[i] = v 끝. 돌아가다 리트 또 다른 돌아가다 t 끝. 끝. 현지의 기능. 공백 제거(t) -- ipair에서 사용할 수 있도록 배열에서 빈 항목을 제거합니다. 현지의 리트 = {} 위해서 k, v 에 쌍들(t) 하다 한다면 유형(k) == '숫자' 그리고나서 table.insert(리트, k) 끝. 끝. table.displaces(리트) 위해서 i, v 에 아이페어(리트) 하다 리트[i] = t[v] 끝. 돌아가다 리트 끝. 현지의 기능. 구분자를 만들다(세프) 한다면 세프 == '공간' 그리고나서 --스페이스를 구분자로 사용하기 쉬운 방법을 포함합니다. 돌아가다 ' ' 그렇지 않으면 세프 == 'newline' 그리고나서 --신규 회선에 대해서는, 동감입니다. 돌아가다 '\n' 그렇지 않으면 유형(세프) == '문자열 그리고나서 -- 세퍼레이터가 인식되는 MediaWiki 세퍼레이터인 경우 사용합니다.그렇지 않으면 sep 값이 문자열인 경우 사용합니다. 현지의 세퍼레이터 = {점, '파이프, '실패', 'tpt-module'} 위해서 _, 음파 에 아이페어(세퍼레이터) 하다 한다면 세프 == 음파 그리고나서 돌아가다 음.메세지.신규( 세프 .. '-display' ):평지() 끝. 끝. 돌아가다 세프 끝. 끝. 현지의 기능. make Random List(랜덤 리스트)(args) 현지의 목록. = 공백 제거(args) 목록. = 무작위화하다어레이(목록., 톤수(args.제한.)) 돌아가다 목록. 끝. 기능. l.아이템(args) -- 번호 목록에서 임의의 항목을 반환합니다. 현지의 목록. = 공백 제거(args) 현지의 렌 = #목록. 한다면 렌 >= 1 그리고나서 돌아가다 목록.[math.matrix(렌)] 끝. 끝. 기능. l.목록.(args) --목록을 랜덤화하고 결과를 구분 기호와 연결합니다. 현지의 목록. = make Random List(랜덤 리스트)(args) 현지의 세프 = 구분자를 만들다(args.세프 또는 args.분리기) 돌아가다 table.concat(목록., 세프) 끝. 기능. l.text_list(args) -- 목록을 랜덤화하고 결과를 텍스트 형식으로 연결합니다.구분자 및 결합 인수를 사용할 수 있습니다. 현지의 목록. = make Random List(랜덤 리스트)(args) 현지의 세프 = 구분자를 만들다(args.세프 또는 args.분리기) 현지의 요술 = 구분자를 만들다(args.요술 또는 args.접속사) 돌아가다 음.본문.list To(목록., 세프, 요술) 끝. 기능. l.배열(args) -- 랜덤화된 Lua 배열을 반환합니다.다른 Lua 모듈에서 사용합니다. 돌아가다 무작위화하다어레이(args.t, args.제한.) 끝. -------------------------------------------------------------------------------------- -- HTML 목록 함수 -------------------------------------------------------------------------------------- 기능. l.html_list(args, list Type) -- 목록을 랜덤화하고 HTML 목록으로 변환합니다.[[모듈 사용:리스트] ] ] list Type = list Type 또는 '소거' 현지의 listArgs = make Random List(랜덤 리스트)(args) -- [Module]에 대한 인수:리스트] ] ] 위해서 k, v 에 쌍들(args) 하다 한다면 유형(k) == '문자열 그리고나서 listArgs[k] = v 끝. 끝. 돌아가다 make List(make list)(list Type, listArgs) 끝. -------------------------------------------------------------------------------------- -- 메인 기능.다른 Lua 모듈에서 호출됩니다. -------------------------------------------------------------------------------------- 기능. p.주된(기능명, args, list Type) -- 난수 생성기의 시드를 설정하고 제어를 다른 함수에 넘깁니다. 현지의 저도. = 네, 아니요(args.저도.) 한다면 것은 아니다. 저도. 그리고나서 -- 같은 페이지에서 모듈을 호출할 때마다 다른 번호를 생성합니다. -- 이는 os.clock(Lua 스크립트가 실행된 시간(초))의 변동성에 기인합니다. math.contracteseed(산술시드(음.위치.통계.편집 + 음.위치.통계.페이지 + os.time() + math.floor(os.clock() * 1000000000)) 그렇지 않으면 것은 아니다. cfg.저트래픽 그리고나서 -- 시드를 시간 기반 없이 가능한 한 랜덤으로 만듭니다.즉, 동일한 난수가 -- 같은 페이지의 같은 입력에 대해 생성됩니다.일부 Wikicode 템플릿에 필요한 동작입니다. -- 부정한 의사 패킷 번호의 생성을 전제로 합니다. 현지의 통계 = 음.위치.통계 현지의 보기 = 통계.보기 또는 0 -- 항상 사용할 수 있는 것은 아니기 때문에 백업이 필요합니다. 현지의 씨를 뿌리다 = 보기 + 통계.페이지 + 통계.기사들 + 통계.파일 + 통계.편집 + 통계.사용자 + 통계.액티브 유저 + 통계.관리자 -- os.time() 또는 os.clock()을 사용하지 않고 가능한 랜덤으로 만듭니다. math.contracteseed(산술시드(씨를 뿌리다) 또 다른 --n초마다 랜덤 시드 변경을 합니다.n은 cfg.seedRefreshRate로 설정됩니다. -- 이것은 새로운 편집이 자주 이루어지지 않을 수 있는 트래픽이 적은 Wiki에 유용합니다. math.contracteseed(산술시드(math.floor(os.time() / cfg.시드 리프레쉬 레이트)) 끝. 주장하다(유형(args) == '테이블', 'p.main에 대한 두 번째 인수는 표여야 합니다.') 돌아가다 l[기능명](args, list Type) 끝. -------------------------------------------------------------------------------------- -- #invoke에서 인수를 처리합니다. -------------------------------------------------------------------------------------- 현지의 기능. make Wrapper(메이크랩퍼)(기능명, list Type) -- 이 함수는 #invoke에서 인수를 처리하기 위한 래퍼를 제공합니다. --listType은 p.html_list에만 사용되며 나머지 시간에는 0이 됩니다. 돌아가다 기능. (틀) -- #invoke를 통해 호출된 경우 호출 템플릿에 전달된Args 또는 #invoke에 전달된Args가 있는 경우 사용합니다. -- 그렇지 않으면 arg가 디버깅콘솔 또는 다른 Lua 모듈에서 직접 전달되고 있다고 가정합니다. 현지의 origargs 한다면 틀 == 음.get Current Frame(전류 프레임)() 그리고나서 origargs = 틀:부모 취득().args 위해서 k, v 에 쌍들(틀.args) 하다 origargs = 틀.args 브레이크. 끝. 또 다른 origargs = 틀 끝. -- 공백을 잘라내고 빈 인수를 제거합니다. 현지의 args = {} 위해서 k, v 에 쌍들(origargs) 하다 한다면 유형(v) == '문자열 그리고나서 v = 음.본문.다듬다(v) 끝. 한다면 v ~= '' 그리고나서 args[k] = v 끝. 끝. 돌아가다 p.주된(기능명, args, list Type) 끝. 끝. -- HTML 목록 함수의 프로세스 인수. 현지의 htmlListFuncs = { bulleted_리스트 = '소거', unbulleted_list(삭제되지 않음) = '삭제되지 않음', 수평_목록 = '평범', 오더드_리스트 = '주문', 수평_순서_목록 = '주문필' } 위해서 기능명, list Type 에 쌍들(htmlListFuncs) 하다 p[기능명] = make Wrapper(메이크랩퍼)('syslog_list', list Type) 끝. -- 다른 함수의 인수를 처리합니다. 현지의 기타 펑크 = {'숫자', '날짜', '항목', 리스트, 'text_list'} 위해서 _, 기능명 에 아이페어(기타 펑크) 하다 p[기능명] = make Wrapper(메이크랩퍼)(기능명) 끝. 돌아가다 p