모듈:자동 정렬 테이블
Module| 이 모듈은 일반 사용 가능한 것으로 평가되었습니다.성숙한 형태에 이르렀고 비교적 버그가 없으며 적절한 장소에서 사용할 수 있는 것으로 생각됩니다.새로운 사용자가 학습할 수 있는 옵션으로 도움말 페이지 및 기타 위키피디아 리소스를 언급할 준비가 되어 있습니다.서버의 부하와 불량 출력을 줄이려면 시행착오를 반복하는 편집이 아니라 샌드박스 테스트를 통해 개선해야 합니다. |
사용.
이 모듈은 데이터 테이블을 자동으로 정렬된 순서로 작성하는 데 도움이 됩니다.이 문서에서는 주로 위키피디아 목록에 있는 거대하고 역동적인 표 생성에 사용됩니다.Wikipedia 에디션테이블의 경우 모듈이 직접 호출되어 테이블의 프레임워크가 작성되고 모듈 호출 내의 행에 대한 내용이 이어집니다.[ Details of Wikipedia editions ]테이블의 경우 다른 템플릿(예:{{WP7}},{{WP7a}})는 모듈 호출 내에서 각 행의 콘텐츠를 생성합니다.템플릿{{WP7}},{{WP7a}},{{WP7b}}그리고.{{WP7c}}는 모듈 호출 내의 인수로 호출되는 것을 의도하고 있습니다.이는 모듈 자체가 Wikable(또는 표준 테이블) 코드를 생성하지 않기 때문입니다.
모듈의 인수는 다음과 같습니다.
{{#invoke:AutosortTable create class= style= separator= order= numeric= descending= hidden= rowheader= caption= header= footer= colstyle= }}
| 논쟁 | 예 | 메모들 |
|---|---|---|
| 기능. | create | 인수 create는 이 모듈의 유일한 기능으로 필수입니다. |
| 학급 | class = wikitable | 테이블 전체의 클래스입니다.테이블은 클래스 "sortable"을 포함하여 사용자가 정렬할 수 있도록 만들 수 있지만, 그럴 필요는 없습니다. |
| 스타일. | style = width: 50%; | 테이블 전체의 CSS |
| 분리기 | separator = -- | 데이터 정의에서 셀을 구분하는 데 사용되는 구분 문자열입니다.파이프()는 이 모듈에는 유효하지 않은 구분 기호입니다. |
| 주문 | order = 3, 2 | 자동 정렬 기본 설정 순서. 쉼표로 구분된 열 번호 목록을 사용합니다.이 예에서는 테이블이 먼저 열 3을 기준으로 정렬된 다음 열 2를 기준으로 정렬됩니다. |
| 숫자 | numeric = 2 | 자동 정렬 시 숫자 정렬을 사용하는 열입니다.쉼표로 구분된 열 번호 목록을 사용합니다. |
| 내림차순 | descending = 3 | 자동 정렬 순서가 내림차순이어야 하는 열입니다(그렇지 않으면 오름차순이 사용됩니다).쉼표로 구분된 열 번호 목록을 사용합니다.여기서는 세 번째 열만 내림차순으로 자동 정렬됩니다(예: Zebra, Walrus, Muskrat, Emu 등). |
| 숨겨져 있다 | hidden = 2 | 표시할 수 없는 열(행 정렬에 사용할 수도 있음)쉼표로 구분된 열 번호 목록을 사용합니다.여기서는 두 번째 열은 표시되지 않습니다. |
| 노젓는 사람 | rowheader = 1 | MOS:ACCESS에 따라 각 비헤더 행의 셀로 행 헤더로 출력됩니다.보통 1과 1만 허용되지만 쉼표로 구분된 열 번호 목록을 사용할 수 있습니다.원인들!scope="row"지정된 셀에 대해 HTML에서 사용됩니다. |
| 표제 | caption = Notable people by age | 테이블에 사용되는 캡션(MOS:ACCESS 단위) |
| 머리글자 | header = -- Name -- Age | 이것들은 열 제목입니다.이 예에서는 제목이 있는 두 개의 열이 있습니다. 첫 번째 열은 "이름"이고 두 번째 열은 "연령"입니다.세퍼레이터에 주의해 주세요(--위의 구분자 값과 일치합니다. |
| 바닥글 | footer =-- Country -- Population -- Density | 테이블 바닥글. 일반적으로 헤더의 복제입니다(위의 헤더 인수를 참조).여기에서는 처음 세 열에 바닥글 레이블이 표시됩니다. |
| 콜스타일 | colstyle = -- text-align:left; -- text-align:right; -- -- -- | 지정된 CSS 스타일을 열 전체에 추가합니다.여기서 첫 번째 열은 왼쪽 정렬, 두 번째 열은 오른쪽 정렬, 다음 세 개의 열(CSS가 지정되지 않음)은 기본 스타일링을 사용합니다.세퍼레이터에 주의해 주세요(--위의 구분자 값과 일치합니다. |
스타일링 요령
이 모듈을 사용할 때 개별 셀을 스타일링하는 방법은 없지만 특정 행, 열 또는 테이블 전체의 스타일링은 CSS를 사용하여 수행할 수 있습니다.
테이블 스타일링
style 인수를 사용하면 전체 테이블에서 기본 스타일을 사용할 수 있습니다.예를들면, style=width:70%; text-align:center;는 테이블 너비를 사용 가능한 창의 70%로 제한하고 텍스트(열 및 행 머리글 제외)를 기본적으로 중앙에 배치합니다.여러 속성을 사용하는 경우 세미콜론은 속성을 구분하기 위해 필요합니다.CSS 또는 Wikiable 마크업에서 통상 필요한 따옴표는 사용하지 마십시오(와 같이)." style=width:70%; text-align:center;"CSS가 무시되기 때문입니다.주의: CSS를 사용하여 표 크기를 줄이거나 예기치 않은 표 너비로 인해 접근성 문제가 발생하거나 독자를 자극할 수 있습니다.
행 스타일링
첫 번째 데이터 셀 앞에 CSS를 포함시킴으로써 개별 행을 개별적으로 스타일링할 수 있습니다.다음 표의 예를 참조하십시오.<코드> {{#번호:AutoSortTable create class = wikitable plain rowheaders sortable sortable sparator = -- order = 2 numeric = 2 caption = Old friends = 1 header = 1 -- Name -- Age -- Diet < !-- Table > -- > -- Maria -- 36 -- 비건 < !-- Row 1 -- > -- > -- ------------------------------------------------------------------<>!전투 근무 지원과 맞붙은 2-->, 줄리아, 35, 고기는<>!--이 맞붙은 3-->요 제임스입니다. 50, 채식 주의 <.!--이 맞붙은 4-->background-color:#FFDDDD, 헨리--45, 고기는<>!--이 맞붙은 5,>--Ireni-47, 물고기, 고기가<>!--이 맞붙은 6번-->colstyle=--. text-align: 떠날 것이며,text-align: right; -- -- -- }} </code> | 이름. | 나이 | 다이어트 |
|---|---|---|
| 제임스 | 50 | 비건 |
| 이레니 | 47 | 생선, 고기 없음 |
| 핸리다. | 45 | 고기 |
| 마리아야. | 36 | 비건 |
| 피터야. | 35 | 채식주의자 |
| 줄리아. | 35 | 고기 |
"Henry" 행은 분홍색(#FFDDD)으로 표시되며 행 헤더는 헤더에 사용되는 회색 포맷 Wikitable을 적절하게 유지합니다.
기둥 스타일 지정
colstyle 인수에 CSS를 사용하여 개별 컬럼을 개별적으로 스타일링할 수 있습니다.위의 오래된 친구 예에서는 정렬이 다음과 같이 설정되었습니다.text-align:left;그리고.text-align:right;,각각 다음과 같다.다음과 같은 표를 생각해 보십시오.
<코드> {{#번호:AutosortTable 수업을 만들어 내)wikitable plainrowheaders 분류할 수 있는 분리기=--명령)2숫자 =2는=2caption=Old 다시 친구rowheader=1헤더=--이름, 나이는--다이어트 <.!--표 헤더,>--마리아--36, 채식 주의 <.!--이 맞붙은 1>---피터...35--미국<>!--패배시키다 2--을 만듭니다. --줄리아, 35-- 고기 <!-- 3열 --> -- James -- 50 -- 비건 <!-- 4열 --> -- 헨리 -- 45 -- 고기 <!-- 5열 --> -- 이레니 -- 47 -- 생선, 고기 <!-- 6열 --> colstyle = -- font-weight: bold; color: brown -- backgenground-color: } </> | 이름. | 나이 | 다이어트 |
|---|---|---|
| 제임스 | 50 | 비건 |
| 이레니 | 47 | 생선, 고기 없음 |
| 핸리다. | 45 | 고기 |
| 마리아야. | 36 | 비건 |
| 피터야. | 35 | 채식주의자 |
| 줄리아. | 35 | 고기 |
"Age" 열 항목은 이제 굵은 갈색으로 표시되며 이전 예시와 같이 더 이상 왼쪽 정렬되지 않습니다.여기서 "다이어트" 열은 지정된 노란색 배경을 가집니다.
샘플 테이블
"Wikipedia 에디션" 예
다음은 Wikipedia 목록에 있는 Wikipedia 에디션 표의 축약판 표입니다.수동으로 정렬 가능한 Wikitable로, 행 헤더(여기에서는 열 1로만 지정)에 대해 "일반 머리글"(굵은 글씨 없음, 가운데에 없음) 클래스를 사용합니다.숫자 필드인 다섯 번째 열("활성 사용자 기반")에 의해 자동으로 정렬됩니다. 숫자 필드는 내림차순(위쪽에서 가장 높음)으로 자동 정렬되어야 합니다.테이블 내의 각 행의 내용은 별도의 인수(파이프[ ] 기호로 시작)로 입력되며 텍스트, Wikilinks 및 이미지 파일링크가 포함됩니다.자세한 내용은 Wikicode를 참조하십시오.
| 위키피디아 이름 | 언어 | 대본 | WP코드 | 액티브 유저 베이스(10n) | 로고 |
|---|---|---|---|---|---|
| 영어 위키백과 | 영어 | Latn | en | 5 | |
| 위키백과 이탈리아어로 | 이탈리아의 | Latn | 그것 | 3 | |
| 관야마 위키백과 (닫힘) | 관야마 | Latn | 0 |
"Wikipedia 에디션 세부 정보" 예제
다음은 Wikipedias 목록에 있는 Wikipedia 에디션 세부사항 표의 축약판입니다.이 테이블은 (이 모듈을 사용하여) 템플릿을 사용하여 이 모듈이 생성하는 테이블의 개별 행을 생성합니다.
위의 예시와 같이 이것은 수동으로 정렬할 수 있는 Wikitable이며 행 헤더(여기에서는 열 1로만 지정)에 "플레인로우헤더"(굵은 글씨 없음, 중심 없음) 클래스를 사용합니다.단, 이 테이블은 두 번째 열(문서 수 기준)에 의해 자동으로 정렬됩니다.두 번째 열은 숨김(같은 값이 다시 사용되며 "Articles"로 표시됨)이며 숫자 필드이므로 맨 위부터 내림차순으로 자동 정렬할 때 사용해야 합니다.테이블 내의 각 행의 내용은 WPn 템플릿 중 하나에 의해 생성되며 각 템플릿에 대한 콜은 별도의 인수(파이프[ ] 기호로 시작)로 입력됩니다.
이 표에는 큰 숫자가 포함된 여러 열이 포함되어 있으므로 colstyle 인수가 광범위하게 사용됩니다.자세한 내용은 Wikicode를 참조하십시오.
| 언어 | 언어(로컬) | 위키 | 기사들 | 총 페이지 수 | 편집 | 관리자 | 사용자 | 액티브 유저 | 이미지들 | 깊이 |
|---|---|---|---|---|---|---|---|---|---|---|
| 영어 | 영어 | en | 6,560,907 | 56,700,794 | 1,110,801,902 | 1,028 | 44,310,695 | 121,100 | 893,865 | 1,144 |
| 세부아 노어 | 세부아 노어 | ceb | 6,125,573 | 11,232,378 | 34,885,888 | 6 | 95,102 | 191 | 0 | 2 |
| 독일의 | 도이치 | 데 | 2,732,556 | 7,542,037 | 225,417,633 | 187 | 4,007,624 | 16,864 | 128,886 | 92 |
| 아프리칸스 | 아프리칸스 | af | 104,906 | 373,869 | 2,524,564 | 16 | 154,252 | 153 | 9,615 | 44 |
| 알레만어 | 알레만니슈 | 알스 | 29,178 | 70,473 | 1,019,043 | 9 | 93,527 | 92 | 571 | 28 |
| 카누리 | 카누리 | kr | 0 | 162 | 4,641 | 1 | 5,464 | 1 | 0 | —— |
--[[ AutoSortTable: 자동으로 정렬되는 테이블을 만듭니다. 사용방법 : (숨긴 댓글 삭제 후 사용) {{#제외:AutoSortTable 생성 class = wikable <!-- 테이블 전체의 클래스 --> style = width: 50%; <!-- 테이블 전체에 대한 CSS --> 구분자 = -- <!-- 셀을 구분하기 위해 사용되는 구분자 문자열. 파이프( )는 유효하지 않습니다. --> order = 2, 1 <!-- 정렬 프리퍼런스의 순서는 콤마로 구분된 열 번호 목록을 취합니다. -- > 숫자 = 2 <!-- 숫자 정렬을 사용하는 열.콤마로 구분된 열 번호 목록을 사용합니다. -- > 내림차순 = 1 <!-- 정렬 순서가 내림차순이 되는 열.쉼표로 구분된 콜 번호 목록을 가져옵니다. -- > hidden = 2 <!--표시되지 않는 컬럼.쉼표로 구분된 콜 번호 목록을 가져옵니다. -- > rowheader = 1 <!-- WP에 따라 행 헤더로 출력되는 비각 행의 셀:ACCESS #데이터 테이블.보통 1개뿐이지만,는 콤마로 구분된 콜 번호 목록을 받아들입니다. -- 。 caption = 연령별 주목 인물 <!-- WP별 표 캡션:액세스 --> header = -- Name -- Age <!-- 테이블헤더 --> footer = <!-- 테이블 바닥글(통상은 헤더의 합계 행 또는 중복) --> -- Bob -- 20 <!-- 1행 --> -- Peter -- 35 <!-- 2행 --> -- John -- 35 <!-- 3행 --> -- James -- 50 <!-- 4행 --> background-color: #FFDDD --Henry --45 <!--행5(CSS 포함) --> colstyle = -- text-align:left; -- text-align:right; -- -- -- <!-- CSS는 각 컬럼의 콘텐츠에 사용됩니다.여기서 첫 번째와 두 번째 --> }} ]] 현지의 _개요 = {} _개요.만들다 = 기능.(틀) 현지의 args = 틀.args -- 이름 있는 파라미터 현지의 학급 = args.학급 현지의 스타일. = args.스타일. 현지의 세프 = args.분리기 현지의 주문 = args.주문 현지의 기술하다 = args.내림차순 또는 "" 현지의 노드 = args.숫자 또는 "" 현지의 숨겨져 있다 = args.숨겨져 있다 또는 "" 현지의 머리글자 = args.머리글자 현지의 바닥글 = args.바닥글 현지의 콜스타일 = args.콜스타일 현지의 노젓는 사람 = args.노젓는 사람 또는 "" 현지의 표제 = args.표제 -- 자주 사용하는 기능 현지의 strIndexOf = 음.스트링.발견하다 현지의 스플릿 = 음.본문.분열되다 현지의 strSub = 음.스트링.후보선수 현지의 스트림 = 음.본문.다듬다 현지의 켜다 = #세프 현지의 nsort 룩업, desc 룩업, 숨김 검색, 행헤딩 = {}, {}, {}, {} -- 테이블을 만듭니다. 현지의 html = 음.html.만들다() 현지의 테이블 = html:태그('테이블') 한다면 학급 그리고나서 테이블:특성('클래스, 학급) 끝. 한다면 스타일. 그리고나서 테이블:특성('스타일', 스타일.) 끝. 한다면 표제 그리고나서 현지의 기능 = 테이블:태그('실패') 기능:위키텍스트(표제) 끝. -- 행 문자열을 해석합니다.'key' 매개 변수는 동일한 행에 정렬 오류가 발생하지 않도록 결과에 고유한 키를 할당하는 데 사용됩니다. 현지의 해석 = 기능.(s, 열쇠) 현지의 css 현지의 첫 번째 셉 = strIndexOf(s, 세프, 1, 진실의) 한다면 첫 번째 셉 == 1 그리고나서 -- CSS 없음 css = 제로 s = strSub(s, 켜다 + 1, -1) 또 다른 -- 첫 번째 구분자 앞의 CSS css = strSub(s, 1, 첫 번째 셉 - 1) s = strSub(s, 첫 번째 셉 + 켜다, -1) 끝. 돌아가다 {열쇠 = 열쇠, css = css, 데이터. = 스플릿(s, 세프, 진실의)} 끝. --[[ 테이블에 행을 씁니다. css: 행에 적용할 CSS 데이터:행의 데이터(셀) _type: 'header', 'footer' 또는 0일 수 있습니다. ]] 현지의 writeHtml = 기능.(css, 데이터., _타입) 현지의 배를 젓다 = 테이블:태그('tr') 한다면 css 그리고나서 배를 젓다:특성('스타일', 스트림(css)) 끝. 위해서 i, v 에서 아이페어(데이터.) 하다 한다면 것은 아니다. 숨김 검색[i] 그리고나서 현지의 감방 한다면 _타입 == '실패' 그리고나서 -- 헤더: scope="col"과 함께 'th' 태그를 사용합니다. 감방 = 배를 젓다:태그('th') 감방:특성('실패', 'col') 그렇지 않으면 _타입 == '실패' 그리고나서 -- 바닥글: 테이블을 사용자가 정렬할 수 있도록 정렬하지 않도록 '아래'로 표시합니다. -- 「불가능한 정렬 가능」클래스와 함께 감방 = 배를 젓다:태그('실패') 감방:특성('클래스, '밑바닥') 또 다른 한다면 행헤딩[i] 그리고나서 -- 셀은 행 제목입니다. 감방 = 배를 젓다:태그('th') 감방:특성('실패', 행) 또 다른 -- 일반 셀 감방 = 배를 젓다:태그('실패') 끝. 현지의 셀 CSS = 콜스타일 그리고. 콜스타일[i] 한다면 셀 CSS 그리고나서 감방:특성('스타일', 스트림(셀 CSS)) 끝. -- 필요에 따라 컬럼 스타일링을 적용합니다. 끝. 감방:위키텍스트(스트림(v)) 끝. 끝. 돌아가다 배를 젓다 끝. -- 컬럼 스타일을 해석합니다. 한다면 콜스타일 그리고나서 콜스타일 = 해석(콜스타일, -1).데이터. 끝. -- 헤더를 먼저 씁니다. 한다면 머리글자 그리고나서 현지의 헤더 데이터 = 해석(머리글자) writeHtml(헤더 데이터.css, 헤더 데이터.데이터., '실패') 끝. -- 데이터 해석 현지의 데이터. = {} 위해서 i, v 에서 아이페어(틀.args) 하다 데이터.[i] = 해석(v, i) 끝. 주문 = 스플릿(주문, '%s*,%s*') 노드 = 스플릿(노드, '%s*,%s*') 기술하다 = 스플릿(기술하다, '%s*,%s*') 숨겨져 있다 = 스플릿(숨겨져 있다, '%s*,%s*') 노젓는 사람 = 스플릿(노젓는 사람, '%s*,%s*') 위해서 i, v 에서 아이페어(주문) 하다 주문[i] = 톤수(v) 끝. 위해서 i, v 에서 아이페어(노드) 하다 nsort 룩업[톤수(v) 또는 -1] = 진실의 끝. 위해서 i, v 에서 아이페어(기술하다) 하다 desc 룩업[톤수(v) 또는 -1] = 진실의 끝. 위해서 i, v 에서 아이페어(숨겨져 있다) 하다 숨김 검색[톤수(v) 또는 -1] = 진실의 끝. 위해서 i, v 에서 아이페어(노젓는 사람) 하다 행헤딩[톤수(v) 또는 -1] = 진실의 끝. --비교기 함수 정렬. 현지의 정렬 펑크 = 기능.(a, b) 현지의 광고, bd = a.데이터., b.데이터. 위해서 i = 1, #주문 하다 현지의 색인 = 주문[i] 현지의 ai, 바이 = 광고[색인], bd[색인] 한다면 nsort 룩업[색인] 그리고나서 -- 숫자 정렬.첫 번째 번호를 찾아서 사용합니다.소수점이 허용됩니다.과학적 표기법이 지원되지 않습니다. ai = 톤수( (ai:발견하다('.', 1, 진실의) 그리고. ai:경기('[+-]%d*%'%d+') 또는 ai:경기('[+-]- %d+')) 또는 0 ) 바이 = 톤수( (바이:발견하다('.', 1, 진실의) 그리고. 바이:경기('[+-]%d*%'%d+') 또는 바이:경기('[+-]- %d+')) 또는 0 ) 끝. 한다면 ai ~= 바이 그리고나서 한다면 desc 룩업[색인] 그리고나서 돌아가다 ai > 바이 또 다른 돌아가다 ai < > 바이 끝. 끝. 끝. 돌아가다 a.열쇠 < > b.열쇠 끝. table.displaces(데이터., 정렬 펑크) -- HTML 출력에 정렬된 데이터를 씁니다. 위해서 i, v 에서 아이페어(데이터.) 하다 writeHtml(v.css, v.데이터., 제로) 끝. -- 바닥글을 씁니다. 한다면 바닥글 그리고나서 현지의 바닥글 데이터 = 해석(바닥글) writeHtml(바닥글 데이터.css, 바닥글 데이터.데이터., '실패') 끝. 돌아가다 스트링(html) 끝. 돌아가다 _개요 